My handy collection of useful patterns, best-practices and frameworks.
Basics
- S.O.L.I.D (5 Principles of Class Design)
- Single Responsibility A class should have one, and only one, reason to change. > S @realm.io, Donn Felker
- Open/Closed You should be able to extend a classes behavior, without modifying it. > O @realm.io, Donn Felker
- Liskov Substitution Derived Classes must be substitudable for their base classes. > L @realm.io, Donn Felker
- Interface Segregation Make fine grained interfaces that are client specific. > I @realm.io, Donn Felker
- Dependency Inversion Depend on abstractions, not concretions. > D @realm.io, Donn Felker
- SOLID @ Uncle Bob
Best / Common Practices
- Constraint Layout (finally reached 1.0)
- Heads-Up: https://codelabs.developers.google.com/codelabs/constraint-layout
Advanced
- Dependency Inversion through Dagger
- Dagger @realm.io, by Daniel Lew
- Dagger2/Dagger Android, by Garima Jain (Component-Dependencies, Subcomponents, Scoping)
- Dagger2 for Modular Architecture, by Luigi Papino (Enforcing of Hollywood-Principle/Inversion-of-Control)
- Dagger Tweaks, video by AndroidDialogs (scopes, static provides, Subcomponents / ActivityComponents)
Frameworks & Tools
- View- & Resource-Binding: http://jakewharton.github.io/butterknife/
- Image-Loading:
http://square.github.io/picasso/ - JSON<>POJO (De-)Serialization:
https://github.com/google/gson - Networking:
http://square.github.io/retrofit/ - (Intent-) Extra Injection:
https://github.com/f2prateek/dart - Saving & Restoring (Activity/Fragment) Instances: https://github.com/frankiesardo/icepick
- Lamdas in Android / Java-Versions below 1.8: https://github.com/orfjackal/retrolambda
- Beispiele & Frameworks: https://android-arsenal.com/
Architecture
MVP
- http://www.tinmegali.com/en/model-view-presenter-android-part-1/
- http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
- https://github.com/konmik/konmik.github.io/wiki/Introduction-to-Model-View-Presenter-on-Android
Reactive
Dependencies
- include Libs hosted on Github into Android-Project: https://jitpack.io/
Public Rest-APIs
If you need data from Web to test things / rapid prototyping.
- Chuck Norris Zitate: http://www.icndb.com/api/
- Cat-Pictures in custom-resolutions: https://placekitten.com/
- Posts and Photos: https://jsonplaceholder.typicode.com/
Blogs and Websites:
Mailinglists:
Shiny people:
- Jake Wharton: http://jakewharton.com/