Nowadays there are many technologies capable of generating a mobile app, each one with a different approach. In this article we are going to review some of the technologies available in 2022 for building mobile apps, in simple terms for a general public.
Native
In the mobile app market, we have 2 large app distribution stores, which belong to the 2 most used mobile operating systems, and I am referring to Google Play for Android and the App Store for Apple´s iOS.
Each operating system is built with a different programming language, so developments for one operating system are not compatible with each other.
On one hand, Android applications can be developed in JAVA 8 or Kotlin programming languages, the last one used by companies such as Pinterest and Cousera, on the other side, Apple's iOS uses Swift and companies such as Slack use it.
Advantages
- High performance and speed.
- High compatibility with all devices and operating system versions.
- You can use all the capabilities and features of the mobile device.
- Use of fewer dependencies, which reduces complexity and bugs (errors).
- More secure, since native languages are more robust.
Disadvantages
- Increased development time and cost, because an Android and an iOS application must be built independently.
Hybrid
A hybrid app combines a native language and another language, which is usually from web technologies (JavaScript). This type of app responds to the idea of one single project that generates the apps for the different platforms (Android and iOS).
Going deeper, an application with multi-platform/hybrid technology is encapsulated in a native application and through plug-ins the hybrid application accesses the native resources of the device (camera, GPS antenna, etc.).
Popular frameworks for hybrid apps
- React Native: Through the React JavaScript framework developed by Facebook (nowadays Meta), native components are generated for each desired platform through a component called “Bridge”.
- Ionic: Using popular web technologies such as Angular, React or Vue, it generates a web application that is packaged in a native app that renders the web content, in other words, a light and simple native web browser that renders web content.
- Flutter: Developed by Google, it offers dart as a programming language, which is packaged in a native app that interprets this language, to draw elements on the screen and provide them with interactivity.
Advantages
- Reduced development time and costs.
- Less maintenance time and cost.
- Greater number of devices that can be reached, because with a single project you can generate the app for different platforms.
Disadvantages
- Poor performance compared to a native application.
- Limits to implement complex features and functionality, interaction with device capabilities depends on plugins.
- Long waiting times to use the latest features of the device, since third parties must develop add-ons or updates to access these features.
- Low support for 3D graphics development.
WEB - PWA
This last option is less powerful than the 2 previously exposed and is based exclusively on web technology. The proposal is that a web application can provide an experience like a mobile app by having the following features:
- Graphical interface adjusted to the dimensions of the device.
- Offline operation and data storage.
- Generation of icon button to access, like other apps in the phone.
- Access to phone features such as GPS antenna and camera.
The use of this technology has the following advantages and disadvantages:
Advantages
- Low development time and costs, because not require publishing in stores and works in most platforms (only one project for all the platforms).
- Less maintenance time and cost, uses web technologies, which are widely documented.
- Extensive variety of libraries to meet the requirements of the app, because web technology has been developing for more years.
Disadvantages
- Lower performance compared to a native app.
- Limits on use of mobile device features; as it runs in the phone's web browser it has its own limitations (for example, no bluetooth or NFC access), so it can't implement complex functionalities and can't access the full potential of features and innovations available on phones.
- Low support for 3D graphics development.
Conclusions
The next question is, Which technology suits me best? and the answer is not simple, concretely, it will depend on the characteristics of the project to be developed, aspects such as budget, development timeframe and complexity of the required functionalities are decisive variables when choosing.
We briefly mention some of the technologies available for mobile development, and in all of them it is possible to develop quality mobile applications, within the capabilities of each technology, so it is very important to know the limits of each technology and compare the needs of the project to be developed, to identify the most convenient technology.
We at DEJ Software, develop custom mobile applications with various technologies, if you want to develop an application in the best possible way, you can contact us today to discuss your requirement.
AuthorJuan Carlos Valderrama GonzálezWeb/mobile development team Leader - DEJ Software
References
https://medium.com/analytics-vidhya/top-4-programming-languages-and-frameworks-for-mobile-apps-in-2021-e181a78e8ac4
https://medium.com/finwintech/benefits-of-native-mobile-app-development-50f5d94509b8
https://www.rswebsols.com/tutorials/software-tutorials/pros-cons-hybrid-app-development
https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps
https://moqod.com/blog/advantages-and-disadvantages-of-pwa-progressive-web-app/