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

Foundation over features

9c7c5ab5929ef286ec2b8fe3e8256ea0?s=47 rechsteiner
November 14, 2019

Foundation over features

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



November 14, 2019

More Decks by rechsteiner

Other Decks in Programming


  1. Foundation over features How investing in our own component framework

    has helped us build Norway’s largest mobile bank.
  2. None
  3. Building a new mobile bank

  4. For 4 months the app was completely blank Investing time

    to build a foundation
  5. Theming Backend simulator Global model store Coordinators Deep linking Design

    system Skeleton views HTTP Client Repository Authentication library NSOperations abstractions Component framework
  6. None
  7. We needed a shared foundation

  8. One big UICollectionView Account list component Table component

  9. None
  10. None
  11. None
  12. None
  13. The missing piece: Layouts

  14. None
  15. None
  16. None
  17. Composable collection view layout

  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
  19. None
  20. None
  21. None
  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
  23. Transitioning to SwiftUI

  24. None
  25. None
  26. None
  27. None
  28. None
  29. Automatically dequeue cells based on layouts

  30. None
  31. Take-aways

  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
  33. None