Despite previously focusing exclusively on delivering natively written mobile applications at Nudge, the maturity and increase in popularity of cross-platform development tools has seen us embrace the latter as a viable tool for delivering high quality mobile experiences. PhoneGap specifically is a tool that we’ve spent a lot of time with recently and whilst the promise from the outset of ‘write once, deploy everywhere’ is predictably too good to be true, it comes admirably close to achieving this goal.
The obvious advantage of this ability to reuse an underlying core codebase across multiple platforms is a quicker development cycle when compared to the process of porting an application to a number of different languages. It also enables web developers to use a set of tools they are familiar with by trade (as opposed to native language such as Objective-C and IDE’s such as Xcode where this might not be the case) to deliver mobile experiences that can be distributed through iTunes, Google Play etc.
The two biggest drawbacks are the lack of availability to certain native features and the homogenization of your app across the platforms you deploy to. Whilst the former point is mitigated by the flexible ‘plugin’ system that offers out-of-the-box access to common features such as camera capture and geolocation, there is a limit to a platforms functionality you can tap into without writing native code and a wrapper to interface with the rest of the web-based content. Additionally, whilst an application functioning and appearing the same on all platforms might sound like desirable behaviour, people expect applications on their chosen device to behave in a certain way and a number of UX considerations and flourishes present in a natively written application won’t be able to be replicated in a cross-platform one.
Despite PhoneGap being robust and very well documented, the unavoidable existence of platform and device-specific quirks results in the initial promise of ‘write once, deploy everywhere’ being closer to ‘write once, deploy everywhere, fix everything’. The extent to which these device-specific quirks can potentially effect the application experience can go a long way to deciding whether a cross-platform solution is favoured over a native one. In summary, PhoneGap is a highly flexible tool that gives us additional options when planning and executing a project and one that I would recommend to anyone looking into cross-platform mobile development.