KMM story - from first feature to Mobile mono-repo at Sphere

Attila Blenesi & Anders Ha

Senior Android Engineer & Senior iOS Engineer


We will share our thought process on the business case of a multiplatform core for mobile apps, and why it might not make sense in some cases. We will also share our experience in incremental transition in a 9-month timeframe alongside product development in parallel, and a high-level glimpse of the architecture.

AppCore, our multi-platform framework:

The AppCore project powers the domain layer of both our Android and our iOS apps, and is enabled by Kotlin Multiplatform Mobile. It involves:

- A database-first, unidirectional data flow architecture, Kotlin Coroutines and SQLDelight.
- A strong emphasis on caching, synchronisation and persistence to facilitate the continuity and fluidity of our user experience.
- Various backend integrations through Apollo GraphQL, Google Cloud Firestore and WebSocket.

Attila is a Senior Android Engineer at Sphere. Focusing on delivering delightful experiences, integrating and formulating best practices for sustainable product delivery. Previously at Babylon Health, Halcyon Mobile

He is interested in On-device Machine Learning, speaker and former GDG Cluj co-organizer.

Anders has worked in small and large mobile engineering teams, and has helped driven many boundary-pushing initiatives to successful production use, like declarative UI (prior to SwiftUI’s 2019 launch), unidirectional data flows and Kotlin Multiplatform.

Currently working at Sphere, and previously at Babylon Health. Maintainer of ReactiveCocoa/ReactiveSwift, an open-source Swift FRP library, since 2016.