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.

94fc7b58c03a0650fe1e8d78140bd451?s=128

Dan Cutting

March 23, 2018
Tweet

Transcript

  1. 2.
  2. 3.
  3. 4.
  4. 7.
  5. 9.

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

    the human resources required to build and maintain the required system” Clean Architecture
  6. 10.

    MVC

  7. 13.
  8. 14.
  9. 15.
  10. 18.

    Ad Detail VC Ad Edit VC Ad List VC Glorious

    Seller Team Edit Gateway make selling stuff easy
  11. 19.

    Ad Detail VC Ad Edit VC Ad List VC Browse

    Flow Flow coordinators Edit Gateway
  12. 34.
  13. 35.

    E2E, huh! good god What is it good for? •

    Quality Assurance (QA)? • Not good for baking in quality
  14. 36.

    E2E, huh! good god What is it good for? •

    Quality Assurance (QA)? • Not good for baking in quality • Not good for assuring the product
  15. 37.

    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
  16. 38.

    E2E

  17. 41.
  18. 42.
  19. 54.
  20. 56.

    Fixture Browse Flow Gateway Stub List Spy Detail Spy UINavController

    UI flow Spies Stubs Business logic Business logic
  21. 57.

    UINavController Fixture Browse Flow Gateway Stub List Spy Detail Spy

    Navigator Fake UI flow Spies Stubs Business logic Business logic
  22. 58.

    UINavController Fixture Browse Flow Gateway Stub List Spy Detail Spy

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