In this series of 3 articles I will explain the reasons behind our decision, cover prerequisites, present iOS dev’s toolkit, and discuss some dilemmas that iOS newcomers can face. As I spent most of my time working in the JVM environment, you will find comparisons and references to Java programming language along the way.
Why the native appWhy would you like to write pure native app in the Objective-C when there are so many cross-platform frameworks around? You could:
- write app in HTML using PhoneGap with HTML/JS framework on top of jQueryMobile, Kendo UI, PhoneJS
- write in your favorite language using wrapper platform- Titanium (JS), RubyMotion (Ruby), Xamarin (C#), RoboVM (Java)
- speed - lack of additional layer over the core API guarantees best responsiveness possible. Based on our experience we know that HTML apps can be a bit sluggish sometimes when it comes to navigation and rendering tables (note that wrapper platforms mentioned above may provide performance comparable to native).
- full API access - our app required access to native API’s like low-level camera functionality and contacts book. Using additional platforms you need to rely on the vendor to provide the wrapper/plugin for the API that you need (or code it yourself in Objective-C).
- native look and full customization- using native widgets guarantees the biggest flexibility in implementing custom design.
- system upgrades - Apple delivers preview releases of every new version of iOS system. Using native stack you can start testing and upgrading your app right away without having to rely on external vendors to catch-up with the changes.