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
520
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
700
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
90
Online Board(Trello), Scrum(Pivotal Tracker), Kanban(JIRA Agile)
innocarpe
0
130
Android TV at Google Developers Summit
innocarpe
0
97
경북대도서관 스마트앱 최종발표
innocarpe
0
200
Other Decks in Programming
See All in Programming
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
810
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
130
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
210
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
11
6.1k
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
160
Team operations that are not burdened by SRE
kazatohiei
1
320
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
13
4.9k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
170
Porting a visionOS App to Android XR
akkeylab
0
600
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
590
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
2.2k
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
260
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Raft: Consensus for Rubyists
vanstee
140
7k
BBQ
matthewcrist
89
9.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Adopting Sorbet at Scale
ufuk
77
9.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Invisible Side of Design
smashingmag
301
51k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
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]