Slide 1

Slide 1 text

MVP - Kotlinਵ۽ ೧ࠁӝ Taehwan GDG Incheon - thdev.tech, Taehwan 2017 1

Slide 2

Slide 2 text

Introduce • 5֙ରী ੽যٚ Android ѐߊ੗ • GDG Seoul ਍৔੗ • BLOG : Է ݆਷ ѐߊ੗о غ੗ ਍৔઺ • h5p:/ /thdev.tech • h5p:/ /thdev.net GDG Incheon - thdev.tech, Taehwan 2017 2

Slide 3

Slide 3 text

য়ט ޖट ੉ঠӝܳ ೡө? GDG Incheon - thdev.tech, Taehwan 2017 3

Slide 4

Slide 4 text

MVC/MVP/MVVM GDG Incheon - thdev.tech, Taehwan 2017 4

Slide 5

Slide 5 text

MVC/MVP/MVVM with kotlin GDG Incheon - thdev.tech, Taehwan 2017 5

Slide 6

Slide 6 text

MVC GDG Incheon - thdev.tech, Taehwan 2017 6

Slide 7

Slide 7 text

MVC GDG Incheon - thdev.tech, Taehwan 2017 7

Slide 8

Slide 8 text

MVC - Model • ؘ੉ఠܳ ੿੄ೠ׮. • ֎౟ਕ௼ ؘ੉ఠ, DB ١ GDG Incheon - thdev.tech, Taehwan 2017 8

Slide 9

Slide 9 text

MVC - View • Ac$vity/Fragment/layoutਸ ನೣೞৈ View ੿੄ оמ • layout ݅ਸ View ੿੄ оמ • Realm ನझ౴ : উ٘۽੉٘੄ MVC, MVP, MVVM ઙ೤ উղࢲ • Control ੿੄ী ٮۄ Modelਸ ࠛ۞৬ Viewܳ јन ೠ׮ GDG Incheon - thdev.tech, Taehwan 2017 9

Slide 10

Slide 10 text

MVC - Control • ৻ࠗ੄ ࢎਊ੗ ੑ۱ਸ ߉Ҋ, ݽ؛੄ ੿੄ী ٮۄ View੄ јनਸ ذח׮ • Ac*vity/Fragmentо ੉ ৉ഝਸ ೣԋ ೠ׮ GDG Incheon - thdev.tech, Taehwan 2017 10

Slide 11

Slide 11 text

MVC GDG Incheon - thdev.tech, Taehwan 2017 11

Slide 12

Slide 12 text

Android MVC GDG Incheon - thdev.tech, Taehwan 2017 12

Slide 13

Slide 13 text

MVP GDG Incheon - thdev.tech, Taehwan 2017 13

Slide 14

Slide 14 text

MVP GDG Incheon - thdev.tech, Taehwan 2017 14

Slide 15

Slide 15 text

MVP - Model • ؘ੉ఠܳ ੿੄ೠ׮. • ֎౟ਕ௼ ؘ੉ఠ, DB ١ GDG Incheon - thdev.tech, Taehwan 2017 15

Slide 16

Slide 16 text

MVP - View • Ac$vity/Fragment ੹୓ܳ ViewۄҊ ೠ׮. • Control(ࢎਊ੗ ੉߮౟)ܳ ߉ই ੉ܳ Presenter۽ ੹׳ೠ׮. • Presenter۽ ࠗఠ ੉߮౟ܳ ߉ই View јनೠ׮. GDG Incheon - thdev.tech, Taehwan 2017 16

Slide 17

Slide 17 text

MVP - Presenter • View৬ 1:1 ҙ҅ܳ ਬ૑ೠ׮ • View۽ࠗఠ ੉߮౟ܳ ߉Ҋ, ੉ܳ Modelҗ੄ ҙ҅ী ٮۄ View јनਸ ਬب GDG Incheon - thdev.tech, Taehwan 2017 17

Slide 18

Slide 18 text

MVP - flow GDG Incheon - thdev.tech, Taehwan 2017 18

Slide 19

Slide 19 text

MVVM GDG Incheon - thdev.tech, Taehwan 2017 19

Slide 20

Slide 20 text

MVVM GDG Incheon - thdev.tech, Taehwan 2017 20

Slide 21

Slide 21 text

MVVM - Model • ؘ੉ఠܳ ੿੄ೠ׮. • ֎౟ਕ௼ ؘ੉ఠ, DB ١ GDG Incheon - thdev.tech, Taehwan 2017 21

Slide 22

Slide 22 text

MVVM - View • Ac$vity/Fragment ੹୓ܳ ViewۄҊ ೠ׮. • Control(ࢎਊ੗ ੉߮౟)ܳ ߉ই ੉ܳ ViewModel ٜ۽ ੹׳ೠ׮. • ViewModel ٜ۽ ੉߮౟ܳ ੹׳ ߉ই ੉ܳ јनೠ׮ GDG Incheon - thdev.tech, Taehwan 2017 22

Slide 23

Slide 23 text

MVVM - ViewModel • Presenter৬ ਬࢎೠ ഋక੉׮. • ViewModel੄ ੿੄ח ݽ؛ ߹۽ ܻ࠙ೞ޲۽, Viewী ઙࣘغ૑ ঋח׮. GDG Incheon - thdev.tech, Taehwan 2017 23

Slide 24

Slide 24 text

