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
Meeプロジェクト紹介
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuta Kawabe
September 21, 2018
Programming
80
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Meeプロジェクト紹介
Yuta Kawabe
September 21, 2018
More Decks by Yuta Kawabe
See All by Yuta Kawabe
年末年始読んだ本LT
yaruki00
0
95
イマイチなsubscribeをRxぽくする
yaruki00
0
690
気をつけよう!認知バイアス
yaruki00
1
71
iOSDC2019トークピックアップ
yaruki00
0
63
スクラム完全理解
yaruki00
0
74
小さなチームでも高品質なモバイルアプリを作るためのテスト戦略
yaruki00
0
86
ここがダメだよ🍎さん!
yaruki00
0
50
iOSDCまとめ
yaruki00
0
56
iOSアプリ開発手法の変化
yaruki00
0
59
Other Decks in Programming
See All in Programming
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
130
SODA - FACT BOOK(EN)
sodainc
1
200
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
110
sbt 2.0: takeoff
eed3si9n
0
190
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
0
130
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
260
Seven New Principles of Software Engineering
yegor256
0
420
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
680
Performance Optimization With LLMs
xleitix
0
230
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.8k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
7.1k
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
120
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
540
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
630
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
590
Scaling GitHub
holman
464
140k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
360
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
MEEϓϩδΣΫτհ IOSษڧձ 2018/9/21
ςΩετ ࣍ ▸ σΟϨΫτϦߏ ▸ ΞʔΩςΫνϟ ▸ ڥΓସ͑ ▸ Ωϟογϡ
▸ Ξϥʔτදࣔ ▸ Πϯδέʔλදࣔ ▸ API௨৴(secret·ΘΓ) ▸ Generamba ▸ ςετ
σΟϨΫτϦ ߏ
ςΩετ σΟϨΫτϦߏ ▸ ͜Μͳײ͡ ϓϩδΣΫτʹґΒͳ͍ ϓϩδΣΫτͰ ϓϩδΣΫτʹґΒͳ͍
ΞʔΩςΫνϟ
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ Builder Presentation Domain Infra Wireframe
Presenter View UseCase Mapper DomainModel Repository DataStore Entity
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ - BUILDER Builder Presentation Domain
Infra Wireframe Presenter View UseCase Mapper DomainModel Repository DataStore Entity PRESENTATIONͷ ϑΝΫτϦ
ςΩετ ΞʔΩςΫνϟ - BUILDER ը໘ʹඞཁͳ ύϥϝʔλ VCฦ͢ ґଘΫϥε ࡞ɾཱ
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ - PRESENTATION Builder Presentation Domain
Infra Wireframe Presenter View UseCase Mapper DomainModel Repository DataStore Entity ը໘ભҠ VIEWͷΠϕϯτ ϋϯυϦϯά σʔλදࣔ Πϕϯτ͛Δ
ςΩετ ΞʔΩςΫνϟ - WIREFRAME ֤ը໘ͷํ ϓϩτίϧʹ ద߹͢Δ͚ͩ ϓϩίτϧʹ ࣮
ςΩετ ΞʔΩςΫνϟ - PRESENTER Πϕϯτͷ͛ ઌ͕͍ͬͺ͍ Πϕϯτड͚औΔ
ςΩετ ΞʔΩςΫνϟ - VIEW σʔλΒͬͯ දࣔ
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ - USECASE Builder Presentation Domain
Infra Wireframe Presenter View UseCase Mapper DomainModel Repository DataStore Entity Ϣʔβ ΞΫγϣϯ
ςΩετ ΞʔΩςΫνϟ - USECASE ͏ଆ͕࡞Γํ Λҙࣝ͠ͳ͍ͨ ΊͷϑΝΫτϦ
ςΩετ ΞʔΩςΫνϟ - USECASE جຊతʹ ࣮ߦҰͭ APIୟͭ͘ SINGLEฦ͢ ࣮ࡍͷॲཧ REPOSITORY͕୲͏
(Ұ෦DATASTORE)
ςΩετ ΞʔΩςΫνϟ - USECASE Ωϟογϡͷ औಘ୲ ENTITY͔Β DOMAINMODELͷม Ωϟογϡ REPOSITORYͷׂͰʁ
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ - DOMAINMODEL Builder Presentation Domain
Infra Wireframe Presenter View UseCase Mapper DomainModel Repository DataStore Entity ΞϓϦͰ͏ σʔλ
ςΩετ ΞʔΩςΫνϟ - DOMAINMODEL σʔλͷू·Γ ը໘ຖͰͳ͍ ରԠ͢ΔPROTO͕ ͋Δ߹ॳظԽ Ͱ͏
ςΩετ ΞʔΩςΫνϟ - DOMAINMODEL ENUMͰ͋Δ͜ͱ ͠͠ ؔ࿈͢Δॲཧ ϞσϧʹؚΊΔ
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ - REPOSITORY Builder Presentation Domain
Infra Wireframe Presenter View UseCase Mapper DomainModel Repository DataStore Entity σʔλΞΫηε ΠϯλʔϑΣʔε
ςΩετ ΞʔΩςΫνϟ - REPOSITORY ͜͜ʹ ϑΝΫτϦ σʔλΞΫηε खஈΛఏڙ
ςΩετ ΞʔΩςΫνϟ - REPOSITORY ࣮ࡍͷॲཧ DATASTORE͕୲͏
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ - DATASTORE Builder Presentation Domain
Infra Wireframe Presenter View UseCase Mapper DomainModel Repository DataStore Entity σʔλͷ͋Γ͔ ʹΞΫηε
ςΩετ ΞʔΩςΫνϟ - DATASTORE Έͨͼ ϑΝΫτϦ APIͳΓKEYCHAINͳΓ ΞΫηε͢Δ
▸ Clean Architectureతͳͭ ςΩετ ΞʔΩςΫνϟ - ENTITY Builder Presentation Domain
Infra Wireframe Presenter View UseCase Mapper DomainModel Repository DataStore Entity PROTOͰੜ
ڥΓସ͑
ςΩετ ڥΓସ͑ ▸ Environment: APIڥͱϏϧυઃఆΛϏϧυϑϥά͔Βܾఆ
Ωϟογϡ
ςΩετ Ωϟογϡ(USECASE) ௨৴ޭͨ͠Β UDʹͿͪ͜Ή ௨৴ࣦഊͨ͠Β UD͔Βऔಘ ݁Ռͱͯ͠ ERROR
ςΩετ Ωϟογϡ(PRESENTER) Ωϟογϡ͖ ͷΤϥʔͳΒ ͦΕΛදࣔ
Ξϥʔτදࣔ
ςΩετ Ξϥʔτදࣔ Ξϥʔτදࣔͷ ͨΊͷσʔλ ࠨͷσʔλ͔Β ΞϥʔτΛදࣔ
ςΩετ Ξϥʔτදࣔ Τϥʔϝοηʔδ ΛALERTABLEʹద߹
Πϯδέʔλ දࣔ
ςΩετ Πϯδέʔλදࣔ(INDICATORVIEW) Πϯδέʔλදࣔ༻ Ϋϥε Ϗϡʔͷੜͱදࣔ
ςΩετ Πϯδέʔλදࣔ(PRESENTER) දࣔͤ͞Δ ফ͢ ফ͢
API௨৴ SECRETपΓ
ςΩετ API௨৴ DATASTORE͕USECASEΛ ͍ͬͯΔ ڞ௨Խ ΞʔΩςΩτϧʔϧҧ
GENERAMBA
ςΩετ GENERAMBA ▸ https://github.com/Yaruki00/GenerambaTemplate ▸ “my_presentation”ͱ͍͏ςϯϓϨʔτΛ༻ ▸ PresentationͷίʔυΛੜ͍ͯ͠Δ
ςετ
ςΩετ ςετ IOSSNAPSHOTTESTCASEΛ༻ ಈ࡞֬ೝɿTRUE ςετɿFALSE Ϗϡʔͷੜ ࢀߟը૾ͱͷൺֱ
࣭ͳͲ͋Ε MEEνʔϜϝϯόʔʂ