Kevin De Keyser

Mobile Developer @ Zühlke

Talk Title

Frankenstein’s Monster: How we migrated two native apps into a single Flutter app






15:20 > 40 min


on Twitter

Key points of the session:
- Partial migration of two native apps to Flutter under a deadline in production.
- How to divide a migration into manageable tasks
- Migrating Bluetooth communication with hardware devices
- Migrating WebViews
- Migrating C encryption libraries in Dart with FFI
- See the architecture of a Flutter application used to control EV chargers.

Join us on our journey of migrating two separate Android and iOS native apps, whose code has been developed for 2 years, into a single Flutter app under tight deadline pressures.

We will highlight how we tackled the migration process in stages. First, we ran a Flutter engine in the respective native apps, and then, we slowly carved out all the native parts from the inside, until the codebase was migrated enough to deploy it as a Flutter-only app.

Our session will cover which features can be partially migrated, and which features must wait for a complete Flutter-only migration.
Additionally, we will show how we integrated Bluetooth communication with EV charging devices in the Flutter app, which was a significant challenge during the migration process.

If time permits, we will show you how we integrated the C-Encryption library in Dart with FFI. This integration allowed us to establish a cryptographically secure connection between the Flutter app and the electric vehicle charger.

This project was a collaboration between the smart EV charging company Juice Technology AG and Zühlke Engineering AG. We hope this talk will help you build bridges between native mobile teams and Flutter teams.

Speaker Bio

I’ve written cross-platform apps for a long time, first in C++ and now in Flutter.
Having only one codebase for both mobile platforms is great.
I love puzzles and moods.

Professional background:
Mobile Developer @ Zühlke (consulting)
DevOps & Frontend @ Marshall Wace (finance)
BSc. & MSc. in Computer Science at ETH Zurich