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
20
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
25
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
47
Mobile Design System at scale
kajornsakp
0
64
What's new in Flutter 2020
kajornsakp
0
49
Mobile Machine Learning for All Skill Levels
kajornsakp
0
24
What's new in Flutter 1.9
kajornsakp
0
47
Kotlin meets Web
kajornsakp
0
18
From design to develop with Material Components
kajornsakp
0
120
ML Kit : Face contour detection
kajornsakp
0
29
Other Decks in Technology
See All in Technology
実務における脅威モデリングを考えよう
nikinusu
0
640
不動産tech Product Night#2_AIことはじめ_GA橋本
takehikohashimoto
0
190
不動産 x AIことはじめ~データの真価を拓くために
estie
0
110
2024年のナビゲーション・フォーカス対応:Composeでキーボード・ナビゲーションをサポートしよう
tahia910
0
110
フルカイテン株式会社 採用資料
fullkaiten
0
32k
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
310
GC24 Recap: Interface Internals
task4233
0
150
Functional TypeScript
naoya
11
4.8k
株式会社EventHub・エンジニア採用資料
eventhub
0
2.9k
開発生産性を始める前に開発チームができること / optim-improve-development-productivity.pdf
optim
0
110
自作Cコンパイラ 8時間の奮闘
soukouki
0
850
可視化により内部品質をあげるAIドキュメントリバース/20240910 Hiromitsu Akiba
shift_evolve
0
220
Featured
See All Featured
Designing for Performance
lara
604
68k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
Ruby is Unlike a Banana
tanoku
96
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
Facilitating Awesome Meetings
lara
49
6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
Happy Clients
brianwarren
96
6.6k
The Cult of Friendly URLs
andyhume
76
6k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
We Have a Design System, Now What?
morganepeng
48
7.1k
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.