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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kajornsak Peerapathananont
August 23, 2022
Technology
0
53
iOSDevTH #21
Kajornsak Peerapathananont
August 23, 2022
Tweet
Share
More Decks by Kajornsak Peerapathananont
See All by Kajornsak Peerapathananont
Full-Stack Development with FlutterFire
kajornsakp
0
7
How to build native-experience with cross-platform
kajornsakp
0
13
Understanding your Android build
kajornsakp
0
42
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
82
Mobile Design System at scale
kajornsakp
0
140
What's new in Flutter 2020
kajornsakp
0
73
Mobile Machine Learning for All Skill Levels
kajornsakp
0
40
What's new in Flutter 1.9
kajornsakp
0
59
Kotlin meets Web
kajornsakp
0
25
Other Decks in Technology
See All in Technology
Serverless Agent Architecture on Azure / serverless-agent-on-azure
miyake
1
110
バクラクにおける Document Understanding の挑戦:書類の「読取」から「意思決定」へ / document-understanding-in-bakuraku-2026
yuya4
0
150
【SLO】"多様な期待値" と向き合ってみた
z63d
2
240
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
190
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
1
510
Introduction to Bill One Development Engineer
sansan33
PRO
0
370
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ Designing for Reversible Decisions
soudai
PRO
8
1.3k
Claude Codeはレガシー移行でどこまで使えるのか?
ak2ie
1
1.1k
AIエンジニア Devin と歩む、自律型運用プロセスの構築
a2ito
0
250
dbt meetup #19 『dbtを『なんとなく動かす』を卒業します』
tiltmax3
0
130
AWS Bedrock Guardrails / 機密情報の入力・出力をブロックする — Blocking Sensitive Information Input/Output
kazuhitonakayama
2
180
2026年のAIエージェント構築はどうなる?
minorun365
11
2.7k
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
290
The Cost Of JavaScript in 2023
addyosmani
55
9.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Practical Orchestrator
shlominoach
191
11k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
400
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
200
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
190
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
Google's AI Overviews - The New Search
badams
0
920
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.