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
iOS Application Architecture
Search
Oliver Eikemeier
October 29, 2015
Programming
1
120
iOS Application Architecture
Zalando teck talk held at October 29, 2015
Oliver Eikemeier
October 29, 2015
Tweet
Share
More Decks by Oliver Eikemeier
See All by Oliver Eikemeier
One weird trick that will make your development life easier forever
eik
2
100
Other Decks in Programming
See All in Programming
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
CSC307 Lecture 01
javiergs
PRO
0
690
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
190
CSC307 Lecture 07
javiergs
PRO
0
550
「ブロックテーマでは再現できない」は本当か?
inc2734
0
980
AgentCoreとHuman in the Loop
har1101
5
230
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
370
ぼくの開発環境2026
yuzneri
0
220
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
高速開発のためのコード整理術
sutetotanuki
1
400
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
280
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Test your architecture with Archunit
thirion
1
2.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
180
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
64
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
91
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
300
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
170
Transcript
Modular iOS Application Architecture 1 — © Zalando SE, 2015
Modules To be adaptable to evolving needs it is desirable
to build complex system by assembling highly cohesive loosely coupled modules, where cost of redesigning each of such adoptable modules (or replacing by a better modules) must be minimized.CBSE CBSE Loosely based on Wikipedia, Component-based software engineering 2 — © Zalando SE, 2015
Modules should be - Developed independently - Build independently -
Tested independently - Changed or replaced independently 3 — © Zalando SE, 2015
Building Blocks Part 1 How can we assemble an App
out of independent modules? 4 — © Zalando SE, 2015
Building Blocks Part 1 → The Dependency Inversion PrincipleDIP (It’s
the D in the SOLIDOOD principles) OOD Robert C. Martin ‘05, Principles of OOD DIP Robert C. Martin ‘96, objectmentor.com/resources/articles/dip.pdf 5 — © Zalando SE, 2015
The Dependency Inversion Principle High level modules should not depend
upon low level modules. Both should depend upon abstractions.Abs Abs Abstractions: Interfaces, Protocols 6 — © Zalando SE, 2015
The Dependency Inversion Principle Abstractions should not depend upon details.Det
Details should depend upon abstractions. Det Details: Implementation details 7 — © Zalando SE, 2015
Building Blocks Part 2 → Inversion of ControlIoC IoC Martin
Fowler ‘04, martinfowler.com/articles/injection.html 8 — © Zalando SE, 2015
Inversion of Control Just declare static dependencies, leave object graph
composition to the framework 9 — © Zalando SE, 2015
Case Study We use a Service Locator as an IoC
container → But Address the Common Problems of a Service Locator 10 — © Zalando SE, 2015
Case Study Sample App: How do we do it? 11
— © Zalando SE, 2015
Inversion of Control → No need for Mocking → Decorators
for AOP-style cross-cutting concerns → Configuration changes in deployed apps → Feature Flags 12 — © Zalando SE, 2015
Case Study Sample App: Decorate me. 13 — © Zalando
SE, 2015
Is It Any Good? Yes! 14 — © Zalando SE,
2015
Is It Any Good? Yes! → Proven: Used over the
last two years → First Use: Monolithic Objective-C legacy App 15 — © Zalando SE, 2015
Is It Any Good? Yes! → Makes development fast, modules
testable → Plays well with Continuous Integration 16 — © Zalando SE, 2015
Buzzword compliance In object-oriented programming, the use of interfaces as
an architectural pattern to construct modules is known as API-First Design. 17 — © Zalando SE, 2015
Buzzword compliance Microservices is a software architecture style in which
complex applications are composed of small, independent modules communicating with each other. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building. 18 — © Zalando SE, 2015
Thank You! Questions?A A The Answer is Yes, now what's
Your Question? 19 — © Zalando SE, 2015