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
モバイルアプリ設計入門
Search
野瀬田 裕樹
June 16, 2025
Technology
41
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モバイルアプリ設計入門
iOSを中心にモバイルアプリにおける設計の基本原則などをまとめて資料にしました
野瀬田 裕樹
June 16, 2025
More Decks by 野瀬田 裕樹
See All by 野瀬田 裕樹
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
160
ネイティブiOSアプリだからできること
yuukiw00w
0
19
野瀬田とSwift愛好会
yuukiw00w
0
30
uhooiさん発ランダムタスクにチャレンジしよう!
yuukiw00w
1
72
ViewModelって200種類あんねん
yuukiw00w
0
49
Validate your App Intents adoption with AppIntentsTesting
yuukiw00w
0
48
App Intentsを実装しよう
yuukiw00w
0
49
iOS26時代の新規アプリ開発
yuukiw00w
0
270
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
380
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
150
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
8
7.9k
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
310
omasushiというライブラリを作った
polidog
PRO
0
200
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
160
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
130
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
260
2026_devsumi_ozono.pdf
o3
2
370
10分で知る最近のOmarchy
komagata
0
250
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
160
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
180
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
220
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
510
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Into the Great Unknown - MozCon
thekraken
41
2.7k
4 Signs Your Business is Dying
shpigford
187
23k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Transcript
ϞόΠϧΞϓϦઃܭೖ ాɹ༟थ
࣍ w ιϑτΣΞΞʔΩςΫνϟʔͱ w ϞόΠϧΞϓϦͰಛʹॏཁͳ࣭ಛੑ w ϞόΠϧΞϓϦͰಛతͳ੍ w ϞόΠϧΞϓϦͷ։ൃͰҙ͖ࣝ͢͜ͱ w
ϞόΠϧΞϓϦͱόοΫΤϯυͷҧ͍ w ϞόΠϧΞϓϦͷઃܭݪଇ w όοΫΤϯυͱڞ௨ͷઃܭࢦ w 4XJGUಛ༗ͷ
ιϑτΣΞΞʔΩςΫνϟʔ w ιϑτΣΞΛͲͷΑ͏ʹߏ͢Δ͔Λࣔ͢ͷ w γεςϜΛߏཁૉʹͲͷΑ͏ʹׂɾஔ͠ɺͲͷΑ͏ʹ૬ޓʹ ΓऔΓͤ͞Δͷ͔Λࣔ͢ͷ
ιϑτΣΞΞʔΩςΫνϟʔ w ͏·͘࡞ΓࠐΉ͜ͱͰ w ։ൃɾอकɾӡ༻͕༰қʹͳΔ w γεςϜʹٻΊΒΕΔ࣭ಛੑɾͦͷଞͷੑ্࣭͕͢Δ
࣭ಛੑ ػೳద߹ੑ ੑೳޮੑ ޓੑ ༻ੑ ৴པੑ ηΩϡϦςΟ อकੑ Ҡ২ੑ
IUUQTLJLBLVSVJDPNY9IUNM w ιϑτΣΞ࣭ʢ+*49ࢀরʣ
ϞόΠϧΞϓϦͰಛʹॏཁͳ࣭ಛੑ w ༻ੑʢVTBCJMJUZʣ ෭ಛੑɿదೝࣝੑɺशಘੑɺӡ༻ૢ࡞ੑɺ ɹɹɹɹϢʔβΤϥʔࢭੑɺϢʔβΠϯλϑΣʔεշඒੑɺ ɹɹɹɹΞΫηγϏϦςΟ w ੑೳޮੑʢQFSGPSNBODFF ff i
DJFODZʣ ෭ಛੑɿ࣌ؒޮੑɺࢿݯޮੑɺ༰ྔຬੑ ˞ଞ͕ෆཁͱ͍͏Θ͚Ͱ͋Γ·ͤΜ
ϞόΠϧΞϓϦͰಛʹॏཁͳ࣭ಛੑ w ༻ੑʢVTBCJMJUZʣ ϢʔβʔʹͱͬͯΑΓ͍উखͷྑ͍ମݧΛ࡞ΓࠐΉඞཁ͕͋Δ ςΩετ #VUUPO ेͳλοϓྖҬɺ)JHI$POUSBTUɺదͳಡΈ্͛ɺFUD ଟݴޠରԠɺจࣈαΠζͷมԽʹରԠɺ)JHI$POUSBTUɺFUD 5FYU'JFME
ೖྗཁૉʹԠͨ͡LFZCPBSEɺࣗಈೖྗɺFUD
ϞόΠϧΞϓϦͰಛʹॏཁͳ࣭ಛੑ w ੑೳޮੑʢQFSGPSNBODFF ff i DJFODZʣ ΞϓϦ͕λοϓͨ࣌͠ʹϑϦʔζͨ͠ΓɺεΫϩʔϧ͕ΧΫπΫ ͱମݧͱͯ͠ྑ͘ͳ͍ ʲྑ͍ΞϓϦʳ
ىಈ͕͍ εϜʔζͳεΫϩʔϧ Ԡ͕͍ ΞϓϦαΠζ͕খ͍͞
ϞόΠϧΞϓϦͰಛతͳ੍ w σόΠεͷ੍ ը໘αΠζ04ޓੑͷ੍͕͋Γɺݻ༗ͷࣄଘࡏ
J1IPOF4& 9 1SP.BY FUD J1BE J1BE1SP J1BE"JS FUD
ϞόΠϧΞϓϦͰಛతͳ੍ w 04ͷ੍ 04ߋ৽ʹ͏༷มԽਪͱ͞ΕΔ࣮ɾମݧɾ6*͕มԽ 4JSJ͔Βͷݺͼग़͠ͳͲɺ04ͱͷ૬ޓ࡞༻ଘࡏ
04ߋ৽ʹ͏มԽͷྫ w J1BE04Ͱඪ४ͷλϒόʔҐஔ͕Լ͔Β্෦ϑϩʔςΟϯάʹ
04ߋ৽ʹ͏มԽͷྫ w J04Ͱେ͖ͳσβΠϯมߋʢ-JRVJE(MBTTʣ
ϞόΠϧΞϓϦͷ։ൃͰҙ͖ࣝ͢͜ͱ w 6*ͷෳࡶੑ 04όʔδϣϯʹΑͬͯมԽ͢Δ্ɺମݧઃܭ͕ඇৗʹॏཁ Ϩεϙϯγϒ6*ɺը໘ભҠઃܭɺΞχϝʔγϣϯɺFUD w 04ͱͷ૬ޓ࡞༻ 4JSJ͔Βͷݺͼग़͠ηϯαʔใͷऔಘͳͲɺը໘ͷߏஙʹཹ· Βͳ͍ମݧઃܭ͕ඞཁ
ෳࡶͳྖҬ 0OEFWJDFͷཁૉɾঢ়ଶཧ ϏδωεϩδοΫͷཧ ෳࡶ͞ͱͷ ઓ͍ํ $PNQPTBCMFͳ6*ઃܭɺ୯ํ σʔλϑϩʔɺ4405ɺFUD %%%ɺ5IF$MFBO "SDIJUFDUVSFɺFUD ϞόΠϧΞϓϦͱόοΫΤϯυͷҧ͍
.PCJMF"QQ #BDLFOE
ϞόΠϧΞϓϦͷઃܭݪଇ w ίϯϙʔωϯτࢦͱ$PNQPTBCMFͳ6*ઃܭ w ୯ํσʔλϑϩʔ w 4405ʢ4JOHMF4PVSDFPG5SVUIɺ৴པͰ͖Δ།Ұͷใݯʣ
ϞόΠϧΞϓϦͷઃܭݪଇ w ίϯϙʔωϯτࢦͱ$PNQPTBCMFͳ6*ઃܭ 6*Λখ͘͞࠶ར༻Մೳͳߏཁૉ $PNQPTBCMFDPNQPOFOU ʹ ׂ͠ɺͦΕΛ߹͢Δ͜ͱʹΑͬͯ6*Λߏங͢Δઃܭ )FMMP 8PSME
#VUUPO #VUUPO )FMMP 8PSME #VUUPO #VUUPO ߹ $PNQPTF
ϞόΠϧΞϓϦͷઃܭݪଇ w ୯ํσʔλϑϩʔ ঢ়ଶʹมԽΛҾ͖ى͜͢σʔλͷྲྀΕ͕୯ํͱͳΔΑ͏ʹ͢Δ ઃܭ 7JFX 4UBUF )PMEFS 7JFX
&WFOU "DDFQUPS %PNBJO -BZFS ΞʔΩςΫνϟʔͷྫ
ϞόΠϧΞϓϦͷઃܭݪଇ w 4405ʢ4JOHMF4PVSDFPG5SVUIɺ৴པͰ͖Δ།Ұͷใݯʣ มߋՄೳͳΞϓϦͷঢ়ଶɾσʔλΛৗʹ͔ॴʹ͚ͩଘࡏͤ͞ɺ ͦͷ།Ұͷใݯ͚ͩΛ৴པɾࢀর͢Δઃܭ 7JFX 4UBUF )PMEFS 7JFX
&WFOU "DDFQUPS %PNBJO -BZFS 4UBUF)PMEFSͷதʹ ৴པͰ͖Δঢ়ଶΛͭ ΞʔΩςΫνϟʔͷྫ
όοΫΤϯυͱڞ௨ͷઃܭࢦ w దͳ໋໊ɺίϝϯτ w ϚδοΫφϯόʔɺάϩʔόϧมɺྫ֎ѲΓͭͿ͠ͳͲͷΞϯν ύλʔϯճආ w ςετ༰қͳઃܭ
4XJGUಛ༗ͷ w 4XJGU㱠Ϋϥεத৺ͷݴޠ 4XJGUܕத৺ͷݴޠ w 4XJGU㱠ΦϒδΣΫτࢦʢ0CKFDUPSJFOUFEʣ 4XJGUϓϩτίϧࢦʢ1SPUPDPMPSJFOUFEʣ
Ϋϥεʢࢀরܕʣத৺ͷݴޠ w Ϋϥεʢࢀরܕʣத৺ͷݴޠͰɺDMBTTΛͬͯঢ়ଶΛཧ ೖʹΑͬͯՄมͳঢ়ଶ͕؆୯ʹڞ༗Ͱ͖ͯ͠·͏͕͋Δ class A { var x: Int
= 0 } var a1 = A() var a2 = a1 a1.x = 1 print(a2.x) // ग़ྗɿ1ʢa1ͱa2ͰՄมͳঢ়ଶ͕ڞ༗͞ΕΔɻ͙ͨΊʹޚతίϐʔ͕ඞཁʣ
4XJGUܕத৺ͷݴޠ w 4XJGUͰ௨ৗTUSVDUʢܕʣΛͬͯঢ়ଶΛཧ ೖͯ͠Մมͳঢ়ଶ͕ڞ༗͞Εͳ͍ struct A { var x: Int
= 0 } var a1 = A() var a2 = a1 a1.x = 1 print(a2.x) // ग़ྗɿ0ʢa1ͱa2ͰՄมͳঢ়ଶ͕ڞ༗͞Εͳ͍ɻޚతίϐʔͳͲෆཁʣ
4XJGUܕத৺ͷݴޠ w Ϋϥεத৺ɿDMBTTʹঢ়ଶΛ࣋ͨͤͯΧϓηϧԽɺϝοηʔδύογϯάͰॲཧ 4XJGUʢܕத৺ʣɿࢀরಁաੑͷ͋ΔؔͱΠϛϡʔλϒϧͳΛͬͯॲཧ struct A { var x: Int
= 0 } func createX2(_ a: A) -> Int { a.x * 2 } let a = A() let x2 = createX2(a) print(x2)
1SPUPDPMPSJFOUFE1SPHSBNNJOH w ܕʢTUSVDUʣͰܧঝΛ͑ͳ͍ͨΊɺΘΓʹQSPUPDPMΛ༻ protocol Animal { func foo() -> Int
} struct Cat: Animal { var value: UInt8 = 2 func foo() -> Int { Int(value) } } func useAnimal(_ animal: some Animal) { print(animal.foo()) // ۩ମతͳܕΛΘͣهड़Ͱ͖ΔɻSwiftUI.ViewͷbodyͰར༻͞Ε͍ͯΔ } useAnimal(Cat())
ࢀߟࢿྉ w "OESPJE ެࣜͷઃܭΨΠυɿIUUQTEFWFMPQFSBOESPJEDPNUPQJD BSDIJUFDUVSF OPXJOBOESPJEɿIUUQTHJUIVCDPNBOESPJEOPXJOBOESPJE w J04 "QQMFެࣜαϯϓϧूɿIUUQTEFWFMPQFSBQQMFDPN EPDVNFOUBUJPOTBNQMFDPEF
༗໊ͳBSDIJUFDUVSFMJCSBSZɿIUUQTHJUIVCDPNQPJOUGSFFDP TXJGUDPNQPTBCMFBSDIJUFDUVSF
J04ͷΞʔΩςΫνϟʔͷྺ࢙ w $PDPB.7$ .PEFM7JFX$POUSPMMFS ౷తͳ"QQMFͷ.7$ΞʔΩςΫνϟʔ IUUQTEFWFMPQFSBQQMFDPNMJCSBSZBSDIJWFEPDVNFOUBUJPO(FOFSBM$PODFQUVBM%FW1FEJB$PDPB$PSF.7$IUNM 7JFX .PEFM
7JFX $POUSPMMFS 6TFSૢ࡞ ඳըߋ৽ ௨ σʔλߋ৽
J04ͷΞʔΩςΫνϟʔͷྺ࢙ w $PDPB.7$ .PEFM7JFX$POUSPMMFS 7JFX$POUSPMMFSͷංେԽ͕՝ʹʢ'BU7JFX$POUSPMMFSʣ "OESPJEͰྨࣅͷͱͯ͠'BU"DUJWJUZ͕͋ͬͨ 7JFX .PEFM
7JFX $POUSPMMFS 6TFSૢ࡞ ඳըߋ৽ ௨ σʔλߋ৽
J04ͷΞʔΩςΫνϟʔͷྺ࢙ w .71 .PEFM7JFX1SFTFOUFS 4VQFSWJTJOH$POUSPMMFSͱ1BTTJWF7JFXͷύλʔϯ͕͋Δ J04Ͱ7JFX$POUSPMMFS7JFXʹؚΊͯߟ͑ͯɺ1SFTFOUFSʹ6* ϩδοΫΛஔ͘ߏ IUUQTNBSUJOGPXMFSDPNFBB%FW1BTTJWF4DSFFOIUNM
J04ͷΞʔΩςΫνϟʔͷྺ࢙ w .71 .PEFM7JFX1SFTFOUFS 1SFTFOUFS͕7JFX͔Β͞Εɺ୯ମςετՄೳͳঢ়ଶʹͳΔ 'BU7$ղফ͢Δ͕ɺ࣍1SFTFOUFSͷංେԽ͕ൃੜ 7JFX 7$
.PEFM 1SFTFOUFS 6TFSૢ࡞ ඳըߋ৽ IUUQTNBSUJOGPXMFSDPNFBB%FW1BTTJWF4DSFFOIUNM
J04ͷΞʔΩςΫνϟʔͷྺ࢙ w .77. .PEFM7JFX7JFX.PEFM .JDSPTPGUൃͰɺએݴత6*͕ྲྀߦΔલ·Ͱྲྀߦ͍ͬͯͨ "OESPJEͰެࣜͱͯ͠7.͕༻ҙ͞Ε͍ͯΔؔͰ"OESPJEͰ ඪ४తʹ࠾༻͞ΕɺͦͷྲྀΕͰJ04ʹ࠾༻͞ΕΔ͜ͱ͕ଟ͔ͬͨ ࠷ۙ͋·Γݟ͔͚ͳ͍ʢ"OESPJEެࣜͷઃܭΨΠυʹ.77. ͱهࡌ͞Ε͍ͯͳ͍ʣ
IUUQTMFBSONJDSPTPGUDPNKBKQBSDIJWFNTEONBHB[JOFGFCSVBSZQBUUFSOTXQGBQQTXJUIUIFNPEFMWJFXWJFXNPEFMEFTJHOQBUUFSO
J04ͷΞʔΩςΫνϟʔͷྺ࢙ w .77. .PEFM7JFX7JFX.PEFM EBUBCJOEJOHʹΑΓ7.ͱ7JFXͷ͕ؒૄ݁߹ʹͳΔͷ͕ಛ ͔͠͠σʔλͷϑϩʔ͕ํͰ͋Γɺঢ়ଶ͕มԽ͢ΔࡍͷྲྀΕ Λ͏ͷ͕͍͠ͱ͍͏͕͋ͬͨ 7JFX
7$ .PEFM 7JFX.PEFM %BUB#JOEJOH
J04ͷΞʔΩςΫνϟʔͷྺ࢙ w 'MVY GBDFCPPLൃͷ+4ͷϥΠϒϥϦͰɺ୯ํσʔλϑϩʔ͕ಛ J04Ͱ͜ͷઃܭΛࢀߟʹҰ෦ΞϓϦͰ࠾༻͞Ε͍ͯΔ 7JFX 7$ 6TFS *OUFSBDUJPOT
"DUJPO $SFBUPST "DUJPOT %JTQBUDIFS $IBOHF &WFOUT 4UPSF2VFSJFT $BMMCBDLT 4UPSF "1*
ͦͷଞͷJ04ΞʔΩςΫνϟʔ w 7*1&3 7JFX*OUFSBDUPS1SFTFOUFS&OUJUZ3PVUFS IUUQTXXXPCKDJPJTTVFTBSDIJUFDUVSFWJQFS ͍͔ͭ͘ஶ໊ͳΞϓϦͰ࠾༻͞ΕͯҰ෦ྲྀߦͬͨ w 3FEVY +4ͷϥΠϒϥϦ͕ͩɺJ04ͰҰ෦ಉ༷ͷΞʔΩςΫνϟʔͱ͠
ͯ࠾༻͞Εͨ
ͦͷଞͷJ04ΞʔΩςΫνϟʔ w "OESPJEެࣜઃܭΨΠυͷJ04ͷྲྀ༻ རɿυΩϡϝϯτ͕ॆ࣮͓ͯ͠Γֶशϋʔυϧ͕͍ རɿ"OESPJEͱͷઃܭࠩҟʹΑΔ༷ࠩͷൃੜϦεΫܰݮ w .7 .PEFM7JFX ΞʔΩςΫνϟʔ རɿ4XJGU6*ͷಛੑΛ׆͔ͨ͠γϯϓϧͳߏ
w 'MVY3FEVYΧελϚΠζɺܰྔ'MVY3FEVYʢTUPSFQBUUFSOͳͲʣ རɿ4405 ୯ํϑϩʔͷݪଇΛकΓͭͭݸผࣄʹԠͯ͡࠷దԽ
·ͱΊ w ΞϓϦͰαʔόʔͱҟͳΔ࣭ಛੑ͕ٻΊΒΕΔͨΊɺΞʔΩςΫ νϟʔͷબఆҟͳΔ w όοΫΤϯυͱҧ͏ΞϓϦͷઃܭࢦΛ֮͑Α͏ w ίϯϙʔωϯτࢦͱ$PNQPTBCMFͳ6*ઃܭ w ୯ํσʔλϑϩʔ
w 4405ʢ4JOHMF4PVSDFPG5SVUIɺ৴པͰ͖Δ།Ұͷใݯʣ w ಛʹJ04Ͱਖ਼ղ͓खຊͱͳΔΞʔΩςΫνϟʔͳ͍ͨΊɺΞϓϦͷ ༷ɾಛੑʹ߹Θͤͯઃܭ͠Α͏
"QQFOEJY
࣮ફฤͷ͕͔Γ w ίϯΣΠͷ๏ଇٯίϯΣΠͷ๏ଇ ΞʔΩςΫνϟʔͱ৫ߏີʹؔ ਓϝϯόʔͷಛੑʹΑͬͯ࠷దͳΞʔΩςΫνϟʔมԽ ྫ ՝ۚϞδϡʔϧΛϥΠϒϥϦʹΓग़ͯ͠՝ۚνʔϜΛ࡞Δ
࣮ફฤͷ͕͔Γ w 'FBUVSF fi STU-BZFS fi STUɺϚϧνϞδϡʔϧ୯ҰϞδϡʔϧ ϞόΠϧͰ'FBUVSF fi STUͰΔ͜ͱ͕ଟ͍
ػೳ͝ͱʹ4XJGU1BDLBHFʹΓग़ͨ͠ϚϧνϞδϡʔϧԽͳͲ ߦΘΕΔ͜ͱ͕͋Δ 4XJGU6*ʹґଘ͢ΔϞδϡʔϧͱͦΕҎ֎Ͱ͚ΔͳͲͷߏ ͋Δ
࣮ફฤͷ͕͔Γ w ϦΞΫςΟϒϓϩάϥϛϯάͱඇಉظॲཧ άϩʔόϧͳ4USFBNΛͲ͏ѻ͏͔ͳͲɺ৻ॏͳઃܭ͕ඞཁ ಛʹผͷػೳ͕ಉ͡σʔλΛࢀর͢Δ߹ͷ୯ํσʔλϑϩʔ ͱ4405ͷݪଇͷॱकΛઃܭͰ୲อ͢Δඞཁ͕͋Δ w ΞϓϦͷϥΠϑαΠΫϧ όοΫάϥϯυ࣌ͷॲཧɺ%FFQMJOLىಈ࣌ͷॲཧͳͲߟྀ͕ ඞཁ
࣮ફฤͷ͕͔Γ w ςελϏϦςΟʢݹయϩϯυϯֶʣ "OESPJEެࣜͷΨΠυͰϩϯυϯֶدΓͷΞʔΩςΫνϟʔ 4XJGUͰܕͱؔΛͬͯϞοΫͤͣʹৼΔ͍Λςετ͢Δ ݹయͷ࣮༰қ