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
Tuist, 도입은 했는데 그래서 Modular Architecture 는 어떻게 ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Wooseong Kim
October 17, 2023
Programming
670
0
Share
Tuist, 도입은 했는데 그래서 Modular Architecture 는 어떻게 만들어 가나요?
Let'Swift 2023 에서 Tuist 기반으로 Modular Architecture 를 점진적으로 만들어 나가는 과정을 소개합니다.
Wooseong Kim
October 17, 2023
More Decks by Wooseong Kim
See All by Wooseong Kim
Modular Architecture w/ Tuist
innocarpe
0
770
Test-Driven-Development with ReactorKit in StyleShare
innocarpe
1
1k
Async network logic testing using Protocol (Test Stub)
innocarpe
2
440
Developing iOS with Rx, MVVM
innocarpe
1
220
git + Pull Request + Code Review and Project Management with Agile
innocarpe
0
110
Online Board(Trello), Scrum(Pivotal Tracker), Kanban(JIRA Agile)
innocarpe
0
150
Android TV at Google Developers Summit
innocarpe
0
130
경북대도서관 스마트앱 최종발표
innocarpe
0
220
Other Decks in Programming
See All in Programming
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
160
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
210
Claspは野良GASの夢をみるか
takter00
0
130
3Dシーンの圧縮
fadis
1
450
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
130
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.3k
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.2k
横断組織出身のQAEがインプロセスQAEでつまずいたこと・活かせたこと
ty89
0
440
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
2
990
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
11
2.9k
~ 秘伝のタレ化した『神スプシ』と戦う ~ 関数型パラダイムで壊れない仕組みへ
h0r15h0
1
140
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
15
7.1k
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
840
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
540
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Raft: Consensus for Rubyists
vanstee
141
7.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
55k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
230
Leo the Paperboy
mayatellez
7
1.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
380
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
Tuist, بੑ ೮חؘ Ӓېࢲ Modular Architecture ח যڌѱ ٜ݅য оաਃ?
ӣࢿ - 29CM (Musinsa Inc.)
Contents • Why Tuist? • Final Goal - µFeatures Architecture
• Establishing the Foundation • Starting µFeatures-based development • Utilizing Feature App
Why Tuist?
None
Why Tuist? • Simplified project configuration (w/ Swift) • Improved
scalability for large projects • Enhanced collaboration among developers - Bene fi ts
Simplified project configuration (w/ Swift)
Improved scalability for large projects
Enhanced collaboration among developers
Final Goal - µFeatures Architecture https://docs.tuist.io/building-at-scale/microfeatures/
None
None
None
FeatureExample Feature FeatureTesting FeatureInterface FeatureTests
FeatureExample Feature FeatureTesting FeatureInterface FeatureTests
µFeatures Architecture Goals • Not aim for perfect architecture •
Aim for appropriate architecture
µFeatures Architecture Goals • Not aim for perfect architecture •
Aim for appropriate architecture So what is appropriate?
µFeatures Architecture Goals • Not aim for perfect architecture •
Aim for appropriate architecture 1. Maximizing build caching 2. Module-based development 3. Well-extracted dependencies
None
Final products
µFeatures
Shared logics for µFeature
Core logics for workspace
Foundations / Third Parties
None
Establishing the Foundation
None
None
None
None
None
Needs to split interface / implement modules
Needs to split interface / implement modules (especially Firebase..)
None
None
None
None
None
None
None
None
None
None
Focus on appropriate architecture 1. Maximizing build caching 2. Module-based
development 3. Well-extracted dependencies Again,
Starting µFeatures-based development
None
None
Abstract ViewController Factory
None
None
None
None
None
None
None
None
None
None
None
None
One more thing, for µFeatures
None
Utilizing Feature App
Utilizing Feature App 1. Rapid Feedback Cycle
Utilizing Feature App 1. Rapid Feedback Cycle • make review
and debugging faster
Utilizing Feature App 1. Rapid Feedback Cycle • make review
and debugging faster 2. Independent Development Environment
Utilizing Feature App 1. Rapid Feedback Cycle • make review
and debugging faster 2. Independent Development Environment • help focusing on the feature
Utilizing Feature App 1. Rapid Feedback Cycle • make review
and debugging faster 2. Independent Development Environment • help focusing on the feature 3. Concern - Dependency management in Feature App
Utilizing Feature App 1. Rapid Feedback Cycle • make review
and debugging faster 2. Independent Development Environment • help focusing on the feature 3. Concern - Dependency management in Feature App • requiring additional efforts to maintain
None
Summarize
None
None
None
Summarize • Design modularization milestone first • Focus on maximizing
build caching • Aim for appropriate architecture • Build µFeatures architecture gradually
Q & A
Thank you! Wooseong Kim - 29CM
[email protected]