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
Meeプロジェクト紹介
Search
Yuta Kawabe
September 21, 2018
Programming
0
56
Meeプロジェクト紹介
Yuta Kawabe
September 21, 2018
Tweet
Share
More Decks by Yuta Kawabe
See All by Yuta Kawabe
年末年始読んだ本LT
yaruki00
0
60
イマイチなsubscribeをRxぽくする
yaruki00
0
640
気をつけよう!認知バイアス
yaruki00
1
54
iOSDC2019トークピックアップ
yaruki00
0
37
スクラム完全理解
yaruki00
0
51
小さなチームでも高品質なモバイルアプリを作るためのテスト戦略
yaruki00
0
69
ここがダメだよ🍎さん!
yaruki00
0
33
iOSDCまとめ
yaruki00
0
37
iOSアプリ開発手法の変化
yaruki00
0
39
Other Decks in Programming
See All in Programming
MCP連携で加速するAI駆動開発/mcp integration accelerates ai-driven-development
bpstudy
0
290
書き捨てではなく継続開発可能なコードをAIコーディングエージェントで書くために意識していること
shuyakinjo
1
260
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
1
150
Comparing decimals in Swift Testing
417_72ki
0
170
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2.1k
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
460
kiroでゲームを作ってみた
iriikeita
0
150
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
5
590
Reactの歴史を振り返る
tutinoko
1
180
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
860
リッチエディターを安全に開発・運用するために
unachang113
1
380
Constant integer division faster than compiler-generated code
herumi
2
590
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Balancing Empowerment & Direction
lara
1
540
Raft: Consensus for Rubyists
vanstee
140
7.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Code Review Best Practice
trishagee
69
19k
Building an army of robots
kneath
306
45k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Adopting Sorbet at Scale
ufuk
77
9.5k
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νʔϜϝϯόʔʂ