MVVM • Reac&ve ੸ੋ ߑߨ(kickstarter)ਸ ࢎਊೞৈ ੸ਊ оמ • Rx੄ Subjectܳ ࢎਊೞৈ ੸ਊ оמ • DataBindingਸ ాೠ ੸ਊ оמ GDG Incheon - thdev.tech, Taehwan 2017 24

Slide 25

Slide 25 text

пп੄ ݽ؛਷ ࠁওਵפ! GDG Incheon - thdev.tech, Taehwan 2017 25

Slide 26

Slide 26 text

Architecture • ೧׹਷ ইפ׮ • ԙ ੉ۧѱ ೡ ೙ਃח হ׮ GDG Incheon - thdev.tech, Taehwan 2017 26

Slide 27

Slide 27 text

Android Architecture Blueprints GDG Incheon - thdev.tech, Taehwan 2017 27

Slide 28

Slide 28 text

Architecture ੸ਊ੄ ݾ੸ GDG Incheon - thdev.tech, Taehwan 2017 28

Slide 29

Slide 29 text

௏٘ ࠂ੟ب ߂ झ౵ѱ౭ ௏٘ ઴੉ӝ GDG Incheon - thdev.tech, Taehwan 2017 29

Slide 30

Slide 30 text

ݺഛೠ ௏٘ ੘ࢿ GDG Incheon - thdev.tech, Taehwan 2017 30

Slide 31

Slide 31 text

ਬ૑ࠁࣻо ಞೠ ௏٘ ੘ࢿ GDG Incheon - thdev.tech, Taehwan 2017 31

Slide 32

Slide 32 text

੉ۧѱ ੘ࢿೣਵ۽ ঳ח ੢੼਷ GDG Incheon - thdev.tech, Taehwan 2017 32

Slide 33

Slide 33 text

పझ౟ оמೠ ഋక੄ ௏٘ ੘ࢿ GDG Incheon - thdev.tech, Taehwan 2017 33

Slide 34

Slide 34 text

ۨ੉যܳ ܻ࠙ೞৈ ӭՔೠ ௏٘ ੘ࢿ GDG Incheon - thdev.tech, Taehwan 2017 34

Slide 35

Slide 35 text

Architecture ੸ਊ੄ ݾ੸ • ௏٘ ࠂ੟ب ߂ झ౵ѱ౭ ௏٘ ઴੉ӝ • ݺഛೠ ௏٘ ੘ࢿ • ਬ૑ࠁࣻо ಞೠ ௏٘ ੘ࢿ • పझ౟ оמೠ ഋక੄ ௏٘ ੘ࢿ • ۨ੉যܳ ܻ࠙ೞৈ ӭՔೠ ௏٘ ੘ࢿ GDG Incheon - thdev.tech, Taehwan 2017 35

Slide 36

Slide 36 text

੉۠ ࠗ࠙਷ • Architecture ౵ঈೞҊ ૓೯ • Reac-ve • DataBinding • Model ੿੄ ݺഛࢿ GDG Incheon - thdev.tech, Taehwan 2017 36

Slide 37

Slide 37 text

MVP ੸ਊೞӝ ੹ী GDG Incheon - thdev.tech, Taehwan 2017 37

Slide 38

Slide 38 text

Presenter ࢎਊೞח ߑߨਸ ݢ੷ ঌইࠁ੗ • Presenter(View/Presenter) - interface ੿੄ / PresenterImpl(ҳഅ) • Contract(View/Presenter) - interface ੿੄ / Presenter(ҳഅ) • View - interface ੿੄ / Presenter(ҳഅ) GDG Incheon - thdev.tech, Taehwan 2017 38

Slide 39

Slide 39 text

Presenter(View/Presenter) PresenterImpl(ҳഅ) GDG Incheon - thdev.tech, Taehwan 2017 39

Slide 40

Slide 40 text

Presenter(View/Presenter)/PresenterImpl(ҳഅ) - 1 interface SamplePresenter { // presenter method interface View { // View method } } GDG Incheon - thdev.tech, Taehwan 2017 40

Slide 41

Slide 41 text

Presenter(View/Presenter)/PresenterImpl(ҳഅ) - 2 interface SamplePresenterImpl(val view: View) : SamplePresenter { // presenter method } GDG Incheon - thdev.tech, Taehwan 2017 41

Slide 42

Slide 42 text

Contract(View/Presenter) Presenter(ҳഅ) GDG Incheon - thdev.tech, Taehwan 2017 42

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

View - interface ੿੄ Presenter(ҳഅ) GDG Incheon - thdev.tech, Taehwan 2017 45

Slide 46

Slide 46 text

View - interface ੿੄ / Presenter(ҳഅ) - 1 interface SampleView { // View method } class SamplePresenter(view: View) { // Presenter method } GDG Incheon - thdev.tech, Taehwan 2017 46

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

MVP base GDG Incheon - thdev.tech, Taehwan 2017 48

Slide 49

Slide 49 text

दো GDG Incheon - thdev.tech, Taehwan 2017 49

Slide 50

Slide 50 text

۽Ӓইਓ ҳഅೞӝ GDG Incheon - thdev.tech, Taehwan 2017 50

Slide 51

Slide 51 text

ଵҊ੗ܐ • উ٘۽੉٘੄ MVC, MVP, MVVM ઙ೤ উղࢲ - realm • উ٘۽੉٘ MVP - taehwan • Android Architecture Blueprints • kotlin reference • MVP Login Sample ௏٘ - taehwan GDG Incheon - thdev.tech, Taehwan 2017 51

Slide 52

Slide 52 text

хࢎ೤פ׮. GDG Incheon - thdev.tech, Taehwan 2017 52