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
560
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
720
Test-Driven-Development with ReactorKit in StyleShare
innocarpe
1
970
Async network logic testing using Protocol (Test Stub)
innocarpe
2
410
Developing iOS with Rx, MVVM
innocarpe
1
180
git + Pull Request + Code Review and Project Management with Agile
innocarpe
0
93
Online Board(Trello), Scrum(Pivotal Tracker), Kanban(JIRA Agile)
innocarpe
0
130
Android TV at Google Developers Summit
innocarpe
0
100
경북대도서관 스마트앱 최종발표
innocarpe
0
200
Other Decks in Programming
See All in Programming
レガシープロジェクトで最大限AIの恩恵を受けられるようClaude Codeを利用する
tk1351
2
380
Webinar: AI-Powered Development: Transformiere deinen Workflow mit Coding Tools und MCP Servern
danielsogl
0
140
画像コンペでのベースラインモデルの育て方
tattaka
3
1.8k
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
1
250
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.1k
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
12
2.7k
実践 Dev Containers × Claude Code
touyu
1
220
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
21
8.5k
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
570
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
980
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
370
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.2k
Featured
See All Featured
KATA
mclloyd
32
14k
Designing for Performance
lara
610
69k
Fireside Chat
paigeccino
39
3.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
770
Scaling GitHub
holman
462
140k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
Gamification - CAS2011
davidbonilla
81
5.4k
Statistics for Hackers
jakevdp
799
220k
Agile that works and the tools we love
rasmusluckow
329
21k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
YesSQL, Process and Tooling at Scale
rocio
173
14k
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]