Mobile Apps: 2014 in Review

Hi all, I try to write smaller useful posts throughout the year, and one larger post at the end of the year, giving people some insight into how the world of native mobile development is trending from my perspective. I'm not the worlds foremost expert, however I do keep my ear close to the ground and work as a native developer full-time, so perhaps you can glean something from my observations about how 2014 went, and where I see the industry heading.

Apple

It Just Works?

Since I've been working as a native iOS developer for all of 2014, it's only natural to discuss them first. So here are the trends as I saw them:

Basically, 2014 was the year that I began to see a lot of iOS devlopers/fans begin to turn away from Apple. It appears that 2013 was the year of 'peak developer happiness', if i were to give it a name. It is a death by a thousand cuts, and as such it's rather hard to pin down exactly why everyone is so down on Apple lately. If you held a gun to my head and forced me to give a pithy summary, I'd say that it's because people can't say of Apple products that 'It Just Works' anymore.

There's not much point me going over well-trodden ground here, if you want to read more you can see here:

App approval

There's been a lot of commotion in the iOS developer community this year about Apple's App Store approval process, eg the process you go through where Apple vets your app before allowing it to be release on their app store.

Apple has long-held the position on their app review process that if there's a dispute, 'If you run to the press and trash us, it never helps'. So until 2014, you rarely heard a peep from developers complaining publicly (you often heard it privately!) about the app review process, because nobody wanted to talk publicy and thus burn their bridges with Apple. But things changed this year:

In 2014's WWDC, Apple did a demo on how to make apps that took advantage of the new features for the notification center. So a bunch of developers made apps with features similar to the demo, as you'd expect. And one such app did such a great job that Apple featured their app on the app store. However, shortly afterwards, Apple did a 180' turn, removed their app from the store, and started rejecting any apps that allowed interaction with the notification center.

This incensed a bunch of iOS developers, who broke ranks and started talking publicly about their rejections. It turned into a PR disaster for Apple (at least, in the iOS developer bubble), and more developers jumped into the fray and started blogging about their frustrating experiences with app review. Eventually Apple relented and re-approved those apps, however the genie was out of the bottle: people are no longer scared to 'run to the press and trash Apple'. For example:

So developers are now feeling emboldened to talk publicly about app store rejections, it is no longer a taboo topic. This is probably a good thing, as it helps people weigh up the risks when developing borderline apps by reading other's stories.

I believe Apple really needs a developer community spokesperson to start talking to the public about these things, akin to Kiyosaki in their early days. Their silence is deafening, and as they continue to lose goodwill with the iOS developer community, a bit of open, frank communication could go a long way.

Interface Builder / Autolayout

Here's something I harp on about from time to time: Interface builder and Auto Layout. I'll try to keep this short though, as reasonable people hold well-argued opinions both ways here.

We're now up to our third major version of iOS (6, 7, and 8) to use Autolayout, and i'm still not seeing a majority of developers using it. I'm still seeing most people struggle to do basic things in it, such as different layouts for different orientations without kludgey workarounds. I only know a few developers who love it (good for them, though!). I do not consider it a roaring success.

I've heard anecdotally people talking of 50% of developers avoiding IB and AL; I'm seeing Facebook come up with their own replacements for UIKit piece-by-piece (eg AsyncDisplayKit, Pop, etc); Google don't appear to use IB/AL; even Apple only use it in one or two of their apps. The fact that Apple don't use it is particularly damning, given that they had to re-design the UI for most of their apps for iOS 7.

Smart people have good arguments both ways on this one. I'll leave it up to you to decide if you want to do what Apple recommends at WWDC, or whether you want to follow what they/google/facebook actually do in their apps.

Hardware

The iPhone 6 and iPad air are fantastic! Apple's hardware has never been stronger. The retina iMac is incredible to look at too. This is certainly Apple's strong spot: hardware.

Personally, my iPhone 6 bent, however. Apple were quite kind and replaced it. Another friend bent his too, however he simply bent it right back! So perhaps it's accurate to say that apple's hardware is as gorgeous as ever, however still a little quirky. Eg the iphone 4's antenna problem, the iphone 5's undersized battery, and too-easily-bendable iphone 6's.

