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
橋の下で安心して寝るための 『iOSアプリ設計パターン入門』
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kameike
January 15, 2019
Technology
2.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
橋の下で安心して寝るための 『iOSアプリ設計パターン入門』
kameike
January 15, 2019
More Decks by kameike
See All by kameike
LeanScrum
kameike
3
1.3k
サポートを求めてAppleに電話するまでの道のり
kameike
4
2.4k
header-comment
kameike
5
1.6k
Farewell SnapKit
kameike
1
1.9k
Other Decks in Technology
See All in Technology
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
0
320
撮るだけでは終わらない。ソニーが挑むB2Bカメラソリューション開発
sony
0
110
AIコーディングを実践してきた1年を振り返る / Looking Back on a Year of Practicing AI Coding
takedatakashi
1
140
プロダクトが成長すると、 プロダクトマネージャーの仕事はどう変わるのか - 「まず作る」から「小さく学び、確かめながら進む」へ
sansantech
PRO
1
370
Vue.jsのGitHubから学ぶ意思決定
yut0naga1_fa
1
270
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
250
freeeにおけるSoftware Factory
freee
PRO
0
530
Obsidian Vault Architectures
x5gtrn
PRO
0
160
「私が一番顧客に詳しい」を捨てる~ 全員が一次情報に精通する開発チームをつくり、PMが次のボトルネックへ染み出すまで
kaminashi
4
2.4k
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
5
1.7k
AIをリアル世界に解き放つ 〜M5Stack×AIであなたのアイディアを手の平に〜
hamadakoji
1
540
AI時代のGraphQL
joere
3
410
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
490
Building an army of robots
kneath
307
47k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Done Done
chrislema
187
17k
Become a Pro
speakerdeck
PRO
31
6.3k
Building the Perfect Custom Keyboard
takai
2
920
Visualization
eitanlees
153
17k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Designing for humans not robots
tammielis
254
26k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Transcript
ڮͷԼͰ҆৺ͯ͠৸ΔͨΊͷ ʰJ04ΞϓϦઃܭύλʔϯೖʱ QJYJWJOD !LBNFJLF
!LBNFJLF w ͷ݄͙Β͍͔ΒQJYJWͰಇ͍͍ͯ·͢ w Ԭग़
ʰΦϒδΣΫτࢦʹ͓͚Δ࠶ར༻ͷͨΊͷσβΠϯύλʔϯʱ
ຊ
lઃܭͦͷϓϩδΣΫτͷཁ݅νʔϜنɺܦݧͳͲʹΑͬ ͯࠨӈ͞Ε·͢ɻ͜ͷઃܭύλʔϯ͕ઈରʹͯ·Δͱ͍ ͏ɺ͍ΘΏΔۜͷؙ͋Γ·ͤΜɻz
lࣄલʹݻఆԽ͞ΕͨϚελʔϓϥϯʹै͏ͷͰͳ͘ɺͦͷ ࣌ʑͷঢ়گʹ߹Θͤͯॊೈʹमਖ਼ɺ෮ݪɺ֦ுɺվળ͢Δ͜ͱ ͕ॏཁz Christopher Alexander
ܞΘ͍ͬͯΔ ϓϩμΫτʹͱͬͯϕλʔͳ ઃܭͱͳΜͩΖ͏ʜ
έʔεόΠέʔε ΈΜͳݴ͍ͬͯΔ͠ʜ
ࠓ͕͍ࣗͬͯΔநԽ ྑ͍ํɺਖ਼͍͠ํʹ ͔͍ͬͯΔͷͩΖ͏͔ʁ
ͦΜͳͱ͖ʜ
lϩʔϚ࣌ͷΤϯδχΞɺ ࣗͷݐͯͨڮͷԼͰ ͠Β͘ա͝͞ͳ͚ΕͳΒͳ͔ͬͨɻz ʰ੬ऑੑʦԼʧʕʕෆ࣮֬ͳੈքΛੜ͖ԆͼΔ།Ұͷߟ͑ํʱɹφγʔϜɾχίϥεɾλϨϒ ݄Ӵ ઍ༿හੜॱ
ڮͷԼͰ৸ͯΔ͕ࣗ ͨͲΓண͍ͨઃܭ େʹ͍͍ͯ͠ઃܭ
͕ࣗݐͯͨ ڮͷԼͰ͑ͯΒͳ͍ͨΊʹʜ
͜Μͳʹศརʂ ʰJ04ΞϓϦઃܭύλʔϯೖʱ
lγϯϓϧͳγεςϜ͔ΒਐԽͯ͠ෳࡶͳγεςϜ͕ੜ·ΕΔͷɺ ҆ఆͨ͠தؒతͳܗଶ͕͋Δͱ͖͚ͩͰ͢ɻ݁Ռͱͯ͠ੜ·ΕΔ ෳࡶͳܗଶɺඞવతʹώΤϥϧΩʔͷ͋ΔͷʹͳΓ·͢ɻz ੈքγεςϜͰಈ͘ʕ͍·ى͖͍ͯΔ͜ͱͷຊ࣭Λ͔ͭΉߟ͑ํυωϥɾ̝ɾϝυζ ࢬኍ३ࢠ খాཧҰॱ
ෳࡶ͞ ʰγϯϓϧͳதؒঢ়ଶʱͷ Έ߹ΘʹΑΓ͛͠ΒΕΔ
ઃܭ 㲈 ύλʔϯԽͱύλʔϯͷ֊Խ Ͱෳࡶ͞ΛΓ͜ͳ͍ͯ͘͠
Christopher Alexander
ύλʔϯɾϥϯήʔδతͳະདྷΛͭ͘ΔͨΊͷݴޠ ϦΞϦςΟɾϓϥε Ҫఉਸ ஶ ฤू த೮ത ஶ தฏଂ
ஶ ߐߒҰ ஶ தହਓ ஶ ӋੜాӫҰ ஶ IUUQXFCTGDLFJPBDKQdJCBQBQFST1631-40$@1SPQFSUJFTQEG
IUUQTXXXTMJEFTIBSFOFUUBLBTIJJCBUIFOBUVSFPGPSEFS
छྨͷ ઃܭͷύλʔϯ छྨͷநతͳঢ়ଶ
6*,JU IUUQTEFWFMPQFSBQQMFDPNMJCSBSZBSDIJWFEPDVNFOUBUJPO$PDPB$PODFQUVBM$PSF"OJNBUJPO@HVJEF *OUSPEVDUJPO*OUSPEVDUJPOIUNMBQQMF@SFGEPDVJE51
ෳࡶ͞ΛΓ͜ͳ͢ʹ ʰγϯϓϧͳதؒঢ়ଶʱ͕ඞཁ
ઃܭύλʔϯ 㲈 ʰγϯϓϧͳதؒঢ়ଶʱͱ ͦͷ͍ํͷΧλϩά
J04ઃܭύλʔϯͷཱͪҐஔ 4XJGUͷදݱ Ϗδωεཁٻ ʹର͢Δදݱ ϥΠϒϥϦ044܈ ઃܭύλʔϯ
Ұൠతͳઃܭύλʔϯͷٞ 4XJGUͷදݱ Ϗδωεཁٻ ʹର͢Δදݱ ϥΠϒϥϦ044܈ ઃܭύλʔϯ
ʰJ04ઃܭύλʔϯೖʱͷٞͷΧόϨοδ 4XJGUͷදݱ ϥΠϒϥϦ044܈ Ϗδωεཁٻ ʹର͢Δදݱ ઃܭύλʔϯ
ͱ͓ͯ͢͢Ίʂ ʰJ04ΞϓϦઃܭύλʔϯೖʱ
ЋͰ ࣮ͰͷઃܭͷΛ͠·͢ɻ
lઃܭͦͷϓϩδΣΫτͷཁ݅νʔϜنɺܦݧͳͲʹΑͬ ͯࠨӈ͞Ε·͢ɻ͜ͷઃܭύλʔϯ͕ઈରʹͯ·Δͱ͍ ͏ɺ͍ΘΏΔۜͷؙ͋Γ·ͤΜɻz
w Ϗδωεతͳཁ݅ w جຊతͳອըΞϓϦΛϕʔε w Ϗδωε্ͷΞϓϩʔνఆ·͓ͬͯΒͣࢼߦࡨޡΛ܁Γฦ͢ඞཁ͕͋Δɻ w نɾظؒ w ࣾνʔϜdਓ
J04 "OESPJE αʔόʔαΠυ σβΠϯ $4 1. 10 w ࠓޙؔΘΔͰ͋Ζ͏ϓϩμΫτ w ٕज़తͳഎܠ w ͜ͷϨϕϧͷنͷͷΛҰਓͰอकɾ։ൃ͢Δͷॳ w ్த͔ΒҾ͖ܧ͗ 1BMDZͷഎܠɺ͋ΏΈ
খن ظత /PUΤΩεύʔτ
ϕʔε.77.
w 7JFX.PEFM 7JFX$POUSPMMFSʹґଘੑΛͲ͏ͬͯೖ͢Δ͔ʁ w Ͳ͏ͬͯ7JFX$POUSPMMFSͱ7JFX.PEFMΛCJOE͢Δ͔ w 7JFX.PEFM͕ͲͷΑ͏ʹσʔλʹΞΫηε͢Δͷ͔ʁ w ͲͷΑ͏ʹͯ͠ςελϏϦςΟΛ୲อ͢Δͷ͔ʁ w
൚༻తͳ-PBEJOHɺΤϥʔΛͲ͏ͬͯڞ௨Խ͢Δ͔ w FUDʜ .77.ͰΑΓΑΓܗΛٻΊͯมԽ͍ͯͬͨ͠
ʮਐతʯ Christopher Alexander
w θϩΠνͰͳ͘ɺྑ͍ܗʹΉ͚ͯঃʑʹҠߦͰ͖Δ͜ͱ w ҰਓͷνʔϜͰҰؾʹશ෦ॻ͖͑Δͷݱ࣮తͰͳ͍ w ࢼߦࡨޡ͠ɺݟ͕ੵͰ͖ΔΑ͏ͳঢ়ଶ ਐత
ʰਐతʱʹରͯ͠ ศརͩͬͨͭͷ5JQT
5JQT ϓϩδΣΫτΛॎʹׂΔʂ 5JQT ઃܭͷ׳Β͠ͱͯ͠ͷ#-P$ύλʔϯ
5JQT ϓϩδΣΫτΛॎʹׂΔʂ
ProjecctRoot ViewController ViewModel StoryBoard ComicDetailsViewController.swift ComicDetailsViewModel.swift SearchViewModel.swift SearchViewController.storyboard
SearchViewController.swift ComicDetailsViewController.storyboard ProjecctRoot ComicDetails Search ComicDetailsViewController.swift ComicDetailsViewModel.swift ComicDetailsViewController.storyboard … ԣׂΓͷϑΥϧμߏ ॎׂΓͷϑΥϧμߏ
w ࠷ॳ7JFX.PEFMͰ4FTTJPOΛͰѻ͍ͬͯͨˠςετ͕ॻ͖ͮΒ͍ w 'MVYΛϕʔεʹɺϦΫΤετঢ়ଶͷ4UPSFͱϦΫΤετͷ%JTQBUDIFSΛͭͬͯ͘%*͢Δ Α͏ʹˠCPJMFSQMBUF͕૿͑͗ͯͭ͢Β͍ w 3FQPTJUPSZΛͭͬͯ͘(FOFSJDTΛ׆༻ͯ͠%*͢ΔΑ͏ʹ 7JFX.PEFMͷѻ͍ํ͕มભ͍ͯͬͨ͠
w ͲΕ͕࠷৽͕Θ͔Βͳ͍ w ӨڹൣғɺదԠൣғ͕Θ͔Βͳ͍ɻ w ํΛॻ͘ͱͨ͠ΒผͰ͔ͬ͠Γͱ·ͱΊͳͯ͘ͳΒͳ͍ ͦΜͳதͰͷԣׂΓͷਏ͞
ॎׂΓʹ͢Δͱ খ͞ͳվળ ৽͍͠ͷͷಋೖʹ༰ʹʜ
$IBOHF-PHͱରԠ͕औΓ͍͢
3&"%.&Λஔ͘͜ͱ͕Ͱ͖Δ ProjecctRoot ComicDetails Search ComicDetailsViewController.swift README.md ComicDetailsViewModel.swift ComicDetailsViewController.storyboard
…
৽͘͠ೖ͖ͬͯͨਓʹɺ ࠓͷͱ͜Ζͷ࠷ળҊ ݱঢ়Λ͍͑͢
5JQT ઃܭͷ׳Β͠ͱͯ͠ͷ#-P$ύλʔϯ
#VTJOFTT-PHJD$PNQPOFOU ˣ #-P$
ݶఆతͳൣғʹ͓͍ͯ ϏδωεϩδοΫΛղܾ͢Δ ίϯϙʔωϯτΛ࡞Δ
#VJMESFBDUJWFNPCJMFBQQTXJUI'MVUUFS (PPHMF*0`
ʰখ͘͞ಋೖʱͰޮՌΛ࣮ײͰ͖Δ Φʔόʔϔουͷগͳ͍ Φεεϝͷύλʔϯ
PlacePicker Form OK Name Place
w ໊લͱॴΛߋ৽Ͱ͖Δ w ॴ͕ຊ͡Όͳ͍ͱૹ৴Ͱ͖ͳ͍ w ໊લ͕ۭจࣈͩͱૹ৴Ͱ͖ͳ͍ ϏδωεϩδοΫ
OK Name Place PlacePicker Form FormBLoC
OK Name Place PlacePicker Form FormBLoC GVODVQEBUF/BNF UPOFX/BNF4USJOH
WBSOBNF0CTFSWBCMF4USJOH\HFU^ WBSQMBDF0CTFSWBCMF$(1PJOU\HFU^ WBSJT7BMJE0CTFSWBCMF#PPM\HFU^ GVODVQEBUF1MBDF UPOFX/BNF$(1PJOU
OK Name Place PlacePicker Form FormBLoC GVODVQEBUF/BNF UPOFX/BNF4USJOH
WBSOBNF0CTFSWBCMF4USJOH\HFU^ WBSQMBDF0CTFSWBCMF$(1PJOU\HFU^ WBSJT7BMJE0CTFSWBCMF#PPM\HFU^ GVODVQEBUF1MBDF UPOFX/BNF$(1PJOU
FormBLoC OK Name Place WBSQMBDF0CTFSWBCMF$(1PJOU\HFU^ GVODVQEBUF1MBDF UPOFX/BNF$(1PJOU
খͯ͘͞ศརʂ
4XJGUͷදݱ ϥΠϒϥϦ044܈ Ϗδωεཁٻ ʹର͢Δදݱ ઃܭύλʔϯ
w Өڹൣғ͕ݶఆతˠଟগԼखΛͯ͠େৎͳͷͰࢼ͍͢͠ w ͱͯγϯϓϧͰΘ͔Γ͍͢ɻ w ৭ʑͳύλʔϯͷൃలͷಎΛಘ͍͢ w #-P$มԽΛٴ΅͢࡞༻ʢ"DUJPOʣͱมԽͷ؍ଌ 4UPSF ʹ͚Δˠ'MVYతʹ
w #-P$ͷঢ়ଶΛ7JFXʹόΠϯυ͢Δʹʜˠ.77..71ͷ͕͔Γ w ͲͷΑ͏ʹ7JFX7JFX$POUSPMMFSʹ#-P$Λ͍͔ͯ͘͠ˠͷؒͷ%* w #-P$Λελϒͨ͠Γɺ#-P$ͷςετΛॻ͍ͯΈΔˠΛׂͨ͠ԸܙΛ࣮ײͰ͖Δ ઃܭͷ׳Β͠ͱͯ͠#-P$ͷ͕͓͜͜͢͢Ί
·ͱΊ w ڮͷԼͰ҆৺ͯ͠৸ΔͳΒʰJ04ΞϓϦઃܭύλʔϯೖʱ w খ͘͞ظతͳϓϩδΣΫτͰ͋ΕɺਐతΛࢦͯ͠ࢼߦࡨޡ͢ΔͱΑ͔ͬͨ