Entri, a leading educational platform in India, has successfully integrated a range of advanced features into its Android app, including seamless video streaming, Live video classes, Voice discussions, and AI-driven functionalities, all built using native Java, Kotlin, and XML. In this session, we will share our journey of adopting Jetpack Compose and Kotlin Multiplatform Mobile (KMM) to enhance our app development process and achieve multiplatform compatibility.
We will begin by discussing the key reasons behind our decision to adopt Jetpack Compose and KMM, focusing on the benefits of a declarative UI for improved performance and reduced development time. We will highlight our initial consideration of iOS development options, explaining why we chose KMM over Flutter to ensure 100% reusability of our Compose code across platforms.
A significant portion of our presentation will cover the challenges we faced in deciding “when” and “where” to implement KMM in our project. We will explain how we planned and ensured that the KMM modules were directly usable on both Android and iOS and designed as standalone sections. We'll discuss why our decision to develop new modules rather than converting existing parts, which helped us maintain our development effort and velocity.
We will also dive into the technical aspects of our journey, including the challenges like, Migrations of legacy codes for compatibility,
Updates and Replacements of library updates,
Kotlin and AGP upgrades
Blockers,
Hacks,
This section will provide a detailed technical context for those interested in the specifics of our implementation.
Jetpack Compose and KMM had already set us on the path to becoming a multiplatform mobile application team, even before we fully realized it.
Despite having no iOS developers, our team has successfully built the Entri iOS app, leveraging the groundwork laid by our Compose and KMM initiatives.
Throughout the session, we will share practical lessons learned, best practices, and the challenges we overcame in integrating these technologies into our app. We believe our experience can serve as a valuable roadmap for other teams looking to adopt similar solutions and navigate the complexities of multiplatform app development.