Types of Mobile Apps
From a user perspective, mobile apps can be categorised as educational, informational, productivity, gaming, entertainment, communication, eCommerce, and so on. This article is more from a developer perspective, the different technologies that power mobile apps.
The earliest apps interfaced directly with the native capabilities of the platform on which they were deployed. This was the case with apps running on Symbian OS. Later when iPhone (2007) and Android (2008) came out, the app ecosystem became fragmented. App developers had to develop separately for iOS and Android.
To solve this problem and reuse code, hybrid apps were invented but they had performance limitations. In the 2010s, cross-platform development because possible by interfacing to native capabilities without sacrificing performance.
Discussion
-
What are the different types of mobile apps? There are three broad types of mobile apps:
- Native: App is developed for a specific platform using the platform's native APIs. It's therefore performant and has full access to device capabilities. The platform's ecosystem, such as an app store, helps in distributing the app. Code cannot be reused for other platforms. Examples are iOS (Swift or Objective-C), Android (Kotlin or Java), Windows Phone (C# .NET).
- Hybrid: App is developed using web technologies but is wrapped inside a native app. Code can be reused across platforms. App can also access native APIs. Examples are Ionic, Sencha Touch.
- Mobile Web: App is developed with web technologies and delivered via a web browser. Typically, these are web apps with responsive design so that they display well on smaller devices as well. Business logic is on the server and only a single codebase needs to be maintained. There's no need to install anything from app stores. Progressive Web Apps (PWA) deliver mobile app-like experience via a web browser.
-
Could you explain how hybrid mobile apps work? The term "hybrid" implies that the app uses a mix of web technologies and native APIs. HTML5, CSS and JS are used so that same code can be reused across platforms. Native APIs are used to get access to camera, geolocation, etc. In the case of Ionic, which is based on Cordova, WebView is used. This is a browser instance that interprets and render the UI. It's wrapped within the app. Cordova takes care of the wrapping and interfacing to the native APIs.
Hybrid apps have to live with the limitations of WebView and therefore performance could suffer. Latest native capabilities may not be available unless platforms such as Ionic keep pace with the changes. To overcome this, platforms such as Appcelerator Titanium (JavaScript), React Native (JavaScript), NativeScript (JavaScript/TypeScript) and Xamarin (C#) take a different approach. App can be written in another language but then compiled or interpreted to call native APIs. Thus, code reuse is possible without sacrificing performance. Such apps may be called "hybrid native apps" or even simply "native apps".
-
What are the metrics by which we should evaluate mobile app platforms? Some metrics include development cost, performance, distribution, monetization, device features and their accessibility, user interface, code portability, and maintenance. For example, native platforms give full access to device features and better performance. Codebase of hybrid apps is easier to maintain at lower cost and can be ported to another platform more easily. Native apps are typically distributed through app stores. Hybrid apps can be distributed directly but they lose the benefits of app store discovery.
You may also want to look at availability, compilation, development environment, programming language/platform and community support. For example, React Native is free but Xamarin is free, subject to terms and conditions of Visual Studio Community Edition. Just-in-time compilation is not possible for iOS on both React Native and Xamarin. React Native and TypeScript are based on JavaScript and therefore easier for web developers. Developers coming from C# and .NET background will find Xamarin easier to adopt. A larger community means that you can find third-party packages and UI components.
-
How should I choose the right platform for my next mobile app? Developers skilled in native platforms are difficult to find and costly. For each platform, you would need a different skill set. If you want your app to reach a broad audience across platforms, then either a mobile web app or hybrid app must be preferred. These allow code reuse across platforms.
If your app involves heavy graphics such as in gaming, requires full access to device capabilities, or full control of the UI, then native apps will offer these. In fact, if your app is targeted at only a specific platform such as iOS, then going native is a sensible approach.
To obtain native performance while also reusing as much of the code as possible across platforms, React Native, NativeScript, Xamarin, etc. can be adopted. What you adopt should depend on the maturity and support of the technology, plus the skill sets available with you. For example, C# and .NET developers can adopt Xamarin while JavaScript developers can adopt React Native or NativeScript.
Milestones
Psion Software is renamed as Symbian Ltd, and its EPOC32 becomes Symbian OS. Symbian OS forms the basis of many UI variants including Series 80, Series 60, UIQ and MOAP. This UI fragmentation makes it difficult to deliver apps across the variants. Symbian programming is via Symbian C++. It's low level and difficult. In 2011, this is replaced with Qt-based development but it comes too late against competition from iOS and Android.
2007
Apple launches the very first iPhone in June 2007. iPhone offers capacitive touchscreen, which is vastly superior to resistive touchscreens of Symbian-based phones. The OS is named iPhone OS. The initial idea is that developers would build web apps that would be rendered on the Safari web browser; but in February 2008, Apple releases the iPhone SDK to enable third-party native apps. In June 2010, iPhone OS is renamed to iOS.
2007
A startup named Nitobi creates PhoneGap, for developing cross-platform hybrid apps. Using only HTML5, CSS and JS, it provides APIs to access native capabilities. Apps created with PhoneGap use WebView. In 2011, Adobe purchases PhoneGap. It also open sources the code via Apache Software Foundation (ASF). The open source variant is called Apache Cordova.
2012
Samsung releases Tizen, an OS that can be used on a wide range of embedded devices including smartphones. The first smartphone to run on Tizen is planned for a 2014 launch in Russia but cancelled due to lack of apps. The first smartphone comes out in India in January 2015, the Samsung Z1. Tizen is based on Linux kernel. Developers can use it to build native apps (C++), web apps (HTML5) or even hybrid apps.
2013
For mobile app development in .NET and C#, Xamarin 2.0 is released. This includes Xamarin Studio, an IDE that integrates well with iOS and Android SDKs for cross-platform mobile app development. The release also allows developers to write native iOS apps in Visual Studio using C#. Xamarin as a company dates from May 2011.
References
- AppFutura. 2018. "What every app developer must know about Tizen OS." AppFutura, January 8. Accessed 2018-06-12.
- Cabot Technology Solutions. 2018. "Xamarin vs React Native: A Comparison Study." Cabot Solutions Blog, March 27. Accessed 2018-06-12.
- Callaham, John. 2018. "The history of Android OS: its name, origin and more." Android Authority, March 26. Accessed 2018-06-12.
- Chauhan, Shailendra. 2017. "Xamarin Apps vs. Native Apps vs. Hybrid Apps." DotNetTricks, February 16. Accessed 2018-06-12.
- Friedman, Nat. 2013. "Announcing Xamarin 2.0." Xamarin Blog, February 20. Accessed 2018-06-12.
- Gadyatskaya, Olga, Fabio Massacci, and Zhauniarovich Yury. 2014. "Security in the Firefox OS and Tizen Mobile Platforms." Computer, vol. 47, no. 6, pp. 57-63, June. Accessed 2018-06-12.
- Ladd, Seth. 2018. "Announcing Flutter beta 1: Build beautiful native apps." Flutter, February 27. Accessed 2018-06-12.
- Lomas, Natasha. 2013. "A Look Back On Symbian On The Eve Of Its Demise." TechCrunch, June 14. Accessed 2018-06-12.
- Lynch, Max. 2014. "The Last Word on Cordova and PhoneGap." Ionic Blog, March 6. Accessed 2018-06-12.
- Patrizio, Andy. 2014. "Samsung delays Tizen OS launch indefinitely due to lack of apps." Network World, July 30. Accessed 2018-06-12.
- Perez, Sarah. 2014. "Drifty, Makers Of The Ionic Mobile Framework, Raise $1 Million." TechCrunch, March 10. Accessed 2018-06-12.
- Ritchie, Rene. 2018. "11 years ago today, Steve Jobs introduced the iPhone." iMore, January 9. Accessed 2018-06-12.
- Russell, Jon. 2015. "Samsung Launches Its First Tizen-Powered Phone, The Z1, In India For $92." TechCrunch, January 14. Accessed 2018-06-12.
- Shoutem. 2016. "A brief history of React Native." Medium, October 3. Accessed 2018-06-12.
- ThinkMobiles. 2016. "What are the popular types and categories of apps." ThinkMobiles, December 5. Updated 2018-06-07. Accessed 2018-06-12.
- Trigger. 2018. "Web vs. Native vs Hybrid App Decision Tree." Accessed 2018-06-12.
- Virus Brain. 2017. "Part 3- Mobile Application Types." Mobile Development Series, Virus Brain, January 13. Accessed 2018-06-12.
- WaveMaker Docs. 2018. "Building Hybrid Mobile Apps." WaveMaker 8.x. Accessed 2018-06-12.
- Wikipedia. 2018a. "iOS." Wikipedia, June 8. Accessed 2018-06-12.
- Wikipedia. 2018b. "Sencha Touch." Wikipedia, April 26. Accessed 2018-06-12.
- Wilken, Jeremy. 2015. "The Three Types of Mobile Experiences." Developer.com, June 8. Accessed 2018-06-12.
- Wouts, François. 2018. "Choosing the right technology for your mobile app." Medium, January 24. Accessed 2018-06-12.
- XhtmlJunction. 2018. "6 Main Types of Mobile Apps a Developer Must Know About." XhtmlJunction, January 3. Accessed 2018-06-12.
- de Icaza, Miguel. 2011. "Announcing Xamarin." Blog, May 16. Accessed 2018-06-12.
Further Reading
- Lomas, Natasha. 2013. "A Look Back On Symbian On The Eve Of Its Demise." TechCrunch, June 14. Accessed 2018-06-12.
- Wouts, François. 2018. "Choosing the right technology for your mobile app." Medium, January 24. Accessed 2018-06-12.
- Lynch, Max. 2014. "The Last Word on Cordova and PhoneGap." Ionic Blog, March 6. Accessed 2018-06-12.
- Chauhan, Shailendra. 2017. "Xamarin Apps vs. Native Apps vs. Hybrid Apps." DotNetTricks, February 16. Accessed 2018-06-12.
Article Stats
Cite As
See Also
- Apache Cordova
- Ionic
- React Native
- Xamarin
- Progressive Web Applications
- Web Components