Hybrid Mobile Software Development Is Dead to Me
By Spicer Matthews
Ok, maybe not totally dead, but my views on hybrid mobile software development have changed recently. Since the invention of the iPhone I have used HTML5 hybrid solutions to build mobile apps for both iOS and Android. I started with Phonegap, then moved on to Appcelerator, followed by Ionic. The guiding principle was speed of development—these platforms allowed me to build great apps much faster than I could using Apple or Google’s native platforms. Going forward, speed will continue to be a priority but I am adding a 2 more guiding principles to my decision tree: (a) the ability to develop software for new hardware platforms and (b) the irrelevance of Android.
Why Go Native Now?
Four very big happenings caused me to change course:
- Apple released Swift, a new programing language that replaces Objective-C. I never enjoyed writing code in the awkward syntax of Objective-C, which felt low level (who wants to write header files in 2015?). Swift feels and behaves a lot like the more familiar JavaScript and is more enjoyable to code (which translates to speedier development).
- Apple’s Xcode integrated development environment has really matured over the years, becoming one of my favorite tools for software development. And no hybrid solution can come close to touching the power of the Xcode tools.
- I decided that Android does not matter (to me). The stats suggest that Android is taking over the world, but I have never built an Android app that has gotten a tenth of the attention an iOS app attracts. Time and again Android users have demonstrated less willingness than iOS users to pay for upgrades, and I cannot justify constraining the quality of my iOS apps to support Android users who do not participate in the economics of my software development. Bottom line: a hybrid build-once-deploy-everywhere approach is not tenable. I’m not giving up on Android, but I plan to learn to build native Android apps using Java.
- Apple Watch signaled that the next big wave of technology will be hardware, and I want to be in a position to write apps for it and future devices without having to wait for some third party hybrid vendor to catch up with software development kits, documentation, and changing App Store requirements. Furthermore, I anticipate that core SDKs (such as iOS) will move quickly to support the new hardware.
Hybrid Is not so Bad (Give Credit Where Credit Is Due)
Hybrid platforms have grown by leaps and bounds since the early days, and lots of people are putting in crazy amounts of effort to make hybrid solutions first class options. I am rooting for the hybrid communities and I hope to return to being a hybrid evangelist some day—clearly HTML5 is a great way to support a cross-platform world. Frankly, it saddens me that Apple and Google have not invested more into supporting HTML5 for mobile software development. But if you can’t beat ‘em join ‘em—Apple and Google, you win!
For now I am going native. Get ready for some amazing apps!