$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KMPを触ってみた
Search
jambo-develop-team
March 11, 2024
0
20
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
FigmaMCP+Cursorで直感的にUIを作成してみる🎨
jambo_develop_team
0
110
株式会社ジャンボ_紹介資料
jambo_develop_team
0
6.3k
StoreKit2を使用した課金実装
jambo_develop_team
0
360
AppDelegateで何をすべきか
jambo_develop_team
0
560
SwiftUIのpropertyWrapperをふんわり理解する
jambo_develop_team
0
490
JetpackCompose触ってみた
jambo_develop_team
0
30
モバイルアプリの通知機能を AmazonSNSで実装する
jambo_develop_team
0
40
アジャイル入門
jambo_develop_team
0
15
0から始めるSwiftData
jambo_develop_team
0
13
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
How to Ace a Technical Interview
jacobian
281
24k
Bash Introduction
62gerente
615
210k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Code Review Best Practice
trishagee
74
19k
Designing for Performance
lara
610
69k
Facilitating Awesome Meetings
lara
57
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Designing Experiences People Love
moore
143
24k
GraphQLとの向き合い方2022年版
quramy
50
14k
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