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
モバイルアプリ設計入門
Search
野瀬田 裕樹
June 16, 2025
Technology
0
5
モバイルアプリ設計入門
iOSを中心にモバイルアプリにおける設計の基本原則などをまとめて資料にしました
野瀬田 裕樹
June 16, 2025
Tweet
Share
More Decks by 野瀬田 裕樹
See All by 野瀬田 裕樹
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
130
WWDC25要約:Evaluate your app for Accessibility Nutrition Labels
yuukiw00w
0
39
Swiftは最高だよの話
yuukiw00w
2
320
iOSDC2024ポスター:Swift 6に備えよう!Upcoming Feature Flagsを全て解説します!
yuukiw00w
0
12
SwiftでよりSwiftyに
yuukiw00w
0
9
より良いLint設定を追い求めて
yuukiw00w
0
90
FlutterにPull Requestを 投げてみよう!
yuukiw00w
0
34
半年で成果を出すチーム作り(Flutterチームの組成の話)
yuukiw00w
0
37
Other Decks in Technology
See All in Technology
WordPressから ヘッドレスCMSへ! Storyblokへの移行プロセス
nyata
0
300
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
230
rubygem開発で鍛える設計力
joker1007
2
260
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
660
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
240
Witchcraft for Memory
pocke
1
640
2025-06-26 GitHub CopilotとAI駆動開発:実践と導入のリアル
fl_kawachi
1
210
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
320
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
290
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
1
150
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.2k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Building Applications with DynamoDB
mza
95
6.5k
Statistics for Hackers
jakevdp
799
220k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Being A Developer After 40
akosma
90
590k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Designing Experiences People Love
moore
142
24k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
RailsConf 2023
tenderlove
30
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
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ͰܕͱؔΛͬͯϞοΫͤͣʹৼΔ͍Λςετ͢Δ ݹయͷ࣮༰қ