Whether you are new to Android or an experienced developer, everyone needs advice on resources or new libraries to improve and simplify development life.
Since Google released the Android Nanodegree on Udacity, I expect more and more new developers to join the Android Developers community.
Of course, their first destination for finding the best tutorials, books and articles should be Sitepoint's Android channel. I especially recommend SitePoint's current 'Introduction to Lollipop' video series.
1. Organizing Code
Not all developers have the same coding style, which makes it difficult to understand or work with another developer's code. Consistent coding styles make it easer for other developers to read your code by sticking to a standard set of rules.
Since Android uses Java, take a look at Google's Java Style Guide. It's a complete definition of Google's coding standards for Java source code. If you come from a PHP background, consider it the unofficial PSR standard.
I recommend Android Best Practices by Futurice, which contains guidelines about things like how to consume web services, organizing Java files into packages, naming resources for better readability, what to use for testing, dealing with data storage and much more.
Both of the above are guidelines about writing code, package organization and libraries to use etc. Android Boilerplate goes beyond this and not only tells you what to use, but "forces" you to use best practice such as unit testing, working with RESTful resources and dependency injection.
2. Using Libraries
Keeping source code DRY (Don't Repeat Yourself) and not reinventing the wheel is something every developer aims for. In their guidelines, Futurice says:
"Don't write your own HTTP client, use Volley or OkHttp libraries".
The same rule applies to everything, not just HTTP clients. Awesome Android is a curated list of libraries, categorized by their functionality.
Android Arsenal is, well, a great arsenal of Android libraries, tools and apps. You can find different libraries, decompilers, emulator and more to help you develop easier.
Awesome Android Security is worth looking at if you care about app security. You can find tools such as decompilers and reverse engineering tools (use with care), analysis tools and more.
3. Designing Better Apps
Users judge the quality of your app within the first 30 seconds. Even if your app is a life-saving app, if it's not eye-catching then it is judged poorly.
SitePoint has published plenty of Android design articles, but I would most recommend 10 Essential Material Design Resources and Tutorials by Ada Ivanoff and Material Design with the Android Design Support Library by Joyce Echessa. They are both detailed and will help you design a better app within current Google guidelines.
Awesome Android UI is another awesome list of UI libraries that you can use to make your app more eye-catching.
Androiduiux is a blog, regulary updated with articles on following the best practices for designing the UI and UX of your app.
4. "Me No Speak Java"
If you happen to be a C# developer, Xamarin.Android is worth looking at as it is built upon the open source verion of C#, Mono. The resulting code will be similar to native Java code and is more optimized than some hybrid options. SitePoint has published x articles on Xamarin development.
5. Staying Up To Date
There are many experienced developers writing regular blog posts about Android. Probably the most important of all are the Android Oficial Blog and Android Developers Blog. Both of them are official blogs curated by those who work for the Android team.
Android Weekly is a free newsletter that helps you stay up to date with Android Development. Similar are Android Central and Android Authority, they are both filled with news about Android, including reviews and product recommendations.
If you know any other useful resources I've missed, then please share them below.
Aldo is a Code-Lover and a student of Computer Engineering from Albania. His short-term goal is that of becoming a full-stack developer, focusing on Android, Ruby technologies and DevOps techniques.