Authors: Chiu-Ki Chan, Richard Cirerol, Jon Flanders, Sarah Holderness, Larry Schiefer, Sriyank Siddhartha, John Sonmez, Richard Warburton, Jim Wilson, Yan Zhang

Android is an open-source operating system maintained by Google that runs on over 80% of all mobile handsets today. Android provides an adaptive app framework that allows you to... Read more


The beginner courses in this path will give you a solid foundation in fundamental Android concepts. You’ll be introduced to fragments, intents, activities, and data binding before stepping into some of the basic layout concepts for Android apps.

Start Developing for Android

by Chiu-Ki Chan

Dec 9, 2015 / 1h 3m

1h 3m

Start Course

Build your very first Android app with this course! You will first learn how Android apps are structured, then download Android Studio to compile the Hello World app. You will then extend the Hello World app to learn core concepts such as drawables, dimens, styles, menu, and testing. The course concludes with a list of next steps for you to expand your Android knowledge.

Table of contents
  1. Introduction3m
  2. Android Studio Installation9m
  3. Building the Hello World App45m
  4. Taking Your Next Steps5m

Android Beginner Series: Understanding Android

by John Sonmez

Mar 8, 2013 / 2h 5m

2h 5m

Start Course

Have you wanted to learn about Android development, but perhaps you don't know where to start? Perhaps you are brand new to the world of programming and want to learn how to program quickly while doing something fun like developing an Android app? If so, this brand new course series might be just what you are looking for. This is the first course in a series of 4 courses designed to take you from knowing nothing about Android and very little about programming in general to building your own Android apps and games. Here is a breakdown of the courses: course 1: Understanding Android - this course; course 2: Creating Android Apps Without Code Using App Inventor; course 3: Just Enough Java To Build An Android App; course 4: Building a Simple Game In Android. In this first course, we take a look at the very basics of Android and learn exactly what Android is and how it works. This course will go over the design and history of Android. Then we'll take a look at what exactly an operating system is so that we can better understand the Android operating system and how it works. After that we'll go over Android applications and exactly what makes them unique. And we'll finish up the course by talking about all the different ways you can develop Android applications and how the Android app markets work. By the time you finish this course, you should have a solid foundation in Android fundamentals and be ready to start learning how to develop Android applications in the upcoming courses in this series. Whatever your level of programming experience, this course series will get you building your own apps and games in Android quickly, and we'll have fun doing it. And even if you are already an Android developer, you may find the in depth understanding of how Android works that you will learn from this course valuable.

Table of contents
  1. Welcome To Android26m
  2. The Android Operating System25m
  3. Anatomy Of An Android App27m
  4. Ways To Develop Android Apps23m
  5. Android App Markets23m

Android Programming with Intents

by Jim Wilson

Nov 15, 2011 / 4h 14m

4h 14m

Start Course

Three of the core components of an application - activities, services, and broadcast receivers - are activated through messages, called intents. Intent messaging is a facility for late run-time binding between components in the same or different applications. In this course you will learn how to work effectively with and capitalize on the many capabilities of the Android platform provided through intents.

Table of contents
  1. Android Late Binding and Intents37m
  2. Component activation with intents1h 5m
  3. Delegation and Callbacks through PendingIntents44m
  4. IntentFilter data tests43m
  5. Working with Platform Features Through Intents1h 3m

Introduction to Testing in Java

by Richard Warburton

May 11, 2015 / 3h 54m

3h 54m

Start Course

This course introduces why you want to write automated tests for your code and how to implement this in Java, covering fundamentals of how to write simple tests using JUnit and Hamcrest, through Test Driven Development (TDD) and then explains how to structure your code and design in order to make testing easier.

Table of contents
  1. Introduction15m
  2. Testing Code38m
  3. Writing Good Tests48m
  4. Introducing Test Driven Development43m
  5. Dependencies39m
  6. Going Outside-in47m

Exploring Android Studio

by Larry Schiefer

Oct 7, 2014 / 5h 39m

5h 39m

Start Course

Android Studio is the new Android application development IDE powered by the IntelliJ IDEA platform. The course will take you through downloading and setting up Android Studio on Windows, migrating to Android Studio from Eclipse, and developing Android applications and libraries. In this course, you will not only learn basic use of Android Studio, but also how to take advantage of its advanced features to provide more robust code and make you a more productive developer. Android Studio's new Gradle and Maven based build systems are covered so you know how to take advantage of the powerful build variant and dependency management they provide.

