~/talk

Achieving Loose Coupling with Pure Dependency

Talkat SwiftLeeds 2023 · 2023-10-09..10-10· [ios, software-architecture]
links:none on file
slides:none on file

A Swift example app called CoffeeShops shows manual Pure Dependency Injection using initializer injection and a single app-target Composition Root layer that composes tiny “composer” getters to build the object graph (credential keychain, SwiftData DB, authenticator, repositories, feature views). Four feature Dev apps (onboarding, map, details, profile) launch isolated features with stop data and mocks, proving the approach works and makes swapping implementations and unit-testable previews trivial.

AI-written summary · about

  1. 0:00Introduction to loose coupling
  2. 1:23Why initializer injection
  3. 3:04Example app overview
  4. 5:31Composition root explained
  5. 8:40Xcode project structure
  6. 9:22Creating composers in code
  7. 11:27Profile view composer
  8. 12:29Mocking dependencies easily
  9. 13:11Dev apps for features
  10. 14:36Unit tests and previews
  11. 15:17Scaling to bigger apps
  12. 15:57Further learning resources
  13. 16:20Closing and Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.