The development of an application often involves the question of the platform on which we want to make it available: “desktop” (computer), web, mobile (Android, iOS…)
Creating an application that can be used by everyone involves in theory, you will have to develop it several times, once for each of the targeted platforms.
Fortunately, today there are many solutions to develop an application once, and make it available on all desired platforms without additional effort.
This development method, called “cross platform”, involves the use of a Framework which, once the application base has been developed, will automatically create an application for each of the platforms that we wish to target.
Each of the frameworks presented here gives the possibility to use the devices of the target platforms (camera, geolocation, bluetooth, etc.), and to display push notifications. They also all allow the development of “native” modules to use features that would not currently be taken into account.
Let's take a look at the main technologies that exist today, and ask ourselves which the best for our needs is.
Ionic is a framework allowing the creation of so-called “hybrid” applications: we develop a web application; the latter will then be embedded in a container which will be responsible for displaying this page on the target platform.
This framework is said to be agnostic because, for some versions, it has been used to develop the web application with Angular or ReactJS. VueJS is also available, but remains in beta for the moment.
The resulting web application can be used to create a website, a PWA, or a mobile application.
Ionic was created in 2013, it is now a well-installed framework, it allows the use of all existing web libraries and therefore offers a wide choice of components, ensuring very fast application development.
Flutter, developed by Google since 2015, has been available in final version since the end of 2018, but is now widely acclaimed by the community.
This framework makes it possible to create mobile applications, with the objective of having a rendering and performance close to native.
The ability to create web and desktop applications with the same application base is now available in beta, but should only be used for testing.
However, these options are open and promising, so they should be followed with the utmost attention.
If the applications produced show impressive performance in terms of fluidity, they “weigh” heavier than the other frameworks presented here, by around 1MB on a “basic” application.
In addition, the relative youth of the platform implies potentially frequent changes in the available bookstores.
This framework developed by Facebook was released in final version in 2015.
React Native is largely based on ReactJS, its web counterpart, but differs in a few ways that make applications written for either solution incompatible.
The framework was released in 2015, it is now widely used in the mobile world, many libraries are available for application development.
The big advantage of React Native is to have a very light application “core”, libraries having to be added to use specific functionalities.
An application produced with React Native is lighter than if it were developed in Ionic, and a fortiori in Flutter.
Which Framework To Choose?
There are many factors that go into choosing the right framework for a given project.
The first question to ask concerns the targeted platforms. If desktop versions are to be produced, Ionic seems to be the most suitable framework right now, but Flutter could also become a viable solution in the near future.
If only mobile versions are necessary, the decision factors could come from the knowledge of the development team, or from performance constraints relating to the application.
A team with web knowledge will be able to use Ionic to quickly develop mobile applications without the need for heavy training.
If the mobile application development company in california must have a native rendering, we will instead turn to React Native or Flutter, the weight of the application produced here being a determining factor in deciding which solution to go for.
Finally, Flutter seems to be the best solution for producing applications requiring great fluidity and “fun” animations.