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
당근 iOS 프로젝트 성장기
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.7k
Other Decks in Programming
See All in Programming
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
0
980
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
520
Fragmented Architectures
denyspoltorak
0
140
Python札幌 LT資料
t3tra
7
1.1k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
540
CSC307 Lecture 04
javiergs
PRO
0
650
CSC307 Lecture 05
javiergs
PRO
0
490
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
1.3k
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.7k
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.3k
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
140
AgentCoreとHuman in the Loop
har1101
5
200
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
1
1.5k
Producing Creativity
orderedlist
PRO
348
40k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
48
Building Applications with DynamoDB
mza
96
6.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
43
Tell your own story through comics
letsgokoyo
1
800
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Visualization
eitanlees
150
16k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
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
хࢎפ