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
Versioning mobile apps and apis
Search
Marek Kalnik
October 30, 2015
Technology
97
0
Share
Versioning mobile apps and apis
Our internal workshop material
Marek Kalnik
October 30, 2015
More Decks by Marek Kalnik
See All by Marek Kalnik
Ma liste subjective des 10 développeurs à connaitre
marekkalnik
0
86
Le management LEAN
marekkalnik
0
78
Comment Ionic vous aide
marekkalnik
0
150
Pourquoi choisir Ionic ?
marekkalnik
0
280
Cordova vs. Steroids
marekkalnik
0
150
Arrêtons de parler de code de qualité, ce qu'il faut c'est du code agile !
marekkalnik
2
660
Code Agile - comment redéfinir la qualité
marekkalnik
2
190
Behat - retour d'expérience
marekkalnik
1
450
Write your jQuery in console
marekkalnik
0
190
Other Decks in Technology
See All in Technology
eBPF Can Do It! A 5-Minute Tour of 5 Real-World PHP Issues Solved with eBPF
egmc
0
190
論文紹介:Pixal3D (SIGGRAPH 2026)
tenten0727
0
740
Python開発環境にハーネス適用を検討する
yuuka51
1
510
Anthropic AIネイティブ・スタートアップ構築のプレイブック を理解する
nagatsu
0
190
データ基盤構築・運用の現場から 〜 Snowflake Intelligence 導入で変わった、データ活用の未来 〜
wonohe
0
190
実践 TanStack Start ― 新規プロダクトを開発して確立した、サーバーとクライアント境界の設計パターン / Practical TanStack Start Server-Client Boundary Patterns
kaminashi
2
320
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
150
データ分析基盤の信頼を支える視点と設計
yuki_saito
1
680
Kiro CLI v2.0.0がやってきた!
kentapapa
0
110
JavaScript実装の自作プログラミング言語をTypeScript実装に移行した話
keisukeikeda
1
160
TSKaigi 2026 - 10秒のビルドを1秒へ:tsdownが切り拓く2026年のTypeScriptライブラリ開発
teamlab
PRO
2
270
Splunk MCPサーバの利活用事例 ーKINTOテクノロジーズの取り組み
kintotechdev
1
320
Featured
See All Featured
Claude Code のすすめ
schroneko
67
220k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
A Tale of Four Properties
chriscoyier
163
24k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
560
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
130
Ruling the World: When Life Gets Gamed
codingconduct
0
240
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
270
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
550
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
VERSIONING MOBILE let your API and your APP evolve
SEMVER Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version
when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes.
THE APP versioning is not only about code
None
IN APP COMMUNICATION ➤ let the user know what version
he’s using, so he may communicate it to you ➤ show application version in the application itself (it may include build #)
KEEP VERSION NUMBER AUTOMATIC ➤ gulp-bump ➤ an after_prepare_hook (http://devgirl.org/2013/11/12/three-hooks-
your-cordovaphonegap-project-needs/): var version = require(__dirname + ‘../../package.json’).version ➤ gulp-git ➤ add a git tag with -a (demo time)
HOW TO HANDLE VERSIONS ➤ call URL’s with /{version_number} ?
HTTP GET: https://api.bamlab.fr/v2/hello ➤ add api-version header HTTP GET: https://api.bamlab.fr/hello api-version: 2 ➤ add Accept header HTTP GET: https://api.bamlab.fr/hello Accept: application/vnd.bamlab.v2+json
THE BACK it’s all about contract
INTEGRATE THE VERSIONING IN ROUTING ➤ http://restify.com/#versionned-routes ➤ http://www.slideshare.net/shakefon/hapidays-2014/9? src=clipshare
➤ http://www.slideshare.net/shakefon/hapidays-2014/18? src=clipshare ➤ https://github.com/felipeleusin/hapi-negotiator
NOTIFY OLD VERSIONS ➤ send a DEPRECATED header and expose
a /version route ➤ send a 410 GONE response if you are removing a ressource 410 GONE AND IT WON’T BE COMING BACK
VERSION YOUR DATA MODEL ➤ think about metadata ➤ add
meta_version_number ➤ add a transformer to transform the model before exposing it to either version