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
Android MVP with kotlin
Search
TaeHwan
February 20, 2017
Technology
0
3.5k
Android MVP with kotlin
GDG Inchon is a presentation on "Android MVP with Kotlin".
TaeHwan
February 20, 2017
Tweet
Share
More Decks by TaeHwan
See All by TaeHwan
Compose 함수 나누는 조건은?
taehwandev
0
1.8k
Android MVVM 패턴의 접근법 - 2023 드로이드 나이츠
taehwandev
1
1.9k
안드로이드의 변화 - IO Extended 2023 - 송도
taehwandev
0
630
What’s new in Android?(Google IO ex 23-GDG Pangyo)
taehwandev
0
890
Jetpack Compose 상태 및 사이드 효과
taehwandev
0
1.2k
GDG DevFest2022 Songdo - KMM(Kotlin Multiplatform Mobile)
taehwandev
0
620
Kotlin Night 2022 - 코틀린 어노테이션으로 할 수 있는 것(GDG Seoul)
taehwandev
2
1.6k
Android module 개발 - Now in android 참고
taehwandev
3
18k
Android Compose Component - mapping.
taehwandev
2
4.9k
Other Decks in Technology
See All in Technology
累計5000万DLサービスの裏側 – LINEマンガのKotlinで挑む大規模 Server-side ETLの最適化
ldf_tech
0
190
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
520
AIで急増した生産「量」の荒波をCodeRabbitで乗りこなそう
moongift
PRO
0
570
今から間に合う re:Invent 準備グッズと現地の地図、その他ラスベガスを周る際の Tips/reinvent-preparation-guide
emiki
1
290
最近読んで良かった本 / Yokohama North Meetup #10
mktakuya
0
940
設計は最強のプロンプト - AI時代に武器にすべきスキルとは?-
kenichirokimura
1
170
AWS 環境で GitLab Self-managed を試してみた/aws-gitlab-self-managed
emiki
0
210
データとAIで明らかになる、私たちの課題 ~Snowflake MCP,Salesforce MCPに触れて~ / Data and AI Insights
kaonavi
0
340
なぜ新機能リリース翌日にモニタリング可能なのか? 〜リードタイム短縮とリソース問題を「自走」で改善した話〜 / data_summit_findy_Session_2
sansan_randd
1
130
Gov-JAWS4回_某団体でのAmazon Bedrock活用検証で見えた“使う側”の課題精度よりもリテラシー
takuma818t
0
120
初海外がre:Inventだった人間の感じたこと
tommy0124
1
200
決済システムの信頼性を支える技術と運用の実践
ykagano
0
120
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Documentation Writing (for coders)
carmenintech
76
5.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
The Invisible Side of Design
smashingmag
302
51k
For a Future-Friendly Web
brad_frost
180
10k
Agile that works and the tools we love
rasmusluckow
331
21k
How GitHub (no longer) Works
holman
315
140k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Docker and Python
trallard
46
3.6k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Transcript
MVP - Kotlinਵ۽ ೧ࠁӝ Taehwan GDG Incheon - thdev.tech, Taehwan
2017 1
Introduce • 5֙ରী যٚ Android ѐߊ • GDG Seoul
• BLOG : Է ݆ ѐߊо غ • h5p:/ /thdev.tech • h5p:/ /thdev.net GDG Incheon - thdev.tech, Taehwan 2017 2
য়ט ޖट ঠӝܳ ೡө? GDG Incheon - thdev.tech, Taehwan 2017
3
MVC/MVP/MVVM GDG Incheon - thdev.tech, Taehwan 2017 4
MVC/MVP/MVVM with kotlin GDG Incheon - thdev.tech, Taehwan 2017 5
MVC GDG Incheon - thdev.tech, Taehwan 2017 6
MVC GDG Incheon - thdev.tech, Taehwan 2017 7
MVC - Model • ؘఠܳ ೠ. • ֎ਕ ؘఠ, DB
١ GDG Incheon - thdev.tech, Taehwan 2017 8
MVC - View • Ac$vity/Fragment/layoutਸ ನೣೞৈ View оמ •
layout ݅ਸ View оמ • Realm ನझ : উ٘۽٘ MVC, MVP, MVVM ઙ উղࢲ • Control ী ٮۄ Modelਸ ࠛ۞৬ Viewܳ јन ೠ GDG Incheon - thdev.tech, Taehwan 2017 9
MVC - Control • ৻ࠗ ࢎਊ ੑ۱ਸ ߉Ҋ, ݽ؛ ী
ٮۄ View јनਸ ذח • Ac*vity/Fragmentо ഝਸ ೣԋ ೠ GDG Incheon - thdev.tech, Taehwan 2017 10
MVC GDG Incheon - thdev.tech, Taehwan 2017 11
Android MVC GDG Incheon - thdev.tech, Taehwan 2017 12
MVP GDG Incheon - thdev.tech, Taehwan 2017 13
MVP GDG Incheon - thdev.tech, Taehwan 2017 14
MVP - Model • ؘఠܳ ೠ. • ֎ਕ ؘఠ, DB
١ GDG Incheon - thdev.tech, Taehwan 2017 15
MVP - View • Ac$vity/Fragment ܳ ViewۄҊ ೠ. • Control(ࢎਊ
߮)ܳ ߉ই ܳ Presenter۽ ׳ೠ. • Presenter۽ ࠗఠ ߮ܳ ߉ই View јनೠ. GDG Incheon - thdev.tech, Taehwan 2017 16
MVP - Presenter • View৬ 1:1 ҙ҅ܳ ਬೠ • View۽ࠗఠ
߮ܳ ߉Ҋ, ܳ Modelҗ ҙ҅ী ٮۄ View јनਸ ਬب GDG Incheon - thdev.tech, Taehwan 2017 17
MVP - flow GDG Incheon - thdev.tech, Taehwan 2017 18
MVVM GDG Incheon - thdev.tech, Taehwan 2017 19
MVVM GDG Incheon - thdev.tech, Taehwan 2017 20
MVVM - Model • ؘఠܳ ೠ. • ֎ਕ ؘఠ, DB
١ GDG Incheon - thdev.tech, Taehwan 2017 21
MVVM - View • Ac$vity/Fragment ܳ ViewۄҊ ೠ. • Control(ࢎਊ
߮)ܳ ߉ই ܳ ViewModel ٜ۽ ׳ೠ. • ViewModel ٜ۽ ߮ܳ ׳ ߉ই ܳ јनೠ GDG Incheon - thdev.tech, Taehwan 2017 22
MVVM - ViewModel • Presenter৬ ਬࢎೠ ഋక. • ViewModel ח
ݽ؛ ߹۽ ܻ࠙ೞ۽, Viewী ઙࣘغ ঋח. GDG Incheon - thdev.tech, Taehwan 2017 23
MVVM • Reac&ve ੋ ߑߨ(kickstarter)ਸ ࢎਊೞৈ ਊ оמ • Rx
Subjectܳ ࢎਊೞৈ ਊ оמ • DataBindingਸ ాೠ ਊ оמ GDG Incheon - thdev.tech, Taehwan 2017 24
пп ݽ؛ ࠁওਵפ! GDG Incheon - thdev.tech, Taehwan 2017 25
Architecture • ೧ ইפ • ԙ ۧѱ ೡ ਃח হ
GDG Incheon - thdev.tech, Taehwan 2017 26
Android Architecture Blueprints GDG Incheon - thdev.tech, Taehwan 2017 27
Architecture ਊ ݾ GDG Incheon - thdev.tech, Taehwan 2017 28
٘ ࠂب ߂ झѱ౭ ٘ ӝ GDG Incheon - thdev.tech,
Taehwan 2017 29
ݺഛೠ ٘ ࢿ GDG Incheon - thdev.tech, Taehwan 2017 30
ਬࠁࣻо ಞೠ ٘ ࢿ GDG Incheon - thdev.tech, Taehwan 2017
31
ۧѱ ࢿೣਵ۽ ח GDG Incheon - thdev.tech, Taehwan 2017
32
పझ оמೠ ഋక ٘ ࢿ GDG Incheon - thdev.tech, Taehwan
2017 33
ۨযܳ ܻ࠙ೞৈ ӭՔೠ ٘ ࢿ GDG Incheon - thdev.tech, Taehwan
2017 34
Architecture ਊ ݾ • ٘ ࠂب ߂ झѱ౭ ٘ ӝ
• ݺഛೠ ٘ ࢿ • ਬࠁࣻо ಞೠ ٘ ࢿ • పझ оמೠ ഋక ٘ ࢿ • ۨযܳ ܻ࠙ೞৈ ӭՔೠ ٘ ࢿ GDG Incheon - thdev.tech, Taehwan 2017 35
۠ ࠗ࠙ • Architecture ঈೞҊ ೯ • Reac-ve • DataBinding
• Model ݺഛࢿ GDG Incheon - thdev.tech, Taehwan 2017 36
MVP ਊೞӝ ী GDG Incheon - thdev.tech, Taehwan 2017 37
Presenter ࢎਊೞח ߑߨਸ ݢ ঌইࠁ • Presenter(View/Presenter) - interface
/ PresenterImpl(ҳഅ) • Contract(View/Presenter) - interface / Presenter(ҳഅ) • View - interface / Presenter(ҳഅ) GDG Incheon - thdev.tech, Taehwan 2017 38
Presenter(View/Presenter) PresenterImpl(ҳഅ) GDG Incheon - thdev.tech, Taehwan 2017 39
Presenter(View/Presenter)/PresenterImpl(ҳഅ) - 1 interface SamplePresenter { // presenter method interface
View { // View method } } GDG Incheon - thdev.tech, Taehwan 2017 40
Presenter(View/Presenter)/PresenterImpl(ҳഅ) - 2 interface SamplePresenterImpl(val view: View) : SamplePresenter {
// presenter method } GDG Incheon - thdev.tech, Taehwan 2017 41
Contract(View/Presenter) Presenter(ҳഅ) GDG Incheon - thdev.tech, Taehwan 2017 42
Contract(View/Presenter)/Presenter(ҳഅ) - 1 interface SampleContract { interface View { //
View method } interface Presenter { // presenter method fun setView(view: View) } } GDG Incheon - thdev.tech, Taehwan 2017 43
Contract(View/Presenter)/Presenter(ҳഅ) - 2 interface SamplePresenter : SampleContract.Presenter { private lateinit
var view: View override fun setView(view: View) { this.view = view } // presenter method } GDG Incheon - thdev.tech, Taehwan 2017 44
View - interface Presenter(ҳഅ) GDG Incheon - thdev.tech, Taehwan
2017 45
View - interface / Presenter(ҳഅ) - 1 interface SampleView
{ // View method } class SamplePresenter(view: View) { // Presenter method } GDG Incheon - thdev.tech, Taehwan 2017 46
View - interface / Presenter(ҳഅ) - 2 class SampleActivity
: SampleView { val presenter: SamplePresenter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ࢬۚ presenter = SamplePresenter(this) } } GDG Incheon - thdev.tech, Taehwan 2017 47
MVP base GDG Incheon - thdev.tech, Taehwan 2017 48
दো GDG Incheon - thdev.tech, Taehwan 2017 49
۽Ӓইਓ ҳഅೞӝ GDG Incheon - thdev.tech, Taehwan 2017 50
ଵҊܐ • উ٘۽٘ MVC, MVP, MVVM ઙ উղࢲ - realm
• উ٘۽٘ MVP - taehwan • Android Architecture Blueprints • kotlin reference • MVP Login Sample ٘ - taehwan GDG Incheon - thdev.tech, Taehwan 2017 51
хࢎפ. GDG Incheon - thdev.tech, Taehwan 2017 52