I can assure you that the process of iteration is horrible on iOS. It's awful to be in the situation having a team that is able to learn fast and develop improvements within days, but then having to wait a 7 day cycle for every new improvement or test. Plus from time to time Apple will just reject you - last weekend our update (a bug fix update!) was rejected because of a method name we were carrying for months. This is really not helping anybody, neither app developers nor users.
What's also particularly frustrating is that you have to wait 5-10 days after each one of these rejections (and there could be multiple before you finally get a revision live). So we're finding that for minor feature additions that on other platforms we build, ship, and tweak all within a 24 hour period, on iOS that iteration cycle is extended from hours to weeks (if the feature is even approved, which sometimes it is not). This consistently makes for a poorer experience on iOS than on any other platform.
Apple should just make everyone's lives a lot easier (including their own) if they took the innocent until proven guilty approach that Google takes, rather than the guilty until proven innocent stance they currently abide by.
Then once you're rolling, the amount of red tape involved in testing, releasing, updating etc really is shocking.
I've been doing iOS dev for seven years, and have launched dozens of apps for organizations large and small, many of which had Android versions too.
I have no idea what you're talking about here.
Yes, you have to submit updates for approval, but it's quick and easy, and I can count on one hand the number of rejections I've ever gotten, all of which were easily fixed. 95% of my updates are approved in 1-2 days.
On the testing side, TestFlight and other tools make testing pretty quick and easy.
So what is the "bureaucracy" you're talking about?
The biggest issues with iOS are the 30% cut Apple takes, and discoverability on the store. The dev experience is actually pretty good, and the user experience is much better than Android.
Apple's balance here is FAR superior to Android's.
I’m a primarily backend dev who works on mobile apps sometimes, and I strongly agree. It’s a truly terrible and frustrating piece of software. It tries to do way too many things, and does them all poorly.
Even doing something as simple as upgrading Xcode via the App Store is painful, often progressing insanely slowly and taking hours or even tens of hours on an otherwise fast connection. It has been like this for years and years and Apple has done nothing to fix it, like most Xcode issues.
I agree. There really is nothing more frustrating than spending months working on an app, to get it either rejected on some really minor issue or have to go back and forth with Apple for weeks explaining how things work from a customer and business perspective, constantly on tenterhooks as to whether they will give it the OK nod.
Then you go through the same thing each time you push an update, even for a minor bugfix like amending some foreign language strings, get a different reviewer who hasn't read the case notes (I'm guessing these must exist) and decides to do a deep-dive, or maybe a quick rubberstamp in a matter of hours. It seems like a total lottery from my experience. Maybe they just suddenly added a new clause that requires something being done differently and you aren't up on the latest app store guidelines... It really is so frustrating from a developers mental health perspective.
FYI, Apple has been super-fast recently in approving updates. My last two updates were both approved the following day, and the last app I submitted took four days to approve. I think the review process should be abolished, but they are making it better at least.
And I agree with other posters - this screw-up is mostly the developer's fault. Even if he's not savvy enough to do automated testing, if he played his own game, then he would have caught the bug while the app was sitting in review.
As a professional iPhone developer with a multiple top ranking apps, that shit just doesn't really happen anymore. You're much more likely to get a call from Apple with suggestions on what to edit.
The horror stories are from 6-9 months ago, and are outdated. So, while folks trot them out in threads like this as examples of how terrible iPhone development is, actual iPhone developers know that it doesn't really come up.
Our last two updates were accepted within 24 hours, for instance. Our last new application took three submits, due to issues on our end- every email from them was helpful, and actually IMPROVED the final application. Turnaround was 48 hours, and, on the last submission, they expedited to same-day when I asked them to.
I sympathize; this sort of thing is very frustrating. However, it's better than it was. I was working on iOS apps 7-8 years ago and it was just like the story above, but each review took 2-3 weeks.
Yeah just because it's labor intensive doesn't mean it's good.
Im sure both App stores have lot of automated tests. But I've submitted a lot of apps and the feedback from Apple is much more specific and from humans.
I agree it's very annoying, often complaining about things that are explained in submission notes.
But if I submit and do around 5-10 updates per year that seems highly unlikely it covers their salary cost.
Google is just as bad at this and have many of the same issues of too many things being built at the same time. Googlers often lament that fixing bugs is never a priority to new features which is pretty much Apple as well. Perhaps too much complex technology is hard to do.
I work for a non-tech similarly big company that uses a lot of software (that we make ourselves as well as integrating vendors) and our processes and quality are even worse than Apple and Google.
But as an iOS dev I would happy if at least Xcode was built and tested properly...
I encountered a few unmaintained apps -- again the long tail is long. Some failed in more and more ways with each new iOS version. Forcing developers to update their apps is exactly the issue, really.
The problems on iOS have never been with the market but rather with Apple’s developer tools and store software and the fact that you have to put up with those sub-par experiences in order to publish at all.
It’s quite frustrating when, despite having a great experience developing a game (good APIs, solid technology, etc.), one finds that the entire process for building/releasing/updating the game is horrible and one finds that the App Store is just about the worst imaginable way to expect anyone to find and buy a new product.
When I first published a game, I literally couldn’t find it on the “new improved” App Store after typing in THE APP NAME, and I sure as heck wasn’t going to find it with their absurd browsing interface. To this day, I have been wasting limited space in my search-keyword list to include the app name because I’m not convinced that their search will be able to find it otherwise. There is also absolutely zero useful filtering; why for instance can’t I simply get “things published in the last month” or any of a dozen other very basic searches?
Also, the slow and manual nature of the app build and update tools is insane. Every single update requires unnecessary GUI-based questionnaires in Xcode, and then unnecessary web-based questionnaires in Safari, through an abysmally-slow web interface that for some reason is completely incapable of even finding your Xcode builds for a painfully long period of time after you’ve already uploaded them. It’s been 10 years and there isn’t so much as a terminal command available for scripting; all I want is a "publish_app_update --id=com.something.myapp --yes-for-the-40th-time-my-ad-identifier-did-not-change --yes-my-encryption-did-not-change-dammit filename.app".
Apple charges way too much considering that they are not investing noticeably in many of their most critical tools (or investing less than nothing, if you consider depreciation over time from tools that have been terrible for years).
The lack of automatic app updates is unforgivable, and if they're included with iOS7, it's still too little too late in my opinion. Clicking 30 times to update 30 apps is a bad user experience. Often some of the updates don't start or finish, and the app becomes unusable unless you go to some lengths to fix it.
Then there are also the lengthy approval times for new app version submissions. Having to wait a week or more (and when Apple doesn't misplace your submission in their queue) is outlandish compared to the [more open] Google Play App Store where updates can go live in just a couple of minutes. Apple's walled garden is not fun to develop for. Every step along the way is painful compared to Android.
At SendHub, we have both Android and iOS apps. They are both updated very frequently (usually weekly), and the process for Android is a joy by comparison. If something went wrong with the latest release, it's not too big of a drama to roll it back. With Apple, we've ended up in nightmarish scenarios where something slipped past our QA and went live, and we had to call in special one-time favors to get the bad version rolled back.
The bottom line is that Android, while far from perfect, has a more developer friendly ecosystem which allows devs to do what they're good at: writing code, creating apps, and pushing out updates without a lot of fuss.
Apple keep pushing it incredibly hard, despite it being poorly implemented. The net effect is less thoughtful developers use it because Apple push it.
Eventually it will infect your project because those developers will start pushing it into new features. I regret not being more vocal in my current job about not using it in production and now we have a huge amount of bugs caused by it even between point releases of iOS.
I don't know why this is being downvoted. The situation is more complex than this simple comment, but the sentiment is correct.
The reality is that AppKit has had its ups and downs recently. There are obviously people in Apple trying to do their best to patch things up, and there have been some nice improvements because of their efforts, but some really bad bugs have been introduced, only to sit unfixed for years. It's gotten to the point where I dread the yearly OS updates, not because I dread having to update my code, but because I worry what has broken.
In my experience, if you don't get your bugs filed within the first week after WWDC, they'll never get fixed, and even if you do, it's a toss-up. But testing your existing code isn't always enough. If you're writing new code to take advantage of some of the new OS features, you can be a month into the beta cycle before you find a bug, and by that point, its too late.
This is just how iOS works. Sometimes you have to update your app. If it takes you a month, maybe you get a pass. If it’s been 162 days and you don’t even have a definite answer for whether you’re ever going to fix it, then you just shouldn’t be making apps.
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.
reply