The developer community is buzzing with the expected beta of Flutter, Google’s free and open source mobile user interface framework for creating high-quality native interfaces on iOS and Android. I even followed updates to this frame as it matured. First, it’s Google we’re talking about. Second, who doesn’t like Hamilton (their mobile app was designed with Flutter)? OK OK. I’m getting ahead of myself. Calm down all of us and take the pros and cons one by one.
So, as we all know, there is no one way to develop an application. There is a native development in which you use the tools and languages provided by Google or Apple for their respective platforms. Here, the level of difficulty is high and the code is heavy. And then there is the “Columbus mode” in which you explore and find out what works for you. The options are many and it all depends on your level of expertise and comfort with a tool or language. It’s good, but it can also be incredibly chaotic.
Flutter, a multiplatform framework, aims to remedy this dichotomy. Paul Miller writes in Verge: “Flutter is Frankenstein’s monster of various Google projects. It is based on Google’s own Dart programming language … It has a rendering engine based on the Skia graphics library, the same as Chrome uses to draw pixels on a screen. There is an IntelliJ IDE for Flutter, just like Google with Android Studio. And Google also uses Flutter in its next Fuchsia operating system, so the whole team is in the mix . ”Interesting, let’s look at one aspect at a time.
Built using Dart
Dart is Google’s own programming language that was released in 2011 as a direct competitor to JavaScript. Dart’s internal adoption at Google has been significant, with the AdWords, AdSense, and Google Fiber teams using it to write their web applications for customers. Externally, adoption has been slow so far. But that is likely to change with the introduction of Flutter. From what I’ve heard, Dart is easy to use, much like C. Dru Keppel, who works at Summit Projects as an ActionScripter, says: “Dart replaces Google for JavaScript … the general intention is to provide the same tools as JavaScript, just like power tools. “He explains that Dart has a lot of object-oriented features that the typical JavaScript programmer will not know about, but are essential for serious development. In other words, Google believes that JavaScript is not designed to be a “real” programming language, and Dart will fill this glaring gap.
Pros: Easy to learn, good for those who are good at C, can do a lot of programming work.
Cons: Few people know about Dart. Building a team could therefore be a challenge. It should be noted that people with a javascript background (including Typescript, which adds the type application like Dart) will find it easier to adapt.
Hot charging!
Flutter offers rapid development. Its website promises “Hot reload in milliseconds to bring your application to life.” Whoa. Milliseconds? How? ‘Or’ What?
You see, cross-platform frameworks like Javascript have to go through a bridge to speak to the native code. In addition, React Native operates on two domains: first, the native Objective-C or Swift domain, and second, the JavaScript domain. It uses JavaScript to access OEM widgets in the native domain.
Herein lies one of the main keys to understanding the performance of React Native. Each area in itself is incredibly fast. The performance bottleneck often occurs when we move from one domain to another. In order to architect high-performance React Native applications, we need to keep deck passes to a minimum. Wm Leler, senior software engineer at Google, further explains: “Widgets are typically viewed quite frequently (up to 60 times per second during animations, transitions, or when the user” swipes “something across the screen with finger), which can lead to performance issues. “
Flutter solves this problem by injecting the updated source code files into the running Dart virtual machine (VM). The virtual machine updates the classes with the latest versions of the fields and functions. Then, the Flutter framework automatically reconstructs the widget tree. This allows developers to instantly see the changes they have made. Obviously, I usually wait hours for most development platforms to deploy and test an application on a device. Instant detection of changes would increase productivity, reduce costs, and reduce development time. So the hot reload function of Flutter is a big yes to me!
Advantages: increased productivity
Disadvantages: none!
Development of unified applications
Native development usually has a high cost associated with coding and continuous support. In addition, you must do this at least twice: once for the platform of your choice (Android or iOS), then the other too (because someone on your team will always want the other platform! ). In some cases, teams must also code a third time, for the web. The process is tedious, time consuming and costly.
With Flutter, you create mobile apps, not Android apps or iOS apps. It’s just another way of saying that with Flutter, you only build once, from a single code base. Flutter renders using Skia.
This allows developers to write the user interface and navigation once and simply share them on iOS and Android. In addition, 60% of the code is reused between Flutter and the web.
Dean Chalk, Google Flutter Enthusiast & Developer says: ” A key factor in the success of the app is the cost (in terms of money and time) of introducing an app to stores. This is where Flutter really shines. It offers a real opportunity to write once and deploy everywhere. “
Advantages: increased productivity
Disadvantages: none!
Widget, widgets and other widgets
Widgets are essential to the view and interface of an application. They should be beautiful and natural regardless of the size of the screen. They must be fast, extensible and also customizable. Flutter makes it all happen by providing its own widgets.
You see, Flutter has a widget for everything. Dig deeper and you will find that each widget is made up of smaller widgets. These widgets are in turn made from even smaller widgets. In fact, you program with widgets, which is again a productivity booster. David DeRemer of Posse says: ” Flutter’s ‘everything is widget’ approach allowed us to easily compose custom user interfaces from a rich set of building blocks provided by the framework. And, because Flutter works on iOS and Android, we were able to spend our time creating beautiful designs instead of wearing the user interface. “
Advantages: increased productivity
Disadvantages: None
All good?
From what I understand, designing with Flutter is a completely refreshing experience compared to what the developer has had so far. In addition to the benefits listed above, there are a few others. For example, it is run from the command line. You can therefore use it with any IDE and the configuration of the project is simplified. In addition, there are plugins for Intellij, Android Studio and VS Code. Most importantly, Flutter is Google’s baby. Having a big name and following support is a huge development and support benefit. So where’s the catch?
Delicate spots
It should be noted that not all Google products or platforms are successful; the perfect example being the massive adoption of the Dart language, with which it is associated. Second, unlike the Ionic and React Native platform, Flutter is reserved for mobile applications. So there is no support for running in a web browser. This could be a great decision maker if you’re looking for more device-specific flexibility. Finally, Flutter is in beta and has just moved from Alpha to beta. So there is still time for Flutter to mature and be ready for production.
Verdict?
Everything new is unexplored territory and brings with it its usual share of unpredictability. However, all things considered, Flutter, to me, seems to be an extremely promising step forward in application development. The Hamilton app , for example, was developed and launched in just three months. While Google’s mobile development platform Firebase was used for the backend and infrastructure, the front end was developed using Flutter.
What are you working on?
Are you looking for intelligent technological solutions? Would you like to be consulted on your future projects? Need a quote for services? Contact Elitch Systems executive team directly. It’s amazing how quickly a small email can speed up your productivity.
Comments are closed.