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
iOSDevTH #21
Search
Kajornsak Peerapathananont
August 23, 2022
Technology
0
36
iOSDevTH #21
Kajornsak Peerapathananont
August 23, 2022
Tweet
Share
More Decks by Kajornsak Peerapathananont
See All by Kajornsak Peerapathananont
Understanding your Android build
kajornsakp
0
29
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
52
Mobile Design System at scale
kajornsakp
0
77
What's new in Flutter 2020
kajornsakp
0
56
Mobile Machine Learning for All Skill Levels
kajornsakp
0
28
What's new in Flutter 1.9
kajornsakp
0
47
Kotlin meets Web
kajornsakp
0
19
From design to develop with Material Components
kajornsakp
0
130
ML Kit : Face contour detection
kajornsakp
0
30
Other Decks in Technology
See All in Technology
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.7k
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
170
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
7
3k
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.2k
事業モメンタムを生み出すプロダクト開発
macchiitaka
0
100
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
190
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
530
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
310
OPENLOGI Company Profile for engineer
hr01
1
20k
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
230
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
490
入門 PEAK Threat Hunting @SECCON
odorusatoshi
0
170
Featured
See All Featured
For a Future-Friendly Web
brad_frost
176
9.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Git: the NoSQL Database
bkeepers
PRO
427
65k
Music & Morning Musume
bryan
46
6.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
A better future with KSS
kneath
238
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Transcript
None
Bazel for iOS 101
What is Bazel 🥯 • Open source build system from
Google • Internally, called blaze
What is Build System Source code Source code Source code
Source code Source code Build System Compiler Linker Binary
XCBuild Source code Source code Source code Source code Source
code XCBuild Compiler Linker Binary
Foo.swift Baz.swift Bar.swift ⌘ + R Target MyApp MyApp scheme
Target Foo Target Bar Target Baz
⌘ + R MyApp Foo Bar Compiling Linking Copy f
iles Codesigning Framework
⌘ + R Task D Task B Task C Task
A Input Output
Cons of XCBuild Disclaimer: based on my experience
Why? • Single artifacts directory per project • Switching git
branch back and forth => caches invalidated 🫠 • 1 layer of cache
Bazel advantages • Advanced local cache & remote cache •
Optimized dependency analysis • Parallel execution
Bazel dependencies Task D Task B Task C Task A
Input Output
Who use Bazel? uncon f irmed
Bazel rules • Starlark language • python dialect
How about Swift? • swift_library() • apple_resource_group() • ios_application()
Demo
None
None
None
LD IPA IDE XCBuild Compiler Linker Executable
LD IPA IDE Bazel Compiler Linker Executable
Xcode project generation Tulsi rules_xcodeproj
Tulsi
rules_xcodeproj
Bazel cache
Build Event Service (BES)
Remote Execution
When should I use Bazel Task Task Task Task Input
Output Task Task Task Task Task Task Task Task Task
When should I use Bazel Task Task Task Task Input
Output Task Task Task Task Task Task Task Task Task
Not convinced? • XCLogParser • XCMetrics • XCRemoteCache
careersatagoda.com careersatagoda.com careersatagoda. careersatagoda.com careersatagoda.com careersatagoda. careersatagoda.com careersatagoda.com careersatagoda. careersatagoda.com
careersatagoda.com careersatagoda. careersatagoda.com careersatagoda.com careersatagoda. careersatagoda.com careersatagoda.com careersatagoda. careersatagoda.com careersatagoda.com careersatagoda.