iPads appear to have started declining in 2014, accoring to the market analysts. And the iPhone 6+ will only accelerate this trend. As our phones get larger, people find less need to get a tablet. In a recent project, I was instructed to simply scale up the iPhone app to the ipad with just enough effort spent to fix the glaring issues. I predict that we'll see less iPad-specific app projects in 2015, as the market moves toward big phones. And as indie developers cannot barely earn a living from iPhone apps, let alone the smaller iPad market, it's a bit of a vicious feedback cycle: Less ipad apps, less reason to buy one. When was the last time you remember a high-profile ipad exclusive app such as Paper or Cook or Storehouse? I think iPads will become more of a niche. If i were you, I wouldn't focus on them in 2015.

Swift

Swift was certainly a suprise when they announced it at WWDC not so long ago! However, it is still looking too immature for medium-to-large projects. Issues such as taking minutes to compile medium-sized projects, Xcode relentlessly crashing, runtime bugs, and the many other frustrations you can read about in the Apple dev forums all rule it out for day-to-day use, and as such all i've seen is people toe-dipping in the new language by using it for small utility classes or maybe one or two view controllers.

I'm hoping that 2015's WWDC Swift release will be rock-solid and we'll all be able to re-approach it and begin to take it seriously. However, i recommend treating it as a beta, and begin learning it, however you'd be advised not to transition your projects over just yet.

Android

Since this post is dragging on, i'll approach Android in bullet form:

  • Google has begun to take design seriously. Seriously, have a look at the transition animations on the Material design spec here, they're gorgeous.
  • Android 5 / Lollipop is very pretty and usable. I'd say it's the first version of Android that i'd be happy to recommend to my parents. I think it has crossed the line that i'm now happy to say 'it's now nice to use'.
  • I'm seeing a lot of talented iOS developers who no longer turn their nose up at Android as it continues improving, especially now that iOS's screen size fragmentation is just as bad as Androids.
  • Their hardware is still really dull. Some of the smaller chinese companies are bringing out elegant android phones, but none of the mainstream ones have tried yet. I predict that in 2015 we'll start seeing beautiful android hardware.
  • I now personally know more indie developers who are able to make money from Android than from iOS. Apple has done nothing to help this in 2014.
  • I think Android is reaching a tipping point where as it improves, design-minded developers will start making apps for it, at which point it'll really become something i'd consider recommending to family as a daily phone.
  • I recently bought an almost-new Moto G for $170, it has Lollipop and it looks great. It really looks like the cheap got good before the good got cheap.
  • Android studio, while it doesn't crash, is awful to use compared to Xcode.
  • In 2015, i'm going to try learn how to make Android apps, and begin to think of myself as a 'native mobile developer' rather than a 'native iOS developer'. I hope to parlay this skill into a managerial position overseeing a mobile team that includes both iOS and Android teams.

Other

  • Windows mobile is going nowhere fast, at least in the Sydney market, unfortunately.
  • Hybrid / web mobile apps have made no ground. Famo.us made a splash, but anecdotally i hear it's just too slow on android to give you the 'write once run anywhere' it's supposed to deliver. I haven't seen many people use it. I rarely hear people arguing about whether to go native or hybrid or web app at project inception these days, that argument appears to be done with.
  • Contracting opportunities, in sydney, are still in healthy supply. I think we've got at the very least a few more years of this. However, as I see people move mobile apps out of project-land and into busines-as-usual-land, I predict we'll see more of the opportunities into permanent employees, and less farmed out to contractors and agencies. This will be a gradual process.

My plans for 2015

My plan for 2015 is to take a leaf out of Scott Hurff's book, and create and sell a video course on the topic of advanced iOS UI development in Swift, covering the following topics:

  • Different layouts for different orientations
  • Developing without IB or AL
  • Custom transitions
  • View controller containment

If you're interested, please subscribe to my mailing list here on my blog, and i'll keep you posted!

I'm also available for hire as of the 26th January when my current contract expires. If you're looking for a good iOS developer in Sydney, get in touch!

Thanks a lot for reading!

Thanks for reading! And if you want to get in touch, I'd love to hear from you: chris.hulbert at gmail.