Choosing the Right Mobile Application Development Platform

Insights

The breakout launch of the Apple iPhone heralded a new era of popular mobile computing. With the launch of Android, mobile phones came to be dominated by software platforms, and the pervasion of networked smart phones and tablets in our society is now almost complete. Apple, Google and Microsoft vie for our imaginations with diminishing innovation to differentiate them, so that the choice of mobile platform is now as electable as one’s politics or football team.

So how do you choose the right platform for your business when much of the complexity is hidden from view? For those embarking on a mobile development, I’ll explore the immediate question of which (if not all) to target, and what might be the most effective way to do so.

On portability

Mobility aside, competing software is nothing new. From desktop operating systems to databases, the question of which software to adopt or support is open and ongoing for software buyers and sellers. With the high cost of technology, it is desirable to have software that can be interchanged, as the commercial environment changes over time. We feel this when switching to the latest iPhone or Galaxy, and expecting our applications to just work, and work as seamlessly as the device allows.

On independence

But portability comes at a cost, since each platform supports a unique development ecosystem. Developing a portable application at its simplest means duplicating the same functionality in distinct codebases for each platform. Third-party mobile application development platforms aim to reduce the effort of maintaining distinct codebases for each platform, by introducing a common abstraction or container, over or into which a single application can be placed.

Each approach introduces an incremental trade-off in user experience and performance, since abstractions add complexity, feature lag and often additional software licensing costs. The following table outlines the key benefits and costs of alternative mobile development options, which should be considered according to:

  • the immediacy and fluency of user experience required,
  • the number of platforms required for deployment, and
  • the amount of development budget available.

On abstraction and complexity

Software problems are often essentially complex, and though abstraction can be useful for simplifying code to more easily solve those problems, that essential complexity remains. Each mobile development approach will have merits and drawbacks, depending on the context and the problem your software aims to solve.

Author Details

Craig Parravicini
Principal Consultant & Solution Architect – Craig is a Principal Consultant and technologist with 20 years experience delivering complex information systems. An innovative problem solver with a gift for the big-picture, Craig applies his deep understanding of systems architecture, to integrate current technologies and emerging trends. Craig is also passionate about continuous improvement and evidence-based best practices.

You might be interested in these related insights