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
KMPを触ってみた
Search
jambo-develop-team
March 11, 2024
0
17
KMPを触ってみた
KPMを調べるにあたって
・iOSとAndroidの同機能実装時に両OS間で差分が多かった
・同じ機能を違う言語でメンテナンスする必要はあるのか?
・同じコードで両OS開発できるんじゃないか?
jambo-develop-team
March 11, 2024
Tweet
Share
More Decks by jambo-develop-team
See All by jambo-develop-team
会社紹介資料_株式会社ジャンボ
jambo_develop_team
0
1k
株式会社Jambo紹介資料
jambo_develop_team
0
630
StoreKit2を使用した課金実装
jambo_develop_team
0
210
AppDelegateで何をすべきか
jambo_develop_team
0
280
SwiftUIのpropertyWrapperをふんわり理解する
jambo_develop_team
0
300
JetpackCompose触ってみた
jambo_develop_team
0
7
モバイルアプリの通知機能を AmazonSNSで実装する
jambo_develop_team
0
22
アジャイル入門
jambo_develop_team
0
8
0から始めるSwiftData
jambo_develop_team
0
9
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
169
14k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Language of Interfaces
destraynor
154
24k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Ruby is Unlike a Banana
tanoku
97
11k
Agile that works and the tools we love
rasmusluckow
327
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Transcript
,.1Λ༻͔ͯͬͨ͜͠ͱ J04ͱ"OESPJEͷϩδοΫΛڞ௨Խͯ͠Έͨ
*OEFY Ϟνϕʔγϣϯ ࠓճͷςʔϚબఆཧ༝ʹ͍ͭͯ ·ͱΊ ͡ΊΔ ࣮ࡍͷϓϩδΣΫτʹམͱ͠ࠐΉ ,.1ͱ ͓·͚
d8IZdϞνϕʔγϣϯ d,.1Λֶ΅͏ͱߟ͖͔͚͑ͨͬd
ֶश͢ΔʹࢸͬͨܦҢ ɾJ04ͱ"OESPJEͷಉػೳ࣮࣌ʹ྆04ؒͰ͕ࠩଟ͔ͬͨ ɾಉ͡ػೳΛҧ͏ݴޠͰϝϯςφϯε͢Δඞཁ͋Δͷ͔ʁ ɾಉ͡ίʔυͰ྆04։ൃͰ͖ΔΜ͡Όͳ͍͔ʁ
ϚϧνϓϥοτϑΥʔϜͱ ϚϧνϓϥοτϑΥʔϜͱɺҟͳΔछྨͷϋ ʔυΣΞҟͳΔΦϖϨʔςΟϯάγεςϜ Ͱಉ͡Α͏ʹಈ࡞͢ΔΑ͏ʹΞϓϦέʔγϣϯ ιϑτΣΞΛઃܭ͢Δ͜ͱΛࢦ͠·͢ɻ ͦͷ໊ͷ௨ΓɺෳछͷϓϥοτϑΥʔϜʹର ԠͰ͖ΔΞϓϦέʔγϣϯͰ͢ɻ ग़య(ֶӃɹϓϩάϥϛϯά༻ޠ ग़య,PUMJO-BOHVBHF0 ff
i DJBM3FGFSFODF
ϚϧνϓϥοτϑΥʔϜͷछྨ ΫϥΠΞϯτ࣮ʹ͓͍ͯϚϧνϓϥοτϑΥʔϜԽʹύλʔϯ͋Δ 6*ͱϩδοΫΛશͯڞ༗͢Δύλʔϯ ϩδοΫͷΈΛผ04Ͱڞ༗͢Δύλʔϯ
֤ύλʔϯͷΠϝʔδ ΫϥΠΞϯτͷ6*ͱϩδοΫΛશͯڞ༗͢Δύλʔϯ ϩδοΫͷΈΛڞ༗͢Δύλʔϯ 7JFX.PEFM 7JFX.PEFM 'MVUUFSͱ3FBDU/BUJWFɺ ಠࣗͰ6*Λ࡞Ͱ͖ΔͨΊɺ ֤ٕज़ʹ·͕ͨΔ͜ͱͳ͘ɺ ࣮͢Δ͜ͱ͕Ͱ͖Δɻ ,.1ɺ֤ϓϥοτϑΥʔϜ
ಠࣗͷ6*ͷ"1*Λ༻Ͱ͖ɺ ७ਖ਼ͷ69Λ࣮ݱͰ͖Δɻ 6TF$BTF %BUB4UPSFͷϦΫΤετ %BUB4UPSFͷϦΫΤετ 6TF$BTF
d8IBUd,PUMJO.VMUJQMBUGPSNͱ d,.1ͰͰ͖Δ͜ͱd
ͦͦ,.1ͳΜͶΜ ,PUMJO.VMUJQMBUGPSN ҎԼɺ,.1 ςΫϊϩδʔɺΫϩεϓϥοτϑΥʔϜϓϩδΣΫτͷ։ൃΛ؆ૉԽ͢ΔͨΊʹઃܭ͞ Ε͍ͯ·͢ɻωΠςΟϒɾϓϩάϥϛϯάͷॊೈੑͱརΛҡ࣋͠ͳ͕ΒɺҟͳΔϓϥοτϑΥʔϜͰಉ͡ίʔυΛॻ͍ͨΓอ कͨ͠Γ͢Δ࣌ؒΛॖͰ͖Δɻ ಛʹɺ"OESPJEͱJ04ΞϓϦέʔγϣ ン ʹ͓͍ͯ
ϞόΠϧɾϓϥοτϑΥʔϜؒͰίʔυΛڞ༗͢Δ͜ͱɺ,PUMJOϚϧνϓϥοτϑΥʔϜͷओཁͳ༻ྫͰ͢ɻ ,.1Ͱɺ"OESPJEͱJ04ͷϓϩδΣΫτؒͰίʔυΛڞ༗͢ΔΫϩεϓϥοτϑΥʔϜɾϞόΠϧΞϓϦέʔγϣϯΛߏ ஙͰ͖ɺωοτϫʔΩϯάɺσʔλετϨʔδɺσʔλݕূɺੳɺܭࢉɺͦͷଞͷΞϓϦέʔγϣϯϩδοΫΛ࣮Ͱ͖Δɻ ग़ॴ ,PUMJO0 ff i DJBM3FGFSFODFIUUQTLPUMJOMBOHPSHEPDTNVMUJQMBUGPSNIUNMLPUMJONVMUJQMBUGPSNVTFDBTFT
ͦͦ,.1ͳΜͶΜ ɾ,PUMJOΛ։ൃͨ͠+FU#SBJOTࣾʹΑΓ࡞ΒΕٕͨज़ ɾ6*෦֤ϓϥοτϑΥʔϜ७ਖ਼ͷ6*ύʔπΛ༻ͯ͠։ൃͰ͖Δ ɾJ04͘͠"OESPJE PS8FC Ͱಉ༷͡ͷϩδοΫͷҰ෦͘͠શͯΛ,PUMJOݴޠͰڞ༗Ͱ͖Δ
,.174'MVUUFS3FBDU/BUJWF ,.1 'MVUUFS3FBDU/BUJWF 6* ֤ωΠςΟϒͰ࡞Ͱ͖Δ ͯ͢Λڞ༗ԽͰ͖Δ ֶशίετ ༧ଌ ߴ͘ͳ͍ ߴ͍
طଘͷ6*ͷ͍ճ͠ Ͱ͖Δ Ͱ͖ͳ͍
ͦͦ,.1ͳΜͶΜ J04ͱ"OESPJEͷϩδοΫͷڞ௨Խ ֤04ͷ७ਖ਼6*ύʔπΛ༻Ͱ͖Δ
ͦͦ,.1ͳΜͶΜ J04ͱ"OESPJEͷϩδοΫͷڞ௨Խ ֤04ͷ७ਖ਼6*ύʔπΛ༻Ͱ͖Δ Ծઆ࠷ߴͷ͍͍ͱ͜औΓͰ͖ɺϩδοΫͷڞ௨ԽʹΑΔര։ൃ͕Մೳʂʁ
,.1ΛબΒΜͩཧ༝ ɾJ04ͱ"OESPJEͷ6*ϑϨʔϜϫʔΫΛ༻࣮ͯ͠Ͱ͖Δ ɾֶशίετ͕େ෯ʹ͑ΒΕɺॳظ͔ΒߴͰ࣮Ͱ͖ͦ͏ ɾ4XJGU6*ͱ+FU1BDL$PNQPTFΛ༻͢Εɺ 6*ͷ࣮ߴԽͰ͖ͦ͏
d)PXd͡ΊΔ d,.1Ͱ۩ମతͳ࣮Λͯ͠ΈΔd
ηοτΞοϓํ๏ IUUQTXXXKFUCSBJOTDPNIFMQLPUMJONVMUJQMBUGPSNEFWNVMUJQMBUGPSNHFUUJOHTUBSUFEIUNM ηοτΞοϓʹ͍ͭͯ ηοτΞοϓʹׂ͍ͭͯѪ͠·͕͢ɺӈਤͷԼͷ 63-͔ΒɺඈΔެࣜνϡʔτϦΞϧΛࢀরͯ͠ڥ ηοτΞοϓ͍ͯͩ͘͠͞ʂ ༻͢ΔࡍɺACSFXJOTUBMMLEPDUPSAΛ λʔϛφϧͰ࣮ߦ͠ɺ։ൃڥ͕,.1։ൃʹ ద͍ͯ͠Δ͔Λஅ͔ͯ֬͠ΊΒΕ·͢ʂ
ηοτΞοϓํ๏ ηοτΞοϓ͕ྃ͢ΔͱɺӈͷਤͷΑ͏ʹ "OESPJE4UVEJP͔ΒJ04ͷγϡϛϨʔλʔΛ ϏϧυͰ͖ΔΑ͏ʹͳΓ·͢ ‼︎ গ͠ײಈ͠·ͨ͠ ͨͩ͠ɺ؆୯ʹϏϧυͰ͖ΔͷԿGSBNFXPSLΛ ༻͍ͯ͠ͳ͍͔ΒͰɺՃ͍ͯ͘͠ͱͳΔͱ ґଘؔΛ͔ͬ͠Γཧ͠ͳ͍ͱϏϧυ͕௨Βͳ
͘ͳΔͷͰɺཧղʹ͕͔͔࣌ؒͬͯ͠·͠·ͨ͠ɻ
࡞͢ΔαϯϓϧΞϓϦͷ༷ "OESPJEγϡϛϨʔλʔಈը J04γϡϛϨʔλʔಈը ϘλϯΛೋͭஔ͠ɺࠨͷϘ λϯΛλοϓ͢Δͱ ͞Εɺ ӈͷϘλϯΛλοϓ͢Δͱ ͞ΕΔ୯७ͳαϯϓϧΞϓϦ ֤ݴޠͰ࣮Λߦ͔ͬͯΒɺ
WJFX.PEFMͷڞ௨ԽΛߦ͍ ·͢ɻ ΞϓϦͷ༷ ˞7JFX.PEFMJ04Ͱ͍͏ͱ͜Ζͷ1SFTFOUFSʹࣅͨ$MBTTͷ͜ͱ
֤04σόΠεͷॳظγϡϛϨʔλʔ ॳظʮ)FMMP J04όʔδϣϯʯʮ)FMMP "OESPJEόʔδϣϯʯ ͱݴ͏දࣔͷΈͷγϯϓϧͳߏͰελʔτ͢Δ ͜ͷλΠϛϯάͰɺ·֤ͩ04ʹͷΈґଘͨ͠ϩδοΫͰɺ ϩδοΫΛڞ௨Խ͢Δ߹ɺ͔͜͜Βઌ΄Ͳड़ͨDPNNPOTIBSFͰ ڞ௨ͷWJFX.PEFMͰϩδοΫΛ࡞͍͖ͯ͠·͢ʂʂ J04ॳظը໘
"OESPJEॳظը໘
֤04ͷ6*ը໘ͷίʔυ "OESPJEଆͷ6*ͷίʔυ +FU1BDL$PNQPTF J04ଆͷ6*ͷίʔυ 4XJGU6*
֤04ͷ6*ը໘ͷίʔυ "OESPJEଆͷ6*ͷίʔυ +FU1BDL$PNQPTF J04ଆͷ6*ͷίʔυ 4XJGU6*
֤04Ͱڞ௨Խͷ֘Օॴ "OESPJEଆͷ6*ͷίʔυ J04ଆͷ6*ͷίʔυ ڞ ௨ Խ ͢ Δ Օ
ॴ
ڞ௨Խ͍͎ͯ͘͠
ϓϩδΣΫτͷ֊ʹ͍ͭͯ ϓϩδΣΫτϑΝΠϧ֊ BOESPJE"QQd J04"QQd TIBSFEd ɾ྆ϓϥοτϑΥʔϜͰڞ௨༷ͯ͢͠Δ$MBTTΛهड़͢Δ ɾJ04ͷ6*J04ͷΈͰ༻͢ΔΫϥεΛهड़͢Δ ɾJ04Ͱ༻͢ΔΞηοτΛ֨ೲͨ͠Γ͢Δ ɾ"OESPJEͷ6*"OESPJEͷΈͰ༻͢ΔΫϥεΛهड़͢Δ
ɾ"OESPJEͰ༻͢ΔΞηοτΛ֨ೲͨ͠Γ͢Δ
TIBSFEʹڞ௨ͷ7JFX.PEFM "OESPJEͱJ04ڞ௨ͷ7JFX.PEFM ڞ௨7JFX.PEFMΛJ04Ͱ༻͘͢͢͠Δ
֤04ͷ6*Ͱ7JFX.PEFMΛ༻ "OESPJEͷ6*࣮ʢϩδοΫڞ௨Խʣ J04ͷ6*࣮ʢϩδοΫڞ௨Խʣ ϩ δ ο Ϋ ͷ ڞ
௨ Խ
ڞ௨Խྃ
·ͱΊ d,.1ʹ͍ͭͯͷ૯ׅd
ڞ௨Խͯ͠Έͯײͨ͜͡ͱ ɾJ04ΤϯδχΞ͔ΒݟΔͱগֶ͠शίετ͕͋Δ ɾ,PUMJOͱ4XJGUͷݴޠ༷ʹڧ͍ΤϯδχΞʹͳΔඞཁ͋Γ ɾJ04ଆͰ,PUMJOͱ,.1ͷ༷ʹ߹ΘͤΔඞཁ͕͋Δ ɾ྆04ͷػೳࠩΛઈରʹग़ͤͳ͍ΞϓϦͷอकʹ⭕
ڞ௨Խͯ͠Έͯײͨ͜͡ͱ ʮઈରʹಋೖͨ͠ํ͕͍͍ʯͱ·Ͱ͍͔ͳ͍ͱײͨ͡ ಋೖ͢͠͞ ओ؍ қ͍͠ ಋೖ͠ʹ͍͘ ݁
͓·͚ d,.1ͷࠓޙʹ͍ͭͯd
d͓·͚d ൃදͷ࠷ॳͷํͰͨ͠ɺ6*ΛؚΉڞ௨ԽͱϩδοΫͷΈͷڞ௨Խʹ͍ͭͯ͠·͕ͨ͠ʜ $PNQPTF.VMUJQMBUGPSNʹΑΓɺ ,PUMJOͰJ04ͱ"OESPJEͷ6*Λ࡞Ͱ͖ΔΑ͏Ͱ͢ স $PNQPTF.VMUJQMBUGPSNʹ͍ͭͯ·ͨௐͯΈ·͢ $PNQPTF.VMUJQMBUGPSN IUUQTXXXKFUCSBJOTDPNMQDPNQPTFNVMUJQMBUGPSN
d'JOd
3FGFSFODF ɾ,.1ެࣜϦϑΝϨϯε IUUQTLPUMJOMBOHPSHEPDTNVMUJQMBUGPSNIUNM ɾ(ֶӃɹϓϩάϥϛϯά༻ޠ IUUQTHJNPKQHMPTTBSZEFUBJMTNVMUJ@QMBUGPSNIUNM ɾ+FU#SBJOT,PUMJO.VMUJQMBUGPSN IUUQTXXXKFUCSBJOTDPNLPUMJONVMUJQMBUGPSN ɾ,..ͷಋೖͱಘΒΕΔͷ IUUQTTQFBLFSEFDLDPNLVCPEFJOUSPEVDUJPOPGLNNBOEJUTCFOF fi
UT ɾͰΘ͔Δɺ,PUMJO.VMUJQMBUGPSN.PCJMF ,.. IUUQT[FOOEFWSPDLOBNFBSUJDMFTCBCECFDBC ɾ%..57ΞϓϦ։ൃͰ༻ͨ͠,..ʹ͍ͭͯ IUUQTJOTJEFENNDPNBSUJDMFTENNUWBQQCPPLTLNN ɾ,.1 ,PUMJO.VMUJQMBUGPSN ͷಋೖݕ౼ IUUQTRJJUBDPNTFJKJNBUTVNVSBJUFNTGFCEDFFCF ɾ,PUMJO.VMUJQMBUGPSN.PCJMFʢ,..ʣ͓Αͼ$PNQPTF.VMUJQMBUGPSNΛ ༻ͨ͠ϞόΠϧΞϓϦέʔγϣϯͷ։ൃ IUUQTCMPHLJOUPUFDIOPMPHJFTDPNQPTUTLNNDPNQPTFNVMUJQMBUGPSNIUUQTLPUMJOMBOHPSHEPDTNVMUJQMBUGPSNIUNM ɾ6TJOH,..7JFX.PEFMMJCSBSZUPTIBSF7.CFUXFFOJ04BOE"OESPJE IUUQTKPIOPSFJMMZEFWQPTUTLNNWJFXNPEFM ɾLEPDUPS ڥஅ IUUQTHJUIVCDPN,PUMJOLEPDUPS