• Three generations of mobile apps. Source: Chauhan 2017.
    image
  • Tizen architecture allows different types of apps. Source: Gadyatskaya et al. 2014, fig. 2.
    image
  • An overview of types of mobile apps. Source: Virus Brain 2017.
    image
  • App is developed using web technologies, WebView and Cordova. Source: WaveMaker Docs 2018.
    image
  • A decision tree to choose the right type of mobile app. Source: Trigger 2018.
    image

Types of Mobile Apps

Summary

image
Three generations of mobile apps. Source: Chauhan 2017.

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.

Milestones

1998

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.

Jun
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.

Nov
2007

Google releases beta version 1.0 of Android for developers. Developers can make native apps for the Android platform. The first Android phone named T-Mobile G1 (or HTC Dream) is announced in September 2008.

2009

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.

2010

To facilitate mobile apps using web technologies such as HTML5, CSS and JS, Sencha Touch is released. Developers can build UIs that looks like native UIs. It also support Cordova APIs to allow access to accelerometer, camera, geolocation, etc.

Apr
2012
image

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.

Feb
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.

2013

A startup named Drifty, founded in 2012, releases Ionic, an open source HTML5-based platform for building hybrid apps. Ionic itself is based on Cordova.

2015

Facebook open sources React Native, which is a framework to build cross-platform native mobile apps using JavaScript and React.

Feb
2018

At the Mobile World Congress 2018, Google releases the first beta of Flutter, a mobile UI framework to build native interfaces for both iOS and Android. Flutter is written in Dart programming language.

Discussion

  • What are the different types of mobile apps?
    image
    An overview of types of mobile apps. Source: Virus Brain 2017.

    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?
    image
    App is developed using web technologies, WebView and Cordova. Source: WaveMaker Docs 2018.

    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?
    image
    A decision tree to choose the right type of mobile app. Source: Trigger 2018.

    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.

References

  1. AppFutura. 2018. "What every app developer must know about Tizen OS." AppFutura, January 8. Accessed 2018-06-12.
  2. Cabot Technology Solutions. 2018. "Xamarin vs React Native: A Comparison Study." Cabot Solutions Blog, March 27. Accessed 2018-06-12.
  3. Callaham, John. 2018. "The history of Android OS: its name, origin and more." Android Authority, March 26. Accessed 2018-06-12.
  4. Chauhan, Shailendra. 2017. "Xamarin Apps vs. Native Apps vs. Hybrid Apps." DotNetTricks, February 16. Accessed 2018-06-12.
  5. Friedman, Nat. 2013. "Announcing Xamarin 2.0." Xamarin Blog, February 20. Accessed 2018-06-12.
  6. 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.
  7. Ladd, Seth. 2018. "Announcing Flutter beta 1: Build beautiful native apps." Flutter, February 27. Accessed 2018-06-12.
  8. Lomas, Natasha. 2013. "A Look Back On Symbian On The Eve Of Its Demise." TechCrunch, June 14. Accessed 2018-06-12.
  9. Lynch, Max. 2014. "The Last Word on Cordova and PhoneGap." Ionic Blog, March 6. Accessed 2018-06-12.
  10. Patrizio, Andy. 2014. "Samsung delays Tizen OS launch indefinitely due to lack of apps." Network World, July 30. Accessed 2018-06-12.
  11. Perez, Sarah. 2014. "Drifty, Makers Of The Ionic Mobile Framework, Raise $1 Million." TechCrunch, March 10. Accessed 2018-06-12.
  12. Ritchie, Rene. 2018. "11 years ago today, Steve Jobs introduced the iPhone." iMore, January 9. Accessed 2018-06-12.
  13. Russell, Jon. 2015. "Samsung Launches Its First Tizen-Powered Phone, The Z1, In India For $92." TechCrunch, January 14. Accessed 2018-06-12.
  14. Shoutem. 2016. "A brief history of React Native." Medium, October 3. Accessed 2018-06-12.
  15. ThinkMobiles. 2016. "What are the popular types and categories of apps." ThinkMobiles, December 5. Updated 2018-06-07. Accessed 2018-06-12.
  16. Trigger. 2018. "Web vs. Native vs Hybrid App Decision Tree." Accessed 2018-06-12.
  17. Virus Brain. 2017. "Part 3- Mobile Application Types." Mobile Development Series, Virus Brain, January 13. Accessed 2018-06-12.
  18. WaveMaker Docs. 2018. "Building Hybrid Mobile Apps." WaveMaker 8.x. Accessed 2018-06-12.
  19. Wikipedia. 2018a. "iOS." Wikipedia, June 8. Accessed 2018-06-12.
  20. Wikipedia. 2018b. "Sencha Touch." Wikipedia, April 26. Accessed 2018-06-12.
  21. Wilken, Jeremy. 2015. "The Three Types of Mobile Experiences." Developer.com, June 8. Accessed 2018-06-12.
  22. Wouts, François. 2018. "Choosing the right technology for your mobile app." Medium, January 24. Accessed 2018-06-12.
  23. XhtmlJunction. 2018. "6 Main Types of Mobile Apps a Developer Must Know About." XhtmlJunction, January 3. Accessed 2018-06-12.
  24. de Icaza, Miguel. 2011. "Announcing Xamarin." Blog, May 16. Accessed 2018-06-12.

Milestones

1998

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.

Jun
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.

Nov
2007

Google releases beta version 1.0 of Android for developers. Developers can make native apps for the Android platform. The first Android phone named T-Mobile G1 (or HTC Dream) is announced in September 2008.

2009

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.

2010

To facilitate mobile apps using web technologies such as HTML5, CSS and JS, Sencha Touch is released. Developers can build UIs that looks like native UIs. It also support Cordova APIs to allow access to accelerometer, camera, geolocation, etc.

Apr
2012
image

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.

Feb
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.

2013

A startup named Drifty, founded in 2012, releases Ionic, an open source HTML5-based platform for building hybrid apps. Ionic itself is based on Cordova.

2015

Facebook open sources React Native, which is a framework to build cross-platform native mobile apps using JavaScript and React.

Feb
2018

At the Mobile World Congress 2018, Google releases the first beta of Flutter, a mobile UI framework to build native interfaces for both iOS and Android. Flutter is written in Dart programming language.

Tags

See Also

Further Reading

  1. Lomas, Natasha. 2013. "A Look Back On Symbian On The Eve Of Its Demise." TechCrunch, June 14. Accessed 2018-06-12.
  2. Wouts, François. 2018. "Choosing the right technology for your mobile app." Medium, January 24. Accessed 2018-06-12.
  3. Lynch, Max. 2014. "The Last Word on Cordova and PhoneGap." Ionic Blog, March 6. Accessed 2018-06-12.
  4. Chauhan, Shailendra. 2017. "Xamarin Apps vs. Native Apps vs. Hybrid Apps." DotNetTricks, February 16. Accessed 2018-06-12.

Top Contributors

Last update: 2018-12-03 07:10:51 by rakshit.soral
Creation: 2017-03-17 07:24:08 by arvindpdmn

Article Stats

1370
Words
4
Chats
7
Authors
9
Edits
5
Likes
3669
Hits

Cite As

Devopedia. 2018. "Types of Mobile Apps." Version 9, December 3. Accessed 2018-12-16. https://devopedia.org/types-of-mobile-apps
BETA V0.18