19th of September we organised the first-ever Flutter Helsinki Meetup. The theme of the event was Flutter in production. Lauri Kainulainen from our team gave a presentation "Developing Kick.ai - the long voyage to Flutterland.
3. The parts
KickAI sensor
- Bluetooth Low Energy
- Custom protocol and
firmware
- Built with C
Mobile app
- iOS and Android
- Built with Flutter
- Native parts in Kotlin, Java,
Swift
The Cloud
- Backend in AWS
- Built with Elixir and
Phoenix
- Support for club & team -
level dashboards
5. Sensor
- Detects kicks and related
metadata
- Provides raw kick data when
requested
App
- Games, user profiles,
leaderboards
- Tracks overall sessions and
understands context
- Uploads data to the cloud
BLE
6. App building blocks
● Some notable external libraries in use:
○ rxdart
○ redux
○ qrcode_reader
○ flutter_facebook_login
○ google_sign_in
○ …
● Our own secret sauce: kickai_sensor
8. App talks native
● All native code has been embedded under a custom flutter plugin
○ Separates concerns and makes it easy to collaborate
○ The example app of the plugin also acts as the prototyping and testing bench
● Communication is handled through Flutter’s MethodChannel
○ Passing simple strings and hashmap parameters
11. Testing and deployment
● How do we do it? Badly. Some unit tests exist but there is no CI/CD
● WIP
● NeverCode?
12. Feelings on Flutter
● After the initial hassle of integrating with native code Flutter has been a terrific
technology
● Fast to develop with
● Modular by design, using the same codebase for other apps is easy
● Dart as the underlying foundation feels like a good choice