Introduction To Flutter
Flutter is an open-sourced mobile application Software Development Kit (SDK) created by Google to build beautiful Native Apps on iOS and Android from a single codebase. It uses Dart as a programming language.
- Open Source: You can study, change and redistribute Flutter source code from Github. Make sure you comply with the License before you choose to redistribute.
- SDK: Besides the core library, it includes other contents like package management tools (Pub), shell, test supports, etc. to help in development.
- Native Apps: Unlike other Hybrid Apps that display UI components in Web View, Native Apps use platform-specific engines and are tightly integrated into Operating System.
- Single Codebase: You write a single code in Dart but build an App for different platforms.
- There are other multiple options (React Native, Xamarin, etc.) similar to Flutter that you could use to develop Native Mobile Apps. This section describes what features Flutter provides and contrasts between them.
1. Hot Reload
Any changes in your app code are Just-In-Time (JIT) compiled and injected to the running app that will help to visualize changes without closing and re-running the app again.
2. Pre Built UI Elements
Flutter has ready-to-use UI elements (like input elements, date picker, etc.) that you can use to develop a fast prototype and build a finished app with little customization.
Flutter provides full native performance both in iOS and Android. Its widget incorporates all critical platform differences such as basic animation like scrolling, navigation, and displaying icons and fonts.
4. App State Management
App States is an important concept to reason what your UI layout should look like and how should it behave in every next action. You can start from basic Stateful Widget to Redux/Flux pattern to even more advanced concepts like Streams for Business Logic (BLoC).
Some More Features:
- Built-in Support for Unit Testing
- Built-in Option for Themeing
- Support for writing Platform specific Native Codes
- Growing Community of Developers