Flutter
From Android dev perspective
by Denis Volyntsev
March 19, 2019
About me
Denis Volyntsev
Android dev
Flutter is a UI framework powered by
Dart
Stream<T> class
A Stream provides a way to receive a
sequence of events.
Flutter is exciting
Cross platform
Hot reload 🔥
Testing
● Unit
● Ui
● Integration
Easy peasy lemon squeezy
Android Fragment Lifecycle, you know..
Android framework is complex
Android entry point
->
Very few people actually tried to figure
it out.
Flutter entry point:
void main() => runApp(MyApp());
It’s all widgets!
Composition over inheritance
Checkout https://itsallwidgets.com/, an
open list of apps built with Flutter
Opt-in
System callbacks are opt-in in flutter
comparing to Android, where you just
have to deal with all the cases
Theming
It’s just a configuration.
1. Define
2. Apply
3. Use1
2
3
And more...
Where is flutter now
Interest to flutter exploded
among developers throughout
2018
Flutter Number of StackOverflow question views comparing to other hybrid
frameworks
Nothing is perfect
Flutter criticism
Flutter owns every pixel
Stacktraces
Are not always useful
It’s in progress though
https://github.com/flutter/flutter/issues/290
75
https://github.com/flutter/flutter/issues/273
27
Ugly widgets structure
“You need 3 teams instead of one”
Poor support for iOs?
Flutter 1.2 is out
1. Dart 2.2
a. Improvement in AOT perfomance (15-20% faster native code)
b. Set literals (const mySet = { ‘one’, ‘two’ } )
2. Material & Cupertino Widget Sets
a. Flutter has brought significant improvements in its Material and Cupertino widget sets to
fool-proof the UI side.
3. In-App Purchases & Android App Bundles
4. Bug fixes
a. maps, video player, and webview.
5. New tools for developers
a. Widget inspector, Timeline view, Source-level debugger, and Logging view
Useful links
● Applications build with flutter https://itsallwidgets.com/
● Flutter vs react native https://medium.com/asos-techblog/flutter-vs-react-native-for-ios-android-app-development-c41b4e038db9
● Thoughts on Flutter https://hackernoon.com/what-it-was-like-to-write-a-full-blown-flutter-app-330d8202825b
● Flutter vs hybrid vs native https://medium.com/flutter-community/dont-do-drugs-do-flutter-talk-1-14f91500100a
● Interview with Eric Sneidel https://www.youtube.com/watch?v=h7HOt3Jb1Ts
Thanks you!
Denis Volyntsev
https://github.com/defuera
volyntsevd@ya.ru

Flutter vs not flutter

Editor's Notes

  • #2 Hello, I’m denis, let me start with some questions. How many android/ios devs? How many other devs? How many interested in this talk from a business perspective more then from dev perspective?
  • #3  Self tutored dev Love trying technologies Failed with scala + Play Tried dive deep into React Native (ReactJs + Javascript (ES6, typescript, Redux)) Then I heard about flutter
  • #4 Flutter written in Dart I think Dart is a very nice language, that can connect Mobile developers with Web developers (which can be very beneficial for business) I like hot reload (show gif?) I like Streams Flutter makes a heavy use of dart features
  • #5  I like Streams Also flutter syntax is heavily bound to Dart That’s not that big of a trade of when you considering that you develop for two platform at once
  • #6 Flutter is first revealed in 2015 on a Dart conference. It’s been created as a result of an experiment, that was run by a Chrome team. Recommend to watch an interview with Eric Seidel (https://www.youtube.com/watch?v=h7HOt3Jb1Ts) Things I like Good for business (mobile + web teams can work together)
  • #7 Animations are easy, no frustration, you gonna enjoy it Skia engine, 120 fps ListView? Testing
  • #8 Amazing hot reload
  • #10 2) Easy to start
  • #11 Well designed, very simple (vs Android, which is old, not designed for touch screens, have Activity, Fragment, support library)
  • #12 Activity is complex Context is a god object
  • #13 Well designed, very simple (vs Android, which is old, not designed for touch screens, have Activity, Fragment, support library)
  • #14 It’s all widgets. Composition (very comprehandable, not very readable <- move do downsides) Architecture
  • #15 System callbacks opt it
  • #16 Theming !!!
  • #17 Testing Excited about hummingbird and desktop capabilities Community and documentation
  • #20 Dart (no sealed classes, no data classes, nullability, semicolons, no when, if is not expression, no nullable types) Widgets are not obvious. If you want to center something you neet to use Center widget, if you want Your text view to match parent you might need to wrap it with Container. If you want to assign to your widget certain size you mith need to use SizeBox of Container or something else
  • #21 3) Your app widgets won’t be updated along with system widgets I think it’s a good push for brand based design. Challenge your ux specialist not to use default buttons -)
  • #22 Widget debugging is not easy. You basically guessing If exception is thrown without you catching it nothing will happen, you have to catch and print it manually Internal libraries/framework code is not collapsed when printing stacktrace
  • #23 Ugly widgets structure
  • #25 Poor support for iOs? Looks line not anymore
  • #27 Thoughts on Flutter