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
Rebranding an iOS app
Search
Adrien Humilière
September 08, 2016
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rebranding an iOS app
Cocoaheads Paris, September 2016
Adrien Humilière
September 08, 2016
More Decks by Adrien Humilière
See All by Adrien Humilière
Attention to details
adhumi
0
22
Build an iOS app from an iPad
adhumi
0
99
Something about Xcode ^^
adhumi
0
160
Inside Brut.
adhumi
0
150
Localization done bien
adhumi
1
300
Test and distribute an iOS app with Gitlab CI
adhumi
0
410
Pushing Forward iOS Notifications
adhumi
0
230
Good practices for iOS releases
adhumi
0
250
What's new in iOS 9
adhumi
0
390
Other Decks in Programming
See All in Programming
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
440
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
360
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.7k
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
220
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.5k
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.8k
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
210
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
200
継続モナドとリアクティブプログラミング
yukikurage
3
680
Foundation Models frameworkで画像分析
ryodeveloper
1
510
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
200
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Practical Orchestrator
shlominoach
191
12k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
430
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Context Engineering - Making Every Token Count
addyosmani
9
1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Exploring anti-patterns in Rails
aemeredith
3
450
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
680
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Transcript
None
None
Rebranding an iOS app
@
@
Identity change?
Identity change? We are experts.
None
!rue Saint-Georges!
CapitaineTrain.xcodeproj BUNDLE_DISPLAY_NAME=Captain Train [NSURL URLWithString:@"https://www.captaintrain.com/en/terms/"] "ui.ios.shareApp.doYouLikeCapitaineTrain" = "Do you like
Captain Train?"; Captain Train
Unchanged
Product ✅ Team ✅ Support ✅ Process ✅
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Changed
CapitaineTrain.xcodeproj Captain Train iOS application Other projects Tools and partners
…
None
None
None
Partenaires
None
Captain Train Trainline EU
CFBundleDisplayName
None
Capitaine Dev Capitaine Train
Captain Dev Captain Train
Trainline # Trainline
- (NSString *)cat_appName { return [self objectForInfoDictionaryKey:kCFBundleNameKey]; }
+ (NSArray <NSString *> *)cat_legacyNames { return @[@"Captain Train", @"Capitaine
Train"]; }
$
None
// Stylesheet-style UI Constants. @interface CATUI : NSObject // Tint
+ (UIColor *)tintColor; + (UIColor *)alternateTintColor; // Semantic colors + (UIColor *)noticeColor; + (UIColor *)lightNoticeColor; + (UIColor *)warningColor; + (UIColor *)lightWarningColor; + (UIColor *)errorColor; + (UIColor *)lightErrorColor; …
#pragma mark Environment + (UIColor *)navyColor { return CAT_HEXCOLOR(0x21314d); }
+ (UIColor *)snowColor { return CAT_HEXCOLOR(0xf2f4f7); } #pragma mark Actions + (UIColor *)mintColor { return CAT_HEXCOLOR(0x01c3a7); } + (UIColor *)fernColor { return CAT_HEXCOLOR(0x14b69f); } + (UIColor *)pondColor { return CAT_HEXCOLOR(0xd3f9f4); } + (UIColor *)ginColor { return CAT_HEXCOLOR(0xeffffd); } + (UIColor *)ivyColor { return CAT_HEXCOLOR(0x059e87); } + (UIColor *)samColor { return CAT_HEXCOLOR(0xe02007); } #pragma mark Grays + (UIColor *)darthColor { return CAT_HEXCOLOR(0x13181a); } + (UIColor *)moriaColor { return CAT_HEXCOLOR(0x323e42); } + (UIColor *)slateColor { return CAT_HEXCOLOR(0x647479); } + (UIColor *)stormColor { return CAT_HEXCOLOR(0x8c9da1); } + (UIColor *)steelColor { return CAT_HEXCOLOR(0xc0c9cc); } + (UIColor *)marbleColor { return CAT_HEXCOLOR(0xdce3e6); }
None
None
None
./screenshots.sh
%&'( iPhone 4/4s iPhone 5/5s iPhone 6/6s iPhone 6/6s plus
iPad (9,7 pouces) iPad pro (12,9 pouces)
None
(transition)
) * * * * * 6 weeks
⏰
33 33.5
☑ -CATDebugTrainlineUI YES
⏰
None
-
.
/010//10/2
None
(private) beta
None
[email protected]
None
None
None
None
None
None
None
What next?
[email protected]
@_nb @adhumi