Google launched Flutter 2.0 in March 2021, with IT experts and developers citing it as a landmark launch for mobile app development using Flutter. Flutter has been broadened from being a cross platform mobile app development framework to a portable UI toolkit, unleashing apps to run on a wide variety of different platforms with little or no change.
While Flutter was conventionally for Android and iOS app development, the latest version update has extended its services to other platforms such as Mac, Windows and Linux. Flutter 2.0 can even be embedded in cars, TVs, and smart home appliances, thus providing a pervasive and portable experience.
What is Google Flutter?
Before we dwell into mobile app development using Flutter, let’s talk about Flutter a little. Flutter is a hybrid, open-source UI toolkit by Google that helps developers use a single codebase to build native applications for mobile, web, and desktop. This versatile ability has relieved developers from the tedious task of toggling cross platform mobile app development, just to accommodate different operating systems. Mobile app development using Flutter works on the Flutter SDK framework, making it highly capable of rendering highly flexible and expressive UI.
The core of Flutter is the use of widgets, with each widget consisting of a structural, stylistic, or layout element incorporating all critical platform differences such as scrolling, navigation, icons, fonts, etc. Flutter’s goal is to fundamentally shift how developers think about cross platform mobile app development, starting not with the platform being the focus but rather, the application itself. Global giants such as Ali Baba, eBay, and BMW are some of the names that Flutter boasts as its ardent users.
Mobile App Development Using Flutter: Latest Offerings
With comprehensive support for the web platform, Flutter has enhanced the reusability of code. Flutter’s early foundation of the web was document-centric. But the web platform has evolved to encompass richer platform APIs that enable highly sophisticated apps with hardware-accelerated 2D and 3D graphics and flexible layout and paint APIs. Flutter’s web support builds on these innovations, offering an app-centric framework that takes full advantage of all that the modern web has to offer.
In addition to the HTML renderer, Flutter 2.0 has also come up with a Canvas-Kit-based renderer. Moreover, it also comes up with a Link widget which enables developers to give a web-app-like feel in the browser.
- Sound Null Safety
The addition of Sound null safety to the Dart language will enable developers to distinguish between non-nullable and nullable types and prevent null error crashes during the course of Mobile app development using Flutter.
- Desktop and Other Devices
Flutter has also extended its support to Desktop applications. Flutters 2.0 now enables developers to offer a native-like experience on each of the platforms with notable features like accurate mouse dragging, text selection pivot points, built-in context menu among many.
The addition of an updated scrollbar widget has improved interaction in the desktop app as developers can now use their thumb to navigate. The desktop app also shows page and down tracks.
Additionally, Microsoft is continuing to expand its support for Flutter. In addition to an ongoing collaboration to offer high-quality Windows support in Flutter, Microsoft is releasing contributions to the Flutter engine that support the emerging class of foldable Android devices. These devices introduce new design patterns, with apps that can either expand content or take advantage of the dual-screen nature to offer side-by-side experiences.
With Flutter’s latest version, developers can now seek support for functionalities like native-like text editing, native top-level menus, and accessibility support.
- Google Mobile Ads
Google has introduced an open beta for Google Mobile Ads Flutter SDK. This is a brand new plugin that provides inline banner and native ads, in addition to the existing overlay formats This plugin can be tailored to scenarios and unifies support for Ad Manager and Admob irrespective of the size publisher.
- Platform adaptive apps
With Flutter’s support across multiple platforms, the immediate challenge would be to write an app that adapts itself well to multiple different form factors, different input modes, and different idioms.
Mobile app development using Flutter has commissioned the Flutter Folio, a platform adaptive scrapbooking app that adapts well to whatever platform it’s running on. Folio runs well on multiple platforms from a single code base and takes advantage of touch, keyboard, and mouse input, and works well for the idioms of the platform. Google has also released the source code for Folio.
- Latest iOS features
Flutter is further strengthening its iOS support. The latest release entails 178 PRs merged that are iOS-related, including 23495, which brings State Restoration to iOS, 67781, to build an IPA directly from the command line without opening Xcode, and 69809, which updates the CocoaPods version to match the latest tooling.
Flutter 2.0 also comes with new iOS widgets in the Cupertino design language implementation. CupertinoSearchTextField provides an iOS search bar UI. CupertinoFormRow, CupertinoFormSection, and CupertinoTextFormFieldRow widgets help in generating validated form fields with sectioned visual aesthetics of iOS.
- Autocomplete and ScaffoldMessenger
The latest Flutter update comes with two additional new widgets, AutocompleteCore and ScaffoldMessenger. AutocompleteCore comes with minimal functionality required to get auto-complete functionality into the native apps that are built using Flutter.
ScaffoldMessenger deals with SnackBar-related issues. Following are its key features :
- Ability to easily create a SnackBar in response to an AppBar action
- Creation of SnackBars to persist between Scaffold transitions
- Ability to show SnackBars at the completion of an asynchronous action, even if the user has navigated to a page with a different Scaffold.
- Multiple Flutter instances with Add-to-App
Flutter has become the first choice for many developers as it enables them to reuse the same code for developing cross-platform mobile app development while still preserving the existing native codebase.
With the use of the Add-to-App feature, Flutter can be leveraged in an existing application to save the native code base and enable developers to execute the code for multiple platforms and in Mobile app development using Flutter.
Previously, additional Flutter instances had the same memory cost as the first instance. In Flutter 2, the static memory cost of creating additional Flutter engines has been reduced by ~99% to ~180kB per instance.
The documentation about the new APIs is available on the beta channel and is documented on flutter.dev along with a set of sample projects demonstrating this new pattern.
- Flutter DevTools
Google has renamed DevTools to Flutter DevTools. The new DevTools comes with the ability for Android Studio, IntelliJ, or Visual Studio Code to notice when there’s a common exception and offer to bring it up in DevTools while debugging.
Another new feature in DevTools is the ability to easily see an image that’s at a higher resolution than it’s displayed, which helps track down excessive app size and memory usage. Some of the other key features in Flutter DevTools 2 include:
- Calling out failed network requests in the network profiler with red error labels.
- New memory view charts are faster, smaller and easier to use, including a new hovercard to describe activity at a specific time.
- Added search and filtering to the Logging tab.
- Track logs from before DevTools is started so you can see the complete logging history when you do start it up.
- Addition timing grid to CPU Profiler flame charts
Mobile App Development Using Flutter – Conclusion
Flutter open source UI toolkit for building fast apps that target desktop, web, and embedded devices from a single codebase, built both to solve Google’s demanding needs and those of its customers.
Mobile app development using Flutter is fast, compiling the source to machine code, along with the productivity of interpreted environments. Flutter allows developers to make changes while the app is running and see the results immediately. Flutter is open with thousands of contributors constantly adding to the core framework and extending its capabilities with an ecosystem of ever-evolving packages. All in all, Flutter is quite simply, every mobile application developer’s dream come true.