Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Foundation over features
Search
rechsteiner
November 14, 2019
Programming
0
350
Foundation over features
How investing in our own component framework has helped us build Norway’s largest mobile bank.
rechsteiner
November 14, 2019
Tweet
Share
More Decks by rechsteiner
See All by rechsteiner
Banking on testing
rechsteiner
0
47
Coordinators and deep linking
rechsteiner
0
1.5k
Other Decks in Programming
See All in Programming
Architecture Decision Record (ADR)
nearme_tech
PRO
1
680
Rubyのobject_id
qnighy
6
1.3k
マイグレーションコード自作して File-Based Routing に自動移行!! ~250 ページの歴史的経緯を添えて~
cut0
1
260
unique パッケージから学ぶ interning と weak reference @ Asakusa.go#3
karamaru
2
800
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
440
Rubyとクリエイティブコーディングの輪の広がり / The Growing Circle of Ruby and Creative Coding
chobishiba
1
270
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
0
400
LangChainの現在とv0.3にむけて
os1ma
4
910
Kotlin 2.0が与えるAndroid開発の進化
masayukisuda
1
370
What you can do with Ruby on WebAssembly
kateinoigakukun
0
160
What is Parser
yui_knk
9
4.1k
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
580
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
In The Pink: A Labor of Love
frogandcode
139
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
89
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
610
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
Optimising Largest Contentful Paint
csswizardry
30
2.8k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Transcript
Foundation over features How investing in our own component framework
has helped us build Norway’s largest mobile bank.
None
Building a new mobile bank
For 4 months the app was completely blank Investing time
to build a foundation
Theming Backend simulator Global model store Coordinators Deep linking Design
system Skeleton views HTTP Client Repository Authentication library NSOperations abstractions Component framework
None
We needed a shared foundation
One big UICollectionView Account list component Table component
None
None
None
None
The missing piece: Layouts
None
None
None
Composable collection view layout
• 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
None
None
None
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
Transitioning to SwiftUI
None
None
None
None
None
Automatically dequeue cells based on layouts
None
Take-aways
• 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
None