Upgrade to Pro — share decks privately, control downloads, hide ads and more …

App Architectures: Remixed (iOSCon 2018 edition)

App Architectures: Remixed (iOSCon 2018 edition)

Many apps support "theming", but some must flexibly support different customers with remixed flows and feature sets while reusing as much as possible.

Separating apps into composable layout, flow, and logic components makes this possible, and also unlocks superpowers like fantastically stable subsecond UX flow testing (goodbye simulator!)

Dan Cutting guides us through the collection of "Remix" architectural patterns his team have been applying to make this possible on a suite of apps designed for millions of users.

Dan Cutting

March 23, 2018
Tweet

More Decks by Dan Cutting

Other Decks in Programming

Transcript

  1. –Uncle Bob “The goal of software architecture is to minimize

    the human resources required to build and maintain the required system” Clean Architecture
  2. MVC

  3. Ad Detail VC Ad Edit VC Ad List VC Glorious

    Seller Team Edit Gateway make selling stuff easy
  4. Ad Detail VC Ad Edit VC Ad List VC Browse

    Flow Flow coordinators Edit Gateway
  5. E2E, huh! good god What is it good for? •

    Quality Assurance (QA)? • Not good for baking in quality
  6. E2E, huh! good god What is it good for? •

    Quality Assurance (QA)? • Not good for baking in quality • Not good for assuring the product
  7. E2E, huh! good god What is it good for? •

    Quality Assurance (QA)? • Not good for baking in quality • Not good for assuring the product • OK for smoke tests
  8. E2E

  9. Fixture Browse Flow Gateway Stub List Spy Detail Spy UINavController

    UI flow Spies Stubs Business logic Business logic
  10. UINavController Fixture Browse Flow Gateway Stub List Spy Detail Spy

    Navigator Fake UI flow Spies Stubs Business logic Business logic
  11. UINavController Fixture Browse Flow Gateway Stub List Spy Detail Spy

    Navigator Fake No more UIKit! UI flow Spies Stubs Business logic Business logic