Along with the increasing popularity and use of smartphones among society, the need for mobile apps to fulfil people’s everyday needs would also increase accordingly. They all need mobile apps for various reasons – to shop, play games, access news and information, engage in social media, etc. To make this work, companies who offer application development services must know exactly which technology to use in developing each unique mobile apps. Here, we have made a comparison of some of the most popular and recent mobile development technologies along with each of its advantages and disadvantages.

  1. Native

The native app means to build an app using the native programming language of a specific platform. This development technology is commonly used to build mobile apps with high performance and great UX (User Experience) since it was specifically made to match the targeted device’s native UI (User Interface). Although the native app can access all features and operating system of one device, the codebase, and technology used to develop this app needs to be separated which results in both higher cost and higher resources. Here are two main mobile OS platforms used to build native apps:

  • Android

Android is developed by Android, Inc. before being bought out by Google in 2005 and proceeds to get officially released to the public in 2008. Native apps on Android platforms are built using the Android Software Development Kit (SDK) with Java as its programming language. In 2017, Google introduced Kotlin as an alternative programming language for Android. Kotlin is superior to Java because it simplifies the lines of code while managing to develop an app more efficiently. Kotlin can also be integrated and combined with the library or Java programming language.

  • iOS

iOS is developed by Apple, Inc. and got released to the public in 2007. Native apps on iOS are usually built using the iOS Software Development Kit (SDK) with Obj-C as its programming language. In 2014, Apple introduced Swift as an alternative programming language for iOS which outperform its predecessor, Obj-C. Similar to Kotlin’s superiority to Java on the Android platform, Swift proves to be more efficient in building an app because it simplifies lines of code.

Suitmedia has successfully developed dozens of native apps for Android and iOS since 2012 such as Bukalapak, Rumah Zakat-Sharing Happiness, Mister Aladin, Sampoerna, Astra, BCA, etc.

  1. Cross-Platform

Cross-Platform means to build an app using a single base code to be implemented in multiple platforms. Cross-Platform is compiled or rendered using a native engine which means that the app performance resembles the quality of a native app. Here are some of the technologies that are commonly used to build Cross-Platform apps:

  • Flutter

Flutter is a technology developed by Google and got released officially to the public in 2018 with Dart as its programming language. The advantage of Flutter lies in its Hot Reload feature which speeds up the development process. Flutter also has access to the library and function of each device and OS. On each project, Flutter can also be integrated with the native technology on iOS Swift/Obj-C and Android Kotlin/Java.

Although Flutter is the last technology to be discovered compared to other Cross-Platform technologies, it is already being used by numerous developers in some communities. Even though the Dart programming language used to develop Flutter is relatively easy to learn, it is still too unfamiliar and new to most developers. Flutter can also be used to develop web apps but still was not stable enough. Major companies like Google, AdWords, Alibaba, Tencent, and Square had successfully implemented Flutter to develop their apps.

  • React Native

React Native (RN) is developed by Facebook and got released to the public in 2015 using JavaScript as its programming language. RN renders native UI View using Bridge to help it communicate with the native engine and library. Thanks to the versatility of Bridge, RN can also be integrated with the native technology on iOS Swift/Obj-C and Android Kotlin/Java.

RN’s advantage lies in the fact that it uses JavaScript as its programming language, which is currently the most popular programming language used widely across the world. In addition to developing mobile apps, RN can also be used to develop a web application. However, the use of Bridge to communicate with the native engine in RN may cause the app performance to be slightly worse than Flutter. Major companies’ apps like Facebook, Instagram, and UberEat are some of the examples of the successful implementation of RN technology.

  • Xamarin

Xamarin is a software company that got acquired and released by Microsoft in 2011. Xamarin uses .Net framework with C# and F# as its programming languages. Thanks to the use of .Net and Microsoft Visual Audio, Xamarin manages to have a complete development environment to build mobile, web, and desktop apps. The disadvantage of using Xamarin is the updated delay which causes delays in updating the native engine or library. Xamarin is also relatively difficult to implement on complex UI with high functionalities. 

As seen below, this is the popular trend chart of all three Cross-Platform technologies since last year:

Suitmedia currently has Cross-Platform app development solutions for Flutter and React Native which can fulfil the needs of developing an app with similar qualities to those found in Native apps. 

  1. Hybrid

Similar to Cross-Platform, Hybrid is the technology used to build an app using a single base code to be implemented in multiple platforms. Instead of using a native engine, Hybrid uses web technology to do the rendering process and proceeds to coat it with a native container. The programming languages used in Hybrid are HTML5, CSS, and JS. Hybrid certainly excels in terms of price and effort to build but this also means that apps that are built using Hybrid can not match the quality of Native apps. It certainly has limitations when accessing the library and the device’s functionalities. The examples of Hybrid frameworks are Cordova, ionic, and PhoneGap.

  1. PWA

PWA (Progressive Web Apps) is the development of mobile apps in the form of an extension of an already existing web application. With PWA, a web app can have offline features, push notifications, and similar UX to Native apps. PWA can also access some device functions although limited to Camera, GPS, and Files. PWA can be accessed through the Home screen of each OS without having to be installed or distributed through the Android Play Store. The weakness of PWA lies in its limitations in accessing device functionalities such as Contact, SMS, and Task Scheduling. PWA may also encounter some approval problems when distributed through the iOS App Store because it uses web technology (HTML & JS) that is migrated using a service worker.

Suitmedia offers PWA development services to extend websites into mobile apps. Some of the already distributed PWA are Astra and HIS Travel. 

Conclusion

 

Native

Cross Platform

Hybrid

PWA

UX & Performance

Best

Better

Low

Medium

Access Device Lib

Full Access

High Access

Low Access

Medium Access

Distribution

Play Store, App Store

Play Store, App Store

Play Store, App Store

URL, Play Store

Development Cost

High, Each Platform

Medium, Single Code Base

Low, Single Code Base

Extend from Web App

Recommendations

  1. Choose Native Apps if you want to build an app that targets mass-market consumers where performance, security, and access to device hardware features are important. This is Suitmedia #1 recommendation.
  2. Choose Cross-Platform apps if you do not mind having minor limitation performance but still want to use a single code base. Suitmedia highly recommends Flutter since it is officially supported by Google.
  3. Choose Progressive Web Apps (PWA) if you just want to extend your existing website with native mobile experiences.