Table of contents
  1. Introduction14m
  2. Setting Up Android Studio11m
  3. Migrating to Android Studio19m
  4. Android SDK Tools44m
  5. Creating Apps With Android Studio48m
  6. Building and Debugging With Android Studio16m
  7. Library Projects With Android Studio19m
  8. Building a Release Package12m
  9. Advanced Features1h 13m
  10. The Gradle Build System48m
  11. The Android Gradle Plugin31m

Android Fundamentals: SharedPreferences

by Sriyank Siddhartha

Aug 22, 2016 / 1h 38m

1h 38m

Start Course

SharedPereferences is an API that allows you to save a small collection of data persistently. This course, Android Fundamentals: SharedPreferences, is all about basics and fundamental concepts of SharedPreferences. First, you'll get an introduction to Android storage options. Next, you'll see how saving and retrieving data from SharedPreferences works. Finally, you'll use GSON to save and retrieve non-primitive data types. After completing this course, you'll know how to save, retrieve, and modify data both at the activity level and application level through your illustrative demo application.

Table of contents
  1. Course Overview1m
  2. Introduction6m
  3. Saving and Retrieving Data from SharedPreferences54m
  4. Using GSON to Save and Retrieve Non-primitive Data Type35m

Introduction to SQL

by Jon Flanders

Oct 11, 2013 / 3h 2m

3h 2m

Start Course

Structured Query Language (SQL) is a special purpose language for interacting with relational databases. In this course, Introduction to SQL (Update), you will learn the basics of Structured Query Language. First, you will learn how to query data and shape results. Next, you will focus on creating and modifying data in your tables. Finally, you will touch on how actually modify the tables themselves. By the end of this course, you'll understand the basics of how to create and use a relational database.

Table of contents
  1. Course Overview1m
  2. Introduction11m
  3. Understanding Basic SQL Syntax13m
  4. Querying Data with the SELECT Statement25m
  5. Filtering Results with the WHERE Clause36m
  6. Shaping Results with ORDER BY and GROUP BY27m
  7. Matching Different Data Tables with JOINs18m
  8. Adding, Changing, and Removing Data20m
  9. Creating Database Tables28m

Android Fundamentals: Activities

by Sriyank Siddhartha

Aug 4, 2016 / 2h 43m

2h 43m

Start Course

Start developing Android apps and get a deeper knowledge of basic Android Components such as Activities in real quick time. In this course, Android Fundamentals: Activities, you'll be learning all about Activity and its related fundamental concepts. First, you'll get an introduction to Android Components and progressively cover the topic of Event Handling, Logcat, and also dive into the building block component of any Android apps. You'll be learning about Android Component Activity such as its lifecycle and its behavior on screen rotation. Finally you'll learn how to exchange data between activities. By the end of this course, you'll have a very strong foundation on the topic of android activities.

Table of contents
  1. Course Overview1m
  2. Introduction5m
  3. Getting Familiar with Building Blocks of Android18m
  4. Using Activities to Listen to Events31m
  5. Sharing Data Between Activities Using Explicit Intent27m
  6. Exploring Activity Lifecycle33m
  7. Understanding Activity Lifecycle in Context of Screen Rotation45m

Android Fundamentals: Data Binding

by Richard Cirerol

Oct 6, 2015 / 1h 38m

1h 38m

Start Course

Binding data to views in Android can be an exercise in redundancy. We have typed the methods 'findViewById' and 'setText' many times and have consigned ourselves to the monotony. At Google I/O 2015, a new data binding library was announced that promises to free us from much of the boilerplate code we write for our views. Even in its beta release, the library is powerful and useful. The Data Binding Guide provided by Google teases the capabilities of this library. This course will explore the details of the data-binding library mixing both theory and practice. After finishing the course, you will have a solid foundation on how to use the data binding library to reduce your development time and increase your code clarity.

Table of contents
  1. Introduction8m
  2. Simple Data Binding35m
  3. Custom and Dynamic Binding25m
  4. Observables20m
  5. Pitfalls and Pro-tips9m

Android Layout Fundamentals

by Chiu-Ki Chan

Jan 13, 2014 / 1h 39m

1h 39m

Start Course

Android has four basic layout classes: LinearLayout, RelativeLayout, FrameLayout and TableLayout. How do they work? How to decide when to use which? This course goes into the details of each class, explains their various attributes, then demonstrates various tools and techniques to examine and optimize your layouts.

Table of contents
  1. Introduction15m
  2. LinearLayout12m
  3. RelativeLayout13m
  4. FrameLayout6m
  5. TableLayout11m
  6. Choosing the Right Layout39m

Android Fundamentals: Styles and Themes

by Sriyank Siddhartha

Oct 10, 2016 / 2h 46m

2h 46m

Start Course

