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

Foundation over features

rechsteiner
November 14, 2019

Foundation over features

How investing in our own component framework has helped us build Norway’s largest mobile bank.

rechsteiner

November 14, 2019
Tweet

More Decks by rechsteiner

Other Decks in Programming

Transcript

  1. Foundation over features
    How investing in our own component framework has
    helped us build Norway’s largest mobile bank.

    View Slide

  2. View Slide

  3. Building a new mobile bank

    View Slide

  4. For 4 months the app
    was completely blank
    Investing time to
    build a foundation

    View Slide

  5. Theming
    Backend simulator
    Global model store
    Coordinators
    Deep linking
    Design system
    Skeleton views
    HTTP Client
    Repository
    Authentication library
    NSOperations abstractions
    Component framework

    View Slide

  6. View Slide

  7. We needed a shared foundation

    View Slide

  8. One big
    UICollectionView
    Account list
    component
    Table
    component

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. The missing piece: Layouts

    View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. Composable collection view layout

    View Slide

  18. • Each component has its own layout
    • Custom collection view layout takes
    each component layout and
    converts it into one big
    UICollectionViewLayout.
    Composable collection view layout

    View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. Benefits
    • Reusable components allows us to share
    functionality throughout the app
    • Ability to compose bigger screens out of
    smaller components
    • Declarative layout system
    • Data-driven UIs are easy to unit-test
    • Animations are handled automatically
    • Allows us to transition to SwiftUI

    View Slide

  23. Transitioning to SwiftUI

    View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. Automatically dequeue cells based on layouts

    View Slide

  30. View Slide

  31. Take-aways

    View Slide

  32. • Investing time in building a good foundation can really
    pay off in the long term
    • Owning the abstraction gives you a lot of freedom
    • Use frameworks for the hard problems

    View Slide

  33. View Slide