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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
31
How to build native-experience with cross-platform
kajornsakp
0
45
Understanding your Android build
kajornsakp
0
64
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
98
Mobile Design System at scale
kajornsakp
0
150
What's new in Flutter 2020
kajornsakp
0
89
Mobile Machine Learning for All Skill Levels
kajornsakp
0
53
What's new in Flutter 1.9
kajornsakp
0
70
Kotlin meets Web
kajornsakp
0
41
Other Decks in Technology
See All in Technology
『自分で判断できるか』を基準に、プロダクトのハンズオン研修でAI利用の線を引いてみた / Where We Drew the Line on AI in Hands-on Training
honyanya
1
480
「面白い!」を信じ抜け。激動の時代を貫く、オンリーワン・エンジニアの条件
kizawa2020
2
440
[ホンマでっか SRE] あなたはなぜ SRE に?
_awache
0
500
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
490
分割40%キーボードにスムーズに入門するには
hoto17296
1
190
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
470
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
450
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
640
エージェント化するAI:現在地とその先に起きる変化 / AI as Agents: The Current State and the Changes Ahead
ks91
PRO
0
170
カーネルまで探検して理解するふたつの自動計装
sumiyae
0
340
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
150
Digital Credentials API × OpenID4VP ブラウザ完結型本人確認の実装知見(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
360
Featured
See All Featured
Between Models and Reality
mayunak
4
410
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
400
Prompt Engineering for Job Search
mfonobong
0
420
My Coaching Mixtape
mlcsv
0
300
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
310
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
The browser strikes back
jonoalderson
0
1.6k
Raft: Consensus for Rubyists
vanstee
141
7.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
980
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.