Mortar & Flow - MCE 2015
-
Upload
pierre-yves-ricau -
Category
Engineering
-
view
583 -
download
3
Transcript of Mortar & Flow - MCE 2015
![Page 1: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/1.jpg)
Pierre-Yves Ricau / @Piwai
Mortar & Flow
![Page 2: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/2.jpg)
![Page 3: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/3.jpg)
![Page 4: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/4.jpg)
![Page 5: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/5.jpg)
Fragments
![Page 6: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/6.jpg)
![Page 7: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/7.jpg)
http://corner.squareup.com/2014/10/advocating-against-android-fragments.html
https://www.flickr.com/photos/albaraa/7087660805/
![Page 8: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/8.jpg)
![Page 9: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/9.jpg)
Lessons
• Single Activity Interface • Local Backstack • DIY: activities, views and layout inflater
![Page 10: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/10.jpg)
![Page 11: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/11.jpg)
Backstack
![Page 12: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/12.jpg)
![Page 13: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/13.jpg)
Flow
• Flow = navigation controller & holds backstack • Screen = URL: params + layout
![Page 14: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/14.jpg)
![Page 15: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/15.jpg)
![Page 16: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/16.jpg)
![Page 17: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/17.jpg)
![Page 18: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/18.jpg)
Single Responsibility Principle
![Page 19: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/19.jpg)
Dependency Injection
![Page 20: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/20.jpg)
Boring boilerplate
![Page 21: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/21.jpg)
Dagger
• @Inject • Compile time
![Page 22: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/22.jpg)
![Page 23: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/23.jpg)
Dagger 1
![Page 24: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/24.jpg)
Dagger 2
![Page 25: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/25.jpg)
![Page 26: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/26.jpg)
Best practices
• Custom views • Presenters for business logic • Tests against presenters
![Page 27: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/27.jpg)
![Page 28: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/28.jpg)
![Page 29: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/29.jpg)
Tests
![Page 30: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/30.jpg)
Scoped Singletons
![Page 31: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/31.jpg)
Mortar
• Create and manager scoped object graphs • Lifecycle when you need it
![Page 32: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/32.jpg)
View
![Page 33: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/33.jpg)
ContextWrapper Magic
![Page 34: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/34.jpg)
Presenter with lifecycle
![Page 35: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/35.jpg)
![Page 36: Mortar & Flow - MCE 2015](https://reader030.fdocuments.us/reader030/viewer/2022020307/55b104d2bb61eb492c8b46c7/html5/thumbnails/36.jpg)
Questions?
@Piwai