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
18
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
22
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
40
Mobile Design System at scale
kajornsakp
0
58
What's new in Flutter 2020
kajornsakp
0
42
Mobile Machine Learning for All Skill Levels
kajornsakp
0
18
What's new in Flutter 1.9
kajornsakp
0
45
Kotlin meets Web
kajornsakp
0
16
From design to develop with Material Components
kajornsakp
0
110
ML Kit : Face contour detection
kajornsakp
0
24
Other Decks in Technology
See All in Technology
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
6
1.2k
Documentação de Produtos: Artefatos essenciais na prática
rigolon
1
160
Babylon.js JAPAN活動紹介 (2024/4)
limes2018
1
120
2023年度にEMとして頑張ったこと
ikefukurou777
0
100
uvを使ってストレスフリーな Python開発をしよう!
r74tech
0
140
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
1.7k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
37k
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
1
670
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
4
620
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
2
400
Handling focus in 2024
tahia910
0
240
require(ESM)とECMAScript仕様
uhyo
4
990
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
66
14k
Building Effective Engineering Teams - LeadDev
addyosmani
32
1.9k
Writing Fast Ruby
sferik
622
60k
The Mythical Team-Month
searls
217
42k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
jQuery: Nuts, Bolts and Bling
dougneiner
60
7.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
How STYLIGHT went responsive
nonsquared
92
4.8k
Designing the Hi-DPI Web
ddemaree
276
33k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
22
1.4k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
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.