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
Wooseong Kim
October 17, 2023
Programming
0
510
Tuist, 도입은 했는데 그래서 Modular Architecture 는 어떻게 만들어 가나요?
Let'Swift 2023 에서 Tuist 기반으로 Modular Architecture 를 점진적으로 만들어 나가는 과정을 소개합니다.
Wooseong Kim
October 17, 2023
Tweet
Share
More Decks by Wooseong Kim
See All by Wooseong Kim
Modular Architecture w/ Tuist
innocarpe
0
690
Test-Driven-Development with ReactorKit in StyleShare
innocarpe
1
960
Async network logic testing using Protocol (Test Stub)
innocarpe
2
410
Developing iOS with Rx, MVVM
innocarpe
1
170
git + Pull Request + Code Review and Project Management with Agile
innocarpe
0
87
Online Board(Trello), Scrum(Pivotal Tracker), Kanban(JIRA Agile)
innocarpe
0
130
Android TV at Google Developers Summit
innocarpe
0
95
경북대도서관 스마트앱 최종발표
innocarpe
0
200
Other Decks in Programming
See All in Programming
技術同人誌をMCP Serverにしてみた
74th
1
450
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
880
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
710
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
330
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
110
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
340
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
240
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
380
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
610
C++20 射影変換
faithandbrave
0
550
PipeCDのプラグイン化で目指すところ
warashi
1
220
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
410
Featured
See All Featured
BBQ
matthewcrist
89
9.7k
Designing Experiences People Love
moore
142
24k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
KATA
mclloyd
30
14k
Building an army of robots
kneath
306
45k
How to Ace a Technical Interview
jacobian
277
23k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
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]