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
Mobile backend without REST
Search
DAloG
April 26, 2017
Programming
150
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Mobile backend without REST
DAloG
April 26, 2017
More Decks by DAloG
See All by DAloG
State normalization (RU)
dalog
0
240
Redux + MQTT
dalog
1
820
От задач к проблемам
dalog
1
290
Unlimited power of Data-Driven UI
dalog
4
700
Data-Driven View Controllers. Tips and Tricks
dalog
5
2k
2 years of Redux in iOS. Lessons learned
dalog
0
420
Why unidirectional architecture matter for iOS.
dalog
1
340
Self managed teams 101
dalog
0
200
FMVP
dalog
1
200
Other Decks in Programming
See All in Programming
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
740
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.7k
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
140
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
360
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
220
継続モナドとリアクティブプログラミング
yukikurage
3
610
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
140
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
150
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.5k
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
540
5分で問診!Composer セキュリティ健康診断
codmoninc
0
330
フィードバックで育てるAI開発
kotaminato
1
120
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
It's Worth the Effort
3n
188
29k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
エンジニアに許された特別な時間の終わり
watany
108
250k
A designer walks into a library…
pauljervisheath
211
24k
Side Projects
sachag
455
43k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
Being A Developer After 40
akosma
91
590k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Transcript
REST LESS APP MOBILE FIRST BACKEND
REST?
TEXT SHORT HISTORY OF REST ▸ 1996 - developing the
pattern ▸ 2000 - formalizing the pattern ▸ 2010 - spreading around the world. http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
TEXT REST REQUIREMENTS ▸ Client - Server ▸ No client
state ▸ No client session on a client ▸ Caching (CDN and HTTP powered) ▸ Resource by URL / URI http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
TEXT REST PROBLEMS ▸ Versioning ▸ Discoverability ▸ Dynamic API
▸ Assumption Driven Development
SERVER FIRST
MOBILE FIRST?
TEXT MOBILE NEEDS ▸ Multiple Environments ▸ Versioning (multiple versions
in store) ▸ Minimum logic on client side ▸ Sessions ▸ Feature toggles ▸ API Spec
TEXT MICROSERVICES ▸ Multiple Instances ▸ More like distributed objects
▸ Composition enabled ▸ Feature oriented
TEXT MICROSERVICES ▸ Multiple Instances ▸ More like distributed objects
▸ Composition enabled ▸ Feature oriented
TEXT CONFIG SERVICE REQUEST "context": { "version": "1.0", "locale": "en_US",
"bundle": "com.my.food-delivery", "device": "iPhone", "screen": { "width": 320, "height": 480 }, "uuid": "ABCD-1234-1242-1564", ... }
TEXT CONFIG SERVICE RESPONSE "config": { "menu": { "search": {
"url": "https://m.com/menu/v1/search", "context": { "session": "ABCD-1234-1242-1564", "currency": "USD" } }, "popular": [ ... ], ... }, ... }
TEXT CONFIG SERVICE RESPONSE "error": { "kind": "temporal", "message": "We
are updating our service, please wait up to 2 AM of tommorow." }
TEXT CONFIG SERVICE RESPONSE "error": { "kind": "permanent", "message": "Please
download new version from App Store", "action": "app store page" }
TEXT SEARCH SERVICE REQUEST "search": { "term": "sushi", "context": {
... } }
TEXT SEARCH SERVICE RESPONSE "items": [ { "title": "Roll", "price":
"18 USD", "markAsFavorite": { "url": "http://food.com/markAsFavorite", "context": { "id": 1990, "user": "ABCD-1234-1242-1564" } }, } ]
CODE IS DATA
TEXT NEXT STEPS ▸ Tell server about needed data ▸
GraphQL ▸ Remote code injection
TEXT CONFIG SERVICE REQUEST "context": { ... "menu": { "search":
{ "url": { "type": "$url" }, "json": { "type": "$object", "variables": ["$term"] } } } }
TEXT CONFIG SERVICE RESPONSE "config": { "menu": { "search": {
"url": "https://food-delivery.com/menu/v1/search", "json": { "term": "$term", "session": "ABCD-1234-1242-1564", "currency": "USD" } } } }
GRAPH QL http://graphql.org
REACT NATIVE https://facebook.github.io/react-native/
SERVER APP LOGIC UI
SERVER APP LOGIC UI
WHY IT IS IMPORTANT?
PROJECTS ARE DEAD
TEXT PRODUCT TRAITS ▸ Dynamic set of functionality ▸ Data
driven decisions ▸ Weekly updates
QUESTIONS?
[email protected]