Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlin MPPと戯れるノクチル
Search
subroh_0508
December 05, 2020
Technology
0
600
Kotlin MPPと戯れるノクチル
アイマスハッカソン2020 オンライン!のLT資料です。
https://imas.connpass.com/event/194308/
subroh_0508
December 05, 2020
Tweet
Share
More Decks by subroh_0508
See All by subroh_0508
Compose MultiplatformでもHot Reloadが動くらしい
subroh0508
1
100
Compose for Webでポートフォリオサイトを作る
subroh0508
1
150
あらゆるアプリをCompose Multiplatformで書きたい! -ネイティブアプリの「あの機能」を私たちはどう作るか-
subroh0508
1
2.6k
登壇の心理的ハードルをコントロールする技術
subroh0508
2
550
テストコードを書きながらCompose Multiplatformを乗りこなす
subroh0508
0
890
自己効力感を二次元アイドル作品から得ながら社会人としての成長を超加速させる
subroh0508
2
710
担当アイドルを応援する傘を作ろう! (として失敗した話)
subroh0508
0
610
buildSrc/Composite Buildで必要なバージョン情報も Version Catalogから参照したい!
subroh0508
0
1.6k
フロントエンドもJetpack Composeで書きたい! -Compose for WebはモダンWebアプリケーションの夢を見るか?-
subroh0508
0
930
Other Decks in Technology
See All in Technology
日経のデータベース事業とElasticsearch
hinatades
PRO
0
230
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
2.7k
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
350
What's new in Go 1.24?
ciarana
1
110
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
150
Amazon Aurora のバージョンアップ手法について
smt7174
2
150
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
OPENLOGI Company Profile for engineer
hr01
1
20k
Windows の新しい管理者保護モード
murachiakira
0
200
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
200
設計を積み重ねてシステムを刷新する
sansantech
PRO
0
170
Goで作って学ぶWebSocket
ryuichi1208
3
2.8k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5.2k
Designing for Performance
lara
604
68k
A Tale of Four Properties
chriscoyier
158
23k
We Have a Design System, Now What?
morganepeng
51
7.4k
Agile that works and the tools we love
rasmusluckow
328
21k
The Invisible Side of Design
smashingmag
299
50k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Faster Mobile Websites
deanohume
306
31k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
The Pragmatic Product Professional
lauravandoore
32
6.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Transcript
,PUMJO.11ͱٔΕΔϊΫνϧ ΞΠϚεϋοΧιϯΦϯϥΠϯʂ ʹ͜͠Γ͞ͿΖʙ!TVCSPI@
,PUMJO.11ͱٔΕΔϊΫνϧ ΞΠϚεϋοΧιϯΦϯϥΠϯʂ ʹ͜͠Γ͞ͿΖʙ!TVCSPI@ ˞தͷਓʹΦϑΝʔΛग़͓ۚ͢ͱݖྗ͕ͳ͔ͬͨͨΊ ɹ$7ɾʹ͜͠Γ͞ͿΖʙͰ͓ૹΓ͠·͢
3 ……………… ✦ ✦
4 ……͋ʙͬʂɹখࢳͪΌΜɺ͍͍ͨͨʙʂ େมେมʙʙʙʂɹ՝ڭ͑ͯʙʙʙʂ ࡊ ✦ ✦
5 খࢳ ✦ ✦ ……ͽΌ͊ʂʂʂɹͳɺͳΜͩɺࡊͪΌΜ͔……ɻ ͲɺͲ͏ͨ͠ͷʁɹύιίϯ࣋ͬͯΔͬͯ͜ͱɺใॲཧͷ՝ʁ
6 ͦ͏ͦ͏ɺใॲཧͷतۀɺͳΜ͔αϘΓ͗ͪ͢ΌͬͨΈ͍ͨͰʙɻ ΞϓϦ࡞Δ՝ɺ2ͭΒͳ͍ͱʹͳͬͪΌ͏Μͩͬͯʙʙʙʂ ࡊ ✦ ✦
7 ͑ͬ……͑͑ʙͬʂʂʂͦɺͦΕେมʂʂʂ ୲ɺಉ͡ઌੜ͔ͩΒɺ࡞Βͳ͖Ό͍͚ͳ͍ͷAndroidͱWebΞϓϦʁ খࢳ ✦ ✦
8 ͏ʙΜɺͦ͏ʂͦΕͰͶɺAndroidͷํখࢳͪΌΜ͕ڭ͑ͯ͘Εͨɺ ͔Θ͍͍ʙὑݴޠͰॻ͍ͨΒɺྑ͍ײ͡ʙʙʙʹͰ͖ͨΜͩʙʂ ࡊ ✦ ✦
9 ͔Θ͍͍ݴޠ……͜ɺKotlinͷ͜ͱʁɹ͢ɺ͍͢͝ɺ͏ͦΜͳʹॻ͚ΔΑ͏ʹͳͬͨͷʁ খࢳ ✦ ✦
10 ͚ͩͲͶʙɺWebͷํ͕શવ͔Βͳ͍ʂɹ͔ͩΒখࢳͪΌΜɺڭ͑ͯʙʙʙɻ ࡊ ✦ ✦
11 ͏ɺ͏Μɺྑ͍͚Ͳ……ɻࡊͪΌΜɺͲ͕͔͜Βͳ͍ͷʁ Webͩͱɺ͡ΌɺJavascript͔ͳʁɹจ๏͕ɺ͔Βͳ͍ͱ͔ʁ খࢳ ✦ ✦
12 ͡Ό……͘͢Γͱʙʁɹ͑ʙʙʙɺ͔ͯ͠͠ɺ·ͨ৽͍͠ݴޠ֮͑ͳ͖Όͳͷʙʙʙʁ ΊΜͲ͘͞ʙ͍ʂɹࡊɺͥʙΜͿKotlinͰॻ͖ͨʙ͍ʂ ࡊ ✦ ✦
13 ͦɺͦΜͳΘ͕··……ɻͩɺୈҰɺࡊͪΌΜ͕ͪΌΜͱतۀग़ͯΕ……ɻ খࢳ ✦ ✦
14 ͓ʔ͍ɺখࢳͪΌʔΜɻ ಁ ✦ ✦
15 ……ͽ͐͑͑͑ʂʂʂɹ……ɺ͏ʂɹಁͪΌΜʂɹ͓ɺ͓Ͳ͔͞ͳ͍ͰΑ……ʂ খࢳ ✦ ✦
16 ͝ΊΜ͝ΊΜɻͶɺͦΕΑΓ͞ɺ՝ɺॿ͚ͯɻ ಁ ✦ ✦
17 ……͑ɺ͑͑ʂʁɹͱɺಁͪΌΜ…ʁ খࢳ ✦ ✦
18 ͏Μɻͪΐͬͱɺςετɺ͔ͬͨɻ ิशͷ՝ͰɺWebͱεϚϗͷΞϓϦ࡞ΕͬͯݴΘΕͪΌͬͯ͞ɻ ಁ ✦ ✦
19 ՝ͷఏग़ظݶɺ໌͔ͩΒɻ͜Εؒʹ߹Θͳ͍ɺͬͯࢥͬͯɻ ͔ͩΒɺ͑ʔͬͱ……ɺͳΜͱ͔ͳΜͱ͔……Έ͍ͨͳͷͰόʔͬͱΓ͍ͨɻ ಁ ✦ ✦
20 ͳɺͳΜͱ͔ͳΜͱ͔……͑ʔͬͱɺ͘ɺΫϩεϓϥοτϑΥʔϜɺͷ͜ͱ͔ͳ……ʁ খࢳ ✦ ✦
21 ͦ͏ɺͦΕͦΕɻ1ճॻ͍ͨΒɺWebεϚϗζόʔϯͬͯͰ͖ͪΌ͏ͭɻ ಁ ✦ ✦
22 ͑ʙͳʹͦΕʙʙʙʂɹ͢͝ʙʙʙ͍ʂɹ͋͠Θͤʙὑͦ͏ʂ খࢳͪΌΜɺࡊΫϩεϓϥοτϑΥʔϜͱKotlinͰɺͣʙΜͱΞϓϦ࡞Γͨʙ͍ʂ ࡊ ✦ ✦
23 ͽɺͽ͑……ɻͨɺ͔֬ʹɺ2ਓͱ͞Εͨ࣌ؒগ͚ͩ͠ɺͳΜͩΑͶ……ʁ ͦΕͳΒKotlin MultiplatformΛ͑ɺͰɺͰ͖Δ͔…ʂ খࢳ ✦ ✦
24 ͑ʙʙʙɺͦΕͬͯKotlinͰॻ͚Δͷʙʙʙʂʁ ʙʙʙʂɹࡊɺָ͘͠ͳ͖ͬͯͨʙʙʙʂ ࡊ ✦ ✦
25 ΘɺΘͨͪ͠ΐͬͱ͔͠৮ͬͯͳ͍͔Βৄ͔͘͠Βͳ͍͚Ͳɺ ͰɺͰ3ਓ͍Εɺ͖ͬͱͰ͖ΔΑͶ……ʂ খࢳ ✦ ✦
26 ;;ɺͦ͏ͩͶɻ͜ͷ3ਓͳΒɺ՝ͳΜͯ͋ͬͱ͍͏ؒͰ͠ΐɻ ͦΕ͡ΌɺͬͪΌ͓͏͔ɺ͍͍͓͑͑ʔɻ ಁ ✦ ✦
27 ͓ɺ͓ʔʂ ͓ʙʙʙʂ খࢳɾࡊ ✦ ✦
28 ✦ ✦
29 ;;ɺKotlin MultiplatformɺͳΜΘ͔ΒΜɻ ಁ ✦ ✦
30 …… ԁ߳ ✦ ✦
31 ……Ͳ͏ͨ͠ͷɺ3ਓͱɻ ԁ߳ ✦ ✦
32 ……͋ɺ·ɺԁ߳ͪΌΜʂ ࠓɺKotlin MultiplatformͰใॲཧͷ՝ͬͯΔΜ͚ͩͲɺશવਐ·ͳͬͯ͘………ɻ খࢳ ✦ ✦
33 Kotlin MultiplatformʁɹνͷใॲཧͰͦΜͳʹ͍͠՝ɺग़ΔΘ͚ͳ͍Ͱ͠ΐɻ ԁ߳ ✦ ✦
34 ͋ɺ͏͏Μɺ՝ͦͷͷɺΞϓϦ͕࡞ΕΕOKͳΜͩɻ ͰɺͰɺಁͪΌΜͱࡊͪΌΜ͕……ɺͦͷɺޙ͕ͳ͍ঢ়گΒͯ͘͠……ɻ খࢳ ✦ ✦
35 Ṥޱʔɺ͚ͨͯ͢ʔɻ ಁ ✦ ✦
36 ……͊ɻํͳ͍ΘͶɻ Kotlin MultiplatformͳΒɺଟগΘ͔Δɻૡ͍ఠΜͰઆ໌͢Δ͔ΒɺͦΕͰ͍͍ʁ ԁ߳ ✦ ✦ ❓
37 ͍ɺ͍͍ͷɺԁ߳ͪΌΜʂ খࢳ ✦ ✦
38 ؾʹ͠ͳ͍ͰɻόΠτɺͦ͜ʹస͕ͬͯΔઙ͔ΒΉ͠ΓऔΔ͔Βɻ ԁ߳ ✦ ✦
39 Kotlin MultiplatformɺKotlinͷX-PlatϑϨʔϜϫʔΫͷ͜ͱΛࢦ͢ͷɻ RNXamarinͱେ͖͘ҟͳΔͷɺʮϩδοΫͷڞ௨ԽʯʹϑΥʔΧε͍ͯ͠Δͱ͜ΖͶɻ ͦͯ͠࠷ऴతͳՌɺJVM / Native / JSͷڥຖʹҟͳΔܗࣜͰग़ྗ͞ΕΔɺ͍͍ʁ ԁ߳
✦ ✦ ,PUMJO.VMUJQMBUGPSN .11 ,PUMJOͷ91MBUϑϨʔϜϫʔΫ ʮϩδοΫͷڞ௨ԽʯͷϑΥʔΧε͕ಛ +7./BUJWF+4ίʔυͷग़ྗ͕Մೳ 3FGFSFODFLPUMJOMBOHPSHEPDTSFGFSFODFNVMUJQMBUGPSNIUNM +7.ग़ྗ +4ग़ྗ /BUJWFग़ྗ
40 ͍ʙ͍ʂɹ͡Ό͊͡Ό͊ʙɺݴޠʹґଘ͠ͳ͍ڞ௨ͷϩδοΫΛʮCommon Kotlinʯͷ ͱ͜Ζʹ͏·ʙ͘·ͱΊͯॻ͚Εʙɺࠓ·Ͱ3ճಉ͜͡ͱΛॻ͍ͯͨͷ͕ͨͬͨ1ճʹऩ·ͬͯ ͋͠ΘͤʙὑʹͳΔͬͯ͜ͱʙʙʙʁ ࡊ ✦ ✦ ,PUMJO.VMUJQMBUGPSN .11
,PUMJOͷ91MBUϑϨʔϜϫʔΫ ʮϩδοΫͷڞ௨ԽʯͷϑΥʔΧε͕ಛ +7./BUJWF+4ίʔυͷग़ྗ͕Մೳ 3FGFSFODFLPUMJOMBOHPSHEPDTSFGFSFODFNVMUJQMBUGPSNIUNM +7.ग़ྗ +4ग़ྗ /BUJWFग़ྗ
41 ͦΜͳͱ͜ΖɻҿΈࠐΈ͕ૣ͍ΘͶɺࡊɻ ͜ͷʮڞ௨෦ʯΛͰ͖Δ͚ͩCommon Kotlinʹ·ͱΊɺʮϓϥοτϑΥʔϜຖʹҧ͏෦ʯΛ Ͱ͖ΔݶΓγϯϓϧʹ࣮͢Δɻ͜Ε͕Kotlin MPPͷجຊతͳ࣮ํʹͳΔͷɻ ԁ߳ ✦ ✦ ,PUMJO.VMUJQMBUGPSN
.11 ,PUMJOͷ91MBUϑϨʔϜϫʔΫ ʮϩδοΫͷڞ௨ԽʯͷϑΥʔΧε͕ಛ +7./BUJWF+4ίʔυͷग़ྗ͕Մೳ 3FGFSFODFLPUMJOMBOHPSHEPDTSFGFSFODFNVMUJQMBUGPSNIUNM +7.ग़ྗ +4ग़ྗ /BUJWFग़ྗ
42 ࣮ࡍͷKotlin MPPϓϩδΣΫτͷσΟϨΫτϦߏ͜Μͳײ͡ɻUIͷߏஙɺ ֤ܿ͘ϓϥοτϑΥʔϜຖͷ࣮ʹͤΔͷ͕Kotlin MPPɻ͔ͩΒandroid / ios / jsϞδϡʔϧΛ ༻ҙͯ͠ɺUIʹؔ͢ΔϓϥοτϑΥʔϜݻ༗ͷίʔυΛ·ͱΊΔඞཁ͕͋Δͷɻ
ԁ߳ ✦ ✦ σΟϨΫτϦߏ ᶃBOESPJE ᶄJPT ᶅKT ᶃ ᶄ ᶅ ˞ԼઢͷϑΝΠϧ͕ ϓϥοτϑΥʔϜຖͷϝΠϯը໘
43 ϓϥοτϑΥʔϜʹґଘͤͣɺڞ௨ԽͰ͖ΔίʔυΛஔ͘ͷ͜ͷϞδϡʔϧɻ Ϟδϡʔϧ໊ʮsharedʯʮcommonsʯͱͯ͠ཧ͢Δ͜ͱ͕ଟ͍ΘͶɻ σʔλΫϥεͷએݴۀϩδοΫɺAPIαʔόʔͷϦΫΤετ·ͱΊΔ͜ͱ͕Ͱ͖ΔΘɻ ԁ߳ ✦ ✦ σΟϨΫτϦߏ ˞TIBSFEʹͨ͘͞Μ ·ͱΊͨϓϩδΣΫτྫ
BQJ"1*$MJFOUΛఆٛ EC%#PS-PDBM$BDIFͷ$MJFOUΛఆٛ RVFSZ41"32-ΫΤϦͷఆٛ SFQPTJUPSZϞσϧຖʹ$36%ϝιουΛఆٛ NPEFMσʔλΫϥεͷએݴ QSFTFOUBUJPO6*ϩδοΫͷ࣮ VUJMJUJFTศརؔ܈
44 ͰɺsharedϞδϡʔϧҎԼͷߏ͜͏ɻ ԁ߳ ✦ ✦
45 ͋……ɺɺ͔ͯ͠͠ɺ͜ͷσΟϨΫτϦߏ͕ɺ͖ͬ͞ͷಉ৺ԁͷਤͱରԠ͍ͯ͠Δͷʁ commonMainͷԼʹڞ௨ͷϩδοΫΛॻ͍ͯɺͲ͏ͯ͠ϓϥοτϑΥʔϜґଘͷίʔυΛ ॻ͔ͳ͖Ό͍͚ͳ͍࣌ɺandroidMainiosMainʹॻ͍͍͚ͯɺ͍͍ͷ͔ͳ……ʁ খࢳ ✦ ✦ +7.ग़ྗ +4ग़ྗ /BUJWFग़ྗ
ڞ௨ͷϩδοΫ "OESPJEʹґଘ͢Δίʔυ J04ʹґଘ͢Δίʔυ +4ʹґଘ͢Δίʔυ
46 ͦͷ௨ΓΑɺখࢳɻ ͲͷϓϥοτϑΥʔϜͰڞ௨ͷϩδοΫΛ࣮͍ͨ͠ͳΒɺࢥͬͨ௨ΓͷίʔυΛKotlinͰ ͦͷ··commonMainҎԼʹ࣮͢ΕऴΘΓɻGradle͕ྑ͍ײ͡ʹՌΛग़ͯ͘͠ΕΔɻ ԁ߳ ✦ ✦ // จࣈΛग़ྗ͢Δϝιου class
Greeting { fun greeting() = "Hello!" } // on Android val tv: TextView = findViewById(R.id.text_view) tv.text = Greeting().greeting() // on JS(Kotlin/JS) render(document.getElementById("root")) { h3 { +Greeting().greeting() } } // on iOS(SwiftUI) var body: some View { Text(Greeting().greeting()) } ˞֤ϓϥοτϑΥʔϜͷ)FMMP 8PSME
47 ҰํͰɺྫ͑ϩάग़ྗΈ͍ͨʹɺϓϥοτϑΥʔϜຖʹҧ͏࣮͕ෆՄܽͷ߹͋Δɻ ͦͷ࣌ɺ·ͣcommonMainʹexpectम০ࢠΛ͚ͭͯΫϥε / ϝιουΛఆٛ͢Δͷɻ ֤ϓϥοτϑΥʔϜʹ͚ͯɺΫϥε / ϝιουͷ"ଘࡏ"Λఆٛ͢ΔΠϝʔδͶɻ ԁ߳ ✦
✦ // จࣈΛग़ྗ͢Δϝιου expect object Log { fun debug(message: String) } FYQFDUम০ࢠ ˠϝιουͷதϓϥοτϑΥʔϜຖʹ ɹ࣮͢ΔͷͰ͜͜Ͱۭ
48 actual object Log { actual fun debug(message: String) {
android.util.Log.d("debug", message) } } actual object Log { actual fun debug(message: String) { println("debug: $message") } } actual object Log { actual fun debug(message: String) { console.log("debug: $message") } } ͦͯ͠ɺandroidMainiosMainͰΫϥε / ϝιουͷதΛ࣮͢Δɻ actualम০ࢠΛઌ಄ʹ͚ͭΔ͜ͱͰɺexpectͳΫϥε / ϝιουͱରԠ͚͕ͮͰ͖ΔɺͦΜͳײ͡ɻ ԁ߳ ✦ ✦ BDUVBMम০ࢠ
49 ͜͜·Ͱͬ͘͟ΓίʔυΛݟ͚ͤͨͲɺಈ࡞֬ೝલʹΑ͘ϋϚΔͷ͕ɺϏϧυεΫϦϓτपΓɻ ͔ͩΒॳΊͯ৮Δ࣌ɺKotlin Multiplatform MobileΛ͏ͱָͶɻ υΩϡϝϯτॆ࣮͍ͯ͠Δ͠ɺҰಡΜͰ͓͘ͱ͢ΜͳΓਐΉΜ͡Όͳ͍ʁ ԁ߳ ✦ ✦ ,PUMJO.VMUJQMBUGPSN.PCJMF
,.. ,PUMJO.11ͰͷϞόΠϧ։ൃΛָʹ͢Δ1MVHJO "OESPJE4UVEJP 9DPEFҎ߱ ͜ͷࢿྉͷαϯϓϧίʔυ࡞ʹ׆༻ ϦϯΫIUUQTLPUMJOMBOHPSHMQNPCJMF
50 50 ͑ɺͳΜ͔ͦ͢͝͏ɻ Ͷ͐ɺKotlin MPPͬͯ͞ɺͲ͜·Ͱڞ௨ԽͰ͖ΔΜͩΖ͏Ͷɻ ಁ ✦ ✦ ,PUMJO.VMUJQMBUGPSN.PCJMF ,..
,PUMJO.11ͰͷϞόΠϧ։ൃΛָʹ͢Δ1MVHJO "OESPJE4UVEJP 9DPEFҎ߱ ͜ͷࢿྉͷαϯϓϧίʔυ࡞ʹ׆༻ ϦϯΫIUUQTLPUMJOMBOHPSHMQNPCJMF
51 ฉ͍ͨ͜ͱ͕͋ΔͷͳΒɺʮ֎՟ܭࢉʯʮ੫ֹܭࢉʯͷڞ௨Խɻ খ͞ͳζϨڐ͞Εͳ͍ػೳ͔ͩΒಋೖޮՌߴ͍͠ɺͳ͓͔ͭඇಉظॲཧհࡏ͠ͳ͍͔Βɺ ݱߦͷKotlin MPPͰ҆৺ͯ͠ར༻Ͱ͖ΔྖҬͱݴ͑ΔͰ͠ΐ͏Ͷɻ ԁ߳ ✦ ✦
52 ͦΕ͔Βɺ࠷ۙHttpΫϥΠΞϯτͷKtorJSONγϦΞϥΠβͷkotlinx.serializationɺ ඇಉظॲཧΛѻ͏CoroutinesKotlin MPPʹରԠ͍ͯ͠Δ͠ɺࣄྫ͕গͳ͍͚ͩͰ ڞ௨ԽͰ͖Δൣғ͔ͳΓ͍Μ͡Όͳ͍ʁɹΒͳ͍͚Ͳɻ ԁ߳ ✦ ✦ ,PUMJO.11ରԠͷϥΠϒϥϦ
,UPS)UUQΫϥΠΞϯτɻ+FU#SBJOTɻ LPUMJOYTFSJBMJ[BUJPO+40/γϦΞϥΠβσγϦΞϥΠβɻ+FU#SBJOTɻ ,PUMJO$PSPVUJOFTඇಉظॲཧΠΠײ͡ʹ͢Δɻ+FU#SBJOTɻ LPJO,PEFJOґଘੑೖ %* ϥΠϒϥϦɻ ,PUFTUϢχοτςετϑϨʔϜϫʔΫɻ
53 ઌिݟͨLTձͰɺMVVMΞʔΩςΫνϟͷViewModelɺͭ·ΓUIϩδοΫ·Ͱڞ௨Խͨ͠ɺ ͳΜͯΛϓϩσϡʔαʔ͕͍͚ͯͨ͠Ͳɺ·Δʹ͕͔͔࣌ؒΓͦ͏Ͷɻ ԁ߳ ✦ ✦ ࢿྉIUUQTTQFBLFSEFDLDPNTVCSPIKFUQBDLDPNQPTFEFHBO[JUBTJBXBTFOBUPLPSP
54 ͯ͞ɺઆ໌͜ΕͰऴΘΓɻͲ͏ʁɹͰ͖ͦ͏ʁ ԁ߳ ✦ ✦
55 ʙʙʙὑɹԁ߳ઌഐɺઆ໌Θ͔Γ͢ʙ͍ʂ ͜ΕͩͬͨΒɺ՝શ෦ɺԁ߳ઌഐʹ͓ئ͍ͨ͠ํ͕ૣͦ͏ʙʙʙʂʂʂ ࡊ ✦ ✦
56 צหͯ͠……ɻখࢳɺޙཔΜͩɻ ԁ߳ ✦ ✦
57 ͽΌͬʂʂʂɹ……͋ɺ͋Γ͕ͱ͏ɺԁ߳ͪΌΜʂ ͲɺͲ͏……ʁɹਐΊΒΕͦ͏ɺಁͪΌΜ……ʁ খࢳ ✦ ✦
58 ;;;ɺେৎɺ͏ᘳɻ Kotlin Multiplatformɺશʹཧղͨ͠ɻ ಁ ✦ ✦
59 …… খࢳ ✦ ✦
60 …… ԁ߳ ✦ ✦
61 ……͊ɻख͏ɻઙɺ՝Έͤͯɻ ԁ߳ ✦ ✦
62 ͑ʙʙʙͣΔ͍ʙʙʙʂɹࡊಁઌഐʹڭ͑Δʙʙʙʂʂʂ ࡊ ✦ ✦
63 ……ͭͮ͘(?) ✦ ✦
,PUMJO.11ͱٔΕΔϊΫνϧ ΞΠϚεϋοΧιϯΦϯϥΠϯʂ ʹ͜͠Γ͞ͿΖʙ!TVCSPI@ )BWFBOJDF,PUMJO