App Development: Native vs. Cross-Platform

One of first technical choices you’ll make in app development pertains to which mobile operating system (OS) to use, and for developers, whether or not to develop it with native or cross-platform tools. Will your app be available for Android users, iOS users, or both? Your research may make it clear that your target audience has a strong preference for one device type or the other. If not, you can consider other factors like OS market share or OS upgrade adoption rates.

(As a reminder, last month we talked about how important it is to conduct market research prior to embarking on an app development project. It’s critical for success to begin with a clear definition of your value proposition and target customer, as the technical requirements (like OS) for your app should be informed by market needs/desires.)

Selecting a platform is an important decision because the answer influences the development tools used to create your app. iOS and Android apps are written using different programming languages, so an app by default will only run on one platform or the other. In many instances, it makes sense to develop for both platforms. When that’s the case, the discussion often turns to the topic of native vs cross-platform development. We firmly believe this is a topic worth discussing with your app development partner, but we’ll share our experience with you so you have a starting point for consideration.

In native development, you create an app for each device independently, using the language “native” to the device: Java for Android and Objective C or Swift for iOS. Cross-platform development occurs using third party tools that enable developers to use a single programming language (e.g. JavaScript, Ruby, or C#) to create an app that can work “across” device types. Part of the appeal of cross-platform tools is their focus on a limited subset of complete platform features, which can make it relatively easy to get started. Further, the promise of time (and money) savings seems significant – why write code again from scratch when you could write it once, in a language most developers already know, and have it run on multiple platforms?

Unfortunately, after years of experience in both cross-platform and native development, we have not seen the promised benefits of cross-platform tools come to fruition. Here’s why: a significant amount of platform-specific development and testing is always required, especially if the app’s needs don’t perfectly overlap with the capabilities of the cross-platform framework. More often than not, we have found ourselves doing a lot of “tweaking” to the cross-platform code, and those tweaks have regularly turned into developing full blocks of native code. As a result, paying for a cross-platform development tool has rarely led to greater cost-savings or time efficiency.

If you’d like to learn more about native vs cross-platform development, check out Chapter 3 in our book, Inspiring Apps: A Business Perspective on Building Mobile Apps. It’s free in the iBooks store.

iBooks Badge

AmazonKindle Badge