Slide 1

Slide 1 text

Android Clean Architecture Chuck Greb @ecgreb 30 Sept 2015 Android Alliance Philly GDG Philadelphia

Slide 2

Slide 2 text

Why clean architecture? ● All powerful Activities and Fragments ● Separate business logic from Android framework ● Improved testability

Slide 3

Slide 3 text

MVC Model View Controller

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

MVC Supervising Controller ● The View relays user input to the Controller ● The Controller processes input and updates the Model ● Changes in Model state are used to update the View

Slide 6

Slide 6 text

MVP Model View Presenter

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

MVP Passive View ● View forwards user inputs and lifecycle events to the Presenter ● Presenter interacts with Model to format data for display

Slide 9

Slide 9 text

MVVM Model View ViewModel

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

MVVM Presentation Model ● ViewModel contains data field for every component in the View ● Data binding and synchronization

Slide 12

Slide 12 text

MVPC Model View Presenter Controller

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

MVPC WTF ● Modified version of MVP to accommodate Android framework ● Cleanly separates business logic from UI and Activity lifecycle ● Enables unit testing of non-Android components ○ Presenter ○ Model

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

References Development of Further Patterns of Enterprise Application Architecture (DFPEAA) Martin Fowler Fragmented (Episode #11) - The Fowler Road to a Clean Architecture Donn Felker & Kaushik Gopal Android Architecture - A simple guide for MVC, MVP and MVVM on Android projects Thanos Karpouzis

Slide 17

Slide 17 text

Thanks! Chuck Greb @ecgreb 30 Sept 2015 Android Alliance Philly GDG Philadelphia