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
45
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
40
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
66
Mobile Design System at scale
kajornsakp
0
85
What's new in Flutter 2020
kajornsakp
0
61
Mobile Machine Learning for All Skill Levels
kajornsakp
0
34
What's new in Flutter 1.9
kajornsakp
0
52
Kotlin meets Web
kajornsakp
0
22
From design to develop with Material Components
kajornsakp
0
140
ML Kit : Face contour detection
kajornsakp
0
37
Other Decks in Technology
See All in Technology
Amazon Q Developer CLIをClaude Codeから使うためのベストプラクティスを考えてみた
dar_kuma_san
0
290
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
170
AIの個性を理解し、指揮する
shoota
3
590
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
730
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
750
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
180
CLIPでマルチモーダル画像検索 →とても良い
wm3
2
720
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
310
東京大学「Agile-X」のFPGA AIデザインハッカソンを制したソニーのAI最適化
sony
0
180
.NET 10のBlazorの期待の新機能
htkym
0
170
어떤 개발자가 되고 싶은가?
arawn
1
360
GTC 2025 : 가속되고 있는 미래
inureyes
PRO
0
140
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Balancing Empowerment & Direction
lara
5
710
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Speed Design
sergeychernyshev
32
1.2k
Scaling GitHub
holman
463
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Visualization
eitanlees
150
16k
Writing Fast Ruby
sferik
630
62k
How to Think Like a Performance Engineer
csswizardry
27
2.2k
How to Ace a Technical Interview
jacobian
280
24k
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.