There is overwhelming attention to Flutter, a relatively new programming language that has already received a lot of positive feedback. Does Flutter suit every app? What are the advantages and disadvantages of Flutter? What does it offer for product owners, end-users and software developers?
This flutter review tells about what Flutter does, what you can do with Flutter, how big is the Flutter community and support. We also have feedback from the Inoxoft iOS developer about the future of Flutter, what risks it sets, what awesome advantages it offers for business owners and engineers.
What is Flutter?
Flutter is an SDK (Software development kit), but not a language, introduced by the Google development team as an open-source project. Putting it simply, Flutter is a robust UI framework for building native apps with responsive design: layouts as you need, smooth transitions between pages, any kind of animations, clicky 3D buttons, syncfusion gauges and other elements. Not only Flutter is for easy UI development and attractive design, it allows engineers to build code for iOS and Android simultaneously. According to the official website:
Flutter is a UI toolkit for building iOS and Android mobile applications from a single codebase.
It means one Flutter engineer can develop a cross-platform app at once. Product owners can breathe a sigh of relief as hiring one flutter software engineer will substitute hiring both iOS and Android developers as usual. Pleasant outcome — saved time and money spent on development.
What about software development companies?
Benefits of Flutter such as enjoyable cross-platform development, hot reload, high performance, and first-of-class animations have already stated: there are very little worries for software companies about Flutter insufficiencies. Over again, Flutter is getting popular and adored. React companies are now shifting to Flutter and add it to the list of their software development services. It is because Flutter is an alternative to React Native and copes with mobile development as well perfectly. Opportunity to appear innovative on the market and offer flutter services and consultations bring value to companies’ growth. Here’s how Chris Sell, project manager at Google Flutter Team tells about people’s reaction to Flutter in Announcing Flutter 1.17:
They report that “adding Flutter to our core offerings has unlocked added speed and flexibility, which translates to real, measurable value for both our clients and their users”.
Dart language in Flutter
When the Flutter team was deciding on a programming language for Flutter, they needed the one that could work fast on any platform. That’s why they chose Dart – a programming language that has been started by Google. Dart compiles Flutter into native code, while Flutter uses Skia, the graphics engine, to draw User Interface components from scratch. With Skia the most complex animation will work fast. In Flutter, you can see UI changes being drawn directly on your screen as you make them. One more peculiarity of Flutter is a pleasant feeling of not being constantly afraid that your code will break in runtime one time.
Dart features resemble features of both static and dynamic languages. That’s why, for those engineers who know Java, Swift and C# it will be easy to switch to Flutter. Intro to Dart for Java Developers will help Java engineers learn Dart on their own.
Being an iOS developer with an experience in C# and Swift switching to Flutter didn’t constitute difficulties at all. I learned Flutter in almost two weeks and syntax was truly easy to remember
Dart Virtual Machine is built by the team who developed V8 Chrome Engine whose target was to reach an impressive speed in development. They managed to create a VM snapshot that improves application startup by 10 times.
Dart Language source code is compiled into native code using AoT (ahead of time) compilation. It is a time-efficient feature in Flutter development which is responsible for faster startups and execution. “The AOT compiler is typically used when the app is ready to be deployed to either an app store or an in-house production backend.” Besides, Dart VM uses a JIT (just in time) compiler which works well for dynamic languages. JIT comes into force when engineers do HOT reload to see changes instantly. More about JIT and AOT compilation you can find out in How does JIT and AOT work in Dart?
Hot reload is Flutter’s amazing feature that significantly reduces development time. Hot reload allows you to quickly add new features, fix bugs and view changes of UI instantly. Do as many changes as you need and experiment on the fly. There is a concern about how flutter can cope with large projects and whether Hot Reload can slow down as the project gets bigger and how much. Swav Kulinski, Flutter enthusiast has experimented on hot reload effectiveness and that’s what he found out:
“So it depends on how many classes we modify, not on the size of the project itself. Flutter reloaded 80 widgets in 80 packages in slightly more than 1.2 seconds….I must say, Flutter’s hot reload is really impressive.”
Flutter runs animations at 60-120 FPS (frames per second). In comparison, React Native achieves 60 FPS. For performance of 60 fps, frames render approximately every 16 ms. The 120 FPS performance is possible on devices capable of 120 Hz updates that refresh display twice as fast as 60 Hz displays do.
When it’s clear with numbers, let’s shift to what Flutter keeps inside – Flutter widgets. In Flutter everything is a widget. Putting it simply, these are ready-made instruments to quickly and easily build application features not inventing the wheel yourself. They are easily customizable, clearly described and sorted in the Widget catalogue by Flutter team. Want to add interactivity and make your icon tappable for users? Create a custom widget yourself.
Adding alluring animations to your app and experimenting with design on the spot has never been easier. Flutter has an extensive list of animation and motion widgets. Video tutorial Which Flutter animation is right for you? will lead you into the basics of animating in Flutter and navigate further to what is:
Reduced amount of testing
Flutter takes less development time that directly means you need less time to test the app. Besides, engineers and designers can cooperate together and experiment with design, seeing how it looks just on the spot, Flutter’s documentation fairly deserves respect. It offers flexibility and clarity in organizing and architecting your applications easily.
Ideal technology for startups
Startups flourish if their MVP is successfully delivered on time and entering the market the app features have all chances to impress end-users. Flutter benefits come into play particularly for startups, once again giving an opportunity to develop faster both an iOS and Android app at a very attractive price. Firstly, with Flutter project startup is faster than with React Native. Secondly, the quality of the application is high, it’s completely secure and functionality is awesome. Whether you need video integration or a bar code scanning system, Flutter engineers can do everything for you. If you are interested in creating MVP with Flutter, do not hesitate to contact us and receive all information you need to start the project confidently. Examples of apps built with flutter:
Now more about “inventing the wheel” in Flutter. Pub.dev — package manager allows you to integrate third-party libraries into Dart, share your code and install libraries from other developers’ code. It’s true that flutter packages help a lot as they do in any other framework. However, Flutter still lacks libraries for specific animated elements that you’d like to implement for your Flutter app. When there’s no existing package for your element, just take time and spend the effort to create it. This is the case when you have to invent the wheel and create a library yourself — 100% possible, though a time-consuming job.
The code in Flutter has a tree-view structure. Each container will include a pretty great number of rows of code. With each subsequent row, the indentation from the left edge is getting bigger. The challenge is how to structure your code and make it readable within weeks of work:
“Since everything is pure Dart and nothing like JSX is happening, everything is a widget and highly customisable, which starts to make a mess quite easily. It takes some time and a bunch of tries and errors to understand how to structure your code to keep it readable after 2 days”
Though it is a matter of getting used to Flutter code structure up to automatic habit, maybe the Flutter team will invent something to handle this issue. Large-scale projects always demand more efforts, time and resources to be developed. If you need specific custom solutions, there is a risk Flutter lacks the necessary functionality at once. However, choose React Native and you’ll never know when to be ready for code compilation issues. On this background, code redundancy in Flutter is not so distracting indeed.
None of the existing languages or frameworks can survive without community and support from engineers who contribute to its improvement. Flutter team seems to react very enthusiastically to issues and contributes fruitfully to updating and improving the SDK. Flutter was in its Alpha and beta versions that restricted engineers at some point. However, the latest edition Flutter 1.17 is live and opens new horizons for engineers and the pace of development is very rapid.
Flutter competes with React Native with very satisfying ranks on GitHub. It receives 93.3 k starts beating React native with 87.6 k stars. That’s a lot. Flutter team is open and their Internet presence evokes trust and confidence as they share news and knowledge. They seem to be very attentive and contributive. From video tutorials on the official site, you can go through their Medium articles. They also have open channels in Slack, StackOverflow forum, Gitter and Meetup, Reddit. On Reddit (Will Google give up Flutter?) Flutter review receives very promising comments from engineers with solid experience:
“Flutter has the best developer experience I have seen.”
Finally, Flutter packages are growing which is very promising. Google empowers Flutter with a lot of perspective and doubtedly, Google development team won’t be ready to lose such a project. In two years, Flutter has reached sky-rocket results that leave React Native on the fair second place. Whether React Native will be killed by Flutter is the only matter of time with such a fantastic devotion of the Flutter team to this technology. Choose Flutter development services to reduce development costs by half. Consult our experts to learn the advantages and disadvantages of Flutter for your project.