$30 off During Our Annual Pro Sale. View Details »

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.

More Decks by Aleksandar Vacić (Radiant Tap)

Other Decks in Programming

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

    View Slide

  2. App starts with an idea.
    A business plan would help too,
    but let’s not digress too much.

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. UI / UX is done.
    The only thing left: code

    View Slide

  8. View Slide

  9. Code is done.
    Really..?

    View Slide

  10. View Slide

  11. HomeController
    ProductDetailsController
    ProductsController

    View Slide

  12. View Slide

  13. Architecture of complex apps is
    ever evolving, quite often in
    unforseen ways.

    View Slide

  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

    View Slide

  15. View Slide

  16. O N I O N
    Your app needs to be an
    (Psst - I know this is garlic, but bear with me)

    View Slide

  17. Data Delivery
    Data Source
    Data Storage

    View Slide

  18. Data Delivery
    Data Source
    Data Storage
    UI

    View Slide

  19. Data Delivery
    Data Source
    Data Storage
    UI

    View Slide

  20. Data Delivery
    Data Source
    Data Storage
    UI

    View Slide

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

    View Slide

  22. Data Delivery
    Data Source
    Data Storage
    UI

    View Slide

  23. Data Delivery
    Data Source
    Data Storage
    UI

    View Slide

  24. Data Delivery
    Data Source
    Data Storage
    UI
    UI Coordinators

    View Slide

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

    View Slide

  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…

    View Slide

  27. L AY E R S
    A R C H I T E C T U R E

    View Slide

  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

    View Slide

  29. Let’s demo this approach by code-
    mapping a bespoke Spotify app…
    in 15-ish minutes
    ! "
    #$

    View Slide

  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

    View Slide