13 Reasons Why you should choose/ consider to move to Flutter

13 reasons why you should “Come to the Dart Side & choose Flutter for development of your next app or to learn Flutter to develop app.

Businesses these days need to make critical choices on their selection of mobile technologies. They’re constantly testing and evaluating technologies so as to form powerful digital experiences, regardless of the user’s mobile device or operating system. Organizations that fail to produce products and services that are simple to use, regardless of channel or device, risk falling behind the competition.

The challenge is that cross-platform development can be problematic. In several cases, despite a developer’s best efforts, the user experience lags behind that of actual native apps. In recent years we’ve seen the emergence of various mobile frameworks like React Native, Xamarin and AngularJS that help make it easier to produce these digital experiences. Recently we’ve seen a new player enter the game — Google’s Flutter.

At its heart, Flutter might look like a hodgepodge of various Google technologies and concepts, however this results in an improbably powerful mobile framework. It’s based on Dart, Google’s in-house programming language, which gives Flutter access to the Skia graphics library — which is what Chrome uses. Additionally, Flutter works closely with Google’s Material Design specifications; most famous for the “card motifs” that Android users have come to know.


Let’s see 13 reasons to choose Flutter as your development environment or even to start off your career in flutter.

1. Flutter overcomes the traditional limitations of cross-platform approaches.

Creating a truly cross-platform approach has long been the bane of tech consultants tired of having to make multiple versions of identical product. However, in reality, the user experience typically lags behind that of native applications, because you often end up building the UI experience in JavaScript that has to be Just In Time compiled.

With Flutter, you not only have the advantage of a “write once” approach, you create a high performance, “native” experience because a Flutter App is an Ahead Of Time compiled, machine binary executable. It overcomes several of the normal challenges that go with cross-platform approaches. 
 
2. Developers increase productivity ten-fold.

