What’s this.. flutter thingy? • Crossplatform mobile SDK • Based on Dart(lang) • Developed to make mobile development faster • Developed by the brains behind Webkit, HTML5 & tons of other stuff.
Dart? • Developed by Google, (ab)used by Google • Year over year one of the fastest growing languages • JIT & AOT • Static but dynamic • Expressive and portable
Yeah, but.. this time it’s different! • Different approach to rendering • No bridges to native components • Draws a custom view on a Canvas • UI is structured as a tree • Composition over inheritance • Only subtrees that have changed state are redrawn
• Protocol to establish platform <-> flutter communication • Binary serialization of messages • Support async messaging via await, Future • Can invoke methods and return responses • Can pass arguments and data Platform Channels
What do you mean, magic? • We love Kotlin • We love the Kotlin ecosystem • We’re following clean’n’solid principles • UI development on Android is slow and painful • UI development in Flutter is fast and easy
1. Button widget calls native method channel 2. Kotlin calls coordinator … 3. API returns response 4. Data is multiplied by random and shuffled 5. Data is serialised to JSON 6. JSON is sent through channel 7. JSON is deserialised in Flutter 8. Flutter changes state of component