Mike Pulsifer Photography mike-pulsifer.org

9Apr/1076

Too Many iPhone “Developers”

Yesterday, I came across this gem on Daring Fireball where John Gruber discusses the change in the rules for developers:

My reading of this new language is that cross-compilers, such as theFlash-to-iPhone compiler in Adobe’s upcoming Flash Professional CS5 release, are prohibited. This also bans apps compiled using MonoTouch — a tool that compiles C# and .NET apps to the iPhone. It’s unclear what this means for tools like Titanium and PhoneGap, which let developers write JavaScript code that runs in WebKit inside a native iPhone app wrapper. They might be OK. This tweet from the PhoneGap Twitter accountsuggests they’re not worried. The folks at Appcelerator realize, though, that they might be out of bounds with Titanium. Ansca’s Corona SDK, which lets you write iPhone apps using Lua, strikes me as out of bounds.

Now, anyone who knows me is probably thinking I'm loving this because I'm some sort of mindless Apple fanboi.  If you're one of these people, I'm sorry to disappoint you.  This makes me happy because this rights a wrong.

With the advent of the iPhone, you all of a sudden had a great deal of people, even those who don't own a Mac adopting this hand-held computer from Apple.  This is a good thing.  Competition is good.  No one company should own any market, whether it's RIM, Google, Microsoft, or Apple.

Where it went right and wrong at the same time was the massive influx of developers and "developers."  Having 180,000 applications is a good thing for a platform.  However, with the good comes the bad and you don't even have to look far to find the tripe.  Just look at all the fart and flashlight apps that landed in the App Store.

Now, when I put developers in quotes, I'm calling out the script-kiddie equivalents in the developer community that have no skills and/or are unwilling to obtain the required skills to develop quality applications.  To see these "developers" and their rage in their full "glory," check out this fine example from TechCrunch.

Developers have nothing to lose from the recent changes to Apple's Developer License Agreement.  It's the "developers" that have everything to lose.  Sadly, though, it appears as though many "developers" are still safe...for now.  Under the new rules, you have a few options for developing your iPhone OS apps:  Objective-C, C, and C++.  As I understand it, even if you're developing for the latter two, there's no avoiding Objective-C if you utilize iPhone OS UI elements.  If you try to "develop" an iPhone app using Flash CS5, MonoTouch, or some of the other frameworks that allow a "developer" to create an app without using the iPhone SDK, you're out of luck.

The people most affected by this are those Microsoft-centric developers who are upset that they need a Mac to develop for the iPhone.  No complaints, however, about needing Windows to develop for Windows.  If you don't test your app in the operating environment on which it would run, you're not a developer.  You're a hack.  Some may still cry for the iPhone/iPad emulator for Windows, but consider this:  the Mac runs OS X.  The iPhone OS is OS X.  If a "developer" still doesn't understand this important point, then they need to give up their dream of being an honest to goodness developer.

Now, the loophole that lets some "developers" stay in the game is that it still allows "JavaScript as executed by the iPhone OS WebKit engine."  That's too general.  What this does is allow drek like PhoneGap to produce "apps."  The people who use this tool are lazy "developers" who don't want to put the time and effort into building great applications for the mobile platforms, those with no sense whatsoever about user experience, and just generally dishonest people.

What PhoneGap does is basically wraps a web application in WebKit and packages it as though it's a native application.  First of all, this is completely and utterly dishonest.  When people download an app, they are expecting an app that was built FOR their device and not some repackaged web site.  It's fundamentally dishonest, no matter how the "developer" tortures logic or the English language to justify their deceit.  These "developers" are merely hacks and haters seeking to reap the rewards from the gold mine without doing any of the mining themselves while bragging to anyone who would listen about how great a miner they are.

PhoneGap and tools like it let "developers" (again, the white-hat equivalent of script-kiddies) who know nothing more than basic web technologies to pretend they can develop "desktop" applications.  John Gruber hinted indirectly at the danger this poses to not just Apple, but in my opinion the "developers" and iPhone consumers as well.

I don’t think Apple even dreams of a Windows-like share of the mobile market. Microsoft’s mantra was (and remains) “Windows everywhere”. Apple doesn’t want everywhere, they just want everywhere good. The idea though, is to establish the Cocoa Touch APIs and the App Store as a de facto standard for mobile apps — huge share of both developers and users.

