Apple: Stuff Ups, Mistakes, and Finally Moving Forward?

With the announcement that Apple recently made, a number of developers will jump for joy: Apple has released the Review Guidelines publicly, displaying the rules by which apps will be judged before they make the App Store (if indeed they make it there at all). Apple has also loosened restrictions on using Adobe Flash to build iPhone apps (which, for a while, has been banned).

For a long time, the Review Guidelines were kept secret, and the fear of the iPhone developer was that, after spending time, energy, and money building an application, they may never see that app accepted to the store. Apple’s stranglehold seemed to be random at best; “fart” apps would be accepted while high-quality apps were denied.

The Review Guidelines, thankfully, are written quite informally: “We have over 250,000 apps in the App Store. We don’t need any more Fart apps.”

Some of the guidelines are more or less common sense. For example, “We have lots of kids downloading lots of apps, and parental controls don’t work unless the parents set them up (many don’t). So know that we’re keeping an eye out for the kids.” Others urge developers to polish their apps by stating that “amateur hour” apps will be excluded. One of the good news items of the guidelines, mixed with a warning, is: “if your app is rejected, we have a Review Board that you can appeal to. If you run to the press and trash us, it never helps.”

Previously, apps were being denied for innocuous reasons: Pulitzer-winning satirist’s apps were denied for being “defamatory”, while Apple’s Director of Applications technology could release “fart, poop, and wiz” apps to his heart’s content.

This issue is not about which app gets approval over others; it’s more that Apple has held its cards too close to its chest. The people being punished were the developers, who were made to jump through hoops to build and expand Apple’s quite lucrative app store.

Then along came Google.

The Android Market delivered a free, open marketplace for which we could build apps. This double-edged sword means two things: the quality may waver, but nobody has big brother deciding what goes live. Moreover, with an open marketplace, app development can better take its course: if bugs are found, or improvements are made, the application can be distributed to its users more quickly, without needing another round of approval — and with it, the risk of having the app pulled from the App Store.

Secondly, the restrictions on the use of cross-device, non-Apple development platforms promises to bring about a new range of mobile applications. The develop-once-deploy-many model makes sense for large organizations: it leaves developers to write the app once, and deploy to iPhone, Android, Symbian and any other devices the platform will support.

In my opinion, this was obviously a ploy by Apple to close the App Store to Adobe Flash-originated apps, and an attempt to shut Adobe out of the market.

But there were other exciting platforms (rhomobile, Appcelerator Titanium), that showed much promise. At the time, these weren’t options for developers — since they weren’t written in Xcode, those apps may never have seen the light of day.

Google’s company ethos is “Do no evil”. Apple, however, has shown its colors by making the lives of its platform’s developers difficult. This seems to be changing — undoubtedly in response to Google’s significant entry into, and success in, the market. Kudos to Apple, but it took a long time to get here.

