Lukas Meili

Mobile Developer at 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’m a developer who started my career in 2019 in DevOps before transitioning into mobile development, where I’ve spent the last two years. Originally from Switzerland, I’m currently working at Zühlke Engineering, where I’ve been since the beginning of my career. My passion for technology has driven my desire to learn and grow in the field, and I’m always eager to take on new challenges and stay up-to-date with the latest developments. In my free time, I enjoy hiking, skiing, and exploring new places with my family and friends.