Mobile media usage continues to soar with nearly 70 percent of media being consumed on mobile devices in the U.S., either in the form of browsing mobile websites or accessing mobile applications (apps). Mobile now dominates desktop use, with 79 percent of social media use taking place on mobile devices, including 60 percent of that on smartphone apps. Businesses seeking to capitalize on this trend are faced with the challenge of understanding a diverse and constantly changing mobile ecosystem.
Needless to say, effectively reaching your mobile audience is no longer as simple as selecting your target platform, developing the app and deploying. The rapid changes in device adoption, mobile OS share, and user behavior have significant impact on the mobile development process. In particular, increased emphasis is required during the planning phase of the project. In order to ensure a viable long term mobile strategy is in place, businesses cannot overlook the importance of this part of the mobile lifecycle.
There are many decisions to be made in this phase which can make or break a mobile project. One of the most important decisions to be made is whether to go with a mobile web app, hybrid app, or native app. A brief explanation of these options follows:
- Native App: A native app is developed specifically for a certain mobile platform. Native apps are developed using the programming languages supported by that platform, such as Java for the Android platform and Swift for the iOS platform.
Just as with everything else mobile, the factors one might weigh in this decision are in constant flux. Once upon a time there were very clear distinctions between mobile web and native applications, but the recent surge in hybrid apps is blurring the lines and changing the decision matrix. Some of the more important considerations are explored below.
The device API allows a mobile app to interface with a phone’s hardware and native functionality, such as the camera, push notifications, dashboard widgets, GPS and contacts. Once considered a major advantage for native apps with full device API access, hybrid apps now use native shells to access the full device API. Mobile web apps also have limited native access by using the mobile browser’s device API access capabilities.
One area where native apps have a clear advantage is speed. Native apps, by definition, run at native speed. Hybrid and mobile apps run on top of additional layers which consume computing resources and can therefore decrease the speed of the app. That being said, in most cases there will be no noticeable difference in speed between a native and hybrid app. A well designed mobile web app can also run at relatively fast speeds. A general rule of thumb is that unless you are developing something like a graphics intensive game, speed shouldn’t be a major concern for web or hybrid apps.
Development and Maintenance Cost
The options are more restricted when developing a native app. The programming language is dictated by the target platform, such as Java for Android and Swift for iOS. Cross platform deployments require separate applications to be developed for each platform. Android developers may use their favorite Java IDE and tools, but iOS developers are generally restricted to using the Xcode IDE.
What happens when a mobile user doesn’t have internet access? Native applications will have the clear advantage here, as they can easily store and retrieve data on the physical device. Hybrid applications seek to mimic this behavior, and can function without internet access because they are running in a native shell. When internet access is needed for the app, it can employ aggressive caching and HTML5’s local storage in order to maintain a quality user experience even when users cannot connect to the internet. However, if a development team does not plan and design for these scenarios, a hybrid app is likely to be no better than a web app when data connectivity is lost.
Further blurring the lines between web technologies and mobile technologies are Progressive Web Apps, or PWAs. These applications are accessed through a mobile phone’s browser and can provide a native experience. They provide an engaging user interface and the use of service workers can provide offline access to content. In addition, PWAs can integrate with native functionality, such as the camera, microphone, and device orientation, that has previously been off limits to the browser.
Time to Market and Distribution Method
Hybrid apps seem to have the advantage in distribution methods, as they can be distributed like a mobile web app (i.e., via web browsing) or like a native app (i.e., via app store or direct download). Mobile web and hybrid apps definitely have a time to market advantage over native apps, especially for cross platform deployments. Using a hybrid framework, such as Ionic or PhoneGap, makes for rapid prototyping and development of applications. When time to market and ease of distribution are important, a single code base as a hybrid application has significant benefits.
Making your Selection
The final decision you make will depend heavily on your particular circumstances, but overall there seems to be a growing benefit of going with a hybrid app. This approach is the only way to deliver benefits of both the mobile web and native apps. Your speed to market will be faster, your development and maintenance costs lower, your app will reach a wider audience, and for the vast majority of apps, you will gain these benefits with little to no sacrifice in terms of features and user experience. That being said, if you are trying to develop a complex, graphically demanding game like Angry Birds, you may be better going the native app route.
Finally, consider getting an IT consulting firm involved in the planning process, to ensure critical errors aren’t made during the selection of architecture, tools and delivery methods which could cripple your mobile development project downstream. In addition, they will be able to assist you with shortening your time to market in this new area of your (and your competitor's) IT portfolio.