Skip to content

WA1. Introduction to Mobile Applications, Platforms, and Frameworks

Describe different development frameworks and programming platforms used in developing mobile web apps, native apps, and hybrid apps

Developing mobile applications is a complex operation that requires a lot of attention to details along with the expert knowledge in programming languages and frameworks. There are three main approaches to developing mobile applications:

Mobile web applications

Mobile Web applications are simply websites that are optimized for mobile devices, with some additional efforts this apps can be installable and may be distributed through App Stores. The main technologies in building Mobile Web applications are HTML, CSS, and JavaScript where they can be developed in any IDE including VScode.

Either way this approach takes advantage of the recent advancements of web APIs that allow the web app to access device sensors, geolocation, service workers and push notifications, and safe payments APIs, etc.

There are various approaches to developing mobile web applications, including the following (Tabor & Vrdoljak, 2019):

  • Responsive Web Design: Ship the same page to all devices, once the app is loaded, the view is adjusted to the device using CSS.
  • Progressive Enhancement: Ship a minimal page that works on all devices, and then enhance it with more features for more capable devices using JavaScript.
  • Mobile-First Responsive Design: The same as RWD, but the page is designed for mobile first, and then enhanced for larger screens.
  • Adaptive Web Design (Server-Side): The server detects the device and sends a different page for each device according to its capabilities.
  • RESS: Responsive Design + Server-Side Components: The server detect the device category, then it sends a different page for each category, at the device side, the page is - adjusted according to the device.

Native mobile applications

Mobile Native Applications are applications that are developed using the native programming language of the platform, for example, Android applications are developed using Java or Kotlin which is developed using Android Studio IDE, and iOS applications are developed using Swift or Objective-C on XCode IDE. This approach allows the developer to fully utilize the platform capabilities and produce the most performant applications.

Native applications are distributed through App Stores, and they are installed on the device, and they can be used offline, and they can access the device hardware and sensors directly allowing for the more performant and secure applications and consistent look and feel with the underlying platform.

Hybrid applications

Hybrid applications are applications that are developed using web technologies (HTML, CSS, and JavaScript) and then packaged in a native container (WebView) that allows the app to be installed and distributed through App Stores. This approach allows the developer to use the same code base for all platforms, and it is easier to maintain and update the app.

Once The app starts, the device loads a WebView (a browser) container and loads the app within that container then the app accesses device features similar to how web apps do it. Cross-platform frameworks like React Native and Flutter are examples of tools that allow for bulging Hybrid applications.


Compare and contrast the following to find out which development framework (approach) is best to design a mobile application in terms of performance, ease of learning the framework/language, compatibility, and code quality

  • Mobile Web applications
  • Native mobile applications
  • Hybrid applications

Performance

  • Native applications are the most performant, then Mobile Web applications (if implemented well), and finally Hybrid applications.
  • The performance of Mobile Web applications is highly dependent on the browser and the device and wether the App is optimized for this mobile categories or not.
  • I choose Hybrid Apps as the least performant because of the overhead of loading the WebView then loading the app within it, however, if device is used correctly with support to local and offline storage, the performance can be improved.

Ease of learning the framework/language

  • Mobile Web applications are the easiest to learn and develop, as they are developed using the same technologies used in developing websites which are HTML, CSS, and JavaScript.
  • The Hybrid Apps include some complexity in learning the framework and some of the native features; the one does not need to go deep within the native ecosystem, only what’s needed to containerize the app.
  • The Native Apps are the most difficult to learn and develop, as they require learning the native language and the native ecosystem.
  • Note, this is subjective to the developer’s background and experience; for me, with a background in web development, learning the Hybrid Apps is easier than learning the Native Apps, but that’s not the case for everyone.

Compatibility

  • The Mobile Web App are the most compatible, as they are developed using web technologies that are supported by all browsers and devices.
  • Then the Hybrid Apps as they usually developed using cross-platform frameworks.
  • Finally the Native Apps, as they are developed using the native language of the platform, and they are not compatible with other platforms.

Code quality

  • The Native Apps are the best in terms of code quality, as they are developed using the native language of the platform, and they are optimized for the platform.
  • Web Apps are the next in terms of code quality, as the landscape of web development is very flexible and standards may not always be followed.
  • Hybrid Apps are the least in terms of code quality, as there cross-platform nature increases complexity, reduces security, and usually require constant patching to glue different parts together.

References

Tabor, M., & Vrdoljak, M. (Eds.). (2019). Mobile developer’s guide to the galaxy (18th ed.) (pp 1-128). Open-Xchange. https://f.hubspotusercontent40.net/hubfs/9391640/Imported%20files/Mobile_Developers_Guide_18th_edition_web.pdf licensed under Creative commons 2.5.