Moving to Flutter and Dart. - NoFuss · What? • Google’s framework and SDK for building native...

Preview:

Citation preview

Moving to Flutter and Dart.

26 November 2018

Please ask lots and lots of questions as we go along. Otherwise this talk will only be 2 minutes long and I get

paid by the hour. True story.

Topics

• What.• Why.• How.• Resources.• Assorted.• Other.• Miscellaneous.• Terrible Jokes.• Lies.• Alternate truths.

This talk contains language and references that are rated PG-16, or stronger.

A totally recycled slide from one of my other lame talks.

• Random Software Developer at NoFuss Solutions

• Tweet @EwaldHorn

• https://about.me/ewaldhorn

What?• Google’s framework and SDK for building native 2D apps.

• Runs on iOS, Android and Desktop (unofficial).

• Based on the Skia rendering engine that powers Chrome.

• Uses the Dart programming language.

• Full control over rendering of widgets.

• Still in Beta but production ready. (Went public in 2017!)

• Designed with development in mind - tooling is great!

https://flutter.io/showcase

Native?• Builds native apps with a small runtime overhead.

• Allows for interaction with Android or iOS code.

• Does not use native UX components.

• Renders as expected on different platforms.

• The final application does not have any bridge to a different type of runtime.

• Compiles ahead of time to native code, not at runtime.

How does it work?

• Everything is a widget - more on that later.

• Flutter handles all rendering of these widgets @ 60fps.

• Based on a reactive architecture.

• Composition of widgets allows easy customisation.

Widgets? Heh?

• Everything is one. Really.

• Inspired by React.

• Describes desired view.

• Render tree minimises redraw.

See https://flutter.io/docs/development/ui/widgets-intro

Simplest Flutter App

Why though?

• One code base makes code sharing easier.

• Tooling optimised for developer productivity and ease.

• Allows full customisation of widgets.

• Solves many performance problems of cross-platform.

https://reflect.ly/

https://medium.com/reflectly-engineering/reflectly-from-react-native-to-flutter-2e3dffced2ea

Be a hero.Adopt a dog. Or a cat.

You can do it.

Seriously! Why Flutter?

• Fast development. Nobody wants to spend 5 weeks working on something that lives for 2 days.

• Easy customisation of every part of the user interface.

• Code sharing between mobile, web, desktop and API.

• Did I mention no bridge and low overhead cost?

• Visual Studio Code and Android Studio extensions.

Benefits

• Draws own UI.• Consistent.• Hot reloading.• Stateful reloads.• Reactive design.• Dart is easy to use.• Unit and widget

testing built in.• Theming is easy!

Photo by Artem Bali from Pexels

Alternative Benefits

• Draws own UI.• No native components.• Not as many libraries,

widgets, tutorials or resources as others.

• Debugging is a WIP.• Errors are confusing.• Difficult to involve

designers.• Few patterns and

frameworks like MVP yet.

Photo by Vadim B from Pexels

Flutter Studiohttp://mutisya.com/

Learning Flutter

• https://flutter.io/

• https://flutter.io/docs/get-started/learn-more - Migrating

• https://www.udemy.com/

• https://www.udacity.com/google There’s also lots of awesome videos on YouTube.

Super Active Community• https://github.com/fluttercommunity/community

• https://github.com/Solido/awesome-flutter

• https://twitter.com/flutterio

• https://twitter.com/r_FlutterDev

https://itsallwidgets.com/

https://tears.org.za/

Recommended