So what Apple does not want is for some other company to establish a de facto standard software platform on top of Cocoa Touch. Not Adobe’s Flash. Not .NET (through MonoTouch). If that were to happen, there’s no lock-in advantage. If, say, a mobile Flash software platform — which encompassed multiple lower-level platforms, running on iPhone, Android, Windows Phone 7, and BlackBerry — were established, that app market would not give people a reason to prefer the iPhone.

And, obviously, such a meta-platform would be out of Apple’s control. Consider a world where some other company’s cross-platform toolkit proved wildly popular. Then Apple releases major new features to iPhone OS, and that other company’s toolkit is slow to adopt them. At that point, it’s the other company that controls when third-party apps can make use of these features.

So from Apple’s perspective, changing the iPhone Developer Program License Agreement to prohibit the use of things like Flash CS5 and MonoTouch to create iPhone apps makes complete sense. I’m not saying you have to like this. I’m not arguing that it’s anything other than ruthless competitiveness. I’m not arguing (up to this point) that it benefits anyone other than Apple itself. I’m just arguing that it makes sense from Apple’s perspective — and it was Apple’s decision to make.

There's the rub, basically.  If a "developer" uses a tool like PhoneGap and Apple updates the OS, adding or tweaking APIs, there's no guarantee whether or when that "developer" can make use of these changes in their "app."  This hurts not only the "developers," but also the consumers who miss out on using an app that takes advantage of these features.  If you take short cuts to try to cheat the system, you or your customers will get burned.  Dishonesty and laziness, in the end, does not pay.

Finally, the "developers" who use any of these tools to avoid learning Objective C or any of the other permitted languages are arguably the reason why the applications on Windows tend to be rubbish from a design and user experience point of view.  The reason why there appears to be an utter lack of UI standards on Windows is that there's no enforcement.  Even Microsoft rarely plays by its own rules.  On the Mac side of the fence, even though Apple doesn't enforce the UI guidelines on third-party applications, the Macintosh developer community has been very good at policing itself.  The userbase has also been quite effective at rewarding developers that create products that are "Mac-like."  Care is put into the user experience to ensure that the user is using an application that looks, feels, and behaves like it belongs on that computer.