An attractive user interface is the first impression of any application that the users come across. To provide a smooth, attractive, and consistent user-interface and design, the most important step that a developer should focus on is the themes and styles of the application. This course, Android Fundamentals: Styles and Themes, is all about how to apply styles to the views and widgets present in the android application, and choosing appropriate themes for an app. First, you will focus on how to apply styles to a View or ViewGroup, along with using the concept of inheritance for styling Views. Next, you'll go over customizing a theme for your application and which can help users identify the category of your application to some extent by just having a glance at it. Finally, you'll go over how best to handle some compatibility issues with your app for lower API level devices that will use it. When you are finished with this course, you'll have a better understanding of how to apply styles and themes to your Android applications.

Table of contents
  1. Course Overview1m
  2. Introduction3m
  3. Styling Views49m
  4. Using the Concept of Inheritance for Styling Views35m
  5. Applying Themes27m
  6. Maintaining Backward Compatibility27m
  7. Exploring Practical Usage of Styles and Themes22m

Add Implicit and Explicit Intents to an Android Candy Store App

by Sarah Holderness

Feb 5, 2018 / 1h 35m

1h 35m

Start Project

In this project you’ll follow along with our instructions and finish building a candy store app with Android Studio. You’ll finish creating the functionality of the app by adding different features - like using an Explicit Intent to open another Activity and using Implicit Intents to launch a map, dial a phone number and share content.

Project overview
  1. Setup15m
  2. Start the Store Information Activity20m
  3. Start the Google Maps Activity20m
  4. Start the Phone Activity20m
  5. Share a Candy with an Intent20m


In this section you’ll learn how to publish and monetize Android apps, then dive deeper into layout, UI/UX, and working with the Material Design Library.

Getting Started with Google Play In-app Billing

by Yan Zhang

Dec 29, 2015 / 1h 25m

1h 25m

Start Course

In-app purchasing is a common and important way for monetizing apps. This course introduces you to integrating Google Play In-app Billing into Android apps in a comprehensive way. You can get the introduction of the whole image of In-app Billing, learn how the purchase flow works, purchase and consume in-app products, and test In-app Billing in a sandbox. The possible security issues are discussed and suggestions are given on how to deal with the problems. Finally, you will get inspiration on how to increase sales with In-app Billing.

Table of contents
  1. Understanding Google Play Billing6m
  2. Creating Digital Products in Google Play15m
  3. Purchasing and Testing In-app Products42m
  4. Securing Your In-app Billing13m
  5. Increasing Your Sales7m

Android Processes and Threads

by Larry Schiefer

Oct 4, 2013 / 1h 59m

1h 59m

Start Course

At its core, Android is built to take advantage of multi-tasking operations, be it from separate applications or different operations within the same app. In addition to providing built in support for working with threads, Android provides a solid framework for inter-process communication and puts a twist on the way app processes are used. In this course you will learn about the way Android utilizes processes, how to take advantage of special app sharing features and explore the variety of ways in which threads can be used.

Table of contents
  1. Android Processes and Threads (Application Process Model)27m
  2. Android Processes and Threads (Sharing User IDs and Processes)36m
  3. Android Processes and Threads (Threads and Thread Options)56m

Getting Started with Android Material Design

by Sriyank Siddhartha

Feb 8, 2016 / 4h 21m

4h 21m

Start Course

Curious about Android Material Design? This is the your final stop where you will get information regarding material design specifications and the related widgets being used with material design themes. The best part of this course is that you will learn to make several complete android demo apps from scratch - two major apps and several small apps - based on material design guidelines. Enhance your application user interface designing skills by implementing all new materialistic features introduced in Android Lollipop 5.0.

Table of contents
  1. Course Overview1m
  2. Introduction10m
  3. Understanding Material Design40m
  4. Adding a Toolbar31m
  5. Understanding Recycler and Card Views1h 2m
  6. Working with Items and Layout in Recycler View30m
  7. Implementing the Navigation Drawer31m
  8. Using Animation53m

Improving User Interface Design with Android Fragments

by Jim Wilson

Dec 11, 2012 / 3h 1m

3h 1m

Start Course

Available to all Android platforms, 1.6 and above, Fragments now replace Activities as the primary canvas for UI design. Fragments address a number of key UI design issues. In this course we discuss how to use Fragments to improve your app’s adaptability to device differences, provider better UI modularization, enhance your app’s appearance, and improve your app’s usability by creating more context-aware user experiences.

Table of contents
  1. Fragment Basics44m
  2. Fragment Transactions35m
  3. Fragments lifecycle and specialization55m
  4. Fragments and the ActionBar45m

Android Dreams, Widgets and Notifications: Life Outside Your App

by Jim Wilson

Nov 19, 2013 / 3h 20m

3h 20m

Start Course

