Android studyjam - The clean way

21
ANDROID STUDY JAM THE CLEAN WAY CARLOS MORERA DE LA CHICA Github - cmc00022 @CarlosMChica G+ CarlosMoreradelaChica

Transcript of Android studyjam - The clean way

Page 1: Android studyjam - The clean way

ANDROID STUDY JAM

THE CLEAN WAY

CARLOS MORERA DE LA CHICA

Github - cmc00022 @CarlosMChica

G+ CarlosMoreradelaChica

Page 2: Android studyjam - The clean way

SOLID PRINCIPLES

Page 3: Android studyjam - The clean way

SOLID PRINCIPLES AKA THE BIBLE

A class should have only a single responsibility.

SINGLE RESPONSIBILITY PRINCIPLE (SRP)

Page 4: Android studyjam - The clean way

SOLID PRINCIPLES AKA THE BIBLE

Software classes should be open for extension, but closed for modification.

OPEN/CLOSED PRINCIPLE

Page 5: Android studyjam - The clean way

SOLID PRINCIPLES AKA THE BIBLE

Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.

LISKOV SUBSTITUTION PRINCIPLE

Page 6: Android studyjam - The clean way

SOLID PRINCIPLES AKA THE BIBLE

Many client-specific interfaces are better than one general-purpose interface.

INTERFACE SEGREGATION PRINCIPLE

Page 7: Android studyjam - The clean way

SOLID PRINCIPLES AKA THE BIBLE

Depend upon Abstractions. Do not depend upon concretions.

DEPENDENCY INVERSION PRINCIPLE

Page 8: Android studyjam - The clean way

THE DIRTY WAYANDROID STUDY JAM

Page 9: Android studyjam - The clean way

ANDROID STUDY JAM - THE DIRTY WAY

GOOGLE, IS THIS REALLY WHAT YOU TEACH STUDENTS?

▸ SunshineSyncAdapter, the GOD class.

▸ DetailFragment and how to mix data base code with ui formatting

Page 10: Android studyjam - The clean way

CLEAN ARCHITECTURETHE SOLUTION

Page 11: Android studyjam - The clean way

CLEAN ARCHITECTURE

DEPENDENCY RULE: NOTHING IN AN INNER CIRCLE CAN KNOW ANYTHING AT ALL ABOUT SOMETHING IN AN OUTER CIRCLE

Page 12: Android studyjam - The clean way

LAYERS AND FLOW

DELIVERY MECHANISM

DOMAIN

DATA

Page 13: Android studyjam - The clean way

“MAKE IMPLEMENTATION DETAILS SWAPPABLE.”

Robert C. Martin

CLEAN ARCHITECTURE

Page 14: Android studyjam - The clean way

“A GOOD ARCHITECTURE ALLOWS FRAMEWORKS TO ACT AS PLUGINS TO THE APP”

Robert C. Martin

CLEAN ARCHITECTURE

Page 15: Android studyjam - The clean way

ANDROIDCLEAN ARCHITECTURE

Page 16: Android studyjam - The clean way

CLEAN ARCHITECTURE - ANDROID

MODULES DEPENDENCIES

▸ Blue - Java module

▸ Green - Android module

Page 17: Android studyjam - The clean way

CLEAN ARCHITECTURE - ANDROID

ISOLATE DOMAIN MODEL

▸ Pure domain model

▸ Layers models

Page 18: Android studyjam - The clean way

TIPS & TRICKS

HOW TO AVOID WRITING STINKY CODE

▸ THINK before coding.

▸ Make sure your code follow all/most of SOLID principles.

▸ Pay special attention to class NAMES and responsibilities.

▸ Create LAYERED modules to control correct dependencies.

Page 19: Android studyjam - The clean way

REFERENCES

▸ Uncle Bob - The Clean Architecture

▸ Christian Panadero - My way to clean android

▸ Pedro Gomez - Effective Android UI

▸ Jorge Barroso - Forgetting Android

▸ José M Pereira - Limpiando espero la arquitectura q yo quiero

▸ Fernando Cejas - Android the clean way

▸ Clean Coders videos

Page 20: Android studyjam - The clean way

QUESTIONS?

Page 21: Android studyjam - The clean way

https://github.com/cmc00022/Sunshine-Version-2