Flutter for Developing Mobile Applications

What is Flutter?

Flutter is an open-source mobile application development SDK created by Google. It is used to develop applications for Android and iOS, as well as being the primary method of creating applications for Google Fuchsia. Flutter doesn’t replace the traditional Apple and Android app models for building mobile apps; instead, it’s an app engine that you can either embed into an existing app or use for an entirely new app.

The first version of Flutter was known as “Sky” and ran on the Android operating system. It was unveiled at the 2015 Dart developer summit, with the stated intent of being able to render consistently at 120 frames per second. During the keynote of Google Developer Days in Shanghai, Google announced Flutter Release Preview 2 which is the last big release before Flutter 1.0. On December 4th, 2018, Flutter 1.0 was released at the Flutter Live event, denoting the first “stable” version of the Framework.

Introducing Flutter

Flutter doesn’t replace the traditional Apple and Android app models for building mobile apps; instead, it’s an app engine that you can either embed into an existing app or use for an entirely new app. We think of the characteristics of Flutter along four dimensions:

  • Flutter enables you to build beautiful apps. We want to enable designers to deliver their full creative vision without being forced to water it down due to limitations of the underlying framework. Flutter lets you control every pixel on the screen, and its powerful compositing capabilities let you overlay and animate graphics, video, text, and controls without limitation. Flutter includes a full set of widgets that deliver pixel-perfect experiences on both iOS and Android. And it enables the ultimate realization of Material Design, Google’s open design system for digital experiences.
  • Flutter is fast. It’s powered by the same hardware-accelerated Skia 2D graphics engine that underpins Chrome and Android. Flutter code is powered by the world-class Dart platform, which enables compilation to native 32-bit and 64-bit ARM code for iOS and Android.
  • Lastly, Flutter is open. Flutter is an open source project with a BSD-style license and includes the contributions of hundreds of developers from around the world. And because every Flutter app is a native app that uses the standard Android and iOS build tools, you can access everything from the underlying operating system, including code and UI written in Kotlin or Java on Android, and Swift or Objective-C on iOS.

Why Flutter?

1.Fast Development

Paint your app to life in milliseconds with stateful Hot Reload. Use a rich set of fully-customizable widgets to build native interfaces in minutes.

2.Expressive and Flexible UI

Quickly ship features with a focus on native end-user experiences. Layered architecture allows for full customization, which results in incredibly fast rendering and expressive and flexible designs.

3.Native Performance

Flutter’s widgets incorporate all critical platform differences such as scrolling, navigation, icons and fonts to provide full native performance on both iOS and Android.

What differentiate from other cross-platform frameworks?

Native OEM

Native app creates widgets to communicate between widgets or we can say view and platform services like camera, battery etc.Its native languages like Java for Android and objective C for iPhone/iOS.

Web View Frameworks

WebView frameworks like PhoneGap, ionic, or we can simply say Cordova based framework uses WebView to render UI and uses Cordova to communicate between platform services and views.

Reactive View Frameworks

Rective view frameworks like React Native or Mercury create WebView programmatically, so that rendering and smoothness will increase.

 

Flutter.io

The Flutter development experience is powered by Dart compiler/VM technology, allowing you to load code changes into a running app while retaining the app state (including the place you’ve navigated to). Hit save and you’ll see the effect of the change on device in less than a second. As Flutter uses AOT Dart language, also flutter removed javascript bridge so performance is increased.

Pros:

1. Faster code writing

For developers, Flutter means faster & more dynamic mobile app development. We can make changes in the code and see them straight away in the app! This is the so-called Hot reload, which usually only takes (milli)seconds and helps teams add features, fix bugs and experiment faster.

Hot reload is also very comfortable in developer-designer cooperation when we want to improve or experiment with an app’s look and check the effects on the spot. In other words, with Flutter, your designer or tester can work together with a developer on the UI, making changes – for example, “Put it 2 pixels right” or “Make the animation faster” – and see them immediately. Most types of code changes can be hot reloaded. But there is a list of changes that require a full restart: Hot reload Limitations.

2. One code for 2 platforms

Developers write just one codebase for your 2 apps – covering both Android and iOS platforms. Flutter doesn’t depend on the platform, because it has its own widgets and designs. This means that you have the same app on two platforms. Yet what’s important is that, if you want to differentiate your apps – it’s possible.

3. Less testing

If you have the same app for 2 platforms, it means less testing! The Quality Assurance process can be faster. Because of one codebase, the developers write automatic tests only once. What’s more, Quality Assurance specialists have less work to do, because they have only one app to check. Of course, if your apps have some differences, they need to be tested on both platforms.

4. Faster apps

Flutter apps work in a smooth and fast way, without hanging and cutting while scrolling. If you want to understand why and how it works from the technical point of view.

5. Designs which your users will love

Flutter is designed to make it easy to create your own widgets or customize the existing widgets. Here. you can browse a catalog of Flutter’s widgets and view, for example, Material Design widgets and Cupertino widgets.

6. The same app UI on older devices

Your new app will look the same, even on old versions of Android and iOS systems. There are no additional costs for supporting older devices. Flutter runs on Android Jelly Bean or newer, as well as iOS 8 or newer.

7. Perfect for MVP

Do you need an MVP (Minimum Viable Product) for your app to show it to your investors? Flutter will be perfect, especially if you have little time.

Cons:

1. Flutter is still in beta

In April 2018, Flutter beta 2 has been announced. The Flutter team hasn’t released the stable version yet. “Our APIs are stabilizing, and we continue to improve parts of the system based on user feedback. Some key features are not yet ready for broad deployment” – we read on the official Flutter website. So this means that we can expect changes and improvements that can demand future changes in our code if we ship an app before the stable version of Flutter is ready.

2. Libraries & support – impressive, but still not so rich as for the native development

Google support for Flutter is impressive and there are many helpful libraries with functionalities ready to be implemented. But Flutter is still new and not every functionality which you need can be found in these libraries. This means that your developers would need to build them by themselves, which can be very time-consuming. However, we can expect that the support for Flutter will improve at a rapid pace. What’s more, the Flutter team is actively involved in supporting Flutter users by frequent solving and answering requested issues.

3. Continuous Integration support

Since Flutter is still in beta, it is not widely supported by CI platforms like Travis or Jenkins. So, to achieve automatic building, testing, and deployment, your development team needs to use and maintain custom scripts like this one.

In our opinion, Flutter has many more advantages for business and development teams than risks. It’s a great chance to build beautiful, high-performance and outstanding mobile apps which fit your custom needs and requirements. It’s worth considering Flutter, especially if you want an app for iOS and Android.


Author: Ravi Kumar Allaka – QA Analyst
Source: www.ileafsolutions.com