Learning Android Development in 2018 [Beginner’s Edition]
Before writing a single word, I wish you all a very Happy New Year!!!
A lot of big announcements happened in 2017 for Android that has set up 2018 for a lot of action and innovation.
If you want to become more productive in 2018 or to help yourself get into more innovative projects then follow this guide.
But wait, what if you’re just beginning your career as an Android Developer?
Don’t worry, we’ll cover this first before moving to the advanced stuff.
So, if you’ve just started your career as an Android developer or planning to learn Android app development, follow these steps. [If you are an intermediate Android developer, you can skip this part and jump to Part 2 (coming soon). But if you want to recap the key concepts, keep reading.]
0. Teach yourself Java
Yeah, you read that right. I’ve intentionally marked this step as STEP 0 because before learning Android Application Development you must have some knowledge of Java.
Okay, okay, I can hear you shouting at me now asking —
“I’ve heard from many developers saying Kotlin is a much better option than Java to develop Android apps. Also Google has announced Kotlin as an official language for programming Android apps. Then why the hell are you telling me to learn Java first???” 😡 😡
Just calm down, dude! I’m not saying that you shouldn’t learn Kotlin. I’m just recommending you to learn Java first because you are new to Android development and Java is still a big part of Android. And there are not enough resources to learn all the Android APIs in Kotlin. Most of the tutorials you’ll find on Android Development beginner stuff will be in Java. So, if you know Java then it would be good for you to understand what the Java code is doing without you plugging the code into the Java to Kotlin Convertor.
So teach yourself Java first (if you are new to Android development) before jumping into Kotlin straight away.
Another good option is Thinking in Java. Get this book from here.
1. Get a book on Android Development or Enroll for an online course
After learning Java, it’s time to get a book on Android Development or enroll for an online course for the same.
I would recommend Android Programming: The Big Nerd Ranch Guide book to start with. This book is an excellent introduction to Android development. It’s based on Big Nerd Ranch’s popular Android boot camps. You can use this book as a practical Android development guide as it provides great code samples with clear explanations of the key concepts.
I would also recommend Head First Android Development. Though this book is a bit outdated, it explains the key concepts in a very interesting way. If you’re looking for a Head First style book on Android then you’ll enjoy reading this book.
If you prefer to learn from video tutorials, I would recommend you to enroll for below courses.
- Android Development for Beginners [by Google] from Udacity — Free
- The Complete Android Oreo Developer Course from Udemy — Paid
If you want to prepare yourself to become a certified Android developer and if you have the budget, I would strongly recommend you to enroll for Android Developer Nanodegree Program from Udacity [In collaboration with Google].
And finally, don’t forget to bookmark the official training guide for Android developers from Google. This official guide covers all the basic stuff with a lot of code samples which can prove to be very much helpful to any Android developer.
By the way, do not just read the books like you read any novel or do not just watch the videos like you watch any movie. Make sure that whenever you’re going through a new concept, you’re building some sample apps implementing those concepts. [This is the only way to learn Android effectively — By building apps]
2. Make sure you understand these concepts very well
- Activity LifeCycle [Watch Kristin Marsicano exploring the Activity Lifecycle in this talk]
- Service, IntentService and their lifecycle
Services | Android Developers
A Service is an application component that can perform long-running operations in the background, and it does not…
How to handle background services in ANDROID O?
Take a look at background execution limitation in Google’s latest version of Android, Android O.
- Broadcast Receivers
Local Broadcast, less overhead and secure in Android
Broadcast receiver is an Android component which allows you to send or receive Android system or application events…
- Content Providers
Content Providers | Android Developers
Content providers manage access to a structured set of data. They encapsulate the data, and provide mechanisms for…
Steps for creating a Content Provider
Meanwhile I study for the Android Developer Certification, I decided to document briefly the series of steps for…
An Idiot’s guide to Android Content Providers Part 1
In this step by step tutorial we are building TODO Application database schema. This article doesn’t covers how to…
An Idiot’s guide to Android Content Providers Part 2
We will be continuing from last where we left of, checkout Part1 if you haven’t seen
- Tasks and the Back Stack
Android Activity Launch Mode
Launch mode is an instruction for Android OS which specifies how the activity should be launched. It instructs how any…
Android “launchMode” (Visualized)
Android launchMode is important thing and all android developers should know how launchMode works. Most of developers…
Also refer this link — Android Task and Back Stack Review
- Debugging your app
Debug Your App | Android Studio
Android Studio supports several types of breakpoints that trigger different debugging actions. The most common type is…
Making the most out of Android Studio Debugger
This is a trick I learnt very recently from a Senior Android Developer at my company and now I feel miserable about all…
- Context in Android
- Android Views and Layouts
Layouts, Attributes, and you
Are #layouts complex? Maybe. Maybe not. Maybe go learn it anyways.
Android Beginners : Views & Layouts
This post is for beginners in Android Development. At the end of this story, You would get the basic idea about views…
- Android Themes and Styles
Fragments | Android Developers
A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a…
The Dark side of Fragments
Fragments are a part of most Android apps. It’s an API made available by Google since 3.0 (Honeycomb or API level 11…
ViewPager | Android Developers
ViewPager is most often used in conjunction with , which is a convenient way to supply and manage the lifecycle of each…
Creating an intro screen for your app using ViewPager and PageTransformer — Part 1
Part one in a two-part series.
- Shared Preferences
📱 Working with Android Shared Preferences
Understand Basic of Android SharedPreferences
I would also recommend Efficient Android Threading book.
Using ThreadPoolExecutor in Android
This article will cover thread pools, thread pool executors, and their use within Android. We’ll cover these topics…
- Looper, Handler, HandlerThread
Understanding Android Core: Looper, Handler, and HandlerThread
This Article covers Android Looper, Handler, and HandlerThread. These are among the building blocks of Android OS.
- HTTP and REST
A Beginner's Guide to HTTP and REST
Hypertext Transfer Protocol (HTTP) is the life of the web. It's used every time you transfer a document, or make an…
- Networking in Android apps
Android Basics: Networking | Udacity
This class teaches the basics of networking using Android, and is a part of the Android Basics Nanodegree by Google.
Android Networking Tutorial: Getting Started
Most apps don't work in isolation; rather, they connect to an online service to retrieve data. In this tutorial, you…
Notifications | Android Developers
Starting in Android 8.0 (API level 26), notification channels allow you to create a user-customizable channel for each…
- Location and Maps
Location and Maps | Android Developers
Note: This is a guide to the Android framework location APIs in the package location. The Google Location Services API…
Google Location Services on Android | Udacity
Enhance your apps with Google's Fused Location Provider, Activity Recognition, and Geofencing API capabilities.
Add Google Maps to your Android App | Udacity
Maps on mobile devices have changed the world for millions of users. Learn how to use the Google Maps API to extend…
- Android Sensors
Sensors Overview | Android Developers
Most Android-powered devices have built-in sensors that measure motion, orientation, and various environmental…
- Localization and Internationalization
Supporting Different Languages and Cultures | Android Developers
It's a good practice to keep culture-specific resources separated from the rest of your app. Android resolves language…
Localizing with Resources | Android Developers
Android runs on many devices in many regions. To reach the most users, your application should handle text, audio files…
- Run Time Permissions
Requesting Permissions at Run Time | Android Developers
Beginning in Android 6.0 (API level 23), users grant permissions to apps while the app is running, not when they…
- App Standby and Doze Mode
- Android Support Libraries
Support Library | Android Developers
The Android Support Library offers backward-compatible versions of a number of features that are not built into the…
- Material Design
- Android Build System
3. Few More Recommended Reading
Android for All | Google Developers
Glossary of Android and Java vocab words. Supplementary content for the Udacity Android for Beginners course.
12 Practices every Android Development Beginner should know — Part 1
One practice at a time to become a better Android beginner
10 Things New Android Developers Can Relate To
I decided to write about some issues I faced when I started building Android apps 3 years ago, and some others I have…
android-guidelines - Architecture and code guidelines we use at ribot when developing for Android
A successful XML naming convention
Do you remember the last time you had to dig into strings.xml to find the right String to use? Or that you manually had…
Google Java Style Guide
This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming…
Okay, these are the beginner stuff.
But, what if you already have some experience in Android development and your new year resolution is to learn more advanced stuff and become a Pro Android Developer … So what stuff should you learn next?
Stay tuned. We’ll cover that in the next part. 🙃