android open source libraries€¦ · • rxjava, rxandroid by reactivex • agera by google •...
TRANSCRIPT
![Page 1: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/1.jpg)
Android Open Source Libraries
Anirudh SEngineer, Hasura
HASURA
![Page 2: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/2.jpg)
Clarifications
• My definition of Open source
• UI libraries won’t be covered
• Not including some obvious libraries
• This list is not exhaustive
![Page 3: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/3.jpg)
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?
![Page 4: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/4.jpg)
TRUSTING A LIBRARY
![Page 5: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/5.jpg)
Problem
• Dependency
• Patches
• Support
![Page 6: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/6.jpg)
Criteria for trust
• Blog post recommendations
• GitHub stars
• Last date of update
• Organization that backs it
![Page 7: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/7.jpg)
Companies
![Page 8: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/8.jpg)
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
![Page 9: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/9.jpg)
OPEN SOURCE ANDROID LIBRARIES
![Page 10: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/10.jpg)
HTTP Networking
• Retrofit by Square
• Volley by Google
• OkHttp by Square
![Page 11: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/11.jpg)
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)
![Page 12: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/12.jpg)
JSON Handling
• Gson by Google
• Moshi by Square
• Jackson by FasterXML
• LoganSquare by BlueLine Labs
![Page 13: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/13.jpg)
JSON Alternatives
• Protocol buffers - Wire by Square
• Apache Thrift - Thrifty by Microsoft
![Page 14: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/14.jpg)
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)
![Page 15: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/15.jpg)
Dependency Injection
• Dagger by Square
• Butterknife by Square (View Injection)
• Dagger 2 by Google
• Roboguice (retired)
![Page 16: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/16.jpg)
Event Bus
• EventBus by green robot
• Otto by Square
![Page 17: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/17.jpg)
Queues
• Tape by Square
• Android Priority Job Queue by Path (>1 year since last commit)
![Page 18: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/18.jpg)
Animations
• Rebound by Facebook
![Page 19: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/19.jpg)
Debugging
• Stetho by Facebook • Chrome DevTools • Network Inspection • Database Inspection • View Hierarchy • dumpapp • Javascript Console
![Page 20: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/20.jpg)
Analysis
• LeakCanary by Square
• Infer by Facebook
![Page 21: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/21.jpg)
Reactive Programming
• RxJava, RxAndroid by ReactiveX
• Agera by Google
• RxBinding, RxRelay by Jake Wharton
• RxLifecycle by Trello
• rxlint by Little Robots
• SQLBrite by Square
![Page 22: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/22.jpg)
Build systems
• Buck by Facebook
![Page 23: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/23.jpg)
Unit testing
• JUnit
• Mockito
• Robolectric
![Page 24: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/24.jpg)
UI Testing
• Espresso
• Robotium
• Appium
• Spoon
![Page 25: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/25.jpg)
Deployment
• Fastlane
• bintray-release by Novoda
![Page 26: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/26.jpg)
• ACRA
• FlexboxLayout by Google
• Bolts by Facebook
• Timber by Jake Wharton
• DiskLRUCache by Jake Wharton (2 years ago)
• Essentials by GreenRobot
Miscellaneous
![Page 27: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/27.jpg)
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
![Page 28: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/28.jpg)
OPEN SOURCE ANDROID APPS
![Page 29: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/29.jpg)
Google I/O 2015 Wikipedia Wikimedia Commons
WordPress DuckDuckGo Firefox
![Page 30: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/30.jpg)
Plaid Telegram Signal
PocketHub for GitHub ownCloud OwnTracks
![Page 31: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/31.jpg)
INVOLVING YOURSELF IN THE COMMUNITY
![Page 32: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/32.jpg)
Ways to participate
Library App
ExistingDifficult
Very valuableEasy
Valuable
OwnDifficult
Hard to determineModerate
Somewhat valuable
![Page 33: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/33.jpg)
anirudh24seven
Where can you find me?
![Page 34: Android Open Source libraries€¦ · • RxJava, RxAndroid by ReactiveX • Agera by Google • RxBinding, RxRelay by Jake Wharton • RxLifecycle by Trello • rxlint by Little](https://reader035.vdocuments.mx/reader035/viewer/2022071113/5fea94b41555ef6089665efe/html5/thumbnails/34.jpg)