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
Good practices for iOS releases
Search
Adrien Humilière
June 21, 2017
Programming
0
240
Good practices for iOS releases
Adrien Humilière
June 21, 2017
Tweet
Share
More Decks by Adrien Humilière
See All by Adrien Humilière
Attention to details
adhumi
0
14
Build an iOS app from an iPad
adhumi
0
71
Something about Xcode ^^
adhumi
0
150
Inside Brut.
adhumi
0
130
Localization done bien
adhumi
1
280
Test and distribute an iOS app with Gitlab CI
adhumi
0
400
Pushing Forward iOS Notifications
adhumi
0
210
What's new in iOS 9
adhumi
0
370
Rebranding an iOS app
adhumi
0
270
Other Decks in Programming
See All in Programming
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
320
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
430
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
110
Claude Codeログ基盤の構築
giginet
PRO
7
3.3k
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
240
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
140
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
120
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.1k
CSC307 Lecture 14
javiergs
PRO
0
470
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
510
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
270
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
71
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Crafting Experiences
bethany
1
87
HDC tutorial
michielstock
1
550
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
480
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
680
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Ethics towards AI in product and experience design
skipperchong
2
220
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
180
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
220
Transcript
Good practices for iOS releases @adhumi, Bonsaï, Paris Trainline Engineering Summit, June 2017
Release
? Release
Release early, release often →
Release early, release often → Painless releases → Test your
release → Take care of it → Market it →
Release early, release often
time based Release cycles are usually feature based or
Feature based Group features in a single release – Unified
set of features – Unknown frequency – Delay risks
Time based Calendar schedule Frequency depends on your needs –
Expected by all parties – Set schedules – Pushes iterative development – Risk of too much/little time – Risk of too much/little features
None
Release Train
vn vn+1
A vn vn+1
A B vn vn+1
A B C vn vn+1
A B C D vn vn+1
D vn vn+1 A B C
D vn vn+1 A B C
D E vn vn+1 A B C
D E F vn vn+1 A B C
G D E F vn vn+1 A B C
G vn vn+1 A B C D E F
⏰?
Week1 vn
Week1 Week2 Weekn-1 vn
Week1 Week2 Weekn-1 Feature freeze, beta release, QA vn
Week1 Week2 Weekn Weekn-1 vn
Week1 Week2 Weekn Weekn-1 Submission vn
Week1 Week2 Weekn Weekn+1 Weekn-1 Public release vn
Week1 Week2 Weekn Weekn+1 Weekn-1 Feature freeze, beta release, QA
Submission Public release vn
Week1 Week2 Weekn Weekn+1 Weekn-1 vn Week1 Week2 vn+1
Weekn Weekn+1 Week1 Week2 Weekn Weekn+1 Weekn-1 vn+1 Week1 Week2
vn+2
Weekn Weekn+1 Week1 Week2 Weekn Weekn+1 Weekn-1 vn+2 Week1 Week2
vn+3
Kickoff Developm ent QA, beta test & polishing Subm ission
Public release w1 w1 → wn-1 wn wn wn+1
Painless releases
Classical release process Code
Classical release process Code
Classical release process Code Archive
Classical release process Code Archive
Classical release process Code Archive Binary
Classical release process Code Archive Binary
Classical release process Code Archive Binary iTunes Connect
Classical release process All assets (promotional screenshots and texts) uploaded
manually
Classical release process All assets (promotional screenshots and texts) uploaded
manually 5 images 5 languages 6 devices → 150 screenshots Title Description Release notes… → ×5 languages
Classical release process All assets (promotional screenshots and texts) uploaded
manually Clic. clic. 5 images 5 languages 6 devices → 150 screenshots Title Description Release notes… → ×5 languages + tons of copy paste
Classical release process ❌ Nope
Script all the things!
Script all the things! fastlane → Everything needed exists hidden
with Xcode → Fastlane is good, if you like sugar
Code Archive Binary iTunes Connect
Code Archive Binary iTunes Connect $ ./archive_and_upload
Script all the things! Screenshots Title Description Icons Metadatas Release
notes
Script all the things! Screenshots Title Description Icons Metadatas Release
notes ← Autogenerated
$ iTMSTransporter upload Script all the things!
Continuous deployment?
Deploy Deploy Deploy Continuous deployment? Internal only
Test your release
Extensive QA validation before release ✅
Beta-test → Real life usages → Real trains → Real
travels → Real travelers
Beta-test Diversity of beta-testers → Frequent and occasional travelers →
Various countries → Various languages → Disabilities
Beta-test Build a community
Market your release
Communicate with Apple
Thursday
Thanks! @adhumi, Bonsaï, Paris