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
入門!実践!Kotlin Compose Multiplatformでデスクトップアプリ開発!...
Search
FORTE
November 05, 2023
Technology
690
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
入門!実践!Kotlin Compose Multiplatformでデスクトップアプリ開発! / cmd_01_sample
FORTE
November 05, 2023
More Decks by FORTE
See All by FORTE
入門!実践!サーバーサイドKotlin〜2026春改訂版〜サンプル/sski2_sample
fortegp05
0
170
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
59
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
520
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
440
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
110
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
84
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
610
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
130
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
230
Other Decks in Technology
See All in Technology
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
2
810
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
3
580
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
620
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.2k
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
740
品質と信頼性を地続きにする
grimoh
0
430
Genieを崇めよ
kameitomohiro
0
140
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
あるけみー式LTスライド作成術
alchemy1115
1
210
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
200
What the customer really needed
kawaguti
PRO
2
190
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
8
950
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
WCS-LA-2024
lcolladotor
0
830
Speed Design
sergeychernyshev
33
2.1k
Marketing to machines
jonoalderson
1
5.8k
Design in an AI World
tapps
1
320
Transcript
None
ೖ!࣮ફ!Kotlin Compose Multiplatform ͰσεΫτοϓ ΞϓϦ։ൃ! FORTE ɹஶ 2023-11-12 ൛ aozora
Project ൃߦ 1
͡Ίʹ ͜ͷຊΛखʹऔ͍͖ͬͯͨͩͲ͏͋Γ͕ͱ͏͍͟͝·͢ɻஶऀͷ FORTE ʢϑΥϧςʣͰ͢ɻࠓճ Compose Multiplatform ͰσεΫτοϓΞϓϦΛ։ ൃ͢ΔྲྀΕΛհ͢Δٕज़ಉਓࢽʹͳΓ·͢ɻࠓ·Ͱ Kotlin ʹؔ͢Δٕज़ಉਓ
ࢽαʔόʔαΠυ Kotlin ʹ͍ͭͯॻ͍͖ͯ·͕ͨ͠ωλΕͨ͠ͷͰ͠Β ͓͘ٳΈͨ݁͠ՌɺCompose Multiplatform ͕໘നͦ͏ɺεϚϗ͚ͷهࣄ ͋Δ͚ͲσεΫτοϓΞϓϦ͚গͳ͍ (ݸਓతʹεϚϗωΠςΟϒͷํ͕ ͖)ɺͱ͍͏͜ͱͰ Compose Multiplatform ͰσεΫτοϓΞϓϦΛ࡞͢Δ ༰ͱͳΓ·ͨ͠ɻͦͷͨΊɺαʔόʔαΠυ Kotlin γϦʔζͰͳ͍Ͱ͕͢ɺ Kotlin γϦʔζͱͯ͠ 5 ͷٕज़ಉਓࢽͱͳΓ·͢ɻ ຊஶ͜Ε·ͰͷαʔόʔαΠυ Kotlin γϦʔζಉ༷ɺWindowsɺMac ྆ର ԠͰ͢ɻࠓ·Ͱ IntelliJ IDEAɺVS Code ͷ྆ IDE ʹରԠ͖ͯ͠·͕ͨ͠ɺ ࠓճ VS Code ͱͳΓ·͢ɻͱ͍͏ͷ Compose Multiplatform Λ࢝ ΊΔͷʹ IntelliJ IDEA ͷํ͕ѹతʹ؆୯ɺ͔ͭɺָͰ VS Code ͩͱͨͩͨ ͩ໘ष͍खॱ͕ඞཁʹͳΔͨΊͰ͢ɻͦͷͨΊɺຊஶͰग़དྷ্͕ͬͨιʔε Λ VS Code Ͱಈ͔͢खॱհ͠·͕͢ɺVS Code Ͱͷ։ൃ͓͢͢Ί͠·ͤ ΜɻࠓޙɺϓϥάΠϯͳͲͰঢ়گ͕มΘΔ͜ͱ͋Δͱࢥ͏ͷͰɺVS Code ͷ ํΞϯςφΛཱ͓ͯͯ͘ͱྑ͍Ͱ͠ΐ͏ɻ ຊஶͷ༰ ຊஶ Compose Multiplatform Ͱͷ։ൃʹ͍ͭͯओʹ࣍ͷ༰Λհ͍ͯ͠ ·͢ɻ • Compose Multiplatform ͷհͱؔ࿈ٕज़ʹ͍ͭͯ • Compose Multiplatform ϓϩδΣΫτͷ࡞ͱ࣮ߦํ๏ • ओͳ UI ίϯϙʔωϯτͷ࣮ํ๏ • Οϯυཧͷ࣮ํ๏ • ؆୯ͳσεΫτοϓΞϓϦ։ൃͷྫͱͯ͠σδλϧ࣌ܭΞϓϦͷ։ൃΛ հ • WindowsɺMac ༻ͦΕͧΕͷ࣮ߦϑΝΠϧ࡞ํ๏ 2
Compose Multiplatform ͷհͱؔ࿈ٕज़ʹ͍ͭͯ ͦͦ Compose Multiplatform ͱͳΜͳͷ͔?Ͳ͏͍ͬͨ͜ͱʹ͑Δ ͷ͔?ࣅͨΑ͏ͳϥΠϒϥϦͱͷࠩҟʹ͍ͭͯղઆ͠·͢ɻ Compose Multiplatform
ϓϩδΣΫτͷ࡞ํ๏ ΄ͱΜͲެࣜͷ Github ϦϙδτϦͰհ͞Ε͍ͯΔ༰Ͱ͋Γ·͕͢ɺ࣮ ࡍʹͬͯΈͨهͱͯ͠ɺ·ͨͬͯΈͯಘΒΕͨҙͳͲΛհ͠·͢ɻ ओͳ UI ίϯϙʔωϯτͷ࣮ํ๏ Compose Multiplatform Ͱ Jetpack Compose Λར༻ͯ͠ UI ίϯϙʔω ϯτΛ࣮Ͱ͖·͢ɻ͍͔ͭ͘ͷίϯϙʔωϯτΛ࣮ͯ͠Έ࣮ͯࡍʹσεΫ τοϓΞϓϦͱͯ͠දࣔͯ͠Έ·͠ΐ͏ɻ Οϯυཧͷ࣮ํ๏ σεΫτοϓΞϓϦ௨ৗҰຕͷΟϯυͱͯ͠දࣔ͞Ε·͢ɻ͜ͷΟϯ υཧͷجຊʹ͍ͭͯհ͠·͢ɻ ؆୯ͳσεΫτοϓΞϓϦ։ൃͷྫͱͯ͠σδλϧ࣌ܭΞϓϦͷ։ൃΛհ ͜͜·Ͱհͨ͠༰ͷ·ͱΊͱͯ͠؆୯ͳσεΫτοϓΞϓϦͷ࣮ྫΛ հ͠·͢ɻΞϓϦͷ༰σδλϧ࣌ܭͰ͢ɻݸਓతͳͰ͕͢ɺσεΫτοϓ ͷલ໘ʹৗʹ࣌ܭ͕දࣔ͞Ε͍ͯΔͱศརͩͱײ͍ͯ͡·͢ɻWindows Mac λεΫόʔϝχϡʔόʔʹ࣌ܭදࣔͰ͖·͕͢ɺͲͪΒඇදࣔʹ͍ͯ͠ ΔͱΧʔιϧΛಈ͔͞ͳ͍ͱදࣔͰ͖·ͤΜɻ͔ͱ͍ͬͯ࣌ܭͷͨΊʹͦΕΒΛ ৗʹද͍ࣔͯ͠ΔͱΟϯυͷදࣔྖҬ͕ৗʹগͳ͘ͳͬͯ͠·͍·͢͠ɺ࣌ ܭҎ֎ͷ༨ܭͳใදࣔ͞Εͯ͠·͍·͢ɻৗʹલ໘ʹ࣌ࠁ͚ͩදࣔ͞Ε͍ͯ ͯཉ͍͠ͱ͍͏ཁΛຬͨ͢ʹσεΫτοϓΞϓϦ͕Ұ൪ͱߟ͍͑ͯ·͢ɻ ͳ͓ɺMac Ͱࠓޙͷ OS ΞοϓσʔτͰσεΫτοϓʹΟδΣοτͱͯ͠ ࣌ܭΛઃஔՄೳʹͳΔ༧ఆͩͦ͏Ͱ͕͢ɺσδλϧදه͕Մೳ͔ෆ໌Ͱ͢͠ɺ ҠಈՄೳʹ͍ͨ͠ɺৗʹલ໘ද͍ࣔͨ͠ɺअຐͳͱ͖Ұ࣌తʹ࠷খԽ͍ͨ͠ͳ Ͳͷࡉ͔ͳ੍ޚ͕Մೳ͔͔Γ·ͤΜɻWindows Ͱ 11 ͰΟδΣοτػೳ ͕Ճ͞Ε·͕ͨ͠ɺσδλϧ࣌ܭ͕ଘࡏ͢Δ͔͔Γ·ͤΜͰͨ͠ɺஶऀ ·ͩ Windows10 ͳͷͰ࣮ࡍʹ֬ೝͰ͖ͣɺগ͠άάͬͨఔͰσδλϧ࣌ ܭΛදࣔ͢Δํ๏ݟ͔ͭΓ·ͤΜͰͨ͠ɻ·ͨԾʹΟδΣοτͰՃՄೳͰ ͋ͬͨͱͯ͠ Mac ಉ༷ʹࡉ੍͔͍ޚ͕Մೳ͔ෆ໌Ͱ͢ɻͦͷͨΊɺࣗΈ ʹઃఆͰ͖ΔΑ͏ʹσεΫτοϓΞϓϦͰ։ൃͯ͠Έ·ͨ͠ɻ WindowsɺMac ͦΕͧΕͷ࣮ߦϑΝΠϧ࡞ํ๏ ࠷ޙʹ୯ҰͷΞϓϦέʔγϣϯͱͯ͠ WindowsɺMac ͷ྆ OS Ͱ࣮ߦՄೳͳ ϑΝΠϧܗࣜʹม͢Δํ๏Λհ͠·͢ɻ͜Ε Gradle ͷػೳΛ࣮ͬͯݱ 3
Ͱ͖·͢ɻରͷϑΝΠϧܗࣜ Windows .msiɺMac .dmg ܗࣜͰ͢ɻ ͲΜͳਓ͚͔ ຊஶ࣍ͷΑ͏ͳํΛରͱͯࣥ͠ච͠·ͨ͠ɻ • Kotlin ʹڵຯ͕͋ΓɺKotlin
ͰԿ͔ॻ͍ͯΈ͍ͨ • σεΫτοϓΞϓϦΛ࡞ͬͯΈ͍ͨ • WindowsɾMac ͲͪΒͰಈ͘ΞϓϦΛ࡞Γ͍ͨ • Compose Multiplatform ͕ؾʹͳ͍ͬͯͨ લఏࣝඞཁͳ͍Α͏ʹॻ͍͍ͯ·͕͢ɺKotlin ͱ?Έ͍ͨͳجຊతͳ͜ ͱղઆ͍ͯ͠ͳ͍ͷͰɺKotlin Gradle ʹ͍ͭͯجૅ͔Βֶͼ͍ͨํஶ ʮೖ!࣮ફ!αʔόʔαΠυ KotlinʯΛ͝ཡ͍ͩ͘͞ɺKotlin ॳ৺ऀ͚ʹ 1 ͔Β ஸೡʹղઆ͍ͯ͠·͢ɻిࢠ൛࣍ͷϦϯΫ͔ QR ίʔυ͔Βɺࢴ൛ Amazon ͰߪೖͰ͖·͢ɻ https://fortegp05.booth.pm/items/1560389 ˛ਤ 1 ೖ!࣮ફ!αʔόʔαΠυ Kotlin ͜ͷຊͰಘΒΕΔ͜ͱ ͜ͷຊΛಡΉ͜ͱͰ࣍ͷ͜ͱ͕ಘΒΕ·͢ɻ • Compose Multiplatform ͕ͳʹ͔͔Δ 4
• Compose Multiplatform ͷ։ൃڥ͕࡞Ͱ͖Δ • Jetpack Compose ʹֶ͍ͭͯΔ • WindowsɾMac
ͲͪΒͰಈ͘ΞϓϦΛҰͭͷίʔυͰ࡞Ͱ͖ΔΑ͏ ʹͳΔ ͜ͷຊͰղઆ͠ͳ͍͜ͱ Compose Multiplatform Ͱ Jetpack Compose Λ༻͍ͯ͠·͕͢ɺJet- pack Compose ʹ͍ͭͯৄࡉʹղઆ͠·ͤΜɻ͋͘·Ͱར༻ํ๏ͷΈɺίʔυ Ͱղઆ͢ΔܗʹͳΓ·͢ɻ ·ͨલड़ͨ͠ͱ͓Γ Kotlin Gradle ʹ͍ͭͯৄࡉͳղઆ͠·ͤΜɻ ຊจதͷ༰Ͱෆ໌͕͋Ε X(چ Twitter)ʮhttps://twitter.com/FORT Egp05ʯ͔ɺԞʹهࡌͨ͠ϝʔϧΞυϨε·Ͱ͝࿈བྷ͍ͩ͘͞ɻϕετΤϑΥʔ τͰ͝ճ͍ͨ͠·͢ɻ ͜ͷຊͷ͍ํ جຊతʹઌ಄͔ΒಡΈਐΊ͍͚͍͍ͯͰ͕͢ɺؾʹͳͬͨͱ͜Ζ͚ͩఠΜͰ ͍͘ܗͰ͋Γ·ͤΜɻಛʹطʹ Compose Multiplatform Λ༻͍ͯ͠Δ ํΞϓϦ։ൃྫͷ෦͚ͩΛಡΜͰ͍͍͔͠Ε·ͤΜɻ ໔ࣄ߲ ຊॻʹهࡌ͢Δ༰චऀͷॴଐ͢Δ৫ͷެࣜݟղͰ͋Γ·ͤΜɻ·ͨɺ ຊॻՄೳͳݶΓਖ਼֬Λظ͢Α͏ʹΊ͍ͯ·͕͢ɺචऀ͕ͦͷ༰Λอূ͢Δ ͷͰ͋Γ·ͤΜɻͦͷͨΊɺຊॻͷهࡌ༰ʹج͍ͮͨಡऀͷߦҝɺٴͼಡ ऀ͕ඃͬͨଛʹ͍ͭͯචऀͳΜΒΛෛ͏ͷͰ͋Γ·ͤΜɻ 5
࣍ ͡Ίʹ 2 ຊஶͷ༰ . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 2 ͲΜͳਓ͚͔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ͜ͷຊͰಘΒΕΔ͜ͱ . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ͜ͷຊͰղઆ͠ͳ͍͜ͱ . . . . . . . . . . . . . . . . . . . . . . . . 5 ͜ͷຊͷ͍ํ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ໔ࣄ߲ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ୈ 1 ষ Compose Multiplatform ͱ? 8 1.1 Kotlin ͔ΒಘΒΕΔࡾͭͷେ͖ͳϝϦοτ . . . . . . . . . . . . 9 1.1.1 ίʔυهड़ྔ͕ݮΔ . . . . . . . . . . . . . . . . . . . . 9 1.1.2 null ҆શ . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.3 Java ࢿ࢈͕͑Δ . . . . . . . . . . . . . . . . . . . . 9 1.2 Jetpack Compose ͔ΒಘΒΕΔೋͭͷେ͖ͳϝϦοτ . . . . . 10 1.2.1 એݴతͳ UI ߏங͕Մೳ . . . . . . . . . . . . . . . . . . 10 1.2.2 ϞμϯͳΞχϝʔγϣϯ . . . . . . . . . . . . . . . . . 10 1.3 Compose Multiplatform ͷؔ࿈ٕज़ʹ͍ͭͯ . . . . . . . . . . 11 1.3.1 Kotlin Multiplatform(KMP) ʹ͍ͭͯ . . . . . . . . . 11 ୈ 2 ষ Compose Multiplatform ϓϩδΣΫτͷ࡞ͱ࣮ߦํ๏ 12 2.1 ։ൃڥͷߏங . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.1 ֬ೝڥ όʔδϣϯͳͲ . . . . . . . . . . . . . . . . . 12 2.1.2 IntelliJ IDEA Community Edition ͷΠϯετʔϧ . . 12 2.2 Compose Multiplatform ϓϩδΣΫτͷ࡞ͱ࣮ߦ . . . . . . 15 2.2.1 ϓϩδΣΫτͷ৽ن࡞ . . . . . . . . . . . . . . . . . 15 2.2.2 Gradle ͷόʔδϣϯมߋ . . . . . . . . . . . . . . . . . 16 2.2.3 ϓϥάΠϯͷߋ৽ . . . . . . . . . . . . . . . . . . . . . 18 2.2.4 Gradle ͔Β࣮ߦ͢Δ . . . . . . . . . . . . . . . . . . . 19 ୈ 3 ষ ओͳ UI ίϯϙʔωϯτͷ࣮ํ๏ 23 3.1 جຊతͳ࣮ . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Ϙλϯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6
3.3 ελΠϧ . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 25 3.4 ϨΠΞτ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4.1 ԣฒͼϨΠΞτ . . . . . . . . . . . . . . . . . . . . . 26 3.4.2 ॎฒͼϨΠΞτ . . . . . . . . . . . . . . . . . . . . . 26 3.5 ϥϕϧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.6 ςΩετೖྗ . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.7 ը૾දࣔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.8 εΫϩʔϧόʔ . . . . . . . . . . . . . . . . . . . . . . . . . . 30 ୈ 4 ষ σδλϧ࣌ܭΞϓϦͷ։ൃ 33 4.1 ϓϩδΣΫτͷ࡞ . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.1 Gradle ͷόʔδϣϯมߋ . . . . . . . . . . . . . . . . . 34 4.1.2 ϓϥάΠϯͷߋ৽ . . . . . . . . . . . . . . . . . . . . . 34 4.2 ࣮ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2.1 Οϯυͷେ͖͞มߋ . . . . . . . . . . . . . . . . . 34 4.2.2 ϨΠΞτͷՃ . . . . . . . . . . . . . . . . . . . . . 35 4.2.3 എܠͷઃఆ (ҙ) . . . . . . . . . . . . . . . . . . . . . 35 4.2.4 ࣌ࠁϥϕϧͷදࣔ . . . . . . . . . . . . . . . . . . . . . 37 4.2.5 ݱࡏ࣌ࠁͷදࣔ . . . . . . . . . . . . . . . . . . . . . . 39 4.2.6 1 ඵ͝ͱʹදࣔΛߋ৽͢Δ . . . . . . . . . . . . . . . . 40 4.2.7 Οϯυ੍ޚͷมߋ . . . . . . . . . . . . . . . . . . 40 4.3 ֤ϓϥοτϑΥʔϜ͚ͷ࣮ߦϑΝΠϧ࡞ . . . . . . . . . . . 41 A VS Code Ͱ Compose Multiplatform ϓϩδΣΫτͷ࡞ 42 A.1 σΟϨΫτϦΛ࡞͢Δ . . . . . . . . . . . . . . . . . . . . . 42 A.2 settings.gradle.kts ͷ࡞ . . . . . . . . . . . . . . . . . . . . 42 A.3 build.gradle.kts ͷ࡞ . . . . . . . . . . . . . . . . . . . . . . 42 A.4 src/main/kotlin/main.kt ͷ࡞ . . . . . . . . . . . . . . . . 43 A.5 Gradle ࣮ߦڥͷߏங . . . . . . . . . . . . . . . . . . . . . . 43 A.5.1 Mac ͷ߹ . . . . . . . . . . . . . . . . . . . . . . . . 43 A.5.2 Windows ͷ߹ . . . . . . . . . . . . . . . . . . . . . 43 A.6 ΞϓϦέʔγϣϯͷ࣮ߦ . . . . . . . . . . . . . . . . . . . . . 44 A.6.1 Mac ͷ߹ . . . . . . . . . . . . . . . . . . . . . . . . 44 A.6.2 Windows ͷ߹ . . . . . . . . . . . . . . . . . . . . . 44 ͋ͱ͕͖ 45 ஶऀհ 46 จষ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7