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
35
How to build native-experience with cross-platform
kajornsakp
0
45
Understanding your Android build
kajornsakp
0
67
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
99
Mobile Design System at scale
kajornsakp
0
160
What's new in Flutter 2020
kajornsakp
0
89
Mobile Machine Learning for All Skill Levels
kajornsakp
0
54
What's new in Flutter 1.9
kajornsakp
0
70
Kotlin meets Web
kajornsakp
0
43
Other Decks in Technology
See All in Technology
Genieを崇めよ
kameitomohiro
0
160
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
0
160
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
180
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
1
2.9k
CLIライブラリ開発を支える技術
htnabe
0
130
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
170
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
140
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
0
220
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
860
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
210
絵ではじめるKubernetesセキュリティ
aoi1
4
670
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
950
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
Done Done
chrislema
186
16k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
My Coaching Mixtape
mlcsv
0
320
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Ruling the World: When Life Gets Gamed
codingconduct
0
340
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
510
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Design in an AI World
tapps
1
320
Marketing to machines
jonoalderson
1
5.8k
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.