Sometimes the best app experiences occur completely outside of your app. Users must often switch back and forth between a variety of tasks, which they can do much more effectively if they can interact with each app’s information without having to explicitly open the app. This course teaches you how to provide this incredible out-of-app user experience using Android dreams, widgets, and notifications. Dreams allow your app to display information or provide entertainment while the device is docked or charging. Widgets allow your app to provide an interactive user experience directly on the Android home screen. With notifications your app can provide information to the user through the status bar even when the user is using a different app; notifications can also gather information from the user and, when necessary, allow the user to jump directly to the appropriate screen within your app right from the status bar.

Table of contents
  1. Providing an Out-of-App Experience16m
  2. Creating Engaging Notfications49m
  3. Making Notfications Interactive46m
  4. Creating Home Screen Widgets36m
  5. Updating and Configuring Widgets51m


The advanced courses here will teach you to create custom components for your apps before guiding you through the Android accessibility standards. You'll also be working with async services and programming custom notifications for the Android app bar.

Improving User Interaction with the Android ActionBar

by Jim Wilson

Sep 4, 2012 / 2h 35m

2h 35m

Start Course

The ActionBar incorporates a variety of previously disparate user interaction concepts into a single control. The ActionBar provides one-stop shopping for menu management, home and back behavior, tabbed displays, screen layout adaptability, and many more user interaction concepts. In this course we look at how to provide a rich user experience by taking full advantage of the ActionBar in your apps.

Table of contents
  1. Improving User Interaction with the Android ActionBar22m
  2. Managing the ActionBar Layout39m
  3. ActionBar Navigation1h 4m
  4. ActionBar Interactivity29m

Android Custom Components

by Chiu-Ki Chan

Jan 29, 2015 / 1h 39m

1h 39m

Start Course

Android comes with many built-in components, but some tasks are best accomplished by rolling your own. We will start from a simple example of enhancing the TextView class, and finish with a complete custom view with its own size measurement, drawing function, and custom attributes. We will also discuss the best practices for custom views. What is the difference between a custom view and a fragment? How about a compound control? When to use which? By the end of the course, you will know not only how to create reusable custom components, but when to use them.

Table of contents
  1. Introduction4m
  2. Extend a Simple View13m
  3. Compound Control27m
  4. onMeasure9m
  5. onLayout10m
  6. onDraw24m
  7. dispatchDraw6m
  8. Fragment vs. Custom View3m

Android Fundamentals: Accessibility

by Jim Wilson

Nov 15, 2016 / 3h 3m

3h 3m

Start Course

Many users have physical limitations that may make seeing the device display or interacting with the touchscreen difficult. Android provides a number of accessibility features and services and this course, Android Fundamentals: Accessibility, will serve as your guide to including these features in your apps. You'll start with an introduction to the goals of accessibility and how Android handles accessibility. Then, you'll get started making apps accessible by incorporating support for non-touch navigation and view descriptions, as well as seeing how to design and create apps that provide a single high-quality experience that works equally well for users with or without accessibility needs. You'll also get to see how to add some important accessibility features, such as Talkback support and d-pad navigation, to your custom views. Finally, you will go over the important relationship between testing and accessibility. By the end of this course, you'll be better able to build apps in such a way that they will be accessible to all users.

Table of contents
  1. Course Overview2m
  2. Understanding Accessibility Basics12m
  3. Making Your App Accessible39m
  4. Designing for Accessibility51m
  5. Creating Accessible CustomViews57m
  6. Testing Accessibility19m

Android Async Programming and Services

by Jim Wilson

Aug 22, 2011 / 3h 3m

3h 3m

Start Course

In this course you will learn how to use Android services and asynchronous processing to create applications that provide a more responsive user experience. Topics covered include Android Services, background processing, threading, asynchronous tasks, Started Services, Foreground Services, Notifications, Android Service lifecycle, and ExecutorService.

Table of contents
  1. Challenges to a responsive user experience48m
  2. Implementing long-running operations as a service41m
  3. Service lifecycle management46m
  4. Interacting with services47m

What you will learn

  • Activity lifecycle
  • Service lifecycle
  • Using Services
  • Layout files
  • Making components accessible from code
  • Storing complex data
  • Accessing data asynchronously
  • Customizing data display
  • Directory structure
  • Adapting to device differences
  • Globalization
  • Drawing resources
  • Fragment lifecycle
  • Dynamic Fragments
  • Backstack management
  • Defining Fragment UI Maintaining responsiveness during long-running tasks
  • Understanding the purpose of Context
  • Accessing system services
  • Permissions
  • Understanding the purpose of Intents
  • Handling URIs
  • Device Management
  • Development tools


Java Skill Path