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
41
How to build native-experience with cross-platform
kajornsakp
0
47
Understanding your Android build
kajornsakp
0
68
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
110
Mobile Design System at scale
kajornsakp
0
160
What's new in Flutter 2020
kajornsakp
0
95
Mobile Machine Learning for All Skill Levels
kajornsakp
0
56
What's new in Flutter 1.9
kajornsakp
0
72
Kotlin meets Web
kajornsakp
0
46
Other Decks in Technology
See All in Technology
Obsidian Vault Architectures
x5gtrn
PRO
0
210
Flutter Webを「SDK」として配る — 50以上のゲームを支える埋め込みアーキテクチャ
masayukisuda
0
160
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
2k
[FECONF-2026] 신대륙을 향한 카카오페이증권 프론트엔드 항해기 (이주승)
l1ghthouse
0
330
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
390
Patterns in AI Driven Software Development
akosma
PRO
0
380
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
5
2.5k
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
280
Vue.jsのGitHubから学ぶ意思決定
yut0naga1_fa
1
340
AIエージェント時代、Kaggleにどう取り組むか
takanao
2
430
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
130
Don't write the architecture only in the prompt.
neohsu
0
270
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Building the Perfect Custom Keyboard
takai
2
930
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
720
What's in a price? How to price your products and services
michaelherold
247
13k
The SEO Collaboration Effect
kristinabergwall1
1
610
My Coaching Mixtape
mlcsv
0
370
Discover your Explorer Soul
emna__ayadi
2
1.3k
Utilizing Notion as your number one productivity tool
mfonobong
4
630
Test your architecture with Archunit
thirion
2
2.5k
KATA
mclloyd
PRO
35
16k
Visualization
eitanlees
153
17k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
590
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.