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
KMMの導入と得られるもの / Introduction of KMM and its ben...
Search
Masatoshi Kubode
April 06, 2021
Programming
2
2.7k
KMMの導入と得られるもの / Introduction of KMM and its benefits
https://wantedly-dev.connpass.com/event/207895/
Masatoshi Kubode
April 06, 2021
Tweet
Share
More Decks by Masatoshi Kubode
See All by Masatoshi Kubode
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
1k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
470
技術を根付かせる / How to make technology take root
kubode
1
380
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
460
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.3k
Make your Android app into Multiplatform app
kubode
0
170
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.1k
Jetpack ComposeのBottomSheetとの戦い / Fight with BottomSheet of Jetpack Compose
kubode
0
850
Mobile Chapterが目指すところと技術 / Vision and Technology of Mobile Chapter at Wantedly
kubode
0
370
Other Decks in Programming
See All in Programming
新世界の理解
koriym
0
140
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
370
令和最新版手のひらコンピュータ
koba789
13
7.7k
画像コンペでのベースラインモデルの育て方
tattaka
3
1.7k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
17
3.9k
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
120
Understanding Kotlin Multiplatform
l2hyunwoo
0
260
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
200
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.1k
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
420
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
5
590
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
830
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
810
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Embracing the Ebb and Flow
colly
86
4.8k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Docker and Python
trallard
45
3.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
GitHub's CSS Performance
jonrohan
1031
460k
Measuring & Analyzing Core Web Vitals
bluesmoon
8
550
Transcript
©2021 Wantedly, Inc. ,..ͷಋೖͱಘΒΕΔͷ ,..ͱʁಋೖͷಓͷΓɺԿ͕ಘΒΕΔͷ͔ ,..ษڧձ8BOUFEMZºνʔϜϥϘ 2021/04/06 - Masatoshi Kubode
©2021 Wantedly, Inc. XXXXBOUFEMZDPNJELVCPEF
©2021 Wantedly, Inc. ࠓͷൃදͷత
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. ,..ͷັྗΛ͑ͯ ಋೖͷྐʹͯ͠Β͏
©2021 Wantedly, Inc. "HFOEB
©2021 Wantedly, Inc. ,..ͱͳʹ͔ʁ ,..ͷಛ ಋೖ·ͰͷಓͷΓ
ಋೖͯ͠ײͨ͡1SPT$POT "HFOEB
©2021 Wantedly, Inc. ,..ͱͳʹ͔ʁ
©2021 Wantedly, Inc. w ,PUMJO.VMUJQMBUGPSN.PCJMF ,.. w J04ͱ"OESPJEͷϏδωεϩδοΫΛ୯ҰͷίʔυϕʔεͰڞ௨Խ͢ΔϞόΠϧ4%, w
6*ڞ௨Խͤͣɺ֤ϓϥοτϑΥʔϜͰ࣮ ,..ͱʁ https://kotlinlang.org/lp/mobile/
©2021 Wantedly, Inc. w ୯ҰίʔυϕʔεͰෳͷϓϥοτϑΥʔ ϜΛαϙʔτ͢ΔΈ w $PNNPOʹهड़ͨ͠ίʔυͯ͢ͷϓ ϥοτϑΥʔϜͰಈ࡞͢Δ w
J04"OESPJEʹಛԽͨ͠෦͕,.. ,PUMJO.VMUJQMBUGPSN Android iOS ☝Kotlin Multiplatform Mobile (KMM) Kotlin Multiplatform https://kotlinlang.org/docs/multiplatform.html
©2021 Wantedly, Inc. ,..ʹࢸΔྺ࢙ 1996 Java 1.0 2016 Kotlin 1.0
Kotlin/JVM 2016 Kotlin 1.1 Kotlin/JS 2017 Kotlin 1.2 Kotlin Multiplatform Experimental 2018 Kotlin 1.3 Kotlin/Native 20208݄ Kotlin 1.4 Kotlin Multiplatform Alpha Kotlin Multiplatform Mobile (KMM)
©2021 Wantedly, Inc. w ʹϦϦʔε w 8SJUFPODF SVOBOZXIFSF͕εϩʔΨϯ w +7.͕ͳ͍ͱಈ͔ͳ͍
w ͭ·ΓJ04ͳͲͰಈ͔ͳ͍ +BWB
©2021 Wantedly, Inc. w +7.ͱ"OESPJEͷϓϩάϥϛϯάݴޠ w +BWBDPNQBUJCJMJUZ ,PUMJO
©2021 Wantedly, Inc. w +BWB4DSJQU4VQQPSU w ·ͩίʔυڞ௨ԽͷΈͳ͍ w ޙʹ"OESPJEͷୈҰڃݴޠʹ ,PUMJO
©2021 Wantedly, Inc. w ,PUMJO.VMUJQMBUGPSN &YQFSJNFOUBM w $PNNPOͱ͍͏֓೦͕Ͱ͖Δ ,PUMJO
©2021 Wantedly, Inc. w ,PUMJO/BUJWF w J04 w 8JOEPXT w
-JOVY w FUD w 8SJUFPODF SVOBOZXIFSF ,PUMJO
©2021 Wantedly, Inc. w ,PUMJO.VMUJQMBUGPSN"MQIB w ,PUMJO.VMUJQMBUGPSN.PCJMF ,.. ,PUMJO Android
iOS ☝Kotlin Multiplatform Mobile (KMM)
©2021 Wantedly, Inc. ,..ͷಛ
©2021 Wantedly, Inc. w 6*ڞ௨Խ͠ͳ͍ w ϓϥοτϑΥʔϜʹ࠷దͳܗ w ϓϥοτϑΥʔϜݻ༗ͷ"1*͑Δ ,..ͷಛ
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. 6*ڞ௨Խ͠ͳ͍
©2021 Wantedly, Inc. ,..ϏδωεϩδοΫΛڞ௨Խ͢Δ ,..࠷దͳ69ϓϥοτϑΥʔϜʹωΠςΟϒͳ ͷͰ͋Δ͖ͱߟ͍͑ͯΔɻ ͳͷͰ,..Ͱͷڞ௨Խਪ͠ͳ͍ɻ 6*ڞ௨Խ͠ͳ͍
©2021 Wantedly, Inc. 6*ڞ௨Խ͠ͳ͍ طଘϓϩμΫτͷಋೖͰղ͖͘՝͕ݮΔ
©2021 Wantedly, Inc. 6*ڞ௨Խ͠ͳ͍ ,..ΞʔΩςΫνϟΨΠυϥΠϯ Layer Recommendation on sharing Business
logic Yes Platform access Yes/no. ϓϥοτϑΥʔϜݻ༗ͷAPI͑Δ͕ ڍಈڞ௨ԽͰ͖Δ Frontend behavior Yes/no. MVP, MVIͳͲͳΜͰ User interface No. ϓϥοτϑΥʔϜݻ༗Ͱ͋Δ͖ https://kotlinlang.org/docs/mobile/architect-kmm-app.html
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. ϓϥοτϑΥʔϜʹ࠷దͳܗ
©2021 Wantedly, Inc. ΤίγεςϜʹແཧͳ͘౷߹ w J04 w GSBNFXPSL w $PDPB1PET
w "OESPJE w BBS w KBS w (SBEMFTVCNPEVMF ϓϥοτϑΥʔϜʹ࠷దͳܗ ґଘੑ
©2021 Wantedly, Inc. ϓϥοτϑΥʔϜʹ࠷దԽ͞ΕͨόΠφϦ ϓϥοτϑΥʔϜʹ࠷దͳܗ Φʔόʔϔουͷগͳ͞
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. ϓϥοτϑΥʔϜݻ༗ͷ"1*͑Δ
©2021 Wantedly, Inc. ,..ͰϓϥοτϑΥʔϜݻ༗"1*Λ͑Δ ϓϥοτϑΥʔϜݻ༗ͷ"1*͑Δ FYQFDUBDUVBM https://kotlinlang.org/docs/mobile/connect-to-platform-specific-apis.html
©2021 Wantedly, Inc. ಋೖ·ͰͷಓͷΓ
©2021 Wantedly, Inc. νʔϜͷཧղ ,..ͷυΩϡϝϯτʹΨΠυϥΠϯ͕͋Δ͘Β͍ॏཁ w ϓϩδΣΫτͰಇ͘ਓʑΛཧղ͢Δ͜ͱ͕ɺ౷߹Λޭͤ͞ΔͨΊͷୈҰา w ্͔࢘Βͨ͠Β৽͍ٕ͠ज़ಋೖϦεΫ w
J04ΤϯδχΞ͔Βͨ͠Βࠓ·ͰͱҟͳΔڥ w ,..͕Ͳ͏ͬͯಈ͍͍ͯΔͷ͔Λઆ໌ w ,..ͷՁΛײͯ͡Β͏ ಋೖͷಓͷΓ https://kotlinlang.org/docs/mobile/introduce-your-team-to-kmm.html
©2021 Wantedly, Inc. ,..࠷దͳखஈ͔ ϓϩμΫτͷϑΣʔζνʔϜʹ߹ΘͤΔ w ҆ఆ͖ͯͨ͠ϓϩμΫτͰڪΒ͘࠷ద w Ծઆݕূஈ֊Ͱదͱݴ͍ʹ͍͘ w
J04"OESPJEͰϦϦʔεαΠΫϧ͕ҧ͏ w ϏδωεϩδοΫߴͰมΘΔ w 'MVUUFS3FBDU/BUJWFͷ΄͏͕ߴ w ϑϧϦχϡʔΞϧ༧ఆͳΒʁ w νʔϜͰ߹ҙΛͱͬͯ࠷దͳͷΛબͿ ಋೖͷಓͷΓ
©2021 Wantedly, Inc. J04"OESPJE྆ํͰ͖Δ w τϥϒϧγϡʔςΟϯά w ڥߏஙπʔϧνΣΠϯ w ͍ͳ͔ͬͨΒɺͳΓ·͠ΐ͏
ಋೖͷಓͷΓ
©2021 Wantedly, Inc. ݕূ w J04"OESPJE྆ํͰݕূ͕ඞਢ w J04ʹ͓͚ΔϝϞϦϚωδϝϯτϞσϧͷҧ͍ w J04ͷ0CKFDUJWF$4XJGUޓੑͷ੍ݶ
w ΠϯλʔϑΣʔε͔ΒδΣωϦΫεফࣦ w ݺΜͩTVTQFOEͷΩϟϯηϧ͕Ͱ͖ͳ͍ w J04ΤϯδχΞͱҰॹʹݕূ͢Δ w 1P$ϓϩτλΠϓΛ࡞ͬͯখ͘͞ߴʹݕূ ಋೖͷಓͷΓ
©2021 Wantedly, Inc. ,B.1,JU ಋೖͷಓͷΓ https://github.com/touchlab/KaMPKit ,..ͷධՁΛ༰қʹ͢ΔελʔλʔΩοτ
©2021 Wantedly, Inc. ಋೖࣄྫ ಋೖͷಓͷΓ https://kotlinlang.org/lp/mobile/case-studies/
©2021 Wantedly, Inc. ಋೖͯ͠ײͨ͡1SPT$POT
©2021 Wantedly, Inc. w ظతͳੜ࢈ੑվળ͢Δ w ωΠςΟϒͷ6*69ΛఏڙͰ͖Δ w ΤϥʔϋϯυϦϯάΩϟογϡͷڍಈͳͲɺඍົͳҧ͍ݮΔ w
ޙ͍࣮͢ΔϓϥοτϑΥʔϜɺຊʹ6*࣮͚ͩͰࡁΉ w ωΠςΟϒͱͷڥքʹͳΔ,..ϨΠϠʔͷ༷ܾ͑͞ΊΕɺ,..ͱωΠςΟϒͷ࣮͕ ͋ΔఔฒྻԽͰ͖Δ w ,..ʹ6*͕ͳ͍ͷͰɺඞવతʹςετΧόϨοδ͕ߴ͘ͳΔ 1SPT
©2021 Wantedly, Inc. w "MQIBͱ͍͏εςʔλεɺϦεΫΛෛ͏͜ͱ w 8SJUFPODF UFTUFWFSZXIFSF w J04ΤϯδχΞͷֶशίετ͕ߴ͍
w J04ͷ0CKFDUJWF$4XJGUޓੑ͕Ұ෦ඍົ $POT
©2021 Wantedly, Inc. ·ͱΊ
©2021 Wantedly, Inc. w ࠷దͳ6*69ͷఏڙͱڞ௨Խͷཱ͕྆Ͱ͖Δ w طଘϓϩμΫτΛڞ௨Խ͢Δʹ࠷ద ·ͱΊ
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. 🙇