2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)

  • Published on
    14-Apr-2017

  • View
    144

  • Download
    4

Transcript

<p>staccato</p> <p>staccatoAndroid ?MVVM, MVP TRACK 1 BBBTechInc.....</p> <p>2.4 millionApp Playstore , ? App? , , ? , . .2</p> <p> 3-4 , , 4, 16 </p> <p> . 3-4 , Drawing , 4 16</p> <p>3</p> <p> 8-9 , , , , Notification 3, 12 </p> <p> . 9-10 , Drawing , , Database 3 12</p> <p>4</p> <p> , Architecture </p> <p> ?</p> <p> , , Swish Architecture .</p> <p> Merge , Conflict .5</p> <p> , ? .</p> <p> . </p> <p> . .</p> <p>6</p> <p>Good Architecture?</p> <p>IndependentTestableReusableExpandable</p> <p> . . .* . UI, DB, Web Server . .</p> <p>8</p> <p>IndependentTestableReusableExpandable</p> <p> Independent. , .</p> <p>9</p> <p>First Android</p> <p>ActivityEvent HandlerPresentation LogicDataBusiness LogicFlow Control SketchKit Drawing Activity 1500 ..</p> <p>Activity . Activity .11</p> <p>MVC Pattern</p> <p> , MVC .MVC View Model . () .12</p> <p>ModelViewControllerEventDataBusiness LogicEvent HandlerPresentation LogicFlow Control </p> <p> Controller Model Model View.</p> <p> Controller View Controller View Model . View Controller .</p> <p> Controller View View , View Observer Model View Notify </p> <p>View Model / .13</p> <p>ModelViewControllerEventDataBusiness LogicEvent HandlerPresentation LogicFlow Control Activity</p> <p> Activity( Fragment)Controller View , View Controller View . MVC 14</p> <p>MVP Pattern</p> <p>MVC .MVC Controller Presenter Model, View, Presenter . MVC Model View </p> <p>15</p> <p>ModelViewPresenterEventEvent HandlerPresentation LogicDataBusiness LogicFlow Control </p> <p>Model .</p> <p>View(Client) UI LayerClient Presenter .</p> <p>Presenter Model .Model View .</p> <p> View Presenter 1 1 , Presenter Model View .16</p> <p>ModelViewPresenterEventEvent HandlerPresentation LogicDataBusiness LogicFlow Control Activity</p> <p>View Android Activity view Activity Presenter . Activity View .</p> <p> Model View Presenter View 1:1 .</p> <p> MVC View-Model Presenter Mapper View Model .</p> <p>17</p> <p>MVVM Pattern</p> <p> MVC Model View View Controller Layer 18</p> <p>ModelViewViewModelEventEvent HandlerPresentation LogicDataBusiness LogicFlow Control DataBinding</p> <p>Model .</p> <p>View(Client) UI Layer.Client View Model .</p> <p>View ModelView .19</p> <p>ModelViewViewModelEventEvent HandlerPresentation LogicDataBusiness LogicFlow Control ActivityDataBinding</p> <p>MVP ,MVP Presenter View ViewModel DataBinding View .</p> <p>View ViewModel Command Data Binding(2-way binding, Binding propagation) , View ViewModel .20</p> <p>Android DataBinding MVVM Android 2.1(API 7 ) Android .</p> <p>2015 Android M Data Binding Library . Library MVVM . MVVM .21</p> <p>MVP vs MVVMOn Android</p> <p>MVP</p> <p>Pros Test Activity/Fragment </p> <p>ConsView Presenter OverEngineering</p> <p>MVVM</p> <p>Pros View ViewModel </p> <p>ConsIDE Data-Binding Library Support </p> <p> Activity24</p> <p>Clean Architrcture</p> <p>MVP MVVM , .25</p> <p>https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html </p> <p> 2012 Clean Architecture. CleanArchitecture MVP, MVVM .</p> <p> INdependent</p> <p>The Dependency Rule . , . , .</p> <p> The Dependency Rule. , . , , .</p> <p>Dependency Inversion Principle26</p> <p>Android FrameworkPresenterModelViewExternal FrameworkRepository PatternServer APIDatabaseUsecase</p> <p>27</p> <p>Android FrameworkPresenterModelViewExternal FrameworkRepository PatternServer APIDatabaseUsecase</p> <p> Independent </p> <p>28</p> <p>http://martinfowler.com/eaaCatalog/repository.html </p> <p>http://blog.feedpresso.com/2016/01/25/why-you-should-use-rxjava-in-android-a-short-introduction-to-rxjava.html </p> <p> Network API Data Local Data UI , AsyncTask. .</p> <p> RXJava, RXAndroid .30</p> <p>http://jakewharton.github.io/butterknife/ </p> <p>https://www.youtube.com/watch?v=plK0zyRLIP8 </p> <p>Pros Test </p> <p>ConsOverEngineering </p> <p>Conclusion</p> <p> Silver Bullet </p> <p> .</p> <p> MVVM , MVP CleanArchitecture .35</p> <p>We will find a weapon. we always have.</p> <p>yo0230@gmail.com BBBTechInc.Thank you</p>