├── Droids-to-follow-on-twitter.md
├── Kotlin-for-Android.md
├── LICENSE
├── README.md
└── RxJava-for-Android.md
/Droids-to-follow-on-twitter.md:
--------------------------------------------------------------------------------
1 | # Curated List of Android Developers and Experts
2 |
3 | **_These guys are master of their game and pretty active on Twitter. If Android is your thing then you should follow them._**
4 |
5 | * [Andy Rubin](https://twitter.com/Arubin) (Co-founder of Android)
6 | * [Matias Duarte](https://twitter.com/MatiasDuarte) (Dir Android OS UX at Google)
7 | * [Jake Wharton](https://github.com/JakeWharton) (Square Inc.)
8 | * [Reto Meier](https://twitter.com/retomeier) (Android Dev Advocate at Google)
9 | * [Xavier Ducrohet](https://twitter.com/droidxav) (Android SDK Tech Lead)
10 | * [Kaushik Gopal](http://kaush.co) (Fragmented Podcast)
11 | * [Donn Felker](http://www.donnfelker.com/about/) (Caster.io & Fragmented Podcast)
12 | * [Cyril Mottier](http://cyrilmottier.com/about/) (Google Dev Expert & Captain Train)
13 | * [Enrique López Mañas](https://twitter.com/eenriquelopez) (Android Expert)
14 | * [Kirill Grouchnikov](https://twitter.com/kirillpixel) (UI Engineer of Android at Google)
15 | * [Antoine Merle](https://twitter.com/antoine_merle) (Deezer)
16 | * [Etienne Caron](https://twitter.com/kanawish) (Google Dev Expert : Android)
17 | * [Fernando Cejas](https://twitter.com/fernando_cejas) (Engineer at Soundcloud)
18 | * [Antonio Leiva](https://twitter.com/lime_cl) (Dev of Bandhook App)
19 | * [Effie Barak](https://twitter.com/CodingChick) (Android dev at Udemy)
20 | * [Justin Angel](https://twitter.com/JustinAngel) (Expert)
21 | * [Ty Smith](https://twitter.com/tsmith) (GDE and Dev at Twitter)
22 | * [Israel Ferrer](https://twitter.com/rallat) (Dev at Twitter)
23 | * [Droid Smith](https://twitter.com/devunwired) (GDE and Speaker)
24 | * [Chet Haase](https://twitter.com/chethaase) (Senier SE at Google)
25 | * [Ben Weiss](https://twitter.com/keyboardsurfer) (Android DevRel at Google)
26 | * [Juhani Lehtimäki](https://twitter.com/lehtimaeki) (CTO Fast @ Fat Robot. GDG-Android Munich)
27 | * [Pedro Gomez](https://twitter.com/pedro_g_s) (Senior Android Developer at Gokarumi)
28 | * [Artem Zinnatullin](https://twitter.com/artem_zin) (Android Dev at NY Times)
29 | * [Kelly Shuster](https://twitter.com/KellyShuster) (GDE Android)
30 | * [Joaquim Vergès](https://twitter.com/joenrv) (Android @twitter)
31 | * [Evelio Tarazona Cáceres](https://twitter.com/eveliotc) (Senior Andorid Dev @Lyft)
32 | * [Mark Allison](https://twitter.com/MarkIAllison) (GDE Android, run Styling Android Ltd.)
33 | * [Hugo Visser](https://twitter.com/botteaap) (GDE Android, run LittleRobots.nl)
34 | * [Hannes Dorfmann](https://twitter.com/sockeqwe) (Android Lead @Tickaroo, Open Source Contributor)
35 | * [Ryan Harter](https://twitter.com/rharter) (Freelance Android Dev, GDE)
36 | * [Felipe Lima](https://twitter.com/felipecsl) (Android Dev at @Airbnb)
37 | * [Paul Blundell](https://twitter.com/blundell_apps) (GDE and Expert)
38 | * [Aidan M. Follestad](https://twitter.com/afollestad) (Young but very competent Android Dev)
39 | * [Mike Wolfson](https://twitter.com/mikewolfson) (GDE, Expert, Speaker)
40 | * [Pierre-Yves Ricau](https://twitter.com/Piwai) (Android Baker at @Square)
41 | * [Jesse Wilson](https://twitter.com/jessewilson) (Android Expert, ExGoogler, Engineer at Square)
42 | * [Koushik Dutta](https://twitter.com/koush) (Android Expert, Creator of Vysor, AllCast, ROM Manager)
43 | * [Etienne Lawlor](https://twitter.com/Etienne_Lawlor) (Android Lead Developer @ ShopSavvy)
44 | * [Sebastiano Poggi](https://twitter.com/seebrock3r) (Android GDE, Android Craftsman @ Novoda)
45 | * [Daniele Bonaldo](https://twitter.com/danybony_) (Android Craftsman @ Novoda)
46 | * [Ivan Morgillo](https://twitter.com/hamen) (Author and Android Developer @ AlterEgo Solutions)
47 | * [Eugenio Marletti](https://twitter.com/workingkills) (Android GDE, Android Lead Developer @ Clue)
48 | * [Sebastiano Gottardo](https://twitter.com/rotxed) (Android GDE, Android Developer @ Musixmatch)
49 | * [Daniele Conti](https://twitter.com/fourlastor) (Android Craftsman @ Novoda)
50 | * [Sasa Sekulic](https://twitter.com/sasa_sekulic) (Author and Android Developer @ AlterEgo Solutions)
51 | * [Matteo Bonifazi](https://twitter.com/mbonifazi) (Android GDE, Android Developer @ Technogym)
52 | * [Francesco Pontillo](https://twitter.com/frapontillo) (Android Developer @ Novoda)
53 | * [Roberto Orgiu](https://twitter.com/_tiwiz) (Android GDE, Android Developer @ Ennova)
54 | * [Wiebe Elsinga](https://twitter.com/welsinga) (Android GDE, Technical Lead Engineer @ Egeniq)
55 | * [Xavier Hallade](https://twitter.com/ph0b) (Android GDE, Application Engineer @ Intel)
56 | * [Tim Messerschmidt](https://twitter.com/SeraAndroid) (Developer Relations @ Google)
57 | * [Florina Muntenescu](https://twitter.com/fmuntenescu) (Android Software Developer @ Upday GmbH)
58 | * [Zsolt Kocsi](https://twitter.com/ZsoltKocsi) (Android Developer @ Route4U)
59 |
60 | > “Learning from others is primary to your success, even doctors seek advice from specialists.”
61 | ― Unarine Ramaru
62 |
--------------------------------------------------------------------------------
/Kotlin-for-Android.md:
--------------------------------------------------------------------------------
1 | ### Kotlin
2 |
3 | - #### Curated Lists
4 |
5 | * [awesome-kotlin](https://github.com/KotlinBy/awesome-kotlin)
6 |
7 | - #### Why Kotlin?
8 |
9 | * [Why Kotlin is my next programming language](https://medium.com/@octskyward/why-kotlin-is-my-next-programming-language-c25c001e26e3#.lppturyxt)
10 | * [The career opportunity called Kotlin
11 | ](https://jeroenmols.com/blog/2017/09/13/kotlinopportunity/?utm_source=twitter.com&utm_medium=social&utm_campaign=the-career-opportunity-called-kotlin-htt&utm_content=9879157)
12 |
13 | - #### Learning Kotlin
14 |
15 | * [Advancing Android Development with Kotlin](https://realm.io/news/oredev-jake-wharton-kotlin-advancing-android-dev/) : Tech Talk by Jake Wharton.
16 | * [Kotlin Koans](http://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Hello,%20world!/Task.kt) : Kotlin Koans are a series of exercises to get you familiar with the Kotlin Syntax.
17 | * [From Java to Kotlin](https://fabiomsr.github.io/from-java-to-kotlin/) : Comparison of how basic programming concepts are done in Java and Kotlin.
18 | * [Kotlin - A deeper look](https://hackernoon.com/kotlin-a-deeper-look-8569d4da36f)
19 | * [Idiomatic Kotlin. Best Practices.](https://blog.philipphauer.de/idiomatic-kotlin-best-practices/)
20 | * [Getting Started with Kotlin and Anko](https://academy.realm.io/posts/getting-started-with-kotlin-and-anko/) : A basic guide for beginners to start and kick-off with Kotlin for Android project.
21 |
22 | - #### Kotlin for Android
23 |
24 | * [Develop your next app with Kotlin](https://www.slideshare.net/arnaudgiuliani/develop-your-next-app-with-kotlin-androidmakersfr-2017) : Tech Talk from AndroidMakersFr 2017
25 | * [Using Kotlin for Android](https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit?hl=en&forcehl=1) : A comprehensive documentation prepared by Jake Wharton.
26 |
27 | - #### Tutorials
28 |
29 | * [Building a Kotlin Project](http://cirorizzo.net/2016/03/04/building-a-kotlin-project/?utm_source=Android+Weekly&utm_campaign=36def426b1-Android_Weekly_195&utm_medium=email&utm_term=0_4eb677ad19-36def426b1-337877153) : These series of posts are focused on building a proper Android project using Kotlin.
30 | * [Introduction to Kotlin: Android Programming For Humans](https://www.toptal.com/software/kotlin-android-language?utm_content=buffer46c5c&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer)
31 |
32 | - #### Advance stuff
33 |
34 | * Exploring Kotlins Hidden Costs: [Part 1](https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-1-fbb9935d9b62) and [Part 2](https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-2-324a4a50b70)
35 |
36 | - #### Migrating to Kotlin
37 |
38 | * [Smooth your migration to Kotlin](https://fernandocejas.com/2017/10/20/smooth-your-migration-to-kotlin/)
39 | * [Adopting Kotlin by Udacity](https://engineering.udacity.com/adopting-kotlin-c12f10fd85d1)
40 |
41 | - #### Lessons from Converting App to Kotlin
42 |
43 | * [Lessons from converting an app to 100% Kotlin](https://medium.com/keepsafe-engineering/lessons-from-converting-an-app-to-100-kotlin-68984a05dcb6#.6kgw0rljf) : Lead engineer on [App Lock](https://play.google.com/store/apps/details?id=com.getkeepsafe.applock) at Keepsafe shares his experiences and learnings.
44 |
45 | - #### Open Source Projects
46 |
47 | * [eraser-map](https://github.com/mapzen/eraser-map) : Privacy-focused mapping application for Android.
48 | * [OpenConference](https://github.com/OpenConference/OpenConference-android)
49 | * [BlackLight](https://github.com/PaperAirplane-Dev-Team/BlackLight)
50 |
51 | - #### Podcasts
52 |
53 | * [Talking Kotlin](http://talkingkotlin.com/) : A bimonthly podcast that covers the Kotlin programming language by JetBrains, as well as related technologies. Hosted by Hadi Hariri.
54 |
55 | - #### Cheat Sheets
56 |
57 | * [From Java To Kotlin](https://github.com/MindorksOpenSource/from-java-to-kotlin) : Your Cheat Sheet For Java To Kotlin
58 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Wahib Ul Haq
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Compiled & Curated List of Resources for Android Developers
2 |
3 | **I am trying to compile and curate a collection of resources which can be pretty handy for Android Developers. Something like an aggregator for all the relevant and vital pieces of information for our fraternity.**
4 |
5 | _Note : This is an on-going list and I will keep updating it ! Feel free to comment or [submit a PR](https://github.com/wahibhaq/ultimate-resources-android-devs/pulls) for changes or additions._
6 |
7 |
8 | #### Learning what it takes to become one
9 |
10 | * Official [resources](http://developer.android.com/index.html) from Google to get you started with designing and developing for Android.
11 |
12 | * [Guide](http://blog.udacity.com/2015/05/become-android-developer.html) about bare bones version of becoming an Android Dev.
13 |
14 | * [Code Path](http://guides.codepath.com/android) is the central crowdsourced resource for complete and up-to-date practical Android developer guides for any topic.
15 |
16 | * This [post](https://www.simform.com/blog/top-resources-to-learn-android?utm_source=Android+Weekly&utm_campaign=15ee59bb7a-Android_Weekly_181&utm_medium=email&utm_term=0_4eb677ad19-15ee59bb7a-337877153) will help you build your app from scratch and guide you through ideation to publishing on Play Store.
17 |
18 | * [Self-Guided Learning Plan](https://docs.google.com/document/d/1LhZfkFv7BQjWFPL_VtyzJOrz5TevSqTSjldmiM2rrOI/) : lists down all courses which are free except for (*). Most are video courses, some useful websites are listed.
19 |
20 |
21 | * ##### Training Videos
22 |
23 | * Training Videos on [Caster.io](https://caster.io) will teach you everything you need to know in order to thrive and survive as an Android Developer.
24 |
25 | * ##### Ebooks
26 |
27 | * [The Busy Coder's Guide to Android Development](https://commonsware.com/Android/)
28 | * [Android Programming: The Big Nerd Ranch Guide](http://www.amazon.com/gp/product/0134171454?sa-no-redirect=1&pldnSite=1)
29 | * [Android Activity Book](https://gumroad.com/l/androidactivitybook) & [Android Theory Book](https://gumroad.com/l/androidtheorybook) can teach you the basics of Android development so you can start creating high quality applications quickly with high quality.
30 |
31 |
32 |
33 | #### Best practices shared by others to help you
34 |
35 | * ##### General Lessons
36 |
37 | * [Best practices in Android development](https://github.com/futurice/android-best-practices) is a collection of lessons learned from Android developers in Futurice.
38 | * This is the [app](https://github.com/artem-zinnatullin/qualitymatters) that follows all principles of [Android Development Culture Document](http://artemzin.com/blog/android-development-culture-the-document-qualitymatters/).
39 | * Some of the best practises shared by experts as blog posts : [June Edition](https://medium.com/@stepango/android-development-some-of-the-best-practices-jun-2016-edition-e505a0558a71#.56uur8lew)
40 |
41 | * ##### Architecture
42 |
43 | * [Android Architecture Blueprints](https://github.com/googlesamples/android-architecture) from Google.
44 | * [Getting Clean, Keeping Lean](https://speakerdeck.com/hitherejoe/getting-clean-keeping-lean?utm_content=buffer4c648&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer) from [Joe Birch](https://twitter.com/hitherejoe) of Buffer.
45 |
46 | * ##### Pro Dev Tips
47 |
48 | * [Dev Tips from Sebs](https://medium.com/sebs-top-tips)
49 | * [Internet of terms](https://www.youtube.com/playlist?list=PLsICxg8PM_ctYzI_aYbs7eX4asunmnMqm)
50 | * [30 things that experience made me learn the hard way](https://medium.com/@cesarmcferreira/building-android-apps-30-things-that-experience-made-me-learn-the-hard-way-313680430bf9#.oawutveuh) : Some of the things learned along the way that [Cesar](https://twitter.com/cesarmcferreira) wants to share with you.
51 |
52 | * ##### Necessary Evaluation Criterias
53 |
54 | * [Android Audit](http://karumi.github.io/AndroidAudit/) : You Android app as a crime scene!!!
55 |
56 | * ##### Valuable Insights shared by Popular Apps
57 |
58 | * [Instagram - 4 years later](https://engineering.instagram.com/instagram-android-four-years-later-927c166b0201#.lx44n5yry) : Tyler Kieft shared how Instagram radically improved their Android App in 4 years.
59 |
60 | * ##### Interesting Panel Dicussions
61 |
62 | * [The Journey of Android Engineers: Panel Discussion and Q&A](https://www.youtube.com/watch?v=Ab8H-HfhSmM) : This panel discussion was part of a "Square Presents" event from February 18th, 2016.
63 |
64 | * ##### Supporting Different Languages and Locales
65 |
66 | * [Developing for the Rest of the World] (https://speakerdeck.com/ericfrohnhoefer/developing-for-the-rest-of-the-world) : This talk provide tips for developing apps intended for an international audience.
67 |
68 | * ##### Android Studio
69 |
70 | * [50 Tips, Tricks & Resources you should be familiar with](https://medium.com/@mmbialas/50-android-studio-tips-tricks-resources-you-should-be-familiar-with-as-an-android-developer-af86e7cf56d2#.bm80u3bgd) : This article list down helpful tips, tricks, shortcuts and resources for Android Studio that will improve your overall efficiency and performance.
71 | * Android Studio Tips of the day is a series shared by Philippe Breault (GDE). [Roundup #1](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/), [Roundup #2](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/) and [Roundup #3](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-3/) (It's more about debugging!).
72 |
73 |
74 |
75 | #### Stuff I can read to revise my knowledge
76 |
77 | * [Android: the Platform, the Framework, and the Way of Life](http://zeroturnaround.com/rebellabs/android-the-platform-the-framework-and-the-way-of-life/)
78 |
79 |
80 |
81 | #### Regular Updates, Banter & Articles
82 |
83 | * [Fragmented Podcast](http://fragmentedpodcast.com)
84 | * [Android Dev Digest](https://www.androiddevdigest.com)
85 | * [Android Weekly](http://androidweekly.net)
86 | * [Android Developers](https://twitter.com/androiddev?lang=en)
87 | * [News, tips, and tricks directly from the Android team](https://twitter.com/Android)
88 | * [Android Community](https://twitter.com/androids)
89 | * [Android Dialogs](https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug)
90 | * [Grokking Android](http://www.grokkingandroid.com)
91 | * [Styling Android](https://blog.stylingandroid.com)
92 | * [AndroidDev Reddit](https://twitter.com/androiddevfeed)
93 | * [Novoda Blog](https://www.novoda.com/blog/)
94 |
95 | #### Podcasts
96 |
97 | * [The Context](https://github.com/artem-zinnatullin/TheContext-Podcast)
98 |
99 | #### Collection of Android Talks
100 |
101 | * [Droidtalks](http://www.droidtalks.pro/) is a very nice collection of talks about Android Development organized by Topics, Events and Creators.
102 |
103 | #### Design and UX
104 |
105 | - ##### Material Design
106 |
107 | * [Material Design Glossary](https://medium.com/tradecraft-traction/speak-intellegently-about-your-app-anatomy-material-design-glossary-c6769de0eb63#.3oqazmkft) : Speak Intelligently About Your App Anatomy (Material Design Glossary).
108 | * [Material Design everywhere using the Android Support Libs](https://realm.io/news/kau-michael-wolfson-material-design-everywhere/) : Mike Wolfson highlights some important components of these libraries and demonstrates how to use them effectively.
109 |
110 | - ###### Navigation Drawer
111 |
112 | * A series of [articles](https://medium.com/android-news/navigation-drawer-styling-according-material-design-5306190da08f#.h7gxpgkd4) digging on the Material Design Navigation Drawer and a [github project](https://github.com/Sottti/MaterialDesignNavDrawer) to see the code how it's done.
113 | * [Playing With NavigationView](http://www.technotalkative.com/part-4-playing-with-navigationview/)
114 | * [Fragment Navigation Drawer](https://guides.codepath.com/android/Fragment-Navigation-Drawer)
115 |
116 | - ##### Android Design
117 |
118 | - ###### Design Library
119 | * [CheeseSquare](https://github.com/chrisbanes/cheesesquare) : Demos the new Android Design library.
120 |
121 | - ###### Constraint Layout
122 | * ConstraintLayout, Inside and Out [Part 1](http://wiresareobsolete.com/2016/07/constraintlayout-part-1/) and [Part 2](http://wiresareobsolete.com/2016/07/constraintlayout-part-2/)
123 |
124 | - ###### Themes and Styles
125 | * [Themes and Styles demystified - Google I/O Talk](https://www.youtube.com/watch?v=TIHXGwRTMWI)
126 |
127 | - ###### Tools and Apps to Help
128 | * [Keylines](https://github.com/ragunathjawahar/keylines) : Painlessly build and ship apps that conform to the Material design specifications.
129 |
130 |
131 |
132 |
133 | #### Third-party Libraries
134 |
135 | * This represents the List of ["must have" libraries](https://github.com/codepath/android_guides/wiki/Must-Have-Libraries?utm_source=Android+Weekly&utm_campaign=810cc9c6b5-Android_Weekly_187&utm_medium=email&utm_term=0_4eb677ad19-810cc9c6b5-337877153) that are extremely popular and are often used in almost any Android project.
136 |
137 | * [Android Arsenal](http://android-arsenal.com) is a Portal for Android tools and libraries.
138 |
139 | * Discover top Android libraries based on their popularity in high-ranking apps on [Libtastic](http://www.libtastic.com).
140 |
141 | * Open Source libraries from [Square](http://square.github.io/#android) (We just can't thank them enough !)
142 |
143 | * A curated [list 1](https://github.com/wasabeef/awesome-android-ui) & [list 2](https://github.com/snowdream/awesome-android) of awesome Android UI/UX libraries.
144 |
145 | * Stuff about Writing and Publishing Libraries
146 |
147 | * [Jitback.io](https://jitpack.io) : Easy to use package repository to publish your JVM and Android libraries on Git.
148 |
149 |
150 | * ##### Fitness
151 | * [RxFit](https://github.com/patloew/RxFit)
152 |
153 | * ##### Lifecycle Handling
154 | * [RxLifecycle](https://github.com/trello/RxLifecycle)
155 |
156 | * ##### Logging
157 | * [Hugo](https://github.com/JakeWharton/hugo)
158 | * [Lynx](https://github.com/pedrovgs/Lynx) : see LogCat output right in the app, useful for QAs and developers
159 | * [DebugOverlay](https://github.com/sockeqwe/debugoverlay) : A tiny window overlay to log app internal on top of your android app.
160 | * [Timber](https://github.com/JakeWharton/hugo) : A logger with a small, extensible API which provides utility on top of Android's normal Log class.
161 | * [Frodo](https://github.com/android10/frodo) : Android Library for Logging RxJava Observables and Subscribers.
162 | * [Hugo](https://github.com/JakeWharton/hugo) : Annotation-triggered method call logging for your debug builds.
163 |
164 | * ##### Debugging
165 | * [LeakCanary](https://github.com/square/leakcanary) : detect memory leaks without IDE! Must have for QAs and developers.
166 | * [TinyDancer](https://github.com/brianPlummer/TinyDancer) — see frame rate right on your screen. Must have for QAs and developers.
167 |
168 | * ##### Improved Architecture
169 | * [LightCycle](https://github.com/soundcloud/lightcycle) : LightCycle is an Android library that helps break logic out of Activity and Fragment classes into small, self-contained components called LightCycles. It is provided by Soundcloud.
170 |
171 | * ##### Location
172 | * [ReactiveLocation](https://github.com/mcharmas/Android-ReactiveLocation) : Small library that wraps Google Play Service API in brilliant RxJava Observables reducing boilerplate to minimum.
173 |
174 | * ##### Data Access Layer
175 | * [GreenDAO](https://github.com/greenrobot/greenDAO) : Light & fast ORM solution for Android that maps objects to SQLite databases.
176 | * [Apollo-Android](https://github.com/apollographql/apollo-android) : A strongly-typed, caching GraphQL client for Android, written in Java.
177 |
178 | * ##### Code Generation / Reducing Boilerplate code
179 | * [AutoValue](https://github.com/google/auto/tree/master/value) : Value types in Java are hard. Well, not hard, but tedious. Google’s AutoValue library makes them much easier. This [article](http://ryanharter.com/blog/2016/03/22/autovalue/) provides nice overview.
180 | * [Auto Parcel](https://github.com/frankiesardo/auto-parcel) : [AutoValue](https://github.com/google/auto/tree/master/value) extension that enables Parcelable values generation.
181 | * [Auto Value Json](https://github.com/rharter/auto-value-gson) : [AutoValue](https://github.com/google/auto/tree/master/value) extension to add Gson De/Serializer support.
182 | * [Esperando](http://dkunzler.github.io/esperandro/) : Easy SharedPreference Engine for Android. Helps in avoiding a lot of boilerplate code & it uses an Annotation Processor to generate a class implementing the defined interface at compile time.
183 | * [FuckBoilerplate](https://github.com/FuckBoilerplate) : Collection of several resources to reduce boilerplate.
184 | * [Dart](https://github.com/f2prateek/dart) : Extra "injection" library for Android which uses annotation processing to generate code that does direct field assignment of your extras.
185 | * [Icepick](https://github.com/frankiesardo/icepick) : Android library that eliminates the boilerplate of saving and restoring instance state. It uses annotation processing to generate code that does bundle manipulation and key generation, so that you don't have to write it yourself.
186 | * [DeepLinkDispatch](https://github.com/airbnb/DeepLinkDispatch) : A simple, annotation-based library for making deep link handling better on Android.
187 | * [SqlDelight](https://github.com/square/sqldelight) : Generates Java models from CREATE TABLE statements.
188 |
189 |
190 | * ##### Images Loading & Caching
191 | * [Glide](https://github.com/bumptech/glide) : An image loading and caching library for Android focused on smooth scrolling.
192 | * [Picasso](https://github.com/square/picasso) : A powerful image downloading and caching library for Android.
193 | * [Fresco](http://frescolib.org/) : An Android library from Facebook for managing images and the memory they use.
194 |
195 | * ##### Image Processing
196 | * [AndroidPhotoFilters](https://github.com/Zomato/AndroidPhotoFilters) : AndroidPhotoFilters aims to provide fast, powerful and flexible image processing instrument for creating awesome effects on any image media.
197 | * [uCrop](https://github.com/Yalantis/uCrop) : This project aims to provide an ultimate and flexible image cropping experience.
198 | * [9-Patch-Resizer](https://github.com/redwarp/9-Patch-Resizer) : Automatically resizes and compresses images.
199 | * [GIMP](https://www.gimp.org/) : Open source image editing
200 | * [Inkscape](https://inkscape.org/en/) : Open source vector image editing.
201 | * [Optipng](http://optipng.sourceforge.net/) : Optimize PNG files.
202 |
203 | * ##### Video
204 | * [Exoplayer](https://github.com/google/ExoPlayer) : ExoPlayer is an application level media player for Android, allow playing audio and video both locally and over the Internet. Supports features like Dynamic adaptive streaming over HTTP (DASH), SmoothStreaming and Common Encryption.
205 | * [Easy Video Player](https://github.com/afollestad/easy-video-player) : Easy Video Player is a simple but powerful view that you can plugin to your apps to quickly get video playback working.
206 |
207 | * ##### JSON Parsing and Serialization
208 | * [LoganSquare](https://github.com/bluelinelabs/LoganSquare) : Screaming fast JSON parsing and serialization library for Android.
209 | * [Moshi](https://github.com/square/moshi) : Moshi is a modern JSON library for Android and Java from @square. It makes it easy to parse JSON into Java objects.
210 |
211 | * ##### Reactive Programming
212 | * [Agera](https://github.com/google/agera) : Agera is a set of classes and interfaces to help write functional, asynchronous, and reactive applications for Android.
213 |
214 | * ##### MVP
215 | * [Nucleus](https://github.com/konmik/nucleus) : A simple Android library, which utilizes the Model-View-Presenter pattern to properly connect background tasks with visual parts of an application.
216 | * [Mosby](http://hannesdorfmann.com/mosby/) : A Model-View-Presenter library for modern Android apps.
217 | * [DroidMVP](https://github.com/andrzejchm/DroidMVP) : Small Android library to help you incorporate MVP, Passive View and Presentation Model patterns in your app.
218 |
219 | * ##### Graph/Charts
220 | * [MPAndroidChart](https://github.com/PhilJay/MPAndroidChart) : A powerful Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, dragging and animations.
221 | * [Hellochart](https://github.com/lecho/hellocharts-android) : Charts/graphs library for Android compatible with API 8+, several chart types with support for scaling, scrolling and animations.
222 |
223 | * ##### Permissions
224 | * [Dexter](https://github.com/Karumi/Dexter) : Android library that simplifies the process of requesting permissions at runtime.
225 |
226 | * ##### Device Info
227 | * [EasyDeviceInfo](https://github.com/nisrulz/easydeviceinfo) : Android library to get device information in a super easy way.
228 |
229 | * ##### Showing Hints
230 | * [HintCase](https://github.com/Nescafemix/hintcase) : HintCase is a library for Android that will help you create really awesome hints/tips for your apps.
231 |
232 | * ##### Custom Views and Animations
233 | * [Depth-Lib](https://github.com/danielzeller/Depth-LIB-Android-) : A library that gives depth to Views.
234 | * [Elegant-Underline](https://github.com/romainguy/elegant-underline) : Exploring possible implementations for better underline text decoration on Android. There's a detailed [article](https://medium.com/@romainguy/a-better-underline-for-android-90ba3a2e4fb#.qq0rpmgmb) on this as well.
235 | * [Focus Resize](https://github.com/borjabravo10/FocusResize) : A custom animation with scroll listener to recycler views.
236 | * [DiscreteSlider](https://github.com/lawloretienne/DiscreteSlider) : A slider that allows a user to select a value at one of the specified tickmarks.
237 | * [Page Indicator View](https://github.com/romandanylyk/PageIndicatorView) : An page indicator for Android ViewPager.
238 | * [Epoxy](https://github.com/airbnb/epoxy) : Epoxy is an Android library for building complex screens in a RecyclerView.
239 | * [Groupie](https://github.com/Genius/groupie) : Groupie helps you display and manage complex RecyclerView layouts.
240 | * [Lottie](https://github.com/airbnb/lottie-android) : Kib from Airbnb to render After Effects animations natively on Android and iOS. Here's a [blog post](https://www.prolificinteractive.com/2017/09/05/design-guide-winning-developers-hearts-part-1-use-lottie/) explaining how to use it.
241 |
242 | * ##### Database
243 | * [Comparison popular ORM libraries](https://github.com/Rexee/AndroidDatabaseLibraryComparison) : A test between a few of the popular libraries running a speed test on how fast they load and save data.
244 | * [greenDAO](http://greenrobot.org/greendao/) : Android ORM for your SQLite database.
245 |
246 | * ##### Simplifying Communication between building blocks
247 | * [EventBus](https://github.com/greenrobot/EventBus) : Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality. There's a nice [comparison](https://github.com/greenrobot/EventBus/blob/master/COMPARISON.md) between Otto and EventBus.
248 | * [Otto](http://square.github.io/otto/) : An enhanced event bus with emphasis on Android support.
249 | * [RxAndroid](https://github.com/ReactiveX/RxAndroid) : [RxJava](https://github.com/ReactiveX/RxJava) bindings for Android.
250 |
251 | * ##### Fonts
252 | * [Calligraphy](https://github.com/chrisjenx/Calligraphy) : Custom fonts in Android the easy way.
253 |
254 | * ##### Communication
255 | * [Slyc Messaging](https://github.com/Slyce-Inc/SlyceMessaging) : A messaging library for Android.
256 |
257 | * ##### Crash Reports
258 | * [ACRA](https://github.com/ACRA/acra) : ACRA is a library enabling Android Application to automatically post their crash reports to a GoogleDoc form. [Acralyzer](https://github.com/ACRA/acralyzer) is the backend which needs to be hosted to display Acra Reports.
259 |
260 | * ##### UI Tests
261 | * [Espresso](https://google.github.io/android-testing-support-library/docs/espresso/index.html) : Use Espresso to write concise, beautiful, and reliable Android UI tests. It's part of the [Android Testing Support Lib](https://google.github.io/android-testing-support-library/).
262 | * [OkReplay](https://github.com/airbnb/okreplay) : Automatically record and replay OkHttp network interaction through your Android application.
263 | * [Betamax](https://github.com/betamaxteam/betamax) : Betamax is a tool for mocking external HTTP resources such as web services and REST APIs in your tests.
264 | * [Test-Butler](https://github.com/linkedin/test-butler) : Reliable Android testing, at your service. Provides a reliable solution that would let us rely on our tests to inform us when there was a problem with the app, not the testing environment.
265 |
266 |
267 | * ##### Dependency Injection
268 | * [Dagger2](https://github.com/google/dagger) : A fast dependency injector for Android and Java.
269 | * [Toothpick](https://github.com/stephanenicolas/toothpick) : A scope tree based Dependency Injection (DI) library for Java.
270 |
271 |
272 | #### Third-party tools
273 |
274 | - ##### Debugging
275 |
276 | * [Stetho](a powerful new debugging platform for Android) : A powerful new debugging platform for Android developed by Facebook. It can help in Inspecting Network Connections, Querying SQLite Databases or Manipulating Your App’s Preferences.
277 | * [CharlesProxy](https://www.charlesproxy.com) : Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet.
278 | * [Android Debug Database](https://github.com/amitshekhariitbhu/Android-Debug-Database) : Android Debug Database allows you to view databases and shared preferences directly in your browser in a very simple way.
279 |
280 | - ##### Static Code Analysis
281 |
282 | * [Infer](http://fbinfer.com) : Facebook Infer is a static analysis tool - if you give Infer some Objective-C, Java, or C code, it produces a list of potential bugs.
283 | * [Gnag](http://gnag.watch/) : A Gradle plugin that helps facilitate GitHub PR checking and automatic commenting of violations.
284 |
285 | - ##### Avoiding the dreaded 65K limit
286 |
287 | * [Methods Count](http://www.methodscount.com) : Android libraries are great, but they come at a cost. Use this tool to avoid the dreaded 65K method limit of the DEX file format!
288 |
289 | - ##### Design and UI/UX
290 |
291 | * [Shape Shifter](https://shapeshifter.design/) : For those who want to integrate *AnimatedVectorDrawables* in the apps. This tool makes it quite easy to create property animations for each individual layer and organize them via a timeline. Alex explained the features [here](https://plus.google.com/+AlexLockwood/posts/AtDRT4QxFs2?utm_source=Android+Weekly&utm_campaign=db675e4c05-android-weekly-263&utm_medium=email&utm_term=0_4eb677ad19-db675e4c05-337913985).
292 |
293 | - ##### Localization Services
294 |
295 | * [Crowdin](https://crowdin.com/page/android-localization) : Translate and manage the process better, faster, and smarter. Crowdin is the tool that will make localization a part of your development quickly and with less effort.
296 |
297 | - ##### 3rd Party Libs
298 |
299 | * For keeping a check on latest version of 3rd party libs added in Gradle, you can use [Gradle,please](http://gradleplease.appspot.com) in order to avoid checking individually on the official pages. Another way is to use [gradle-version-plugin](https://github.com/ben-manes/gradle-versions-plugin) which is a Gradle plugin to discover dependency updates.
300 | * [Android Library Finder](https://github.com/cesarferreira/alfi) : Search through thousands of android libraries that can help you scale your projects elegantly.
301 |
302 |
303 | - ##### Firebase.io
304 |
305 | - ###### Open Source Projects
306 |
307 | * [Climb-Tracker](https://github.com/google/climb-tracker) : Climbing tracker app for Android and Android Wear, using Firebase.
308 |
309 | - ##### Giving App Demos
310 |
311 | * [Vysor](https://www.vysor.io) : It offers a nice [Chrome Extension](https://chrome.google.com/webstore/detail/vysor/gidgenkbbabolejbgbpnhbimgjbffefm?authuser=1) which allows you to easily view and control your Android on your computer. You can use it to show demo with screen sharing.
312 |
313 | - ##### Apk Optimizers
314 |
315 | * [Redex](https://github.com/facebook/redex) : Android bytecode (dex) optimizer originally developed at Facebook. An APK optimized by ReDex should be smaller and faster than its source.
316 |
317 | #### Android Internals
318 |
319 | - ##### Compiler
320 |
321 | * [Jack and Jill](http://tools.android.com/tech-docs/jackandjill) : New Android toolchain that comprises a compiler from Java programming language source to the Android dex file format. Very nice [post](http://trickyandroid.com/the-dark-world-of-jack-and-jill/) explaining it.
322 |
323 | * [From Code to Dex](https://medium.com/upday-devs/from-code-to-dex-a-compilation-story-e1d62f63ad6a#.423ujz7ph) : It tells you about the journey that your app’s code goes through, on its way to becoming part of dex files.
324 |
325 |
326 | - ##### Java 8
327 |
328 | * Talk by Jack Wharton on [Exploring Java's Hidden Costs](https://realm.io/news/360andev-jake-wharton-java-hidden-costs-android/)
329 |
330 | - ##### ProGuard
331 |
332 | * [An introduction to how ProGuard works](https://speakerdeck.com/scompt/proguard)
333 |
334 | #### Continuous Integration
335 |
336 | - ##### Setup
337 |
338 | * [How to set up a Continuous Integration server for Android development ](https://medium.com/@pamartineza/how-to-set-up-a-continuous-integration-server-for-android-development-ubuntu-jenkins-sonarqube-43c1ed6b08d3#.eflm04igy) : It summarizes the installation steps for any developer that may be interested in setting up its own CI server involving Ubuntu + Jenkins + SonarQube.
339 |
340 |
341 | #### Third-party useful plugins/projects
342 |
343 | - ##### Static code analysis
344 |
345 | * [Android-Check](https://github.com/noveogroup/android-check) : Static code analysis plugin for Android project. (Checkstyle, PMD)
346 | * [Eror Prone](http://errorprone.info) : Catch common Java mistakes as compile-time errors. Developed by Google.
347 | * [android-project-example](https://github.com/noveogroup/android-project-example) : It is project for fast create android applications, using Checkstyle, FindBugs, PMD and lint.
348 | * A good collection can be found [here](https://github.com/mcandre/linters/blob/master/README.md#java) as well.
349 | * [Android Lint Checks](https://github.com/vokal/Android-Lint-Checks)
350 |
351 |
352 |
353 | #### Rules, Code Style and Best Practices
354 |
355 | * [Code Style for Contributors](http://source.android.com/source/code-style.html)
356 | * [Google Java Style](http://google.github.io/styleguide/javaguide.html)
357 | * [Android Project Guidelines](https://github.com/bufferapp/android-guidelines/blob/master/project_style_guidelines.md) from [Buffer](https://buffer.com)
358 | * [Java Code Styles from Square](https://github.com/square/java-code-styles) : IntelliJ IDEA code style settings for Square's Java and Android projects.
359 | * [Android Style](https://github.com/Raizlabs/Raizlabs-Android-Style)
360 |
361 | #### Experts & Devs to follow
362 |
363 | * [Droids on Twitter](https://github.com/wahibhaq/ultimate-resources-android-devs/blob/master/Droids-to-follow-on-twitter.md) : I have personally compiled this list.
364 |
365 | #### Kotlin
366 |
367 | * [Kotlin For Android](https://github.com/wahibhaq/ultimate-resources-android-devs/blob/master/Kotlin-for-Android.md) : Personally curated list of resources focusing only on Kotlin.
368 |
369 | #### Rx
370 |
371 | * [RxJava for Android](https://github.com/wahibhaq/ultimate-resources-android-devs/blob/master/RxJava-for-Android.md) : Personally curated list of learning resources for this RxJava stuff and how it applies to Android.
372 |
373 |
374 |
375 |
376 | #### Communities and User Groups
377 |
378 | * [Droidcon](https://twitter.com/droidcon)
379 |
380 |
381 |
382 | #### Tracking Droidcon events
383 |
384 | * [Droidcon Italy Apr-2016](http://it.droidcon.com/2016/) : [Recap #1](http://jeroenmols.com/blog/2016/04/08/droidconit/) by [Jeroen](https://twitter.com/molsjeroen) and [Recap #2](http://www.kiodev.com/droidcon-italy-2016/) by [Kelly](https://twitter.com/KellyShuster).
385 |
386 | * [Droidcon Berlin June-2016](http://droidcon.de) : [Recap #1](http://jeroenmols.com/blog/2016/06/18/droidconde/) by [Jeroen](https://twitter.com/molsjeroen).
387 |
388 | * [Droidcon London October-2016](http://uk.droidcon.com/) : [Recap #1](https://medium.com/@bruno.aybar/my-journey-to-droidcon-d1e0e78467dd#.afjnqmo5q) by [Bruno Aybar](https://twitter.com/brunoaybarg)
389 |
390 |
391 |
392 | #### Open Source
393 |
394 | - ##### Bootstrap
395 | * [Android Bootstrap](http://www.androidbootstrap.com)
396 |
397 | - ##### Frameworks
398 | * [Rosie](https://github.com/Karumi/Rosie) : Android framework to create applications following the principles of [Clean Architecture](https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html).
399 | * [Conductor](https://github.com/bluelinelabs/Conductor) : A small, yet full-featured framework that allows building View-based Android applications.
400 |
401 | - ##### Other Awesome Apps out there
402 | * [Book Dash App](https://github.com/spongebobrf/BookdashAndroidApp)
403 | * [CleanFit] (https://github.com/Zireck/CleanFit) : A Material Design Nutrition App implementing Clean Architecture.
404 |
405 | - ##### Other Programming languages for Android
406 | * [Kotlin](https://kotlinlang.org) : Kotlin is a Statically typed programming language for the JVM & Android. It's 100% interoperable with Java.
407 |
408 |
409 |
410 |
411 | #### Other Collections
412 |
413 | - ##### Resources Lists
414 |
415 | * [Awesome Android](https://github.com/JStumpp/awesome-android)
416 | * [Android Architecture](https://github.com/ziem/android-architecture-resources)
417 | * [RxAndroidLibs](https://github.com/zsoltk/RxAndroidLibs) : A curated list of libraries to aid reactive development on Android.
418 |
419 |
420 | - ##### Community
421 |
422 | * [Android Community](https://github.com/tonilopezmr/android-community)
423 |
424 | - ##### Security
425 |
426 | * [Android Security Awesome](https://github.com/ashishb/android-security-awesome)
427 |
428 |
429 | > Success is simple. Do what's right, the right way, at the right time ~ Arnold H. Glasow
430 |
--------------------------------------------------------------------------------
/RxJava-for-Android.md:
--------------------------------------------------------------------------------
1 | ### RxJava for Android
2 |
3 | - #### Learning Resources
4 |
5 | * [Official Documentation](http://reactivex.io/intro.html)
6 | * [Grokking RxJava Series](http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/)
7 | * [RxAndroid Basics](https://medium.com/@kurtisnusbaum/rxandroid-basics-part-1-c0d5edcf6850#.wucvcwpgp)
8 | * [Crunching RxAndroid](https://medium.com/crunching-rxandroid/crunching-rxandroid-intro-c27eb6f009ea#.3t4l29m8c)
9 | * [Intro to RxJava](https://github.com/Froussios/Intro-To-RxJava) based on the book [Intro to Rx](http://introtorx.com/Content/v1.0.10621.0/00_Foreword.html) for .NET
10 |
11 | - #### Understanding the basics
12 | * [Reactive Programming explained to a 5 year old](https://edgecoders.com/how-to-explain-reactive-programming-to-a-5-year-old-e802c5385aee#.5qrj9fea0)
13 | * [What is Reactive Programming](https://medium.com/reactive-programming/what-is-reactive-programming-bc9fa7f4a7fc#.ss9jjqsii)
14 | * [Building a Reactive Mindset](https://upday.github.io/blog/reactive_mindset_burgers/) : Very creative way of explaining reactive programming.
15 | * [A Journey into Reactive Streams](https://medium.com/@kvnwbbr/a-journey-into-reactive-streams-5ee2a9cd7e29#.9muefrxnd)
16 | * [Notes on Reactive Programming - Part 1](https://spring.io/blog/2016/06/07/notes-on-reactive-programming-part-i-the-reactive-landscape) & [Part2](https://spring.io/blog/2016/06/13/notes-on-reactive-programming-part-ii-writing-some-code)
17 | * [Understanding the enigma of RxJava](https://hackernoon.com/understanding-the-enigma-of-rxjava-part-1-8e04a456d9de#.icfo33s03)
18 | * [Introduction to Reactive Programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) : Author wrote this practical tutorial keeping focus on how to think in Reactive, so that devs can get started.
19 | * [ABCs of RxJava](https://www.slideshare.net/FlorinaMuntenescu/the-abcs-of-rxjava-64925005) : The aim of this talk is first of all to create the reactive programming mindset; to explain what an Observable and a Subscriber are; and to give a bit of insight in the magic of thread handling in RxJava.
20 |
21 | - #### Practising and becoming a Pro
22 |
23 | * [Learning RxJava for Android by example](https://github.com/kaushikgopal/RxJava-Android-Samples)
24 |
25 | - #### Switching from RxJava1 to RxJava2
26 |
27 | * A kind of basic [cheat sheet](https://github.com/petrnohejl/Java/blob/master/rxjava2.md).
28 | * [RxJava2 Android Examples](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples) : Migration From RxJava 1 to RxJava 2 - How to use RxJava 2 in Android
29 |
30 | - #### Resources for quick help
31 |
32 | * [List of Operators](https://github.com/ReactiveX/RxJava/wiki/Alphabetical-List-of-Observable-Operators)
33 | * [Interactive diagrams of Rx Observables](http://rxmarbles.com)
34 |
35 | - #### 3rd Party Libs
36 |
37 | * [RxAndroidLibs](https://github.com/zsoltk/RxAndroidLibs) : A curated list of libraries to aid reactive development on Android.
38 | * [RxRelay](https://github.com/JakeWharton/RxRelay) : RxJava types that are both an Observable and an Action1.
39 |
40 | - #### Initiatives
41 |
42 | * [Reactive Streams](http://www.reactive-streams.org) : Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure.
43 | * [Reactive Manifesto](http://www.reactivemanifesto.org)
44 |
45 | - #### Open-source sample projects
46 |
47 | * [Reactive Burgers](https://github.com/florina-muntenescu/ReactiveBurgers) : Code example for [The ABCs of RxJava](http://www.slideshare.net/FlorinaMuntenescu/the-abcs-of-rxjava-64925005)
48 |
49 | - #### Other Lists
50 |
51 | * [Awesome RxJava](http://awesomeawesome.party/awesome-rxjava)
52 |
--------------------------------------------------------------------------------