Upgrade to Pro — share decks privately, control downloads, hide ads and more …

From Android to multiplatform: When you thought...

From Android to multiplatform: When you thought your project was finished​

In this session we are going to walk through the necessary changes to be able to migrate to one platform to multiplatform, reusing most of the code and thus have a unified maintenance of your Android and iOS app. Starting from a complex Android application in MVP (Model View Presenter), we will explain the steps that needs to be taken to adapt the original architecture and support a new iOS application with Swift UI, reusing the business logic on both platforms.

Speakers: Pilar García, Daniel Llanos, Jacobo Conejo

Avatar for Daniel Llanos Muñoz

Daniel Llanos Muñoz

April 25, 2023

Other Decks in Technology

Transcript

  1. Commit Conf 2023: From Android to multiplatform “One more sprint

    and we are ready to go!” “What an easy project, it’s just some maintenance”
  2. Two frequent scenarios Two native apps need refactor with limited

    budget. Complex android app requires expansion to iOS platforms. Commit Conf 2023: From Android to multiplatform
  3. Behaviour and benefits • Better integration with native platforms. •

    Compatibility with existing libraries and tools. • Modern language. Commit Conf 2023: From Android to multiplatform
  4. EROSKI Club (2019) Commit Conf 2023: From Android to multiplatform

    Android Impl - Developers improve original app implementation (using "Clean" since 2015) - Fixed some layer dependency problems - New functionalities developed focused on Kotlin Multiplatform. - Development of new multiplatform libraries iOS Impl
  5. EROSKI Club (2019) Commit Conf 2023: From Android to multiplatform

    - Developers improve original app implementation (using "Clean" since 2015) - Fixed some layer dependency problems - New functionalities developed focused on Kotlin Multiplatform. - Development of new multiplatform libraries iOS Impl Common* Impl 2019 features and refactors
  6. Eroski and Caprabo Club (Roadmap 2020) Commit Conf 2023: From

    Android to multiplatform EROSKI needs WL estimation Budget Eroski rejects the budget WL Thinks... KMP: Selling smoke since 2018...
  7. Eroski and Caprabo Club (Roadmap 2020) Commit Conf 2023: From

    Android to multiplatform EROSKI needs with KMM WL estimation Budget Eroski approves the budget
  8. Emergenciès: Problems & limitations Commit Conf 2023: From Android to

    multiplatform • Budget • Android app already implemented. • Complex UI. Android Impl iOS Impl 2021: New platform
  9. EROSKI: Project architecture - Layer separation - Android as a

    basis - MVP Architecture: - XML (Android) - UIKit (iOS) Commit Conf 2023: From Android to multiplatform
  10. Eroski and Caprabo Club (Roadmap 2020) Commit Conf 2023: From

    Android to multiplatform Common logic DEV UAT PRO DEV UAT PRO I am: - Android - DEV - EROSKI I am: - iOS - UAT - Caprabo
  11. Emergenciès: Project architecture - Layer separation - iOS Wrapper. -

    MVP Architecture: - XML (Android) - SwiftUI (iOS) Commit Conf 2023: From Android to multiplatform
  12. The future 🚀: Project architecture MVVM -> Compose + SwiftUI

    Commit Conf 2023: From Android to multiplatform
  13. Recap Commit Conf 2023: From Android to multiplatform 2019 Eroski

    in need of refactor 2020 KMM Refactor Eroski 2021 Emergencies in need of an iOS App 2022 KMM migration + iOS implementation 2022 Architecture needs an update to use Compose and SwiftUI 2022 KMM + MVVM Near future To be continued…