It's this culture of do whatever the damn hell you want and screw the UI guidelines that threatens the iPhone OS platform with this huge influx of "developers."  It's also why these "developers" are so frustrated.  Apple cares.  They give a damn about the user experience.  They know that people pay what they pay for Apple products because of the user experience.  People are buying the iPad because of what it offers in the way of user experience.  They're not targeting the crowd that shops based on a laundry list of tech specs.  They're targeting people who care about ease of use and fit & finish and are willing to pay a small premium for it.  To quote John Gruber, "Apple doesn’t want everywhere, they just want everywhere good."

  • Anonymous

    i think it is good site!

  • Anonymous

    MonoTouch binds directly to Apple’s APIs. MonoTouch uses Interface Builder. MonoTouch has facilities for quickly adding bindings to APIs without having to wait for Novel. It’s designed specifically for iPhone development (“appropriate tools for the job” you say?).nnBanning MonoTouch forces C# developers to spend time learning Objective-C, it makes them work less effectively (unmanaged vs managed: you can’t argue this one!), in turn it makes their applications either later or buggier or have fewer features. This applies to the good developers as much as the bad ones!nnSaying that one should switch to Objective-C, against an individual developer’s good judgement, because it’s the platform’s native language is a ridiculous thing for you to say and it’s a ridiculous thing for Apple to say.

  • Anonymous

    Although, you make a good argument, I disagree with your point. The issue I ran into as a developer (no quotes) is when I tried to pitch a client an “iPhone” App, he wanted a “Mobile” app. So what does this mean? iPhone is not mobile, it is just one option in the mobile ecosystem. I’ve already learned to code both Android and iPhone natively, but if you could tell me how i could get companies that are quickly getting passed the iPhone hype, and demand more for their money then I am all in. Truth is, once they have an iPhone App, and hear that Android is sneaking up, then they want an Android App. Then being that they are new to the space they realize that BlackBerry actually has the most units out, now they want that, and symbian because it huge over seas. What started as a $15, 000 project quickly multiplies to $50,000. I don’t know how much time you have on your hand, or what type of resources your company has, but this it just unmanageable. I don’t see using code interpreters like Unity3D over Cocoa being a “developer”, I also don’t see using PhoneGap to develop for at least 5 different platforms with one codebase, being lazy. I see that as having good business sense, and give your client the most for their money. As for your argument about APIs changing, that is a valid argument, however PhoneGaps Objective-C architecture is fully accessible, so the developer (no quotes) could easily make any adjustments in Objective-C on his own, which means my clients are always safe.

  • Anonymous

    That’s a hell of an assumption to make. I hear you, but I don’t necessarily agree. Unfortunately, that’s a difference that all-too-many people do not grasp.nnI get what you say, but consider this:n- You’re completely dependent upon the MonoTouch project giving you full access to all updated and new APIs in a timely fashion. You are at the mercy of a third party.n- Your customers are completely dependent upon you having access to those same new and updated APIs. n- Because you’re relying on that third party, people who use Apple’s iPhone SDK have a leg up on you. Think Interface Builder and Instruments. Just from a QA & testing perspective, it’s a big deal not using the tools provided by Apple.n- Though using Objective C and the SDK is no guarantee that developers will adhere to the Human Interface guidelines, people who try to get by without doing as the Romans do, so to speak, are less apt to even read, much less adhere to the guidelines at http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.htmlnnOn a somewhat related point, if one is to develop for Windows, they’d be expected to pick up and learn at least one of the versions Visual Studio and do the development in Windows. Makes sense, especially when testing. However, there’s this outcry when that same standard is applied to iPhone development (as mentioned before, the iPhone is running OS X). It’s hypocrisy and lays bare the developers who are phony, leeches, or both.nnA developer, if they want to consider themselves a professional, should not be afraid to pick up, learn, and use new and even vastly different tools. All too often, many of the tools that are created, like the ones I mentioned in the article are created as an easy way out; an means to cheat the system.nnOver the years, I’ve made the effort, depending on the situation and the requirements at hand, to learn and use the appropriate tools for the job, whether it’s CA-Realizer, Perl, JavaScript, ColdFusion, ASP (VBScript), C#, C++, Java, or Real Basic. There’s something to be said for accomplishing something new while using a “new” technology. The personal and/or professional growth can be quite gratifying.nnWith all that said, one thing about Real Basic, which can be used to develop across Windows, Mac, and Linux is that their manual (yes, I DO RTFM :) ) puts an emphasis on adhering to the UI conventions/standards for each platform you develop for. Is that commitment evident in the MonoTouch and the other tools/programs? Given the state of the Windows apps on my other machine here, I’d be quite surprised if it was.

  • Anonymous

    I’d disagree that devs are using MonoTouch in order not to learn Objective-C. Rather, the case is that they want to use most productive tools. Of course I can only speak for myself, and tried to learn Objective-C first, did couple op projects, but I kept finding myself solving kind of minor technical problems rather that solving the main business problems. For me this was the decision point: Do I want to spend my time learning the deep quirks of Obj-C or do I want to get the job done? The gains from using MonoTouch’s memory management and for example various .NET collection types and query engine (LINQ) are really serious dev benefits. Since Apple devs are notorious of being fundamentalists, “Obj-C-is-the-way-and-there-shall-be-no-other-ways” -style, I don’t expect my point to be heard here. Peace. =)

  • Anonymous

    Yup, can’t be a man because I don’t smoke the same cigarettes as you. Works better in rock n roll.

  • Bruce Robertson

    Yup, can't be a man because I don't smoke the same cigarettes as you. Works better in rock n roll.

  • Timo

    I'd disagree that devs are using MonoTouch in order not to learn Objective-C. Rather, the case is that they want to use most productive tools. Of course I can only speak for myself, and tried to learn Objective-C first, did couple op projects, but I kept finding myself solving kind of minor technical problems rather that solving the main business problems. For me this was the decision point: Do I want to spend my time learning the deep quirks of Obj-C or do I want to get the job done? The gains from using MonoTouch's memory management and for example various .NET collection types and query engine (LINQ) are really serious dev benefits. Since Apple devs are notorious of being fundamentalists, “Obj-C-is-the-way-and-there-shall-be-no-other-ways” -style, I don't expect my point to be heard here. Peace. =)

  • http://www.mike-pulsifer.org/ WVMikeP

    That's a hell of an assumption to make. I hear you, but I don't necessarily agree. Unfortunately, that's a difference that all-too-many people do not grasp.

    I get what you say, but consider this:
    - You're completely dependent upon the MonoTouch project giving you full access to all updated and new APIs in a timely fashion. You are at the mercy of a third party.
    - Your customers are completely dependent upon you having access to those same new and updated APIs.
    - Because you're relying on that third party, people who use Apple's iPhone SDK have a leg up on you. Think Interface Builder and Instruments. Just from a QA & testing perspective, it's a big deal not using the tools provided by Apple.
    - Though using Objective C and the SDK is no guarantee that developers will adhere to the Human Interface guidelines, people who try to get by without doing as the Romans do, so to speak, are less apt to even read, much less adhere to the guidelines at http://developer.apple.com/iphone/library/docum…

    On a somewhat related point, if one is to develop for Windows, they'd be expected to pick up and learn at least one of the versions Visual Studio and do the development in Windows. Makes sense, especially when testing. However, there's this outcry when that same standard is applied to iPhone development (as mentioned before, the iPhone is running OS X). It's hypocrisy and lays bare the developers who are phony, leeches, or both.

    A developer, if they want to consider themselves a professional, should not be afraid to pick up, learn, and use new and even vastly different tools. All too often, many of the tools that are created, like the ones I mentioned in the article are created as an easy way out; an means to cheat the system.

    Over the years, I've made the effort, depending on the situation and the requirements at hand, to learn and use the appropriate tools for the job, whether it's CA-Realizer, Perl, JavaScript, ColdFusion, ASP (VBScript), C#, C++, Java, or Real Basic. There's something to be said for accomplishing something new while using a “new” technology. The personal and/or professional growth can be quite gratifying.

    With all that said, one thing about Real Basic, which can be used to develop across Windows, Mac, and Linux is that their manual (yes, I DO RTFM :) ) puts an emphasis on adhering to the UI conventions/standards for each platform you develop for. Is that commitment evident in the MonoTouch and the other tools/programs? Given the state of the Windows apps on my other machine here, I'd be quite surprised if it was.

  • http://twitter.com/abritez Alex Britez

    Although, you make a good argument, I disagree with your point. The issue I ran into as a developer (no quotes) is when I tried to pitch a client an “iPhone” App, he wanted a “Mobile” app. So what does this mean? iPhone is not mobile, it is just one option in the mobile ecosystem. I've already learned to code both Android and iPhone natively, but if you could tell me how i could get companies that are quickly getting passed the iPhone hype, and demand more for their money then I am all in. Truth is, once they have an iPhone App, and hear that Android is sneaking up, then they want an Android App. Then being that they are new to the space they realize that BlackBerry actually has the most units out, now they want that, and symbian because it huge over seas. What started as a $15, 000 project quickly multiplies to $50,000. I don't know how much time you have on your hand, or what type of resources your company has, but this it just unmanageable. I don't see using code interpreters like Unity3D over Cocco being a “developer”, I also don't see using PhoneGap to develop for at least 5 different platforms with one codebase, being lazy. I see that as having good business sense, and give your client the most for their money. As for your argument about APIs changing, that is a valid argument, however PhoneGaps Objective-C architecture is fully accessible, so the developer (no quotes) could easily make any adjustments in Objective-C on his own, which means my clients are always safe.

  • Anon

    MonoTouch binds directly to Apple's APIs. MonoTouch uses Interface Builder. MonoTouch has facilities for quickly adding bindings to APIs without having to wait for Novel. It's designed specifically for iPhone development (“appropriate tools for the job” you say?).

    Banning MonoTouch forces C# developers to spend time learning Objective-C, it makes them work less effectively (unmanaged vs managed: you can't argue this one!), in turn it makes their applications either later or buggier or have fewer features. This applies to the good developers as much as the bad ones!

    Saying that one should switch to Objective-C, against an individual developer's good judgement, because it's the platform's native language is a ridiculous thing for you to say and it's a ridiculous thing for Apple to say.

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!

  • http://googlesecretloopholereview.com Google Secret Loophole

    i think it is good site!