Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
iOSDevTH #21
Search
Kajornsak Peerapathananont
August 23, 2022
Technology
65
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSDevTH #21
Kajornsak Peerapathananont
August 23, 2022
More Decks by Kajornsak Peerapathananont
See All by Kajornsak Peerapathananont
Full-Stack Development with FlutterFire
kajornsakp
0
38
How to build native-experience with cross-platform
kajornsakp
0
46
Understanding your Android build
kajornsakp
0
68
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
100
Mobile Design System at scale
kajornsakp
0
160
What's new in Flutter 2020
kajornsakp
0
94
Mobile Machine Learning for All Skill Levels
kajornsakp
0
54
What's new in Flutter 1.9
kajornsakp
0
72
Kotlin meets Web
kajornsakp
0
45
Other Decks in Technology
See All in Technology
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
770
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
380
自作バイナリを動かす「入口」8選
puhitaku
1
1.2k
パッチ更新でterraform initが落ちた日
grimoh
1
100
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
130
しろおびから始める!ログ活用の第一歩
shumei_ito
0
800
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
290
Essential architectural thinking (revised edition)
ufried
0
110
会社説明資料
persolserverworks
0
9.6k
Loop Engineering これくらいでいい
mikanichinose
0
160
メルペイ 会計システム概要と歴史
mewuto
0
200
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
150
Featured
See All Featured
Paper Plane
katiecoart
PRO
4
54k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
350
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Optimizing for Happiness
mojombo
378
71k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Making the Leap to Tech Lead
cromwellryan
135
10k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
540
Balancing Empowerment & Direction
lara
6
1.3k
Mobile First: as difficult as doing things right
swwweet
225
10k
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.