Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
super.init(v6) - 아키텍처에서 고민되는 점들
Search
이진욱
March 17, 2025
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
super.init(v6) - 아키텍처에서 고민되는 점들
이진욱
March 17, 2025
Featured
See All Featured
Done Done
chrislema
187
17k
Building the Perfect Custom Keyboard
takai
2
910
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Building Adaptive Systems
keathley
44
3.3k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Cult of Friendly URLs
andyhume
79
7k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Transcript
Korea Android ইఃఫীࢲ Ҋغח ٜ (ҳӖ ӂ ইఃఫ, ܽ ইఃఫ,
MVI) Jinwook LEE bHaptics super.init(version=6)
ܽ ইఃఫ vs ҳӖ ӂ ইఃఫ Korea Android super.init(version=6)
ܽ ইఃఫ vs ҳӖ ӂ ইఃఫ
ރಽӝ 1. ܽ ইఃఫ/ҳӖ ӂ ইఃఫ ର 2. ҳӖ ӂ
ইఃఫীࢲ ਤ߈ೞҊ ח SOLID ߨҗ ೧Ѿ ߑߨ
ೣԋ ফӝ೧ࠁӝ 1. ҳӖ ӂ ইఃఫীࢲ بݫੋ ۨযܳ ҳഅ೮ਸ ٸ,
UI ۨযীࢲ بݫੋ ۨযܳ Ѣ ঋҊ ؘఠ ۨযী ঘࣁझ ೞחѱ જਸө? 2. ইఃఫܳ ਬࠁࣻೞӝ য۰ ਬח ޖੌө? 3. ઁ ҳӖ ӂ ইఃఫܳ ਊೞҊ ઁ ܽ ইఃఫܳ ਊ೧ঠೡө?
ҕా ઁ 1. ݽٕ ܻ࠙ח ѐߊ ࣘبܳ ֫ੌө, ইפݶ য়۰
ࠂبܳ ૐоदఆө? 2. ইఃఫח ઁա ؊ ӭՔೠ ٘ܳ ࠁೡө?
Snackbar/Dialog State or SideEffect? (with MVI) Korea Android super.init(version=6)
MVI рױ ࣗѐ
ೣԋ ফӝ೧ࠁӝ 1. Snackbar/Dialogܳ State/SideEffect۽ ܻೠ द ٘ a. (֤)
ױ, State/SideEffect ࢶఖ ӝળ 2. (ࢎ ޙ) MVIח જ ইఃఫੋо?
Snackbar State or SideEffect? Korea Android super.init(version=6)
Snackbar(State) - View
Snackbar(State) - Intent
Snackbar(State) - ViewModel
Snackbar(State) - View
Snackbar(SideEffect) - View
Snackbar(SideEffect) - Intent
Snackbar(SideEffect) - ViewModel
Snackbar(SideEffect) - View
ױ, When Korea Android super.init(version=6)
Dialog State or SideEffect? Korea Android super.init(version=6)
Dialog(State) - View
Dialog(State) - Intent
Dialog(State) - ViewModel
Dialog(State) - View
None
None
None
Dialog(State) - View
Dialog(SideEffect) - Intent
Dialog(SideEffect) - ViewModel
Dialog(SideEffect) - View
Dialog(SideEffect) - View
ױ, When Korea Android super.init(version=6)
ష (दр ҙ҅ ࢚ ݽٚ ઁী ೧ షೞ ޅ ೮णפ.)
Korea Android super.init(version=6)
ҳӖ ӂ ইఃఫ بݫੋ ۨয৬ ܽ ইఃఫ بݫੋ ۨযח ࢲ۽
ܰ. ܽ ইఃఫীࢲ بݫੋ ۨয - জ ࠺ૉפझо ܖח ೨ब ѐ֛ (Car, Human ١) - ѐ֛ٜ р ҙ҅ (Driver (ରܳ ೞח ࢎۈ)) - ؘఠ ࣗझ ୶࢚ച (buyCar, hireDriver) - ୶࢚ചػ ѐ֛ٜਸ ഝਊೠ ೨ब ۽ (getCars + getHumans = makeTheRace) ҳӖ ӂ ইఃఫীࢲ بݫੋ ۨয - بݫੋ ҅க ࠂೠ ࠺ૉפझ ۽ਸ ङചೞѢա, ৈ۞ ViewModelীࢲ ࢎਊغח рױೠ ࠺ૉפझ ۽ਸ ೠ. ҅க ࢶఖ ࢎ೦ݴ, ݽٚ জ ߈٘द ਃ۽ ೞח Ѫ ইפ. ࠂࢿਸ ҙܻೞѢա ࢎਊࢿਸ ֫ ח Ѫ ਃೡ ٸ݅ ࢎਊೞח Ѫ જ. , ܽ ইఃఫীࢲ بݫੋ ۨযо ؊ ೡਸ ࣻ೯ೠ. ژೠ ҳӖ ӂ ইఃఫח ࢶఖ. ઓࢿ ߑೱীب ରо .
ܽ ইఃఫীࢲ domain, core:model ݽٕਸ ٜ݅ ਸ ٸ য࢝ೠ
ަө? -> ܽ ইఃఫীࢲ domain ݽٕ ࠺ૉפझ ۽җ model(entity) ೣԋ ઓ೧ঠೞ݅, model݅ ߹ب ݽٕ۽ ܻ࠙ೞݶ domain ݽٕ оח ೡ ࠼ড೧. ҳӖ ӂ ইఃఫীࢲ ਤ߈ೞҊ ח SOLID ߨҗ ೧Ѿ ߑߨ ઓҙ҅ ਗ (Dependency inversion principle)ਸ ਤ߈ೞҊ . (domain ݽٕ ୶࢚ചী ઓೞ ঋ Ҋ ҳചী ઓೞҊ .) data ݽٕ৬ domain ݽٕ ࢎী data-api ݽٕਸ فয ೧Ѿೡ ࣻ . Q. data-api ݽٕਸ ٜ݅যب ҳӖ ӂ ইఃఫ۽ ࠅ ࣻ ਸө? -> data, data-api ݽف data ۨয۽ ࠅ ࣻ ਵ۽ Ӓۧ.
ઁ ҳӖ ӂ ইఃఫܳ ਊೞҊ ઁ ܽ ইఃఫ ܳ ਊ೧ঠೡө?
ҳӖ ӂ ইఃఫ ਊ ӝળ - ױੌ ݽٕ জਸ ରӔ ରӔ ݽٕച ೞҊ रਸ ٸ - ܲ ইఃఫ৬ ର ઓೞӝ ٸޙী, ղࠗ ࢎۈٜ ҳӖ ӂ ইఃఫ ҙ۲೧ࢲ ੜ ঌҊ ח ҃ ܽ ইఃఫ ਊ ӝળ - ܽ ইఃఫо ਊػ Flutter ١ জਸ উ٘۽٘ ֎౭࠳ জਵ۽ ݃Ӓۨ࣌ ೡ ٸ - iOS ۽ંী ܽ ইఃఫо ਊغযח ҃ (iOS ѐߊ৬ ইఃఫ ֤ܳ ೡ ࣻ ѱ ؽ)
Snackbar State/SideEffect ױ, ࢶఖ ӝળ State۽ ҙܻೞח ҃ UIী ߈ؼ
জ ࢚కܳ ೠ Ҕী ݽইࢲ ҙܻೡ ࣻ ݅, Snackbar ࢚కܳ ઁয೧ ঠೞӝ ٸޙী ࠺Ү ߣѢ܂. ࠗ࠙ Snackbar ҃ ױࣽ ೠߣ ֢غҊ ա۽ SideEffect۽ ܻೞחѱ જ. ೞ݅ Snackbar ֢ ৈࠗо ܲ ࢚కী ೱਸ ח ҃(: Snackbarо ࠁݶ ۽Ӓੋ ߡౡ ࠺ഝࢿച ػ)ীח State۽ ܻೞ חѱ જ. MVIח જ ইఃఫੋо? MVIܳ ࢎਊೞѱ غݶ ࢚క ҙܻо एਕҊ ؘఠ ܴ औѱ ঈغ݅, ݽٚ ߮ী ೠ Intentܳ ೧ঠ ೞҊ Intentо ݆ই ࣻ۾ ViewModel ࠺೧. ٮۄࢲ, рױೠ ӝמী MVIܳ ਊೞחѤ য়ߡূפয݂.
ܻ Korea Android super.init(version=6)
ܽ ইఃఫ৬ ҳӖ ӂ ইఃఫ ରܳ ࠙ ೧ೞ ޅೞݶ ੜޅػ
ইఃఫܳ ҳഅೡ ࣻ ਵ ۽ ইఃఫܳ ਬࠁࣻೞӝ য۵ѱ ٜ݅ ࣻ णפ. (: ܽ ইఃఫীࢲ domain, core:modelਸ ܻ࠙ೞח ҃) ࠗ࠙ ҃ Snackbarܳ SideEffect۽ ܻೞ݅ Snackbarо ܲ ࢚కী ೱਸ ળݶ State۽ ҙܻೞח ѱ ؊ ա ҃ب ח ݅ఀ ࢚ടী ݏѱ ਬোೞѱ Ӕೞחѱ જणפ. ޖઑѤਵ۽ જҊ ঌ۰ ইఃఫա ߑߨਸ Ӓ۽ ٮܰӝࠁח ਊೞ۰ח ࢚ടীࢲ ӒѪ ݈ ୭ࢶੋ ౸ױೞҊ ਊೡ ࣻ ח מ۱ ؊ ਃפ.