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
84
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
650
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
180
Other Decks in Technology
See All in Technology
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
2k
生成AIはソフトウェア開発の革命か、ソフトウェア工学の宿題再提出なのか -ソフトウェア品質特性の追加提案-
kyonmm
PRO
2
750
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
500
AgentCore×VPCでの設計パターンn選と勘所
har1101
4
370
ボトムアップの改善の火を灯し続けろ!〜支援現場で学んだ、消えないための3つの打ち手〜 / 20260509 Kazuki Mori
shift_evolve
PRO
2
330
色を視る
yuzneri
0
310
ServiceNow Knowledge 26 の歩き方
manarobot
0
290
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
430
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
170
AI活用時代の事業判断高度化を導くエンジニアリング基盤 / 20260424 Atsushi Funahashi
shift_evolve
PRO
2
120
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
190
Scovilleモバイルエンジニア募集中.pdf
julienrudin
0
140
Featured
See All Featured
From π to Pie charts
rasagy
0
180
Design in an AI World
tapps
1
200
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
760
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
390
Git: the NoSQL Database
bkeepers
PRO
432
67k
Done Done
chrislema
186
16k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
320
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
550
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
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