Slide 1

Slide 1 text

Forgetting Android Jorge J. Barroso Tech Lead Android Core [email protected] @flipper83 jueves, 12 de diciembre de 13

Slide 2

Slide 2 text

jueves, 12 de diciembre de 13

Slide 3

Slide 3 text

Any fool can write code that a computer can understand. Good programmers write code that humans can understand. Martin Fowler jueves, 12 de diciembre de 13

Slide 4

Slide 4 text

1 Solid jueves, 12 de diciembre de 13

Slide 5

Slide 5 text

Single responsibility principle Open/closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle jueves, 12 de diciembre de 13

Slide 6

Slide 6 text

Clean Architecture 2 jueves, 12 de diciembre de 13

Slide 7

Slide 7 text

A good architecture allows you to defer framework decisions. A good architecture allows frameworks to act as plugins to the app. Robert Martin “The database is a detail, a hardware detail. We would not use one at all if all our data could fit in memory for ever” jueves, 12 de diciembre de 13

Slide 8

Slide 8 text

UI External Interfaces Db Push Network Storage Interfaces Interfaces Business Model Interactors Interactors jueves, 12 de diciembre de 13

Slide 9

Slide 9 text

UI Layer UI Layer UI Data Model Data Mapper Boundary Interactor Bussines Data Model Data Storage Test Storage Data Mapper Data Mapper Storage Data Model Test Data Model jueves, 12 de diciembre de 13

Slide 10

Slide 10 text

FeedViewModel FeedBoundary FeedListFragment FeedProvider GetFeed GetFeedImp List User DataSource Net UserDataSource LikeDataSource Like DataSource Parse API UserApi API Retrofit api Parse api jueves, 12 de diciembre de 13

Slide 11

Slide 11 text

Conclusion 3 http://www.flickr.com/photos/inf3ktion/ jueves, 12 de diciembre de 13

Slide 12

Slide 12 text

Good Layer Responsabilites jueves, 12 de diciembre de 13

Slide 13

Slide 13 text

Easy to test and mock jueves, 12 de diciembre de 13

Slide 14

Slide 14 text

Easy to add or modify code jueves, 12 de diciembre de 13

Slide 15

Slide 15 text

Easy to hide implementations: Dagger jueves, 12 de diciembre de 13

Slide 16

Slide 16 text

Easy to find smells jueves, 12 de diciembre de 13

Slide 17

Slide 17 text

Async code: RxJava jueves, 12 de diciembre de 13

Slide 18

Slide 18 text

Duplicate data model : Automaper jueves, 12 de diciembre de 13

Slide 19

Slide 19 text

Change your mind jueves, 12 de diciembre de 13

Slide 20

Slide 20 text

http://jobs.tuenti.com [email protected] @flipper83 jueves, 12 de diciembre de 13