Jason Russell

Choosing the Right Mobile App Platform

September 1, 2015

A recent IBM study of more than 3,000 CIOs suggested that 75% of respondents feel mobility is a top priority in their business strategy. Over the last four to five years, the debate over choosing a mobile app platform has gone back and forth between native platforms and web apps. And, while there might not be a “silver bullet answer” when choosing a platform, there are smart choices, based on your business needs.

For instance, what kind of problem are you or your client trying to solve? Is this a consumer-facing app? If so, what devices are your customers using? Or are you targeting an internal workforce (contractors, sales folks, etc)? And if it’s an internal workforce, are you providing a specific device?

What type of app is best for your business?

There are all kinds of cross-platform tools available now, from Xamarin to web applications. Each of these tools has pros and cons, although we’d argue that the cons definitely outweigh the pros.

Web apps aren’t really apps at all. It’s a misconception. They are really just websites that have the look and feel of a mobile app. Websites run at a layer above a native application – this extra layer provides a more abstract and often times easier way to do common and simple tasks that an app can do. However, with that layer of abstraction comes a loss of speed, access to the full breadth of a device’s capabilities and control over the finer details of an application. We would also argue that the common and simple things that a website can do are just as easy to accomplish in native applications. Thus, the additional time and cost associated with doing the easy things on multiple native platforms is negligible, but the cost of being stuck on a platform without the speed, wealth of features and control of a native application is incalculable.

In most cases, the difference between a web app and a native app is striking. In fact, you’d be hard pressed to find a web app that performs even remotely as well as a native app. Some of the appeal to building a web app is that it is fairly easy to make updates to products regularly and that web development has a lower learning curve than software development, therefore it is much easier to find people to work on your product.

Hybrid apps are a little bit confusing – they are a combo of both web and native apps. Hybrid apps are native applications that have web-based components running in an embedded browser within the native application. The primary usage of web-based components in a hybrid application is to write the user interface code in HTML5 and JavaScript while leaving the heavy-lifting and device-specific stuff to native code. Thus, some would argue that efficiencies can be made building the same user interface across platforms and diving into the native frameworks when necessary.

We would argue against that for a number of reasons. First, the different mobile platforms have different nuances in how user interfaces are expected to work. A one-size-fits-all approach will look out of place on one or both of the platforms. Additionally, the user interface code is the easy part – there exist amazing developer tools for both iOS and Android (and even Windows!) for efficiently building user interfaces that hook directly into your native code with no need for an intermediate layer. These tools will only become better over time because of the significant investments into them by the teams at Apple, Google and Microsoft. Compare this to hybrid tools built by smaller companies that don’t have the resources to compete with the giant technology companies, and you may very well find yourself locked into a third party hybrid tool vendor that can’t keep up – or worse, can’t stay in business. Finally, some shops recommend a hybrid approach because they have a lot of web developers, but don’t have many native developers. A good shop will recommend the approach that fits your needs, not one that fits their skill set.

Xamarin is an interesting tool because it does build native applications, just in another programming language than typically used by each platform. However, any developer worth their weight would tell you that learning a new programming language – especially languages that fall within the same family like Java, Objective-C, C++ and C# – is a trivial endeavor. The syntax of a programming language is a minor detail; most modern languages have all the same features and capabilities as each other. Learning a platform, on the other hand, is a lifetime’s work. With Xamarin, you still must learn the platforms you intend to deploy to. Additionally, most platforms will take advantage of the pros and cons of the intended programming language for that platform, meaning some tasks have to be awkwardly implemented which creates technical debt over time.

Choosing the right mobile app platform to go-to-market

Mobile-252520Apps-252520Development-252520Platforms-25255B6-25255D

We build both consumer-facing and enterprise (internal) apps at stable/kernel. If you are equipping contractors, field reps or a sales force with tablets, the decision on determining which platform is best will rest largely on the client’s needs, in terms of the devices they choose. For instance, a client may buy 2,000 iPads, making the decision a very easy one. Lots of factors come into play though, including the cost of the devices. Certainly, the cost of development is a concern too, but Android and iOS development are largely similar, as it relates to costs and timelines. Security is something that is also typically a big factor, where iOS may have a slight edge.

While Android controls a whopping 85% of the worldwide market, it still lags considerably in usage per device. Studies have consistently shown that iOS users are far more active than Android users on their devices. Android does reach heavily into the low-end handset market, where users are more concerned with owning a phone “that just works,” picking up an Android phone by default. Android phone manufacturers frequently run deals giving away phones at very low prices or, in some cases, for free. Even fast food giant, Burger King, of all companies, is getting into the act of giving away smartphones. While iOS has more affluent users, recent studies have shown that Android users’ median income levels are increasing too.

Bottom line: If you have to choose one mobile app platform, and your needs are agnostic, we typically recommend looking at the demographics of your intended user base. We do, however, push our clients to deploy on both platforms, if at all possible. And, if the app is a prototype app we would likely recommend Android first, especially since there is no approval process with the Android Store (Google Play); this is definitely a big benefit to Android if you are in a race to market.

While Android users aren’t as active with their devices according to the research, there are more of them. So, this should be a serious consideration when thinking about the types of users you may be targeting. The confluence of these platforms is closer than it has ever been. This makes the case for deploying on both platforms concurrently much more compelling.

Most clients want to deploy native apps, on both iOS and Android. By targeting both platforms you will be, ostensibly, reaching the entire Smartphone market with both platforms. So, assuming budget is not a limiting factor, it makes a lot of sense to tackle iOS and Android together. This will ensure you hit the market at the same time, literally hitting all Smartphone users, which should translate into a better user experience for your customers/workforce.

We’ve had many prospective clients come to us, asking for our expert opinion on which mobile app platform is right for their business model. As said previously, if you are looking to present a working MVP to investors, a hybrid app is most likely going to get you where you need to be. But in that next phase, once you have the funding to architect and build your app in the right way, native will be your best bet. There is no better way to give users their desired app experience while at the same time building an app that can be improved with each iteration.

You want apps that work – beautifully, intelligently and efficiently. To get there, you need a great partner. Whatever your needs – we make it work.

Published September 1, 2015
Jason Russell

Managing Partner at Stable Kernel

Leave a Reply

Your email address will not be published. Required fields are marked *