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
Backend Driven UIs
Search
Swift India
January 25, 2020
Programming
0
120
Backend Driven UIs
Presented by Bhagat Singh
Swift India
January 25, 2020
Tweet
Share
More Decks by Swift India
See All by Swift India
Network Layer Abstraction
swiftindia
0
150
Efficient JSON to Object Parsing
swiftindia
0
130
Sign In with Apple
swiftindia
0
130
Furlenco's AR Journey
swiftindia
0
110
Image processing using Core Image and Metal
swiftindia
0
200
Combine - Diving into Apple’s Reactive Programming
swiftindia
1
230
Social in Hotstar
swiftindia
0
240
Improving App Launch Time
swiftindia
1
97
Introduction to AsyncDisplayKit / Texture
swiftindia
0
140
Other Decks in Programming
See All in Programming
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
180
童醫院敏捷轉型的實踐經驗
cclai999
0
210
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
470
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
580
5つのアンチパターンから学ぶLT設計
narihara
1
150
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
220
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
3
1.9k
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
5
1k
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
140
Select API from Kotlin Coroutine
jmatsu
1
220
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Pragmatic Product Professional
lauravandoore
35
6.7k
For a Future-Friendly Web
brad_frost
179
9.8k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
730
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Side Projects
sachag
455
42k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Why Our Code Smells
bkeepers
PRO
337
57k
Optimizing for Happiness
mojombo
379
70k
Git: the NoSQL Database
bkeepers
PRO
430
65k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
680
Transcript
Backend Driven UIs
PhonePe iOS Engineer raywenderlich.com Contributor
How we build it now?
We make a TableView or a CollectionView.
Includes a lot of boilerplate, which you are tired of
writing.
Bloats the app.
We keep on doing this till infinity.
The main turn off
Design Iterations
Changing that same view
Again
And Again
Again.
None
Make it independent
“Driving it from the backend”
Why would you want such a thing?
It is purely use-case dependent.
SwiftUI has not taken over the world right now.
Consistency
Adaptability
Iterative
Scaleable
Prerequisites
Design System
Steps to uniforming your UI
Invest time in making a uniform design system
Many Design tools such as Figma, Sketch, Adobe XD.
The most important part.
Get that design system into code
Make it driven from the backend.
Laying our views realtime
UICollectionView
Consists of two entities
Data and Layout
Layout
ViewType
None
ScrollType
None
Data
Data is just an array of objects, which includes necessary
parameters like title, image etc.
UI Elements
BaseView
BaseView is a UIView + A protocol which has all
necessary information to calculate sizes, set some data and so on.
BaseCollectionViewCell
BaseCollectionViewCell is a CVC which has all relevant information on
calculating size and for the layout of the rest of the view.
BaseTableViewCell
BaseTableViewCell is a container which holds all our collectionViews
Some Code
Handling Clicks
Deeplinks and ViewModels
Deeplinks are the key here for in-app navigation
Some Pros
Scaleable
Testable
No intervention necessary
Realtime Updates
Fast and hassle-free
Can last you at least a year if done properly.
Can last you at least a year if done properly.
Unless you have a crazy designer
Some Cons
Performance
Overkill
Idk if it works with Storyboards
What can be improved?
Height Calculations
Height Caching
Some boilerplate
Questions, Suggestions, Ideas!
Thanks @soulful_swift