● uses js bridge to run code ● JIT (just in time) ● uses third party e2e tests ● no bridge ● native typed ● hot reload ● AOT (ahead of time) ● Easy access any native module ● 60fps
● not installed (no play store) ● harder if needs native module not created ● Can’t use Bluetooth, NFC and fingerprint scan ● Not all browsers ● Can’t use notifications on iOS ● Can’t use offline on iOS ● Can’t use native auth like facebook and google ● installed on device ● Easy access any native module
What is Dart ● Craft awesome UX/UI ● ahead-of-time compilation ● Syntax clear and concise ● Compiles to ARM and X86 ● Transpiles to JavaScript ● Similiar with C++, C# and Java ● Reactive <3
Row It Receives children List where each element will be positioned horizontal You can else align by cross axis, main axis and change the direction of main axis
Column Same of Row Widget but each element will be positioned vertical You can else align by cross axis, main axis and change the direction of main axis
Creating first widget (Main widget) MaterialApp class An application that uses material design. home is an property of MaterialApp class that receives an Widget that will be loaded as default.
Building the layout Scaffold Class This class help us to build an page following the basic structure of an application like Drawer, Body, Bottom Navigation, AppBar, FloatingActionButton
Implementing the action of increment counter _incrementCounter() The secret is setState, all changes on variables that are used on layouts will be rebuild so the layout will change.
Widget Tests You implement a widget test in a similar way as a unit test. To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter provides. flutter test
Integration Tests If you are familiar with Selenium/WebDriver (web), Espresso (Android) or UI Automation (iOS), then Flutter Driver is Flutter’s equivalent to those integration testing tools. flutter drive --target=my_app/test_driver/user_list_scrolling.dart
How Flutter runs on Android and iOS C/C++ engine compile with... NDK LLVM iOS Android Running on.. a-head of time (AOT) Runner This is similar to the way many game engines work.