Rewriting an internal hybrid mobile app as a native app
The brokerage for which I work (8z Real Estate), recently released version 2.0 of an internal mobile application. This mobile app, for the Android and iOS platforms, helps agents create listing based micro content quickly by ‘checking in’ at listings. The micro content includes an image, a location, structured rating data and an free form short comment. The checkin app idea has been through a few incarnations:
- A quick and dirty PhoneGap (aka Apache Cordova) application created at an internal hackathon. This posted to a Google spreadsheet and required a manual process to post checkins to the web.
- A full featured 1.0 PhoneGap application written by an CS student who was interning with us. This app stored data Kinvey, and was auto posted to a CMS.
- The current incarnation: a native 2.0 application that was pretty much a straight feature port, but posts to a message queue in the cloud (for text) and Amazon S3 for images. This also auto posts to a CMS.
Why did we go with a native mobile application for the 2.0 version? There were a number of reasons:
- The UI of native apps is just better. HTML5/PhoneGap apps can be beautiful, but it takes a lot of work. We were working with an HTML mockup designed for a different app, and modifying it, and beautiful HTML and CSS were not the dev team’s strong suit.
- Support for syncing content, especially images, across low bandwidth cell networks, was problematic with the 1.0 version. Native code is more capable.
- There were some phone model specific persistent bugs (the Samsung Galaxy s3 in particular was problematic) that we were unable to resolve.
- We had some issues with the PhoneGap Kinvey library (we weren’t using Kinvey in a typical manner).
- Finally, we were able to outsource our development effort cost effectively. It would have been hard to develop both Android and iOS skills inhouse, and cost prohibitive to hire FTEs.
PhoneGap is a fantastic way to prototype and get version 1.0 of a mobile app out the door, especially if, like 8z, all you have in house is webdev talent. But native apps can be the right answer. There are a number of companies out there that build native iOS and Android apps, and if you have a working prototype, the risk is low. You’ll still need to do QA and project management, but engineering resources can be freed up. If you want to take your application to the next level, the vagaries of mobile devices and the difficulty of making a PhoneGap app act and look native, especially if you are resource constrained, consider a native app (or, if you don’t need native capabilities, strongly consider the mobile web).
Jarad HullPosted at 08:17h, 03 July
Dan, I enjoyed your article. We’ve built version 1.0 of our app using Titanium app builder, and found the the conversion from IOS to Android was to big of a hurdle. I’ve been looking at http://www.appgyver.com/ and wonder if this is an option you considered but decided not to go with and why not?