$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
당근 iOS 프로젝트 성장기
Search
Kanghoon
October 13, 2023
Programming
0
290
당근 iOS 프로젝트 성장기
Let'Swift 2023 발표자료
Kanghoon
October 13, 2023
Tweet
Share
More Decks by Kanghoon
See All by Kanghoon
Modular Architecture 시작하기
kanghoon
0
6.6k
Other Decks in Programming
See All in Programming
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
120
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
230
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
430
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
110
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
190
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
850
TestingOsaka6_Ozono
o3
0
170
愛される翻訳の秘訣
kishikawakatsumi
3
330
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.4k
認証・認可の基本を学ぼう前編
kouyuume
0
260
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
500
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
2
180
Unsuck your backbone
ammeep
671
58k
Facilitating Awesome Meetings
lara
57
6.7k
Become a Pro
speakerdeck
PRO
31
5.7k
GitHub's CSS Performance
jonrohan
1032
470k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
160
Site-Speed That Sticks
csswizardry
13
1k
Typedesign – Prime Four
hannesfritz
42
2.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Rails Girls Zürich Keynote
gr2m
95
14k
Transcript
4֙р Ӕ ۽ં ߸ചী ೧ ࣗѐ೧ਃ Ray Software Engineer, iOS
Github @OhKanghoon Ӕ iOS ۽ં ࢿӝ
Contents 1. Architecture ߸ച 2. UI ߸ച 3.
Feed ߸ച 4. ҊೞҊ ח ޙઁٜ
Architecture ߸ച
Architecture ߸ച Modular Architecture জਸ ױਤ۽ ܻ࠙ೞח Architecture
Ӕ জ ࣻߔѐ ݽٕ۽ ҳࢿؽ Feature-level E.g. Transfer Bank Page, Deposit Page Domain-level E.g. Transfer, Bank, Account Core-level E.g. Network, Experiment, Analytics Shared-level E.g. Common UI, Logging, Utils
Architecture ߸ച Modular Architecture ݽٕച ܳ ਤ೧ о ݢ
ਃೠ Ѫ জ ઓࢿ ޙઁܳ ೧Ѿೞח Ѫ Ӕ ஹੌ दী উೣ ࠁغח ઓࢿ ੑ ߑधਸ ࢶఖೣ
Architecture ߸ച Builder ഝਊ ೞ݅, ݽٚ ઓࢿਸ ஹੌ दী
ೞח Ѫ ࠛоמೣ ஹੌ दী ೡ ࣻ ח Dependency ৬ ۠ఋী Dynamic Dependency ܳ ࢎਊ೧ ёܳ ࢤࢿೡ ࣻ ח Builder ܳ জ ઓࢿ ܻ ҳࢿীח IoC Container ܳ ೣԋ ഝਊ
Architecture ߸ച Builder ഝਊ Builder ܳ ഝਊ೧ ёܳ زਵ۽
ࢤࢿೞח द
Architecture ߸ച নೠ ಁఢਸ জ ղীࢲ ഝਊ ઓࢿ ӏਸ
݅ೞݶ п ചݶ ইఃఫ ಁఢী ઁೠਸ ف ঋ ূפযо ചݶী ೠ ҳઑܳ ࢶఖೞח Ѫਸ ӂೣ Clean Swift ReactorKit RIBs
UI ߸ച
UI ߸ച Texture Texture ח ۣࠗ٘Ҋ ߈ ࡅܲ ੋఠಕझܳ
ਤೠ UI Framework ੑפ. Auto-layout ژח Storyboard ܳ ࢎਊೞ ঋҊ Texture Layout API ܳ ࢎਊ೧ UI ۽ ࠗఠ ੌযաח ಌನݢझ गա নೠ ߡӒ ೧Ѿী ೠ ࠗхਸ ੌ ࣻ णפ. … ……
UI ߸ച Texture рױೞѱ ܻೞݶ
UI ߸ച Texture ࢿמ ୭ചػ UI ܳ औѱ ࢿೡ
ࣻ ח Framework
UI ߸ച Texture ъ۱ೠ API 1. নೠ Node
: ழޭפ౭ ࢲ࠺झীࢲ ਃೠ ݆ ஹನք৬ ӝמ ઁҕ 2. LayoutSpec : Flexbox ӝ߈ ࡅܰҊ ਬোೠ ۨইਓ ࢸ҅о оמ 3. Intelligent Preloading : झ܀ী ٮܲ ஶబஎ ۽٘ܳ ୭ച 4. Interface State: ࠭ (Cell) о ࠁৈҊ ࢎۄח ഛೠ दਸ ঈ оמ
UI ߸ച Intelligent Preloading https://youtu.be/wrctPJxskhI
UI ߸ച Texture ীࢲ ߊࢤೠ ޙઁ 1. ֫ ੑ߷
Flexbox ഋక ۨইਓ ߑध ࡺ݅ ইפۄ Texture ةੋ LifeCylce җ ةౠೠ زٜਸ ೣԋ ण೧ঠ ೮যਃ ۽ ੋ೧ UI ߡӒ ߊࢤद ূפযীѱ झۨझ۽ ਊ೮যਃ
UI ߸ച Texture ীࢲ ߊࢤೠ ޙઁ 2. ۨਕ ҙܻ
ࠗ Texture ݫੋపցٜ Pinterest ృࢎ ١ নೠ ਬ۽ ҙܻ ࠗ iOS 15 ࠗఠ ߊࢤೞח ݺੋ ޙઁٜ ೧Ѿغ ঋ ࢜۽ iOS ߡ ܾܻૉ ؼ ٸ݃ ܻझ۽ ৈѹ
UI ߸ച UIKit ਵ۽ ഥӈ Ӕ ীࢲח द UIKit
ਸ ࢎਊೞӝ۽ Ѿೠ ٍ UI ܳ ؊ ࡅܰҊ ਬোೞѱ ѐߊೡ ࣻ ח ߑߨী ೧ Ҋೞӝ द೮যਃ
UI ߸ച FlexLayout & PinLayout ӝઓী ࢎਊೞ؍ Flexbox ӝ߈
ۨইਓ ߑधਸ ഝਊೡ ࣻ Ҋ, ࢿמ ڪযդ FlexLayout ਸ ఖ೮যਃ
UI ߸ച FlexLayout & PinLayout SwiftUI Preview ܳ ഝਊ೧
ূפয ࢤࢿਸ ֫ৈਃ
UI ߸ച о ਃೠ ߸ച 1. Frame Layout 2.
Auto Layout 3. FlexLayout & PinLayout 4. SwiftUI ചݶী ٮۄ ਬܻೠ ۨইਓ ߑध ઓ ূפযח যڃ ജ҃ীࢲب ࢎਊೡ ࣻ ח UI Component ܳ ѐߊ೧ঠ ೣ
UI ߸ച ٣ੋ दझమ UI ࢤࢿਸ ӓചೡ ࣻ ח
٣ੋ दझమ ѐߊ ٣ੋ दझమ ஹನքܳ ࢎਊೞݶ জ ಿب ૐо • নೠ জ Ӕࢿ ਗ • Figma ৬ ాੌػ ੋఠಕझ ઁҕ • ೠ ب௸ݢ
UI ߸ച ٣ੋ दझమ ఎ۽Ӓ
UI ߸ച Listing Framework ܻझ ഋక UI ٘ܳ ѐࢶೞӝ
ਤೠ ֢۱ب द೮যਃ
UI ߸ച KarrotListingUI View ৬ োѾغח Component ܳ ٜ݅Ҋ
UI ߸ച KarrotListingUI List ী ೡೞݶ
UI ߸ച KarrotListingUI Component ݽ؛ী োѾػ ܻझ ഋక UI
о ۪؊݂
UI ߸ച KarrotListingUI Concept ח SwiftUI ৬ ਬࢎೣ ࢿמ
୭ചػ UI ܳ औѱ Ӓܾ ࣻ ب۾ নೠ ӝמٜਸ ୶о
Feed ߸ച
Feed ߸ച झ܀ ࠭ ஶబஎ ֢ ஏ 100% ࠁৈ
100% ࠁৈ 60% ࠁৈ -> ֢ ചݶী ࠁৈח ࠺ਯী ٮۄ ֢ ৈࠗܳ ౸ױೞҊ ೣ
Feed ߸ച झ܀ ࠭ ஶబஎ ֢ ஏ Ӕ
David ഥୡߏ ীࢲ ূо৬ ୡߏਸ ெࠁ ই٣যܳ ѱ ظਃ
Feed ߸ച SushiBelt ࠭ܳ ெࠁҊ ӝೞח ࠺ਯী ب׳ೞݶ ঌ۰ח
ۄ࠳۞ܻܳ ѐߊ೮যਃ
Feed ߸ച SushiBelt ز ࢚
ҊೞҊ ח ޙઁٜ
ҊೞҊ ח ޙઁٜ ݽ߄ੌۖಬ ҅, ঌܿ, ؘఠ, प, ࠁউ
١ ࢲ࠺झ ӝ߈ غח য ӝמਸ द ࢸ҅ زച৬ Horizontal Component ѐߊਸ ాೠ ূפয ࢤࢿ ૐ بݫੋ ѐߊਸ ਤೠ উੋ ࢸ҅ ߑೱ о٘
ҊೞҊ ח ޙઁٜ Ҵղ৬ ܲ ҃ਸ о Ӗ۽ߥ ࢲ࠺झ
ѐߊ ݆ ࢎਊо ଵৈೡ ࣻ ח Ӓܛ ӝמ ѐߊ ҊѢې, ز֎ࢤഝ, ز֎ঌ߄ ١ নೠ ࢲ࠺झ োز নೠ ӝמਸ ೠ ചݶীࢲ ҳഅೡ ࣻ ח ਬোೠ ҳઑ ࢸ҅
ҊೞҊ ח ޙઁٜ ޙઁܳ э ೧Ѿೡ زܐܳ Ҋ যਃ
Q&A
хࢎפ