What do you think? Is it Google or Apple for you?

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • simonbanyard

    ‘Google’s company ethos is “Do no evil”.’ Semantics possibly, but it’s actually “Don’t be evil”

    “What do you think? Is it Google or Apple for you?” Why can’t it be both? Why do bloggers and journalist insist on trying to polarize individuals into being one or the other? Why not make choices based on merit rather that irrational emotions? I’m bored of the rampant fanboyism that is present on every blog, forum and message bored, and questions like “Is it Google or Apple for you?” just fuel the fire.

  • Kevin

    For me Google continue to innovate while Apple and Microsoft watch and react. I love Apple for breaking the Microsoft hold but as a developer, I have found them limiting e.g. I’d need to purchase Apple hardware to develop for iPhone/iPad – something I am not prepared to do (especially as their hardware/cost ratio is so poor).

    For that reason, Google for me is the King.

  • Pete

    I couldn’t disagree with you more I’m afriad Mark. Allowing Flash-developed apps on the Apple app store simply means there will suddenly be a massive onslaught of sub-standard applications.

    The “develop-once-deploy-many” model is great in terms of economics for developers but for the consumer it simply means all applications will be developed with a cross-device mindset. Use of muti-touch and other Apple patented technologies will become a thing of the past. I simply can’t understand why Apple would want this. It’s not like there’s a shortage of applications being made for its iOS platform!

    • http://logicearth.wordpress.com logic_earth

      Sub-standard applications can be made with Apple’s own SDK and “desired” programming language, and they already have been made. Your fears are unwarranted.

    • Mark Cipolla

      There is a real business case for the develop-once-deploy-many model, though.
      After working at one of Australia’s large web corporates, we were looking to develop an app to as many devices as possible, to nullify a competitors entry to the iphone app market.
      We had little interest in building a cocoa touch app straight away, but were happier in Ruby on Rails.
      We could build an app once in a language we used, and more importantly, felt comfortable with, and deploy to multiple platforms. If the apps did well (and was getting the usage we desired), we would rewrite them iPhone specific to take advantage of more powerful features (multitouch, etc…). It would allow us to build better apps aimed at markets that would use them, and not waste time writing apps that would never get used by many.
      Just as we had a nice, working prototype, Apple clamped down on the “no non-xcode coded apps” rule.
      For larger businesses, sometimes you have to take the long route…

    • Mark Cipolla

      “I couldn’t disagree with you more I’m afriad Mark. Allowing Flash-developed apps on the Apple app store simply means there will suddenly be a massive onslaught of sub-standard applications.”

      I guess what I was trying to say is, how do we know that Flash-built apps will be substandard. It’s a toolset. Surely, developers can create wonderful apps with any tool, be it xcode or flash. Equally, they can build rubbish.

      An even playing field, with multiple companies building development toolsets is good for everyone; people can use what they are comfortable with, the learning curve is lessened, and maybe better apps can be built by more people.

  • http://www.billbolte.com bbolte

    Nope, Apple isn’t in it for the developers, its simply a decision they had to make to keep the bottom line looking good. Don’t get me wrong here either, I don’t think Google is any more benevolent than Apple is.

  • http://www.absolutelygeek.com/ Dren

    Google all the way for me! :) Love my Android phone.

  • 2 Cents

    Apple is about the customer first and developers second. Developer should have the same attitude and not turn in low rent apps on any platform in an attempt to develop-once-deploy-many. I smell the Federal Government. Only the threat of some moronic antitrust suit would lead Apple to this rather poor decision. Android’s impact on iPhone is way overblown in this article and in general. My guess is that technically you can develop for the iPhone on non-Apple platforms but if you are not taking full advantage of multi-touch technologies you will not be approved for the app store. Most likely the only way to do that is with Xcode.

    • http://www.lunadesign.org awasson

      Yup… I have to agree that it’s likely the only reason they’re changing their tune is for fear of being investigated by the US DOJ or an anti-trust, anti-competition suite.

      Personally I think Apple are being a bit pissy with their attitude towards non Xcode development anyway.

    • Ali Baba

      I can’t agree. Apple is about Apple first, customers second, developers third.

  • http://htmlblox.com samanime

    All I’ll say is:

    WOOT! Flash-originated apps are allowed in the App Store. I may actually start developing iPhone apps now. =D

  • martin05rc

    Objective-C and XCode are real abominations that need to cease to exist. Of course, people still do learn and use these tool, but, holy crap are they garbage.

    This is one case where Apple simply exposes a serious dichotomy: Their public image is one of ease of use and a happy-happy user-friendly experience.

    In sharp contrast to this, the view they present to their developers is one of a totalitarian regime insisting in the use of arcane productivity-sapping tools that fail to compare to free-market technology. Objective-C –if you have not been living in that alternate reality for some time– is one of the most productivity-sapping and obtuse languages I have seen in quite some time.

    Get with the times folks!

  • martin05rc

    Apple is making exactly the same mistake they made with their Mac platform. They are going off the same playbook:

    By wanting to keep such a tight stronghold on everything they lost massively to technologies developed within a free market model. Macs are neat, but the world does not run on them by far. In fact, the vast majority of iPhone/iPod/iPad users are far more likely to own PCs running Windows.

    The pace of competitive evolution in a free market environment always wins. It is because of the simple fact that species that are not fit die off or evolve into more capable versions. Eventually a solution (or solutions) surface that win hands down.

    The iPhone is full of moronic issues. Touch is great, but, try to use your iPHone in an emergency with gloves on (at work, in the field, in winter, etc.). Other vendors will soon discover that following Apple into the abyss is a bad idea. You need buttons. You need keyboards. You also need a screen that isn’t “live” 100% of the time. On an iPhone you can accidentally call someone clear across the world if you so much as glance at the screen by accident. You can also hang-up on an important call because there’s almost no way to hold it without danger of hitting a button (yeah, you can put the screen to sleep, I know).

    It goes on, and on, but this isn’t the right forum. The point is that the free market is more likely to evolve a far better advanced cellphone solution than the “creationist” approach taken by Apple.

  • Louis Simoneau

    I still think charging me $99 for a “developer license” to put code that I wrote on a phone that I purchased is a heck of a sucker punch, and why I’m going the Android route both as a consumer and as a developer.

    • EastCoast

      If you’re just experimenting, you can jailbreak the phone and transfer your compiled app over ssh onto the device to test

  • Whosdigit

    Zero-day flaw in Adobe Flash Player and Acrobat is already being exploited in the wild. http://blogs.adobe.com/psirt/atom.xml

    Does using the “converter” for the App Store remove the issue(s) that cause these exploits?

    • EastCoast

      The flash cs5 iphone packager compiles to native code, there’s no flash player or acrobat reader involved in the end product

    • http://logicearth.wordpress.com logic_earth

      Those flaws are a non-issue when converting the Apps. The flaw in question is in the Flash Player. The Flash Player does not exist on the iPhone/Pad.

  • goldfidget

    I totally welcome greater openness on the part of Apple, However, many of the games produced by the Flash converter seem to suffer from serious performance issues. The reason we use Objective C for iPhone development is because it compiles down to superfast machine code. That’s why the iPhone is super responsive and android handsets, even the new ones, feel a little laggy and slow to respond, though this is something you get used to.

    I’d much rather be coding in something like Python or Ruby, even Java or AS3, but I don’t because they aren’t quick enough for a minimal phone architecture.

    Yes, the packager does make machine code too, but a high level language like AS3, with garbage collection, dynamic typing, automatic memory management, etc, etc can never compile the sort of tight code you need to be writing to get the good performance.

    I wish Adobe the best of luck, Illustrator is awesome, but Flash is a fading technology.

    • martin05rc

      “compiles down to superfast machine code”

      And C or C++ compile down to what? Also, don’t compare compiled languages to interpreted languages.

      Objective-C is far from fast. Don’t take my word for it, here are two links to actual test with code for you to run:

      http://memo.tv/nsarray_vs_c_array_performance_comparison
      http://memo.tv/nsarray_vs_c_array_performance_comparison_part_ii_makeobjectsperformselector

      400 times slower? That’s an impressive achievement.

      • goldfidget

        Ah sorry, clearly C is faster than objective C, and clearly Objective C is faster than compiled AS3. It wasn’t my intention to compare a compiled language with an interpreted language, I was coming back on your point that Objective C is an abomination.

        Yes, it’s not nice, I don’t like the syntax, but if you hold even a fisrt gen ipod touch next to, say a samsung galaxy, the galaxy feels unresponsive in comparison. I had both in my hand today.

  • martin05rc

    Fair enough goldfidget.

    Clearly you can take any language-hardware combination and create bad apps that don’t perform well.

    Why do I think that Objective-C is an abomination? Because it is one of the most convoluted languages I’ve tried to learn. Let’s see, I have worked extensively with:
    Assembly (for over a dozen processors going back to 8080/6502 days), Forth, APL, Fortran, C, C++, Visual C/MFC, C#, Visual Basic, Lisp, PALASM, Verilog, VHDL, Java, Javascript, PHP and a few more here and there.

    What I absolutely despise is complexity without justification. ObjectiveC introduces syntactical and gramatical constructs that are there just to make things different. They don’t buy you anything of any substance whatsoever. Yet, they make creating programs more difficult and possibly more expensive.

    You cannot express anything materially different with ObjectiveC than, say, with C++. Therfore, the stuff introduced by the language and the approach taken to make you do what you need to get done is superfluous at best. They make you jump through huge hoops for no reason whatsoever. The only gain is complexity, not functionality or the ability to express thoughts and ideas with greater efficiency or accuracy.

    A perfect example of the opposite is a language like APL. Not very popular these days despite possibly being the most powerful tool for expression of ideas in a programmers toolbox. It’s a symbolic language, much like mathematics. In math the integral sign conveys and expresses an idea that would require loops, loop variables and other constructs to implement in a C-like language. In APL an expression resembling something like “result = +/ array” takes care of the problem. There are many, many more examples where a dozen APL symbols in one line allow you to express what would take hundreds of lines in a C-like language.

    The point is that we need tools that allow us to focus on the problem and not the mechanics of typing a computer recipe that might solve the problem. The minute your brain is in “mechanic” mode rather than “creator/solver” mode you automatically lost at least one order of magnitude in your productivity and your ability to get things done.

    My greater point is that programming needs to move forward and advance beyond these 30-year-old ideas in order to be able to allow us to efficiently and accurately express more and more complex ideas and develop more intelligent products. Something like ObjectiveC is a step backwards, not forwards.

    Think about things like the intelligent robots/androids you see in movies. None of that will ever happen if you have to spend your time as a programmer concerned with declaring this here and there, needing a semicolon or two, counting your loop iterations, etc.

    There is nothing whatsoever in an iPhone that couldn’t have been covered very nicely with something like C++ and the right libraries. Therefore, forcing the use of something as ridiculous as ObjectiveC is simply a product of needing to stroke someones ego rather than a serious, tangible and measurable benefit to anyone at all.

    • goldfidget

      Amen to that & I agree C++ would have been a nicer choice. I’m all for languages that are helpful. I use Ruby day to day because it lets me say things like:

      Time.now + 1.week
      or
      [1,2,3] – [2]

      Unfortunately the iPhone comes preinstalled with a bunch of Objective C libraries so we’re a bit stuck with it. I’d love it if Adobe could get this to work well as I’d far rather be writing AS3 so I’ll wait and see.

  • http://www.calcResult.co.uk omnicity

    Far too many people seem to read “don’t be evil” as meaning: “be very nice” when actually many recent events seem to show that actually it means: “very, very naughty is just fine, so long as it makes money”

    With the number of apps in both stores, it is really hard to imagine that any category has been missed so far, so I would prefer _both_ parties to put more emphasis on quality, rather than less.