What is Flutter?
Flutter is an open-source mobile SDK developer can use to build native-looking Android and iOS applications from the same code base. Flutter has been around since 2015 when Google introduced it and remained in the beta stage before its official launch in December 2018. Since then, the buzz around Flutter has been growing stronger.
Flutter is now the top 11 software repos based on GitHub stars. Moreover, we’ve already seen thousands of Flutter apps being published on app stores. One of the most notable examples is the Xianyu app created by Alibaba team, used by over 50 million people.
Flutter — here’s how it works
Widgets
The central idea behind Flutter is the use of widgets. It’s by combining different widgets that developers can build the entire UI. Each of these widgets defines a structural element (like a button or menu), a stylistic element (a font or color scheme), a layout aspect (like padding), and many others.
Note that Flutter doesn’t use OEM widgets, but providers developers with its own ready-made widgets that look native to Android or iOS apps (following Material Design or Cupertino). Naturally, developers can create their own widgets as well.
Flutter also provides developers with reactive-style views. To avoid performance issues deriving from using a compiled programming language to serve as the JavaScript bridge, Flutter uses Dart. It compiles Dart ahead of time (AOT) into the native code for multiple platforms.
That way, Flutter can easily communicate with the platform without needing a JavaScript bridge that involves a context switch between the JavaScript realm and the native realm. As you can imagine, compiling to native code also boosts the app startup time.
Today, Flutter is the only mobile SDK that offers reactive views without the need for a JavaScript bridge. That’s why so many mobile developers have been trying it out in their projects.
Here are some more benefits Flutter brings to mobile software development.
Extra advantage: Dart programming language
One of the most interesting features of Flutter is the language it uses: Dart. Like other systems that use reactive views, Flutter refreshes the view tree for every new frame. To accomplish that, it creates many objects that may live for no more than one frame. Dart uses generational garbage collection that has proven to be very efficient for this type of systems.
Moreover, Dart has a “tree shaking” compiler that only includes the code you need in your app. Even if you need just a widget or two, you can use its large library of widgets freely.
Finally, Dart comes with a repository of software packages for extending the capabilities of apps. For example, it offers a few packages that help to access Firebase so that developers can build serverless apps. Another package allows accessing a Redux data store or makes it easier to access platform services and hardware like the camera.
Benefits of Flutter
It saves you time and money
Flutter is a cross-platform development tool. That means software developers can use the same code base for building an iOS and Android app. Cross-platform development is the best method for saving time and resources throughout the development process.
Excellent performance
Flutter offers outstanding performance for two reasons. First, is uses Dart, which compiles into native code. Second, Flutter has its own widgets, so there’s no need to access OEM ones. As a result, there’s less communication between the app and the platform. These two features of Flutter ensure fast app startup times and fewer performance issues in general.
Quick development thanks to hot reload
Flutter is gaining a lot of traction among mobile developers because of hot reload. Hot reload allows to instantly view the changes applied to the code on emulators, simulators, and hardware. The changed code is reloaded in less than a second. All the while, the app is running and developers don’t need to waste time on restarting it.
That makes building UIs, adding new features, and fixing bugs easier. If an app encounters an error, it’s usually possible to fix it and then continue using the app as if it never happened. Even if you’re forced to do a full app reload, you can be sure that it’s completed in no time, accelerating the development process.
Flutter is an open-source mobile SDK developer can use to build native-looking Android and iOS applications from the same code base. Flutter has been around since 2015 when Google introduced it and remained in the beta stage before its official launch in December 2018. Since then, the buzz around Flutter has been growing stronger.
Flutter is now the top 11 software repos based on GitHub stars. Moreover, we’ve already seen thousands of Flutter apps being published on app stores. One of the most notable examples is the Xianyu app created by Alibaba team, used by over 50 million people.
Flutter — here’s how it works
Widgets
The central idea behind Flutter is the use of widgets. It’s by combining different widgets that developers can build the entire UI. Each of these widgets defines a structural element (like a button or menu), a stylistic element (a font or color scheme), a layout aspect (like padding), and many others.
Note that Flutter doesn’t use OEM widgets, but providers developers with its own ready-made widgets that look native to Android or iOS apps (following Material Design or Cupertino). Naturally, developers can create their own widgets as well.
Flutter also provides developers with reactive-style views. To avoid performance issues deriving from using a compiled programming language to serve as the JavaScript bridge, Flutter uses Dart. It compiles Dart ahead of time (AOT) into the native code for multiple platforms.
That way, Flutter can easily communicate with the platform without needing a JavaScript bridge that involves a context switch between the JavaScript realm and the native realm. As you can imagine, compiling to native code also boosts the app startup time.
Today, Flutter is the only mobile SDK that offers reactive views without the need for a JavaScript bridge. That’s why so many mobile developers have been trying it out in their projects.
Here are some more benefits Flutter brings to mobile software development.
Extra advantage: Dart programming language
One of the most interesting features of Flutter is the language it uses: Dart. Like other systems that use reactive views, Flutter refreshes the view tree for every new frame. To accomplish that, it creates many objects that may live for no more than one frame. Dart uses generational garbage collection that has proven to be very efficient for this type of systems.
Moreover, Dart has a “tree shaking” compiler that only includes the code you need in your app. Even if you need just a widget or two, you can use its large library of widgets freely.
Finally, Dart comes with a repository of software packages for extending the capabilities of apps. For example, it offers a few packages that help to access Firebase so that developers can build serverless apps. Another package allows accessing a Redux data store or makes it easier to access platform services and hardware like the camera.
Benefits of Flutter
It saves you time and money
Flutter is a cross-platform development tool. That means software developers can use the same code base for building an iOS and Android app. Cross-platform development is the best method for saving time and resources throughout the development process.
Excellent performance
Flutter offers outstanding performance for two reasons. First, is uses Dart, which compiles into native code. Second, Flutter has its own widgets, so there’s no need to access OEM ones. As a result, there’s less communication between the app and the platform. These two features of Flutter ensure fast app startup times and fewer performance issues in general.
Quick development thanks to hot reload
Flutter is gaining a lot of traction among mobile developers because of hot reload. Hot reload allows to instantly view the changes applied to the code on emulators, simulators, and hardware. The changed code is reloaded in less than a second. All the while, the app is running and developers don’t need to waste time on restarting it.
That makes building UIs, adding new features, and fixing bugs easier. If an app encounters an error, it’s usually possible to fix it and then continue using the app as if it never happened. Even if you’re forced to do a full app reload, you can be sure that it’s completed in no time, accelerating the development process.
Compatibility
Another advantage of Flutter is the fact that it comes with its own widgets that result in fewer compatibility issues. Developers will see fewer problems on different OS versions and can spend less time on testing the app on older OS versions. Also, you can be confident that your app will work on future OS versions.
Note: Once a new version of Android or iOS comes out, Flutter widgets will have to be updated (since the tool doesn’t use the native platform widgets). You might be wondering about how long it will take for Flutter to update its widgets.
Since Google is a massive internal user of Flutter, the Flutter team is strongly motivated to keep their widget sets as current and close to the platform widgets as possible. Also, Flutter widgets are customizable and can be updated by anyone. Your app can even use new widgets on older OS versions!
Open-source
Flutter is an open-source technology surrounded by an active community of developers who provide support, contribute to the tool’s extensive documentation, and develop helpful resources. Both Dart and Flutter are free to use.
The takeaway
Flutter is one of the most innovative mobile technologies on the market right now. The advantages it brings to development teams make it a promising candidate for the mobile technology of choice in the near future.
Note: Once a new version of Android or iOS comes out, Flutter widgets will have to be updated (since the tool doesn’t use the native platform widgets). You might be wondering about how long it will take for Flutter to update its widgets.
Since Google is a massive internal user of Flutter, the Flutter team is strongly motivated to keep their widget sets as current and close to the platform widgets as possible. Also, Flutter widgets are customizable and can be updated by anyone. Your app can even use new widgets on older OS versions!
Open-source
Flutter is an open-source technology surrounded by an active community of developers who provide support, contribute to the tool’s extensive documentation, and develop helpful resources. Both Dart and Flutter are free to use.
The takeaway
Flutter is one of the most innovative mobile technologies on the market right now. The advantages it brings to development teams make it a promising candidate for the mobile technology of choice in the near future.
Flutter_ Part 01 Introduction
https://jxjjxy-my.sharepoint.com/:u:/g/personal/uwkeuysr_t_odmail_cn/Ecp2Jjg11pFPjma2AuKQT90BgRqlGFW6_rgpr3W6v_5EDg?e=HhWqs7
Flutter: Part 04 Building an App with State
Once you have mastered Flutter basics, it’s time to learn state management—techniques used to manage all the information stored in an app’s memory, such as active UI elements, user preferences, notifications, and more. There are several different methods for managing state in Flutter and this course introduces you to the basics. Discover how to create more flexible layouts, use functions to streamline your code, incorporate variables and data types, and leverage Stateful and Stateless widgets. Instructor Angela Yu also issues three different challenges to test your new Flutter skills. Each lesson is illustrated using a fun, real-world project—a dice game app—that you can build, customize, and add to your Flutter portfolio.
This course was created by London App Brewery.
https://jxjjxy-my.sharepoint.com/:u:/g/personal/uwkeuysr_t_odmail_cn/EcQbYynSKj9JgcJ--yAsjjUBkpCwrMRKdBfdVUPbR2711A?e=V7Zf6B
Flutter: Part 07 Building the UI or Flutter: Part 07 Building UIs
While widgets make Flutter apps easy to build, they dictate the functionality and appearance of your project. Get more control over your user interface using Flutter and Dart, the programming language optimized for cross-platform app development. This course teaches you how to use intermediate Dart constructs such as enums, operators, and routers to customize Flutter apps. Instructor Angela Yu also explains how to customize existing widgets, build your own form scratch, control page navigation, and leverage gestures for interactivity—all using Dart programming. Each lesson is illustrated using a fun, real-world project—the BMI Calculator app—that you can build, customize, and add to your Flutter portfolio.
This course was created by London App Brewery.
Topics include:
Using Flutter themes
Refactoring widgets
Customizing widgets using themes
Routes and navigating
Dart maps
https://jxjjxy-my.sharepoint.com/:u:/g/personal/uwkeuysr_t_odmail_cn/ETYNr92aQpZHpgfro9bgGVkBLGQRQfQUTqVhH_y5gwVT-Q?e=Y3zGRO
Flutter: Part 08 Powering Your App with Live Web Data
Users have come to expect true connectivity from their apps, like constant access to real-time data. With Flutter, it’s possible to build apps powered by live web data, such as the weather app you build in this project-based course. Instructor Angela Yu takes you through the process of accessing and requesting live data via asynchronous programming methods in Dart. She shows how to handle errors, access APIs for external data, and parse data types such as JSON. Plus, learn how to use Dart geolocation packages to implement location services in your app and pass data to objects in your app in order to display the information to users.
This course was created by London App Brewery.
Topics include:
Dart futures await and async
Exception handing
APIs and Flutter
Parsing live data
Passing data to Flutter objects
https://jxjjxy-my.sharepoint.com/:u:/g/personal/uwkeuysr_t_odmail_cn/EbSvZY_RHdZHqsqdfIxZEWQBeIWK60OxtTa9yY_3i_bZKQ?e=vpMGtL
Flutter: Part 10 Firebase Cloud Firestore
Learn how to build and deploy interactive Flutter apps for iOS and Android with Google Firebase. This project-based course is an advanced use case for Flutter that helps developers build a fully functioning messaging app that can be deployed directly to app stores. Instructor Angela Lu starts by helping you prepare the app screens and classes and add custom interactive animation. Then she shows how to create new Firebase projects for both Android and iOS, integrating user authentication and a Firestore database. She also shows how to stream the messaging data and complete the styling of the app in anticipation of launch. This practical assignment helps illustrate the lessons learned and gives you a fun project to add to your Flutter portfolio.
This course was created by London App Brewery.
Topics include:
Refactoring routes
Customizing Flutter animations
Setting up a Firebase project
Authenticating users with FirebaseAuth
Streaming data from Firestore
https://jxjjxy-my.sharepoint.com/:u:/g/personal/uwkeuysr_t_odmail_cn/Eb8XWKRZ5XJCr4xHHB4POwIBPaLLCLOJ4naVigiAYSZNSQ?e=fF2fLk
Last edited: