By Alejandro Constela – Full Stack Developer at Santex
In times where software development implies an increasing demand of new skills at many levels to build more consistent and flexible applications, cross-platform mobile development frameworks are gaining the attention of many companies. The main purpose being, to quickly gain presence in their markets and provide easy access of services to their customers.
Naturally, native development always will have the well-known benefits of taking full advantage of the built-in channels for performance with an optimized usage of the resources. Nevertheless, given the current existence of the most popular platforms: iOS and Android, companies must take a moment to make a choice in the decision of what is best. One scenario is the consideration of the maintenance costs of two separate development units focused on each platform, but with a higher quality and architecture of each. On the other hand, the alternative scenario provides a flexible, cross mobile development platform which a company can use to build applications faster with lower costs, and a quicker time to market.
Of course, with this second approach, applications must resign to some lower quality markers, in terms of performance or the usage of all the native elements available to each platform. For this reason, some companies, in a first attempt to get quick results, feel comfortable with a cross-platform mobile development tool, to build the first versions of their products, then as their needs grow, or become more complex, they migrate their products to a more specific mobile platform. This helps to improve the performance goals while creating space to include more specific requirements that are best achieved in the native platform.
In this context, of all the most popular options for Cross-platform mobile development, we can refer to React Native, Ionic, Kony Visualizer, Cordova, and namely Flutter.
Flutter is a development framework that is gaining followers and popularity, due to some of their powerful characteristics along with the simplicity to create widgets (its basic building block) and reuse them easily. While there are a number of options as listed above, the intent here is not a comparison but rather an opportunity to highlight some of the powerful building capabilities of Flutter.
Flutter SDK is an open source development framework provided by Google. The history of this framework began in 2015 as an attempt to provide another option to build apps on the Android platform. The first version was called “Sky”. Then in December 2018, Flutter was officially released for utilization on Android, Windows, macOS and Linux through the Flutter Desktop Embedding project via the Dart virtual machine. In iOS the restrictions on dynamic code execution requires that Flutter apps use ahead-of-time (AOT) compilation and with the usage of ARM binary, this makes Flutter really fast.
An interesting aspect is its capability to build their own graphics using the graphics resources of the device through the Skia engine (an open source 2D graphics), which is also being used by Chrome. This feature allows Flutter to achieve great performance benchmark results.
Theming and layout in Flutter do not require separate declarative languages such as JSX or XML, or separate visual interface builders, due to the declarative syntax of Dart.
What is behind Dart?
In comparison with other frameworks that use Javascript as a reference language, Flutter is based on Dart language. This language selected by Google is not always understood by the developer community, however under certain perspectives, Dart language represents the best partner in order to reach the performance goals and characteristics. This language is compatible with the architecture of Flutter in the API interfaces, and Dart is responsible in giving Flutter fast compilation to native code which may also be customized. Additionally, it has been noted that Flutter performs well in the cases that mobile apps require great expressive screens since the Animation API creates smooth animations and transitions that run at 60fps. This is one of the reasons why more developers are interested in Flutter. With this technology, apps can be highly dynamic with optimal management of Gestures in the device.
Another important observation is that Dart can be easily learned by developers with skills in languages like C++ or Java, because the syntaxis is also inspired from those. Dart is under the Standard ECMA-408.
Is Google using in fact Flutter?
Absolutely, yes! Dart is popular inside and outside of Google. In the Google headquarters it is one of the fastest growing languages and is used by Adwords, Fuchsia and others. There are more than 100 external committers, and the community is also very open. The documentation is consistent, and constantly updated. Currently, Flutter is in version 1.3.8 and Dart in version 2.2.1.
Of course, due to its recent and official launch, Flutter still has some weaknesses in comparison with other Cross-platform mobile development frameworks like React Native which have a strong popularity with many companies in the world like Facebook.
So far it has a promising future, and it is backed and invested in greatly by Google Inc.
So let’s try it! Check out some of the amazing features for yourself.
Here a tiny demo with some Flutter features: