You may have heard of Flutter, Google's answer to React Native. What should you know?
- It's in the Dart language, which borrows heavily from Java. But Javascript fans will find it very easy to read (see below)
- IntelliJ or Android Studio are the recommended IDEs with Flutter plugins.
- Unlike RN, Flutter doesn't use a Javascript bridge, it compiles straight to native iOS/Android files. (But in "slow mode" development, it operates as an interpreted language so you can still do hot reloading)
- Unlike RN, Flutter comes "batteries included", with opinions on routing, animations, i18n and themes!!! In particular it comes with a bunch of inbuilt widget styles where you can use Material Design or "Cupertino" (aka Apple "inspired") designs right out of the box. Also, did I mention routing?!?!?! Here, let me do it justice:
FLUTTER COMES WITH ROUTING!!!1!!!
- The animations are seriously good. Can you do this in React Native?
- Like RN, Flutter uses a lot of familiar paradigms including
class
extensions,setState
and event handlers. If you can read RN, you can read Flutter:
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(
'You have pushed the button this many times:',
),
new Text(
'$_counter',
style: Theme.of(context).textTheme.display1,
),
],
),
),
floatingActionButton: new FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: new Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
- The install experience is very smooth:
git clone -b alpha https://github.com/flutter/flutter.git
export PATH=`pwd`/flutter/bin:$PATH
flutter doctor
Give it a shot! http://flutter.io and the Google Codelab tutorial is here. or watch the Google I/O video!