In this article, we’ll have a look at 3 popular cross-platform mobile application frameworks and provide their key characteristics as well as pros and cons. We will also analyse which languages they use under the hood, what platforms they support and their general popularity among developers.
1. React Native
React Native is an open-source framework developed by Facebook that allows the creation of mobile apps using JavaScript and HTML5. As a result, developers can write one codebase for both Android and iOS which not only reduces time spent working on two different versions but also means you don’t have to learn entirely new languages or development environments if you already know how to develop web apps with Javascript/HTML5 .
Advantages:
– Allows for rapid prototyping of mobile app concepts as it uses existing web technologies (JavaScript/HTML5/CSS3), meaning that the only skill requirement to get started is knowledge of ReactJS .
– Once you get past the initial learning curve, you’ll already be able to run your app on both iOS and Android devices.
– A strong community base which means there are many resources available when you have questions about how to use it.
Limitations:
– Performance lags slightly behind native apps but is still very good considering the app’s codebase, which consists mainly of HTML5 and JavaScript, remains unchanged from what you would have written for a web project. – Doesn’t allow for much customization – you are stuck with the general look and feel of React Native UI components. – No out-of-the-box support for push notifications.
Supported platforms: iOS, Android
Key language: JavaScript
Pros : Allows for rapid prototyping of mobile app concepts; uses existing web technologies (JavaScript/HTML5/CSS3); allows developers to write one codebase that runs on both iOS and Android devices; good starting point for new developers looking to learn mobile app development.
Cons : Performance lags slightly behind other cross platform options; doesn’t allow much customization – you are stuck with the general look and feel of React Native UI components.
2. Flutter
Flutter is an open source, mobile app SDK to help developers and designers build modern mobile apps for iOS and Android. Flutter uses the Dart programming language, which was originally developed by Google as a better way to write structured web apps. – It focuses on high-performance rendering and offers easy methods to create interations like gestures.
Advantages:
– Fast development time; allows developers to achieve high performance levels; supports hot reload during development; has built in support for stateful Hot Reload and Isolate variables which can be very useful when developing large scale applications where multiple globals might cause issues, such as games with lots of entities or chat bots with many users.
Limitations:
– Lacks some of the more advanced native app features that are needed for certain app types (e.g. push notifications, access to camera/geolocation).
Supported platforms: iOS, Android
Key language: Dart
Pros : Fast development time; allows developers to achieve high performance levels; supports hot reload during development; offers easy methods to create complex interactive gestures like swipe and pinch.
Cons : Lacks some built-in support for common needs such as text formatting or multiple apis with similar purposes (e.g. FaceBook or Twitter APIs)
3. Ionic Framework
Ionic is a comprehensive front-end development framework that wraps Apache Cordova and allows for development of cross platform mobile apps with a single codebase written in HTML, CSS and JavaScript/TypeScript.
Advantages:
– Easily create performant, cross platform apps from one codebase using the latest web standards (HTML5, CSS3 3D Transforms). – Out of the box UI components available for easy integration with your app’s design. – Very well documented and growing community base which makes it easier to find answers when you encounter an issue or have questions about its use.
Limitations:
– Is still under heavy development so some bugs might be encountered through the process of development.
– Performance lags significantly behind cross platform native apps as a result of the method used to achieve accessibility across platforms.
Supported platforms: iOS, Android, Windows Phone 7/8
Key languages: HTML5 and JavaScript
Pros : Easy integration with existing web projects; allows for rapid prototyping of app concepts; great starting point for new developers just learning about mobile app development who have a basic knowledge of HTML5 and CSS3; easy way to familiarize yourself with mobile app development before making the full-time commitment to building an actual mobile app.
Cons : Still under heavy development – there is no guarantee that bugs will be fixed immediately; performance can lag behind other cross platform options; not suitable for apps with heavy graphics requirements.