This increase in productivity comes from Flutter’s “hot reload” (A.K.A “Stateful Hot Reload” and “Hot Restart”. Together, these allow developers to see changes they make to the state of an app in less than one second; and changes to the app structure in less than ten.

There’s no need to run another Gradle build— you see your modifications as soon as you save. For developers, this is often very easy to master — there’s little or no learning curve concerned in using the “hot reload” because by default it happens every time you save. However, the advantages are vital. Development time is often reduced by 30–40% because the Gradle rebuild times that slow Android developers down typically take longer with every modification being applied.

3. Frontend & Backend with a single code

Unlike in Android coding, where there are separate files for fronted (Views) which are referenced by backend (Java), flutter uses a single language (Dart) which does both the job and uses a reactive framework.

Dart has been built on a lot of the most popular features of other languages without losing the familiarity of Java or similar languages.Dart was built with the developer’s ease in mind and thus makes a lot of common tasks much more easier. You can learn more about Dart here : Dart Language Tour.

4. It’s a powerful design experience out of the box.

Due to the Flutter team’s careful implementation of the Material design specification, it’s easy to create powerful UI experiences right out of the box. It helps produce the smooth, crisp experience you typically only see with native applications because Flutter’s release build is a native application.

Flutter has widgets that implement the Human Interface Design specifications for iOS, allowing you get that native “feel” on iPhone and iPad as well.

5. There is an extensive catalog of open source packages.

The large set of open source packages available helps you create apps faster, with ease, and there are a lot of packages current available which make many complicated tasks much easier. Although still relatively young, the package library is growing by leaps and bounds every day thanks to an ever growing population of developers actively contributing to Flutter.
 
6. Straightforward integration with Firebase.

Firebase provides out of the box support for a collection of services such as cloud storage, cloud functions, real time databases, hosting, authentication and a whole lot more. Your infrastructure is instantly serverless, redundant and scalable. This means you don’t have to spend a lot of time and resources building the backend. It’s also straightforward to combine it with a tool for automating your development and release process like Fastlane; facilitating Continuous Delivery. Therefore you don’t have to have dedicated DevOps support in your team.

7. Flutter has support for a variety of IDEs.

When coding with Flutter you can choose from a number of Integrated Development Environments. At first I started off with Android Studio, but then I saw Flutter Live where they were using VS Code. That got me wondering, and I found that a lot of Flutter developers use Visual Code. When I tried it I could see why so many prefer it. VS Code is light weight and much faster, and has most the features available in Android Studio and IntelliJ. Personally, I’ve made the move to VS Code but you can use a number of other IDEs as well, You don’t need to switch in order to start working in Flutter.

8. UI Compliance — Everything is a Widget.

In flutter everything is a widget, the Appbar, Drawer, Snackbar, Scaffold, etc. It’s easy to wrap one Widget inside another to give this to do things like center something, by wrapping it in a Center Widget. This is all part of helping make sure your users have a n experience no matter what platform they’re running on.You should read the following documentation from flutter as well : Everything’s a widget.

9.Different themes for Android/iOS

Assigning the proper theme for a user’s platform is as easy as using a ternary if to check which platform the user is running on; allowing your UI to make run time decisions about which UI components to use.

Here’s a sample code to do the same, it check’s the current platform and if it’s iOS, it returns a theme of purple primary colour.

return new MaterialApp(
// default theme here
theme: new ThemeData(),
builder: (context, child) {
final defaultTheme = Theme.of(context);
if (defaultTheme.platform == TargetPlatform.iOS) {
return new Theme(
data: defaultTheme.copyWith(
primaryColor: Colors.purple
),
child: child,
);
}
return child;
}
);

10. Continuous integration using Code Magic.

Code magic is an open-source tool featured in Flutter Live on December 4th, 2018. Code magic is easy to learn and completely free! It’s a highly sophisticated CI tool, optimized specifically for Flutter. Code magic makes build processes seamless.

Code Magic in action

11. Animations are even easier using 2Dimensions Flare.

My first try with Flutter +Flare — Bouncy

Also introduced during Flutter live 2018, this amazing online tool can be used to create extraordinary UI or animations with ease. It bridges the gap between the UI designer and the developer, reducing the time required to apply UI or animation related changes.

I have have used Flare and I was amazed at the simplicity of creating animations; with very shallow learning curve! You can see the app working here, I even added a refection to the ball, giving it a more realistic look.

12. Flutter on desktop and the web.

Everyone was stunned by the revelation that the Flutter team now has prototype Flutter apps working in a web browser. The previously Top Secret project, “Hummingbird” was unveiled to the world during Flutter Live. Soon, you’ll be able to use the same code to create apps for mobile, desktop and the web with ease.

13.Continuous Support from the Flutter team & Flutter Community.

I’ve been working with Flutter over the past 3 weeks and have noticed a lot of support and encouragement from the Flutter team & Flutter Community; especially Scott Stoll, Nilay Yener and Simon Lightfoot, just to name a few. Every Wednesday many of the better known names in the Flutter community are available on Zoom at #HumpDayQandA, where you can get live help with Flutter from real human beings. It’s a great place to be even if you don’t have any questions of your own, because you learn a lot just from listening to them answer the questions of others.

That’s me attending #HumpDayQandA. Tweet by Flutter GDE Amed Abu Eldahab, creator of Flutter Egypt

The value of using Flutter is easily apparent and highly attractive, because it alleviates many of the pain points faced by startups trying to release to multiple platforms; especially when dealing with limited time and budget to get the software product to market.


This is my first article in medium and if you liked this article, please support me by clapping your hands👏 as many times as you can. I would love to read your thoughts about the article and also if I had missed to mention any important point, please mention it in the comments below.

Hi, I am Ganesh S P. An experienced Java developer, extensive creative thinker and an entrepreneur and a speaker, now venturing into the world of Flutter. You can find me on LinkedIn or in github or follow me in twitter. In my free time I am a content creator at GadgetKada. You could also mail me at ganesh.sp006@gmail.com to talk anything about tech.