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
710
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
210
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
66
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
600
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
460
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
120
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
91
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
630
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
140
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
240
Other Decks in Technology
See All in Technology
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
170
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
800
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
180
Oracle Database Security 詳細解説
oracle4engineer
PRO
2
270
生成AI時代のIAMのマニアックな話
takuros
6
2.5k
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
1
210
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.6k
2026 Apache Flink Community Checkpoint
rmetzger
0
190
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
590
公共分野での生成AI活用
toru_kubota
1
230
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
150
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
440
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
970
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
600
The Cost Of JavaScript in 2023
addyosmani
56
10k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Code Review Best Practice
trishagee
74
20k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
1
300
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
630
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