Slide 1

Slide 1 text

はじめての Kotlin Multiplatform 2024/07/13 Java Doでしょう #25 トリ

Slide 2

Slide 2 text

⾃⼰紹介 トリ ● Androidエンジニアをしています ● JavaDoスタッフです ● 暑いです ⿃モチーフのものが好きです(焼き⿃も好きです)

Slide 3

Slide 3 text

今⽇の流れ ❶ Kotlin Multiplatformって何? ❷ 開発環境をセットアップしてみる ❸ アプリを動かしてみる(デモ) ❹ ソースコードをみてみる

Slide 4

Slide 4 text

Kotlin Multiplatformって何? Kotlinで「複数プラットフォームの アプリケーションを開発できる技術」です ※いわゆるクロスプラットフォーム開発ができる。React Native, Flutterみたいな 対応: iOS / Android / Desktop / Web(Alpha)

Slide 5

Slide 5 text

公式サイト :https://www.jetbrains.com/ja-jp/kotlin-multiplatform/

Slide 6

Slide 6 text

Kotlin Multiplatformって何? https://kotlinlang.org/docs/multiplatform.html

Slide 7

Slide 7 text

Kotlin Multiplatformって何? https://kotlinlang.org/docs/multiplatform.html Kotlin Multiplatform

Slide 8

Slide 8 text

Kotlin Multiplatformって何? https://kotlinlang.org/docs/multiplatform.html これは?

Slide 9

Slide 9 text

Kotlin Multiplatformって何? https://kotlinlang.org/docs/multiplatform.html Compose Multiplatform

Slide 10

Slide 10 text

Compose Multiplatformって何? JetpackComposeという宣⾔型UIフレームワークで 「複数プラットフォームアプリケーションのUI を共通化できる技術」です

Slide 11

Slide 11 text

公式サイト:https://www.jetbrains.com/ja-jp/lp/compose-multiplatform/

Slide 12

Slide 12 text

開発環境をセットアップしてみる Android Studio 開発ツール https://developer.android.com/studio?hl=ja Xcode [macOS only] iOSアプリを作るなら、App Store / Web から https://developer.apple.com/jp/xcode/resources/ JDK AndroidStudio付属のJDKで問題なし 別でJDKインストールでもOK Required Required

Slide 13

Slide 13 text

開発環境をセットアップしてみる Kotlin Multiplatform plugin Android Studioの 「Settings > Plugins」 から インストール Kotlin plugin Android Studio で初期インストール済み 最新版にアップデートしておく Browsers Webに対応するなら 「Wasm Garbage Collection」 サポート必須 Chrome / Firefox / Safari でOK Required Required

Slide 14

Slide 14 text

開発環境をセットアップしてみる KDoctor [macOS only] Kotlin Multiplatformの環境が整っているか チェックできるツール $ brew install kdoctor Github でダウンロードする https://github.com/Kotlin/kdoctor Homebrew でインストールする

Slide 15

Slide 15 text

環境設定をチェックする $ kdoctor Environment diagnose (to see all details, use -v option): [✓] Operation System [ ✖ ] Java ✖ Java not found Get JDK from https://www.oracle.com/java/technologies/javase-downloads.html [✓] Android Studio [✓] Xcode [ ! ] CocoaPods ! CocoaPods configuration is not required, but highly recommended for full-fledg ✖ System ruby is currently used CocoaPods is not compatible with system ruby installation on Apple M1 compu Please install ruby via Homebrew, rvm, rbenv or other tool and make it default Failure..

Slide 16

Slide 16 text

環境設定をチェックする $ kdoctor Environment diagnose (to see all details, use -v option): [✓] Operation System [✓] Java [✓] Android Studio [✓] Xcode [✓] CocoaPods Conclusion: ✓ Your operation system is ready for Kotlin Multiplatform Mobile Development! Success!!

Slide 17

Slide 17 text

公式のKotlin Multiplatformウィザードでつくる https://kmp.jetbrains.com/

Slide 18

Slide 18 text

公式のKotlin Multiplatformウィザードでつくる https://kmp.jetbrains.com/ Android Studioから [new project] すると Compose Multiplatformの設定がない... (2024-07-07時点)

Slide 19

Slide 19 text

アプリを動かしてみる デモ

Slide 20

Slide 20 text

ソースコードをみてみる

Slide 21

Slide 21 text

ソースコードをみてみる ● composeApp ● server ● shared をみてみる

Slide 22

Slide 22 text

ソースコードをみてみる:composeApp 編 composeApp には UIの実装コードがあります

Slide 23

Slide 23 text

ソースコードをみてみる:composeApp 編 composeApp には UIの実装コードがあります ● androidMain ● commonMain ● deskTopMain ● iosMain ● wasmJsMain

Slide 24

Slide 24 text

composeApp > commonMain > App.kt

Slide 25

Slide 25 text

composeApp > commonMain > App.kt

Slide 26

Slide 26 text

composeApp > 各プラットフォーム > main Android iOS Desktop Web

Slide 27

Slide 27 text

composeApp > 各プラットフォーム > main Android iOS Desktop Web 基本 App() を呼ぶだけ

Slide 28

Slide 28 text

ソースコードをみてみる:shared編 shared には Logicの実装コードがあります

Slide 29

Slide 29 text

ソースコードをみてみる:shared編 shared には Logicの実装コードがあります ● androidMain ● commonMain ● iosMain ● jvmMain ● wasmJsMain

Slide 30

Slide 30 text

shared > commonMain > Greeting.kt

Slide 31

Slide 31 text

shared > commonMain > Platform.kt

Slide 32

Slide 32 text

shared > androidMain > Platform.android.kt

Slide 33

Slide 33 text

shared > androidMain > Platform.android.kt

Slide 34

Slide 34 text

shared > iosMain > Platform.ios.kt

Slide 35

Slide 35 text

shared > iosMain > Platform.ios.kt

Slide 36

Slide 36 text

shared > jvmMain > Platform.jvm.kt

Slide 37

Slide 37 text

shared > jvmMain > Platform.jvm.kt

Slide 38

Slide 38 text

shared > jvmMain > Platform.jvm.kt

Slide 39

Slide 39 text

ソースコードをみてみる:server編 server には Serverの実装コードがあります

Slide 40

Slide 40 text

ソースコードをみてみる:server編

Slide 41

Slide 41 text

公式サイト :https://ktor.io/

Slide 42

Slide 42 text

ソースコードをみてみる:Buildの違い Android AndroidGradlePluginでGradleビルド https://developer.android.com/build?hl=ja iOS Kotlin/Native https://kotlinlang.org/docs/native-overview.html Desktop / Server Kotlin/JVM KotlinをJVMで動作するようにコンパイルする Web Kotlin/Wasm https://kotlinlang.org/docs/wasm-overview.html

Slide 43

Slide 43 text

試した感想 ● Kotlinが扱いやすいので楽 ● Webも開発できるの嬉しい stable待ってます

Slide 44

Slide 44 text

さいごに Kotlin Multiplatformの発展が楽しみです みんなもKotlinでアプリ作ろう!