Mind map your app

Mind map your app

My talk from the NSBudapest meetup, held as part of Craft Conf 2018, on May 10th.

A version with presenter notes embedded is here: https://speakerdeck.com/radianttap/mind-map-your-app-with-notes

It's a short dive into a proper use of Coordinators and Layers architecture to really separate View Controllers into manageable, isolated units.

Transcript

  1. M I N D - M A P Y O

    U R A P P A l e k s a n d a r Va c i ć @radiantav C R A F T 2 0 1 8 · N S B u d a p e s t
  2. App starts with an idea. A business plan would help

    too, but let’s not digress too much.
  3. None
  4. None
  5. None
  6. None
  7. UI / UX is done. The only thing left: code

  8. None
  9. Code is done. Really..?

  10. None
  11. HomeController ProductDetailsController ProductsController

  12. None
  13. Architecture of complex apps is ever evolving, quite often in

    unforseen ways.
  14. – M A R T I N F O W

    L E R “Architectural refactoring is hard, and we’re still ignorant of its full costs, but it isn’t impossible.” Patterns of Enterprise Application Architecture
  15. None
  16. O N I O N Your app needs to be

    an (Psst - I know this is garlic, but bear with me)
  17. Data Delivery Data Source Data Storage

  18. Data Delivery Data Source Data Storage UI

  19. Data Delivery Data Source Data Storage UI

  20. Data Delivery Data Source Data Storage UI

  21. N O T M Y FA U LT … H

    O N E S T !
  22. Data Delivery Data Source Data Storage UI

  23. Data Delivery Data Source Data Storage UI

  24. Data Delivery Data Source Data Storage UI UI Coordinators

  25. Data Delivery Data Source Data Storage UI UI Coordinators Middleware

  26. If you manage to separate all this, then you don’t

    need colored post-it notes. You can mind-map in code, no intermediary prototyping tools required. Code Mapping, enabled by…
  27. L AY E R S A R C H I

    T E C T U R E
  28. • Coordinator
 Swift implementation of Coordinator pattern, with several advanced

    features • Swift-Network
 Thin URLSession wrapper which allow seamless usage with Operation and OperationQueue • Swift-Essentials
 Various useful extensions, particularly AsyncOperation subclass of Operation github.com/radianttap
  29. Let’s demo this approach by code- mapping a bespoke Spotify

    app… in 15-ish minutes ! " #$
  30. Aleksandar Vacić radianttap.com Follow me as @radiantav on Twitter. Read

    my iOS dev blog at aplus.rs. Use my open source stuff on GitHub.com/radianttap. Photos (from Unsplash) by • delfi de la Rua • Otto Norin • Mike Kenneally