The first version has been there for a while and this year in February Google launched the beta version of Flutter.

Flutter is google’s open-source mobile UI framework that helps developers build native interfaces for Android and iOS. The library is designed to combine the performance and platform integrations of native mobile with the rapid development and multi-platform reach of portable UI toolkits.

In conversation with us Qaifi Khan in an elaborate interview to explain to us in detail about Flutter. Qaifi is also a learning enabler at www.edYoda.com‘ .

 What is Flutter:

Flutter is the new cross-platform application development framework released by Google. It is still in beta phase, the last preview release was in June ’18.

Flutter has built-in widgets, rich Motion APIs, smooth scrolling, and platform awareness. Flutter uses widgets to define application components. In Flutter everything is a widget. These widgets are react-based which gives Flutter the power of React framework.

Flutter is written in Dart, which is a language used at Google for building client facing applications for Android, iOS, and Web. Dart is very simple to learn, if you already know C# or Java, you can start working with Dart in just a few days.

2.Is it here to revolutionize app development?

Flutter is written in Dart which can be used for developing applications for Android, iOS, and web.

  • For businesses, this means they don’t need different teams to work on different platforms, just one team can take care of it.
  •  For developers, as I said earlier if you have worked on technologies like JAVA or C# then getting comfortable with dart is a task of couple days.

Currently major part of application developer community is hesitant in opting for Hybrid Application Development because of several issues like application performance, user experience, native feel, backward compatibility and a lot more, Flutter provides solutions to a lot of these issues.

So what I feel is Flutter will be an optimum cross-platform application development framework and it will fill the gaps in current cross-platform frameworks.

 

3. What are the pros and cons of app development?

PRO CONS
Fast Development:

It provides Hot Reload that means no need for a complete build for every small UI change. You just need to save the changes and they will be reflected in your application.

 

 

Community:

Flutter is very new so there is not a huge community out there to help if you get stuck but you can always write your own wrappers and plugins.

 

Dart:

Flutter is written in Dart which compiles into ARM and x86 code which runs natively on Android and iOS and really improves the performance especially in terms of startup time and animations.

 

Flutter in Beta:

Flutter is still in beta but a lot of developers are waiting for it to be production ready and a lot more have already started working on it.

 

 

Widgets:

Flutter does not uses OEM Widgets or DOMWebViews. It has its own sets of widgets – Material for Android and Cupertino for iOS. Flutter doesn’t just provide us with an application which runs on both Android and iOS but also provides us with options to customize the same widget for different platforms.

 

Dart:

The language is not much used by the developers out there but it’s really simple to learn and it comes with its own set of benefits.

 

Platform Aware:

Flutter provides us with options to customize widgets for different platforms which helps us respect the design guidelines for the platform.

 

Backward compatibility:

The widgets are a part of the application and not the platform, they look and feel the same on different versions of Android and iOS and this significantly reduces our efforts for supporting and testing the app on older versions.

 

 

 

4.Difference between flutter and react native apps

 Dart:

Flutter uses Dart which is rather new and not much adopted as compared to JavaScript which is used by ReactNative but on the other hand Dart compiles into native ARM Code which is faster for communicating with the underlying OS than a JavaScript bridge.

Initial Setup:

In React some native modules need to be connected manually but in Flutter everything is connected automatically, we just need to add the packages in public specification file and then run the command “flutter packages get”. Everything just gets installed perfectly like a breeze.

 

Industry Adaptation:

Flutter is still very new and React Native has been in the market for quite some time so React Native has more industry adaptation than Flutter.

 

Documentation:

Flutter has a very comprehensive and well-organized documentation whereas on the other hand documentation for React Native is not well-organized and is missing on a lot of things.

 

Development Tools:

Flutter supports development on Android Studio, VisualStudio Code, IntelliJ idea which means you can develop apps in whichever of these IDEs you are comfortable with. It provides some really cool features like Hot Reload, Analyser etc.

5. Describe testing for the apps built through flutter.

Flutter supports three types of testing:

1.Unit Testing:

It tests a single function or class. It doesn’t render anything on the screen or read/write to disk. The purpose of Unit Testing is to test the logic of a single unit in our application. We need to use “package:test” for unit testing.

2.Widget Testing:

It tests a single widget. It involves multiple classes and hence is more comprehensive than a unit test. The purpose of a widget test is to verify that the widget looks and functions as expected. We need to use “WidgetTester” utility for widget testing.

 

3.Integration Testing:

It tests the complete application or a major journey. It runs on a real device or an android/iOS emulator. The purpose of integration testing is to check whether the application/journey runs correctly as a whole and all the widgets interact with each other as intended. We need to use “flutter_driver” for integration testing.

 

6.Do you recommend it ?

I feel Flutter is gonna be the next big thing in Mobile Application Development.

Yeah it is just in beta phase but it already is creating enough buzz, developers from all around the globe are talking about it, everyone is making amazing applications using Flutter. Android groups on different social platforms are converting into Flutter groups. The framework seems very promising, I am personally working on converting a few of my applications into Flutter for production.

As a developer the work experience is really good, it’s really fun. As a company I just need developers working on Dart so that a single team can work on Android, iOS and web. As a user, I get beautiful applications for my mobile devices. The way I see, it’s a win-win situation for everyone out there 🙂