Flutter first appeared in 2015 during Dart Developer Summit at that time its name was Sky. Flutter is a portable UI development kit created by Google. It is used to develop applications for Android, iOS, Linux, Mac, Windows and web from a single codebase.
Advantages of Flutter
- Fast development: As flutter allows same code base to develop application fro iOS and android, it saves a lot of time and money. Flutter’s hot reload feature preview app during development that helps to find and fix bugs relatively more faster
- More control and faster rendering: Flutter allows better control over application because of its layered widgets architecture
- Separated UI and native controls: Flutter eliminates a lot of errors made by smartphone manufacturers. This provides a unified view on all system versions.
- Access to native features: Hardwares like camera, gyroscope or geolocation needs access to native features. These features are implemented using native languages. Flutter allows reuse of existing code in JAVA, Objective-C and Swift to access native features and SDK on android and iOS.
Disadvantages of Flutter
- Limited Libraries: Flutter is relatively new to other popular mobile development frameworks. There are cases where you could not find supporting libraries for each of the features required. Native apps have support of large repositories and it is relatively easy to find required libraries. It is easy to find native SDK for Stripe integration, Twilio but with Flutter you may need to build these libraries with your own.
- New Language: Flutter uses completely new languages called Dart because of that a developer needs to learn Dart programming language first before starting developing for Flutter.
- Mixed Framework: In flutter there is no clear separation between UI and logic, though it can be solved by breaking code into small modules.
- Large App Size: Flutter apps are generally large in size and because of that it takes more time to download or update applications. Flutter apps are large in size because they contain core engine, framework, ICU data and readme file etc with their build output.
- Look and Feel is not 100% the same as Native applications: Flutter does not create native components. It somewhat replicates them hence their look and feel is not same as of native components
Flutter is currently best fit for prototyping and less complex production application projects. There is alot of buzz in the developer community for Flutter. Google Ads, Alibaba, Reflectly are some of the popular applications developed in Flutter. This shows that even big companies are using flutter for their production applications.
Flutter is in demand due to its ability to give high performance applications with a simpler and platform agnostic development process.