January 2007, the iPhone was announced, ten months later Android debuted their first version along with an early version of the Google Play store. In another ten months the iPhone 3G would come bundled with the Apple App Store app. Within less than a year these two app stores would create an entirely new avenue for developers to easily distribute their own applications to users around the world. In order to maximize user retention, organizations need to create a unified experience across both app stores. The success of the project could be determined by which strategy they take.
Choosing a Platform
Developing a mobile experience that will captivate users is the goal and the first decision to be made is -which platform to build your app with. The platform you choose could affect the cost of the project, the amount of time needed, and the limits of what the application is capable of doing. Today the four main platform categories are:
Native
- A separate application is built for each mobile operating system using native languages and tools
- No shared code
- Can require separate development teams for each operating system targeted
- Allows for complete control over the look and feel and access to any device features
- The Firefox app is written as a native iOS app
Cross-platform
- A single application is built using a single programming language
- Most code can be shared between each mobile operating system
- Able to access most if not all of the functionality that a native application can
- The Instagram and UPS apps are built using cross-platform technology
Hybrid
- Hybrid apps are built like a website, using HTML, CSS, and JavaScript
- Most code can be shared between each mobile operating system
- Accessing native features requires writing code in the native language if an existing plugin is not already available which can be time-consuming
- The Facebook app was developed as a hybrid application until recently
Web
- Should have mobile-first designs, allowing them to look good on small devices and desktops
- Most code can be shared between each mobile operating system
- Allow for the largest reach of any other option since they can run on any existing device and any device in the future
- Lack the native look and feel that native apps have, do not have access to all device features and are not an option if offline access is a requirement
Companies today have a number of different channels that they use to reach consumers, a similar approach should be taken when designing a mobile app. It may make sense to use a different platform for each app depending on the requirements and the deadlines. Other considerations are:
Target Audience
Internal applications for a company’s employees may favor utility and quick turnaround over a rich user experience. At the other end of the spectrum a company’s main user-facing mobile app may require a very native look and feel with complex animations and access to native device hardware. If the emphasis is on utility and quickly getting an application into production, a web or hybrid approach will usually be the fastest option with cross-platform coming in third.
Budget and Timeline
Native applications will always be the most expensive and time-consuming option when targeting multiple operating systems, requiring one language or even one development team for your iOS application and another for your Android application. Cross-platform solutions can greatly reduce this cost by only requiring a single language for both iOS and Android applications. Web and hybrid apps are usually the fastest and least expensive options.
Development Team Skills
Your development teams existing skillset could play a role in deciding which platform to choose. If you have a team with strong JavaScript development skills, then a native application may not be the best option.
Platforms of the Future
New platforms are always being created for the web and for mobile apps, promising better performance and supporting more platforms. The mobile app landscape will look drastically different 10 years from now. One new platform that could alter mobile development is Web Assembly. Web Assembly, also known as wasm, is a low-level language similar to assembly that can run in modern web browsers. Because it is a low-level language it can reach speeds similar to a native application. What makes this platform so promising is that it can interpret instructions from almost any language and run them on the web. This could turn cross-platform development on its head, instead of forcing a development team to write their apps using a single language, that team could create an application in any language they want. Web Assembly is still very new but is already being used in some extremely innovative ways and is something to watch for in the next few years.
Conclusion
A company’s mobile development strategy should be almost as varied as the number of channels it uses to reach consumers. An application’s requirements, its target audience, and the company’s development strengths should all be factors when deciding on a platform to use. Native applications can deliver the richest user experience but require the most time and money. Cross-platform applications save time and money while still achieving the same or a similar user experience to native. Hybrid apps are able to be developed in much less time and are great for situations where there are few native device functionality requirements. Finally, the web offers the greatest reach of any other option but has strict limits on accessing native device functionality and achieving a native look and feel.