This is just bad for everyone involved. Apple could just say "fix it next time or we will reject you" rather than throwing a wrench into my operations.
Oh well... I'm going to keep developing iPhone apps and hope things improve.
You're a far more tolerant man than I. The fact that Apple is preventing you from supporting your customers is inexcusable.
These kinds of issues can be extremely hurtful to an ISV. I wonder if upper management at Apple knows how much damage they're doing to their reputation in the developer community.
It's true that it is extremely painful to watch emails and bad reviews come in complaining about a bug that you fixed weeks ago when Apple is blocking you from getting the fix out there. On the other hand, we make money off the app store, and we didn't off of our website. So it's a little easier to be tolerant.
"There’s a bigger story here, however. It’s one that’s been told before, but until things change, it needs to keep being told. Simply put, the App Store is broken."
It’s one that’s been told before, but until things change, it needs to keep being told.
no, iphone developers need to take more drastic action to boycott apple's actions than just "telling" the story.
apple needs developers to keep the app store and platform popular and, so far, all of the big developers are singing their tune and continuing to publish new apps and updates, even if they are complaining on their weblogs.
i think if the top iphone developers got together and had the petitioned support of dozens or hundreds of smaller developers, and took some serious action like going to apple headquarters and sitting down with those in charge, they could work to change things.
#1 The biggest developers don't deal with this. You really think EA has to put up with this crap? The Google Voice thing was a highly publicized fiasco, but I'd be willing to bet that sort of treatment of other publicly-traded companies is rare, and even that story probably has much more behind it than we know.
#2. There's so much money to be made that if half the small developers quit, the rest will simply fill the void. It's the same game theory concept that ensures the tuna will be fished into extinction. It would be in everyone's long term best interest to band together and make Apple fix their policies, but in each individual's short term interest to take the money and run.
*Totally did not notice when I said that that the very next article on the list was about the extinction of the Bluefin Tuna. Scary.
Point number 2 is what is the biggest problem. Unless there is an all-at-once unanimous decision to stop working on the iPhone platform by atleast 80pc of developers, nothing is going to change. The only way that can happen is if someone builds a phone better than the iPhone, and offers developers some kind of massive incentive to shift (which is not likely going to happen in the near future).
that was kind of my point. ea knows very well what other developers are going through, but until they get an app rejected, they're not going to do anything about it. i was suggesting that these top developers stand up and use their pull to convince apple to change on behalf of all iphone developers.
Actually my thought was more along the game theoretical lines than that article. The Bluefin Tuna is screwed because each country's long-term incentive is to sustain its population and severely curtail fishing. Unless every country but one does that, of course, leaving the country that crosses the picket line to make billions of dollars at the expense of the others.
More specifically it is the review process. You dump your app into a black hole and get very little feedback. They need to have a dialog with the developer and a tighter feedback loop.
Submit app, assign reviewer (who will also get priority for reviewing any updates), and then you have a dialog with the reviewer.
I've got a couple small apps that I'm preparing to submit, but I don't think I'll spend the time to write anything serious until they fix this.
Why is there a review process at all? There's no review process for OS X, and that seems like a decent consumer experience. For that matter, there's never been a review process for UNIX, Windows, or the Web. Those platforms all seem to do okay.
Seriously, what advantage does the review process offer? Can it be seriously argued that "review" benefits anybody?
- Users require a higher level of reliability from their phone than their computer, and keeping out trojans and buggy apps improves the overall experience.
- Apple is able to maintain a more consistent UI by only allowing apps that conform to certain standards.
- Some apps need to be kept out for legal reasons (BitTorrent) or to make parents more comfortable giving a device to their kids (porn).
I don't mind a review process inherently, but Apple has mismanaged the whole thing in about every conceivable way. If I had my druthers, all apps would be instantly approved, with malware/etc yanked remotely as needed. Failing that, a community review process might also work well.
I appreciate that you're devil's advocating it, and I'm still personally undecided on what direction Apple should be taking, but I'll just point out that all of those aspects could also be applied to OS X:
- Reliability is still important on your desktop, and, though a mobile platform is more constrained by processing limits, it's up to the developer to respect those constraints. You don't get carte blanche to load forty terabyte files on a desktop app; you realize that your success depends on your ability to deliver a reliable app.
- Apple's HIG is actually pretty well-applied on OS X; from a strictly UI point of view I don't think they need to mandate you follow their stringent guidelines. Besides which, after the year or so of the AppStore in play, people have a good idea of what an "iPhone app" should look and feel like, which helps reinforce this.
- You can load up all kinds of filth, theoretically, on OS X. It happens. But it's not a big deal.
That said, I probably agree with your final point. I suspect Apple's throwing around a lot of solutions to the "AppStore problem", but since Apple tends never to leak anything until release, it's frustrating to be in the dark in the meantime.
I give them a lot of leeway because of this principle. But there's a lot of low-hanging fruit they've failed to grab:
- No way for small bug fixes to jump the queue.
- No way to pre-screen app concepts, so that the developer can get a rejection notice before doing the work.
- AFAIK, future releases are not routed through the same reviewer as previous versions, resulting in nonsensical rejections for previously existing characteristics.
- Again, AFAIK: No second pass for rejected apps, with an eye to the P.R. impact of the decision. I'm all for employee empowerment, but anecdotally, reviewers seem to make a lot of arbitrary decisions which the company backs with little examination.
- No feedback mechanism on your place in line. The wait would be a lot of more tolerable if I knew I knew how many days or weeks it should take, on average.
Simply put, Apple hasn't made developer relations a high priority, which is unfortunate; failure to do so in the 80s and 90s is part of what kept Macs in single-digit market share. iPhone may be king of the market now, but pissing off devs is not a good way to stay there.
I guess most people here don't write iPhone apps. Here's to clear things up where I can:
- No way for small bug fixes to jump the queue.
There is, you can get them in within a few days. Not immediate, but it helps a lot.
- AFAIK, future releases are not routed through the same reviewer as previous versions, resulting in nonsensical rejections for previously existing characteristics.
Not the same reviewer. But just speaking in general, this is also a positive point: if an app should really be rejected, but wasn't due to a lapse by a certain reviewer, it can still be rejected by another reviewer in another version. Makes sense. (well, you can say just skip the review process totally or enforce some way to make every reviewer have the same standard, but we know the world's not perfect, and we make do with what we have).
- No feedback mechanism on your place in line. The wait would be a lot of more tolerable if I knew I knew how many days or weeks it should take, on average.
Actually it's been months since they started showing the average number of days X% of updates wait (~2 weeks for ~98% so far).
And for the past few weeks, they have started showing the status for each update posted. ie. pending review, reviewing, rejected, etc.
- Simply put, Apple hasn't made developer relations a high priority, which is unfortunate; failure to do so in the 80s and 90s is part of what kept Macs in single-digit market share. iPhone may be king of the market now, but pissing off devs is not a good way to stay there.
This isn't right. Apple has handled developer relations very well for OS X app developers. From the outside, it almost looks like iPhone dev relations is handled by an entirely different group of people.
But you reinforced lukifer's point instead of rebutting it. In the 80s and 90s (pre-OS X), Macs had crappy market share, and when they improved them (OS X timeframe), you saw much more developer interest.
The current review process offers nothing at all. Nothing.
If there had been a streamlined review process, and there should be, it'd need to be automated, running the program through a test to see if private APIs were being used or traces remained in the background, which is stuff Apple should really check about.
There is very much a review process for software sold on store.apple.com, as evidenced by the fact that there's a lot of software not sold there.
The problem is there is no outlet for rejected software, but I don't think you are any more entitled to sell via the App Store than you are to demand that your product be sold in Apple Stores.
Why is there a review process at all? There's no review process for OS X
Um, you can bet there will be a "review process" if you approach Apple and ask them to distribute your OS X application.
There are few if any parallels between independent PC/Mac distribution and iPhone distribution. A better comparison would be with game consoles, where each manufacturer has a strict list of requirements before they'll give you a distribution key. In that light, Apple's policies are downright liberal.
As far as I know, Apple has yet to sue anyone for jailbreaking an iPhone, or for publishing information on how to do so. So it's not correct to say you don't have a choice of distribution channels.
I'm mostly playing devil's advocate here, because I agree that as long as a device is marketed as a general-purpose computing platform, it needs to be open to succeed in the long term. Still, Apple is under no obligation to distribute anything and everything that people throw at them.
The App Store is evolving constantly, as far as I can tell. It's improving over time, and not just in small ways. They have made huge improvements. But, as with any evolving ecosystem, it will always be broken. This is not strictly a bad thing; it's just the nature of evolving systems that they are always finding new states of equilibrium.
What they are doing is not easy. And the results so far are amazing. There is the odd horror story, but overall it's pretty good, and getting better.
Personally I would prefer an open system. But for a closed system they are doing it pretty well.
But, as with any evolving ecosystem, it will always be broken. This is not strictly a bad thing; it's just the nature of evolving systems that they are always finding new states of equilibrium
So evolving systems can never be broken or bad? And even though the AppStore is not an ecosystem but rather a hierarchical social system, it should be mentioned that the equilibrium state of some ecosystems is death :-)
I've had similar things happen to me (not quite this egregious, but still pretty bad). I haven't been shipping updates for some of my existing apps because Apple won't let me keep existing functionality.
Considering doing Android ports, but there's not (yet) enough money in it, and the software stack is quite a bit crappier IMHO.
I find it interesting that Apple's problems with the review process seems to be hurting them the most by leaving developers hanging and having nothing better to do than port their apps to another platform.
I haven't been shipping updates for some of my existing apps because Apple won't let me keep existing functionality.
This happened to a product I was working with, as well (albeit with trivial functionality we had no trouble taking out). The logic is extremely silly, indeed.
I don't see a way to improve this situation. However I can draw a parallel with console market. In order to publish a game for a console, there is bar to entry on SDK price alone and then there is an approval process. If approval process is relaxed, there is a "Seal of quality" attached from the console manufacturer for good content, and people are somewhat educated to look out for that kind of content.
Apple couldn't charge for SDK at this stage, and if they did it would have to be something like XNA Creators Club. They could streamline/relax approval process and introduce Seal of quality type of content approval where applications longing for that status would go through a more rigorous process. Kind of like Microsoft has for Windows applications (I forgot the naming for those kind of apps).
Does anyone know if large developers get any sort of special treatment with submissions? It's hard to imagine that they'd make EA or Disney wait 14+ days in between app submissions.
Yes -- Apple makes direct review contacts available to larger companies, permits them to break certain portions of the SDK agreement, and provides assistance and status information while navigating the (much more friendly) review process.
They also provide leg-ups by negotiating feature of their applications, etc.
Maybe a bunch of the smaller app developers need to get together and form a large umbrella organization (that they are all share holders in) to get the better treatment.
How could they not? Apple created a completely opaque submission system on purpose; in order to retain full control over what goes into the store.
I think not only do large companies get a much faster and simpler submission process, but I also believe the current landscape of the entire app store has an impact on your submission. If 1000 action games just got submitted and that part of the store is currently saturated, I am positive Apple will hold back any more action game submissions for a while and possibly even reject perfectly valid submissions.
After all, Apple is making money off these apps too, they have a vested interested in maximizing what goes into the store.
I was wondering about that yesterday when chatting in the Facebook iPhone app. I remember that there was a story about an app being rejected being the chat bubbles used in it looked too similar to the ones existing in the SMS/MMS app from Apple (basically the iChat look).
However, the bubbles used by the Facebook app are exactly the same as the one in SMS/iChat.
Maybe it passed through the review process by mistake, but you have to wonder…
People, it's not that difficult. You do not include Apple icons, Apple, logos, screen shots (edit: or pictures) of Apple products, Apple trademarks, other trademarks... OK, it sounds like a long list, but it's really not that bad.
You can blame Apple, but part of the blame also has to go to trademark law, which requires them to do this in order to protect their valuable trademarks. Yes, there are other issues besides trademark issues for which the App Store rejects things, but it's amazing how many stories about this boil down to someone not having read the Apple guidelines, or having read them but not believed them.
Edit 2: I've read the RA "refutation" of Lamarche, and it is close to delusional with its implication that a screen shot could not be considered a trademark infringement. The matter is totally open to interpretation, but that is not the point. The important thing is that any company, including Apple, is required to take the strict interpretation if they want to do the best job of protecting their trademarks under the law.
By that logic then all VNC clients and webviews are in violation. I can use a VNC client to connect to my Mac, see the screen including Dock with Safari and other Apple icons. Any webview is capable of pulling over the network apple.com which contains a plethora of Apple icons, logos, screenshots and pictures of products.
That's an interesting take on it. VNC, maybe, especially if it's sold by using screen shots that show the Apple desktop. Web browser / webview, even Apple probably wouldn't push it that far, although when you're hiring low wage workers to review essentially the entire potential universe of content, there are bound to be some overzealous interpretations.
If Apple has no intentions of changing the App Store model and will retain control indefinitely I think they need to monazite the App Store approval process to prioritize their resource and weed out some of the frivolous apps that clog up the que. There should be an option for a full level of support including an account manager who can intermediate disputes and work with developers throughout the whole process closely on approval issues and future maintenance releases. It would be good to offer a lower tier of support for indie/hobby developers for a much smaller premium. Something on a per app basis that would allow them to cut ahead of the pack.
The public API they are referring to is a Mac OS X API. They assert that it is alright to transfer the image provided by that API to another device and display it there. This may or may not be the case but in my opinion, the argument could be a non sequitur. Just because one system provides you the means of getting a certain bitmap does not automatically entitle you to use that bitmap somewhere else.
It's silly that Apple accepted it before and refuses the bug-fix release. And RA is right to be mad at them for that. However, for me the "it's a public API on the Mac so we are allowed to use the bitmap returned by that function on the iphone" -argument does not hold.
However, NSImageNameComputer, which Rogue Amoeba uses, doesn't have "you can use in your applications":
Images representing Finder items.
Though, it has the following text:
You should use these images to reflect specific elements of the Mac OS X environment. For example, you might use the burnable folder icon if your software allows the user to organize content for burning onto an optical disk. The appearance of images can change between releases. If you use an image for its intended purpose (and not because of how it looks), your code should look correct from release to release.
Does Rogue Amoeba use these images to reflect specific elements of the Mac OS X environment? I guess so.
"Does Rogue Amoeba use these images to reflect specific elements of the Mac OS X environment? I guess so."
I would agree they do, but them they don't do it in the Mac OS X environment but using it on the iphone... (Apple managed to create such a seamless integration of the environments that even seasoned developers are getting confused)
It feels very silly to argue about user experience matters like they were laws - but that seems to be where those lawyers are getting us :(
What if they took (or bought) a photograph of an imac etc. by themselves (maybe remove the apple logo as is normally done in stock photography in order not to infringe on trademarks) wouldn't that have been the most customer serving move on RA's part?
Thanks for finding this. I think the issue is that this doc is for the Mac API. So it's fine to show these images on the application running on the Mac but that's it, not on the iPhone app. (at least, I imagine that's Apple's point)
I would agree. At first, I was completely behind their point, but where there might be a gray area is that, as you said, the Mac OS X API function gives an image to the application running on the Mac. Then, I can only assume that Airfoil for Mac is sending the image to the iPhone app, basically making a copy of it and sending it over the air.
This copy is probably unauthorized as regard to copyright.
That being said, I'm not saying that it's right, and the question of VNC clients is relevant as well.
You'd be making a copy just by calling the function, another by displaying it. Ephemeral copies are legio in software and though people have tried I don't think anyone has ruled that those copies are infringing. It's like saying that when you play a CD you are making a copy into the air pressure pattern and thus playing a CD would be infringement.
People are releasing updates constantly just to get to the top of the list for new releases. Once you install apps you're constantly bombarded with updates that seemingly change or fix nothing. (because they don't, it's a marketing ploy) There's apparently no way to filter different languages out so I have to hunt through a list of apps with titles in languages. Apps have compatibility problems. The Market is littered with non-sense like "pre-CupCake edition" "Eclair edition" and "DOES NOT WORK WITH insert handset name here" Some apps just crash on startup. Some apps don't support virtual keyboards. I downloaded a random system monitor app that said every possible value like RAM/CPU was NULL. Compatibility is a problem. Some apps install services that cause other apps to work differently. For example I installed some random file manager that caused the photo app to take an extremely long time to startup. Removed it and all was well again.
There's no real easy way to UNINSTALL apps. You have to go to a list that includes everything including system components like com.something.blah.something. The Market doesn't support screenshots? or developers simply don't upload them? App naming is very inconsistent. One app might be AMAZING APP, another might be Amazing App, another might be Amazing App 1.0 Pre-Cupcake. Makes your program list a bit difficult to navigate. Apps can pollute your application list. I have something called UIServer-something or another in my programs list -- when I run it nothing happens. No clue what it is but it sounds important so I don't really want to remove it either.
So yeah... the grass isn't always greener. It's shaping up to be another Mac vs. PC thing where you can probably do more exotic things on the PC (Android in this case) but you pay a price for it with added complexity. The iPhone will offer a more seamless experience but you have to play by Apple's rules.
my guess is that once their library of apps is a bit more useful and full, they'll apply their search method to it. this will essentially give you the relevant apps when you look for something.
The other point here is that Rogue Amoeba's frustration and ultimate response was exacerbated by the process, not just the result. The process was marred by vague, unresponsive communication, insanely long wait times, and inconsistency.
If this whole back and forth between RA and Apple had taken a week instead of almost 4 months, their response probably would have been very different. They probably wouldn't have left the platform. The process is broken, and it makes things worse for both developers and users.
From a pure business perspective, who is losing out here?
I mean, a web developer may hate IE, but what would be the outcome if he designs the site as firefox/safari alone. or a software developer for that matter with windows.
If the project is a hobby, sure. anything and everything goes. But what about the business perspective?
There's another path that information takes. Even if web developers still supported IE, they knew about better browsers and used them. Since most IT people are also doing computer support for their family and are considered more skilled by friends, alternative browsers found their way to "normal" people. Remember that there was almost no marketing from Mozilla (at least in Europe) before Firefox came out... and somehow they got to the current position. I converted a couple of friends and one company myself.
I read a lot of stories like this one and I'm sure I will buy a different phone. People I meet may notice and hopefully I will convince them to look at alternatives too. There is some real influence that comes from geeks and developers - even if it starts small :)
Blackberry is the #1 smartphone, yet the app ecosystem there is pretty dismal. Clearly there is another dynamic at work there, and pure installed base isn't as compelling a factor as it seems. One reason could be that the Blackberry platform is absolutely horrible to develop on.
It's horrible because the platform views the web as an afterthought, so there are no modern APIs for dealing with it. The Java version is ancient as well, and you have ridiculously small system limitations, like number of open files and such. I could go on, it's so bad it's almost comical.
This is why there isn't a really healthy app ecosystem, only people who are paid enough by their employers to offset the pain develop apps, or people just pay Blackberry itself to develop something for them.
A year ago engineers and corporates around the world made sure they have an iPhone app no matter the expense, and now everyone start to abandon the idea.
I can see Apple's point about not wanting anyone else to infringe on their trademarks and representing their application like anything officially from Apple. I can see that. That is one hundred percent reasonable.
However when Apple demands that you explicitly write code in your software to detect if any bits or bytes you push to the iPhone screen originates from Apple somewhere and block that, that is something completely different.
If that is the line they require people to follow, the following is a list of applications I can see requiring rewriting to follow the guidelines: VNC, Web-browsers, picture viewers, feed-readers, audio players displaying artwork. Basically any application displaying anything from any network source, maybe even local sources. Heck, any application displaying any bitmaps at all.
If Apple indeed thinks this is a reasonable line of thought and expect everyone to follow it, they should provide a public API to ease the burdons of the developers. They could make a function like NSContainsAppleTrademarkedComponents and require all applications to use that.
To really make things easier, they could redo some parts of the API, like making a NSShowBitmapAppleOnly function which actually displays a bitmap, and a function available to the general public called NSShowBitmap which automatically invoked and checked via NSContainsAppleTrademarkedComponents.
Somehow I suspect that Apple understands that this is an impossible task, a stupid thing to check for, and that they will in no way be willing to write the code to make this happen, no matter the size of the company and resources they have available.
Yet somehow they expect any small developer to do this.
Apple is definitely the worst control freak out there, restricting absolutely anything they can restrict, and yet people still say Microsoft, with their relatively open and reasonably well documented AIPs (there are horrible exceptions and yes I know), that with all this evidence to the contrary that Microsoft is the bad guys.
I just don't get it. I don't own an Apple computer, just an iPhone, so maybe I lack the essential hardware required for absolute self delusion.
If the way of Apple is the way of the future, I don't want a part of it. When I develop stuff, for a mobile platform or not, you can be sure Apple won't be on the list of supported platforms.
I have had two apps get randomly rejected for things that had existed for several versions. I blogged about this a bit: http://www.gaiagps.com/news/article/Update%20on%20Gaia%20GPS...
This is just bad for everyone involved. Apple could just say "fix it next time or we will reject you" rather than throwing a wrench into my operations.
Oh well... I'm going to keep developing iPhone apps and hope things improve.