Slide 1

Slide 1 text

©2024 Wantedly, Inc. Introduction to Kotlin Multiplatform Jul 26, 2024 - Yuya Harada

Slide 2

Slide 2 text

©2024 Wantedly, Inc. At a tech event in June…

Slide 3

Slide 3 text

©2024 Wantedly, Inc. Wantedly's Key iOS Tech Stack

Slide 4

Slide 4 text

©2024 Wantedly, Inc. Wantedly's Key iOS Tech Stack + SwiftUI Kotlin Multiplatform

Slide 5

Slide 5 text

©2024 Wantedly, Inc. "Why use Kotlin for iOS? Isn't it for Android?" 🤔 🤔 🤔

Slide 6

Slide 6 text

©2024 Wantedly, Inc. Agenda 1. Explore Kotlin Multiplatform 2. Advantages and Challenges 3. Personal Experience

Slide 7

Slide 7 text

©2024 Wantedly, Inc. Provide overview of Kotlin Multiplatform My Goal

Slide 8

Slide 8 text

©2024 Wantedly, Inc. Provide overview of Kotlin Multiplatform if it is worth considering for your projects? 🤔 My Goal

Slide 9

Slide 9 text

©2024 Wantedly, Inc. Agenda 1. Explore Kotlin Multiplatform 2. Advantages and Challenges 3. Personal Experience

Slide 10

Slide 10 text

©2024 Wantedly, Inc. "Has anyone here tried Kotlin Multiplatform?" 🙋 🙋 🙋

Slide 11

Slide 11 text

©2024 Wantedly, Inc. What is Kotlin Multiplatform? Kotlin shared code • Abbreviation: KMP • Tool to build apps with a single Kotlin codebase • Can be shared across platforms App App

Slide 12

Slide 12 text

©2024 Wantedly, Inc. Share logic and keep the UI native UI • iOS → SwiftUI • Android → Jetpack Compose https://www.jetbrains.com/kotlin-multiplatform/ Logic • KMP

Slide 13

Slide 13 text

©2024 Wantedly, Inc. Share both logic and UI UI • Compose Multiplatform ⚠ iOS is in Beta https://www.jetbrains.com/kotlin-multiplatform/ Logic • KMP

Slide 14

Slide 14 text

©2024 Wantedly, Inc. Agenda 1. Explore Kotlin Multiplatform 2. Advantages and Challenges 3. Personal Experience

Slide 15

Slide 15 text

©2024 Wantedly, Inc. ✅ Share business logic across platforms App App business logic KMP • networking • data storage • data parsing

Slide 16

Slide 16 text

©2024 Wantedly, Inc. An app that fetches random news data

Slide 17

Slide 17 text

©2024 Wantedly, Inc. Repository UseCase ViewModel UI An app that fetches random news data

Slide 18

Slide 18 text

©2024 Wantedly, Inc. Share logic and keep the UI native UI • iOS → SwiftUI • Android → Jetpack Compose https://www.jetbrains.com/kotlin-multiplatform/ Logic • KMP

Slide 19

Slide 19 text

©2024 Wantedly, Inc. Repository UseCase ViewModel UI An app that fetches random news data

Slide 20

Slide 20 text

©2024 Wantedly, Inc. Repository UseCase ViewModel UI KMP An app that fetches random news data • SwiftUI • Jetpack Compose

Slide 21

Slide 21 text

©2024 Wantedly, Inc. Advantages ♻ Code Reusability 🧑🔧 Maintainability ✅ Reducing test burden

Slide 22

Slide 22 text

©2024 Wantedly, Inc. Challenges 🤖 Requires Kotlin knowledge & IDE 🐘 Familiarity with Gradle 📚 Library limitations

Slide 23

Slide 23 text

©2024 Wantedly, Inc. Agenda 1. Explore Kotlin Multiplatform 2. Advantages and Challenges 3. Personal Experience

Slide 24

Slide 24 text

©2024 Wantedly, Inc. Personal Experience Without KMP Team Composition 🧑💻 👨💻

Slide 25

Slide 25 text

©2024 Wantedly, Inc. Team Composition 🧑💻 👨💻 Platforms Personal Experience Without KMP

Slide 26

Slide 26 text

©2024 Wantedly, Inc. Team Composition 🧑💻 👨💻 Platforms Development Process Personal Experience Without KMP

Slide 27

Slide 27 text

©2024 Wantedly, Inc. Challenges Faced iOS • Redundant business logic • Duplicate unit tests Logic UI Local DB Unit Test Android Logic UI Local DB Unit Test Time-consuming development

Slide 28

Slide 28 text

©2024 Wantedly, Inc. “If I could use KMP, it eliminates redundancy…” 😩😩😩

Slide 29

Slide 29 text

©2024 Wantedly, Inc. Provide a clear overview of KMP if KMP is worth considering for your projects? 🤔 My Goal

Slide 30

Slide 30 text

©2024 Wantedly, Inc. https://www.wantedly.com/companies/wantedly/post_articles/913551

Slide 31

Slide 31 text

©2024 Wantedly, Inc. Thank you for listening!! 🎉🎉🎉