### Lesson 1: Create Project Sunshine with a Simple UI (5-8 hrs)
Start by installing Android Studio, you’ll create your first project with a simple list-based user interface. You'll then build and deploy it to virtual and actual devices. You’ll also discover what makes mobile - and Android in particular - a unique environment for app development.
* Android Studio, Gradle, and debugging tools
* User Interface and Layout managers
* ListViews and Adapters
### Lesson 2: Connect Sunshine to the Cloud (8-10 hrs)
Replace the mock data with real weather data by connecting Sunshine up to an Internet back-end courtesy of the Open Weather Map API. You’ll learn how to add permissions to your app, initiate network I/O, and how to move time consuming tasks like network data transfers off the main UI thread.
* Threading and ASyncTask
* HTTP requests on web APIs
* Android Permission System
### Lesson 3: Create New Activities and Navigate Apps with Intents (8-10 hrs)
Give your app structure and create more complex Activities. You’ll learn about Android’s Intent framework, and how to use Intents to navigate between Activities, both within your app and as a way to add 3rd party functionality.
* App navigation with Explicit Intents
* Implicit Intents to incorporate 3rd-party apps
* Share Intent and the Android sharing framework
* Broadcast Intents and Broadcast Receivers
### Optional Project: Popular Movies, Stage 1 (5-10 hours)
Build an app to help users discover popular and recent movies. You will build a clean UI, sync to a server, and present information to the user.
### Lessons 4: Use Content Providers and Loaders to Persist and Recover Data (15-20 hrs)
Learn how the Android framework manages the activity lifecycle, and how it differs from what you might expect, and dive head-first into the world of persistent storage. Learn how to create databases, use Android’s Content Providers to provide an abstraction layer between your data and your UI implementation, and use Loaders to efficiently load stored data.
* Activity lifecycle and background activity termination
* SQLite databases and JUnit tests
* Creating and using a Content Provider as an abstraction layer
* Using Loaders to asynchronously load data
* Creating Adapters to bind UI components to Content Providers
### Lesson 5: Implement Rich and Responsive Layouts (8-10 hrs)
Create rich, responsive user interfaces that work across a variety of different hardware types and screen sizes. You’ll learn more details on using the Android Layout managers, Fragments, UI widgets, and Android design principles to add visual polish to your user interfaces, and how to create your own controls from scratch.
* Fundamental Android design principles
* Supporting localization and variable screen sizes
* Optimizing tablet UIs using Fragments
* Accessibility Features
* Custom views
### Lesson 6: Use Services and Notifications to Run in the Background (5-8 hrs)
Deliver a great user experience, even when your app isn’t visible. Learn how the Android framework manages background apps; and discover how to use Services and Notifications to make your app to be active when it’s not in the foreground. You’ll learn techniques for efficient data transfers using SyncAdapters and Google Cloud Messaging, so your app can stay up-to-date without draining the battery.
* Background services and alarms to schedule background tasks
* Efficient background data transfers with SyncAdapters
* Rich notifications to interact with users
### Optional Project: Popular Movies, Stage 2 (4-6 hours)
Add to the app you built in Stage 1 by building on the detail view for each movie, allowing users to 'favorite' movies, and adding a tablet layout.
### Final Project (10-20 hours)
Build your own Android app incorporating the skills you've learned in this course.
The ability to develop apps for Android 7.0 Nougat is an extremely hot skill to know right now. For the first time, it is starting to overtake Apple’s iOS as the most lucrative mobile platform to develop apps for. Given the expansion of the beautiful Materials Design framework in Marshmallow and Nougat, now is an excellent time to learn Android development.
In terms of marketshare, Android is absolutely clobbering iOS with a whopping 85% of the global market in 2014. This growth is also accelerating as more people globally plug into the Internet for the first time. A mind boggling 1.3 million new Android devices are activated each day and the number of Android devices in the world now numbers in the billions.
With such astounding growth, there is naturally a shortage of capable Android developers. In the past 5 years, the majority of developers have favoured Apple’s iOS. This was because there was less fragmentation in the ecosystem and Apple users have traditionally spent much larger sums of money on apps.
Fortunately for Android app developers, Google has put enormous resources in the last year into improving the Android user experience (the new Materials Design introduced in Android 5 Lollipop rivals the slickness of iOS 8’s redesign) and improving the quality of the Google Play app and content marketplace.
The growth and mobile operating system dominance of Android will continue for the foreseeable future. Android app development is currently the #4 most sought-after digital skill on Indeed, which means there are plenty of opportunity for freelance Android app developers. The money is also very good, with an experience Android app developers making an average salary of $100,000 a year in the US.
How To Start Learning Android Development Online:
The fastest way to learn Android development is online. Preferably you already you already have some experience with computer programming languages like Java, C or C++. If not, the learning curve will be much steeper but learning Android development is do-able with a lot of focus and determination (although, you may want to take a more introductory computer science courses first to establish the fundamentals).
Android apps are written using the Java programming language. It is helpful to have a basic knowledge of Java programming before beginning the courses below but a few of the courses are specifically geared toward absolute beginners.
Here’s how to get started:
1. Download and install the free Android SDK (Software Development Kit), Android’s open-source IDE (Integrated Development Environment) Eclipse and the Google-supported ADT Plugin is also recommended for Eclipse. The combination of these three tools will give you the full integrated development environment you require to start building Android apps.
2. Create your first “Hello World” app with this easy-to-follow tutorial for beginners from Google.
3. Take an Android development course online. The best way to learn is by diving in and hacking together some basic apps. This help you get familiar with the Android API (Application Programming Interface) and the possibilities of Android app development.
4. You can access more Android development tools by signing up as an Android Developer on Google Play (there’s a one-time $25 registration fee).
5. Subscribe and follow the Google Android Developers blog to learn about new developments in the Android app ecosystem.
6. Another essential resource is Google’s Training Resources For Android App Developers. I also recommend reviewing their new introduction to creating apps with Material Design.
Google has created an Android Developer portal where you can get everything you need to start creating your first Android app. On this website, you can download the Android Software Development Kit (SDK), take Android video classes, read their blog and access extensive Android Development resources.
Free Android Development Courses:
These are the most up-to-date resources that I have found for learning Android app development online. Updated for the latest version of Android 5 Lollipop.
1. Building Mobile Applications with iOS, Android and HTML5 (Harvard University)
An excellent course on mobile development from Spring 2012 that covers iOS development, Android Development and 5 lectures on HTML5 mobile development. This course has assignments and video lectures that will help you build your first mobile apps for either Android or the iPhone or iPad.
You can take this course on the official website or through iTunes University. It’s a little dated but still relevant. Unfortunately, since Coursera took down their free courses there aren’t many good free options left.
Premium Android App Development Courses:
You can only go so far with free resources. The best way to learn a difficult technical skill like Android app development is to join an online coding bootcamp. This way you will learn the latest skillset for Android 5 Lollipop.
Affiliate Disclosure: We get a small commission from these links if you choose to purchase the full course. You still pay the same price and it helps us continue to make educational content like this.
1. Learn Android Marshmallow/Nougat Development (Udemy)
If you’re serious about becoming an Android Developer, then this course is my #1 pick. The course instructor Tim Buchalka is a fun and entertaining Android geek and master teacher. He guides you through the learning process of building 14 different Android apps that will give you a strong programming foundation (and a great digital portfolio) so you can get an entry-level job or internship after you finish the course.
Given that offline Android development boot camps cost upwards of $7000-$10000, this course is a bargain if you’re a self-directed learner.
2. Launch Your Android App Development Career (Coursera)
This new series of courses from Vanderbilt University on Coursera is designed to help you launch your career as an Android developer.
It includes 4 University courses for learning Android development: Java for Android, Android App Components and Data Persistence, Building and Deploying Android App Projects, Engineering Maintainable Android Apps and a Capstone Project where you create a portfolio with the Android skills you learn.
A more expensive option but the credential will be more recognized.
Android Video Tutorials:
A collection of 35 (and counting) excellent videos that teaches you how to create Android Apps geared towards absolute beginners.
If you have no programming knowledge and you still want to try your hand at creating an Android app, then MIT’s App Inventor is designed for you.
The New Boston has a growing collection of 200+ well-structured Android development tutorial videos.
11 videos and over 11 hours of instruction from Rose-Hulman Institute of Technology professor Dave Fisher on Android development.
The resources for a Android programming course taught at Stanford University (unfortunately the video lectures are not included).
Learn the basics of the Java programming language in an hour if you’re completely new to the programming language.
Excellent resources from experience Android developer, trainer and author Lars Vogel.
Mobile Development Frameworks:
There are 100s of Android development frameworks that can save you a huge chunk of time and make it easier to build basic Android apps.
Essential Android Development Resources:
1. Android Development Community – 45,000+ members on Google+ that covers the latest stuff for Android 4.4 KitKat and some for Android 5 Lollipop.
2. #AndroidDev Weekly – One curated e-mail each week for Android developers.
3. Android Development Cheatsheet – A compilation of the resources that Android Developer Ryan Park used to teach himself Java, Android and create his first published app in the Google Play Store.
4. The Busy Coder’s Guide to Android Development – One of the best Android development books.
5. Android Nougat review: what’s new in Android 7.1.2? – A good overview of the new additions in Android Nougat.
I hope you’ve found these education resources for learning Android App Development useful. Good luck!