Introduction:
Flutter is an open-source, multi-platform SDK which can be used to build Android, iOS, Windows, Mac, Linux, and the web apps with the same source code. Flutter has been around for a long time, but it has started getting more attention since Google I/O 2018 when Google announced release preview of Flutter. At Flutter Live on 4th December 2018, Google announced the first stable version of Flutter with loads of new features. Some big companies like Alibaba are already using it for developing mobile apps.
Dart platform:
Flutter apps are written in the Dart language and make use of many of the language's more advanced features. On Windows, macOS and Linux via the semi-official Flutter Desktop Embedding project, Flutter runs in the Dart virtual machine which features a just-in-time execution engine. While writing and debugging an app, Flutter uses Just In Time compilation, allowing for "hot reload", with which modifications to source files can be injected into a running application. Flutter extends this with support for stateful hot reload, where in most cases changes to source code can be reflected immediately in the running app without requiring a restart or any loss of state. This feature as implemented in Flutter has received widespread praise. Release versions of Flutter apps are compiled with ahead-of-time (AOT) compilation on both Android and iOS, making Flutter's high performance on mobile devices possible.
Flutter vs native Android app development:
Native Android app development is in an interesting state at the moment. Recently, Google announced Kotlin as the official language over Java.
There is no doubt that native Android apps developed with Android Studio are great in features and slick. On the other hand, apps developed with cross-platform solutions can be easily spotted and it feels like there is something missing. However, ever since Flutter apps landed in app stores, there is no way to tell that the apps were built with Flutter. The apps feel so slick, native and smooth. So what is it about Flutter that makes apps feel more or less native?
Quite a few native Android developers have expressed their opinions on Flutter online. Also, there's hot discussion on Quora if Flutter is going to replace Java and native Android development. Looking at all these articles, it's clear that native Android developers cannot ignore Flutter for sure.
Flutter is surely different from the native Android development tools. Flutter's official documentation has a clear guide on Flutter for Android developers, mapping the concepts of native Android development to Flutter.
Some of the features offered by Android Studio are:
1. Flexible Gradle-based build system.
2. Build variants and multiple APK generation.
3. Expanded template support for Google Services and various device types.
On the other hand, Flutter provides the following key features:
1. Fast development - Flutter's "hot reload" helps you quickly and easily experiment, build UIs, add features, and fix bug faster. Experience sub-second reload times, without losing state, on emulators, simulators, and hardware for iOS and Android.
2. Expressive UIs - Delight your users with Flutter's built-in beautiful Material Design and Cupertino (iOS-flavor) widgets, rich motion APIs, smooth natural scrolling, and platform awareness.
3. Access native features and SDKs - Make your app come to life with platform APIs, 3rd party SDKs, and native code. Flutter lets you reuse your existing Java, Swift, and ObjC code, and access native features and SDKs on iOS and Android.
Conclusion:
"Android studio is a great tool, getting better and bet " is the primary reason why developers consider Android Studio over the competitors, whereas "Hot Reload" was stated as the key factor in picking Flutter.
Flutter is an open source tool with 69.5K GitHub stars and 8.11K GitHub forks.
Google, Lyft, and 9GAG are some of the popular companies that use Android Studio, whereas Flutter is used by Hybrid Heroes, Policygenius, and pludoni GmbH. Android Studio has a broader approval, being mentioned in 928 company stacks & 692 developers stacks; compared to Flutter, which is listed in 42 company stacks and 146 developer stacks.
amazing post for android developer