Android Open Source Libraries
Anirudh SEngineer, Hasura
HASURA
Clarifications
• My definition of Open source
• UI libraries won’t be covered
• Not including some obvious libraries
• This list is not exhaustive
Some questions that need answers
• How do I choose the right library?
• What are the popular libraries?
• How do I get involved in the community?
TRUSTING A LIBRARY
Problem
• Dependency
• Patches
• Support
Criteria for trust
• Blog post recommendations
• GitHub stars
• Last date of update
• Organization that backs it
Companies
Why companies work on open source libraries
• Give back to the community
• Wider adoption
• More eyeballs into the internals of the library
• Showcase of commitment & investment into the community
OPEN SOURCE ANDROID LIBRARIES
HTTP Networking
• Retrofit by Square
• Volley by Google
• OkHttp by Square
Image downloading
• Picasso by Square
• Glide by Bump Tech (acq by Google)
• Fresco by Facebook
• ion by Koushik Dutta (Koush)
• Universal Image Loader by nostra13 (Sergey Tarasevich)
JSON Handling
• Gson by Google
• Moshi by Square
• Jackson by FasterXML
• LoganSquare by BlueLine Labs
JSON Alternatives
• Protocol buffers - Wire by Square
• Apache Thrift - Thrifty by Microsoft
ORM
• OrmLite by j256 (Gray Watson)
• Sugar ORM by satyan (Satya N)
• greenDAO by greenrobot
• DBFlow by Raizlabs
• ActiveAndroid by pardom (Michael Pardo) (not actively updated)
Dependency Injection
• Dagger by Square
• Butterknife by Square (View Injection)
• Dagger 2 by Google
• Roboguice (retired)
Event Bus
• EventBus by green robot
• Otto by Square
Queues
• Tape by Square
• Android Priority Job Queue by Path (>1 year since last commit)
Animations
• Rebound by Facebook
Debugging
• Stetho by Facebook • Chrome DevTools • Network Inspection • Database Inspection • View Hierarchy • dumpapp • Javascript Console
Analysis
• LeakCanary by Square
• Infer by Facebook
Reactive Programming
• RxJava, RxAndroid by ReactiveX
• Agera by Google
• RxBinding, RxRelay by Jake Wharton
• RxLifecycle by Trello
• rxlint by Little Robots
• SQLBrite by Square
Build systems
• Buck by Facebook
Unit testing
• JUnit
• Mockito
• Robolectric
UI Testing
• Espresso
• Robotium
• Appium
• Spoon
Deployment
• Fastlane
• bintray-release by Novoda
• ACRA
• FlexboxLayout by Google
• Bolts by Facebook
• Timber by Jake Wharton
• DiskLRUCache by Jake Wharton (2 years ago)
• Essentials by GreenRobot
Miscellaneous
Overall picture
Disk
Server
App
1. HTTP
2. Image
3. JSON Handling
4. ORM
5. Dependency injection
6. Event Bus
7. Queues
8. Animations9. Debugging
10. Analysis
11. Rx
12. Build system
13. Unit testing
14. UI Testing
15. Deployment
16. Miscellaneous
OPEN SOURCE ANDROID APPS
Google I/O 2015 Wikipedia Wikimedia Commons
WordPress DuckDuckGo Firefox
Plaid Telegram Signal
PocketHub for GitHub ownCloud OwnTracks
INVOLVING YOURSELF IN THE COMMUNITY
Ways to participate
Library App
ExistingDifficult
Very valuableEasy
Valuable
OwnDifficult
Hard to determineModerate
Somewhat valuable
anirudh24seven
Where can you find me?