Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
KMMの導入と得られるもの / Introduction of KMM and its ben...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Masatoshi Kubode
April 06, 2021
Programming
2.9k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KMMの導入と得られるもの / Introduction of KMM and its benefits
https://wantedly-dev.connpass.com/event/207895/
Masatoshi Kubode
April 06, 2021
More Decks by Masatoshi Kubode
See All by Masatoshi Kubode
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
200
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
kubode
0
280
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
1.4k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
750
技術を根付かせる / How to make technology take root
kubode
1
520
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
670
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.5k
Make your Android app into Multiplatform app
kubode
0
250
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.6k
Other Decks in Programming
See All in Programming
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
280
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
150
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
170
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
110
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
200
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
160
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
0
110
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
2
740
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
130
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Practical Orchestrator
shlominoach
191
12k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
A designer walks into a library…
pauljervisheath
211
25k
Exploring anti-patterns in Rails
aemeredith
3
510
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Raft: Consensus for Rubyists
vanstee
141
7.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Ethics towards AI in product and experience design
skipperchong
2
370
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. 🙇