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
13
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
520
株式会社Jambo紹介資料
jambo_develop_team
0
630
StoreKit2を使用した課金実装
jambo_develop_team
0
180
AppDelegateで何をすべきか
jambo_develop_team
0
220
SwiftUIのpropertyWrapperをふんわり理解する
jambo_develop_team
0
260
JetpackCompose触ってみた
jambo_develop_team
0
6
モバイルアプリの通知機能を AmazonSNSで実装する
jambo_develop_team
0
18
アジャイル入門
jambo_develop_team
0
8
0から始めるSwiftData
jambo_develop_team
0
9
Featured
See All Featured
A Philosophy of Restraint
colly
202
16k
How GitHub Uses GitHub to Build GitHub
holman
472
290k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
How to train your dragon (web standard)
notwaldorf
85
5.6k
[RailsConf 2023] Rails as a piece of cake
palkan
48
4.6k
Adopting Sorbet at Scale
ufuk
73
8.9k
Making Projects Easy
brettharned
113
5.8k
Teambox: Starting and Learning
jrom
131
8.7k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
36
2.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
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