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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Adrien Humilière
June 21, 2017
Programming
0
230
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
11
Build an iOS app from an iPad
adhumi
0
64
Something about Xcode ^^
adhumi
0
140
Inside Brut.
adhumi
0
120
Localization done bien
adhumi
1
270
Test and distribute an iOS app with Gitlab CI
adhumi
0
390
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
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
130
今から始めるClaude Code超入門
448jp
8
8.9k
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
750
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
Fluid Templating in TYPO3 14
s2b
0
130
CSC307 Lecture 10
javiergs
PRO
1
660
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
Patterns of Patterns
denyspoltorak
0
1.4k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
590
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Building the Perfect Custom Keyboard
takai
2
690
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
Mobile First: as difficult as doing things right
swwweet
225
10k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
67
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
66
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