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

KMP in Action: A Production Case Study

Annyce D.
May 24, 2024
10

KMP in Action: A Production Case Study

Over the past several years, numerous companies have undergone transformations. From relying on REST APIs to fully embracing GraphQL. From traditional iOS and Android development to the latest cross-platform technology, Kotlin Multiplatform. Despite the many benefits, it hasn't been without its challenges.

In this talk, I'll cover the benefits of using Kotlin Multiplatform in production, such as how it can streamline app development and improve data retrieval. I'll also discuss common challenges that arise when implementing new technologies in established products. Finally, I'll share best practices for addressing said challenges.

Specifically, I'll touch on:
- adopting KMP as an engineering organization
- architectural design considerations
- libraries that enhance development speed

Look forward to gaining valuable insights and practical advice for implementing Kotlin Multiplatform in production!

Annyce D.

May 24, 2024
Tweet

Transcript

  1. KMP @ b r w n g r l d

    e v IN ACTION
  2. @ b r w n g r l d e

    v Well it DEPENDS
  3. @ b r w n g r l d e

    v KMP has entered the chat
  4. Cost benefit Faster time to market @ b r w

    n g r l d e v Consistent user experience No new headcount
  5. @ b r w n g r l d e

    v Cost benefit Green Thumb
  6. @ b r w n g r l d e

    v But why KMP
  7. @ b r w n g r l d e

    v Kotlin Multiplatform React Native Flutter Programming Language Kotlin JavaScript Dart Supported Platforms iOS, Android, Web, Desktop iOS, Android, Web iOS, Android, Web, Desktop Performance Close to native High, but depends on JavaScript bridge Close to native UI Components Uses native components Mix of custom and native components Fully custom components Community Support Growing, backed by JetBrains Very large, backed by Facebook Growing fast, backed by Google Learning Curve Medium to high Medium Medium to high Maturity New but evolving Mature, well-established New but evolving rapidly
  8. No restrictions on how you develop your app’s UI KMP

    Why we chose it Doesn’t prevent you from working with the platform directly Kotlin! @ b r w n g r l d e v
  9. No restrictions on how you develop your app’s UI KMP

    Why we chose it Doesn’t prevent you from working with the platform directly Kotlin! @ b r w n g r l d e v
  10. No restrictions on how you develop your app’s UI KMP

    Why we chose it Doesn’t prevent you from working with the platform directly Kotlin! @ b r w n g r l d e v
  11. @ b r w n g r l d e

    v W.W.L. W h a t w e l e a r n e d
  12. W.I.I.F.M. Worse developer experience @ b r w n g

    r l d e v Loss of autonomy Decreased job security
  13. @ b r w n g r l d e

    v How to organize the team
  14. @ b r w n g r l d e

    v Team characteristics
  15. @ b r w n g r l d e

    v W.W.L. W h a t w e l e a r n e d
  16. @ b r w n g r l d e

    v Shared code
  17. @ b r w n g r l d e

    v W.W.L. W h a t w e l e a r n e d
  18. @ b r w n g r l d e

    v XML views Room Moshi Retrofit Nav graph Compose SQL Delight Serialization Ktor Compose nav
  19. @ b r w n g r l d e

    v How do you DECIDE?
  20. Inputs Interviews Qualitative @ b r w n g r

    l d e v Analytics tracking Quantitative Past experience Gut
  21. @ b r w n g r l d e

    v W.W.L. W h a t w e l e a r n e d
  22. @ b r w n g r l d e

    v Perfect is the ENEMY of good
  23. @ b r w n g r l d e

    v DON’T let perfect be the enemy of good