Sign in Go Pro

Courses

Illustration
Realm & Android Architecture Components

This course will show you how to use Realm with Android Architecture Components. You’ll learn how to: - Encapsulate your data access logic within Data Access Objects (DAOs) - Represent RealmResults as LiveData - Apply LiveData Transformations to Realm LiveData - Use Realm in the context...

Illustration
Constraint Layout

A comprehensive course on the features of ConstraintLayout and examples of how to use them. You will learn how ConstraintLayout works, how ConstraintLayout compares and contrasts to other Android layouts. You will also review the main and major features with examples of how to implement and utili...

Illustration
Detecting Android Memory Leaks with LeakCanary

In this course, you’ll learn how to install LeakCanary into your application and use it. You’ll be shown how to force a leak so that you can interact with the LeakCanary library through the LeakCanary notification. The library will be installed in the debug build with a no-op variant installed fo...

Illustration
Android Wear - Building Your First Watch Face

Watch Faces are the most popular category of Android Wear apps. Their main purpose is to allow the user to read the current time, and for that reason, they are active on the watch screen far more than any other types of Android Wear apps. In this course, you’ll learn how to create your first A...

Illustration
Android Testing Support Library 1.0

In this course you will learn about new features for the Android Testing Support Library such as Android Test Orchestrator, better idling resources, grant permission rule and more.

Illustration
Espresso Test Recorder

Espresso Test Recorder is a fantastic tool for “breaking the ice” and trying Espresso for the very first time. Available in Android Studio 2.2 and higher, it’s a clean and simple UI based tool, that generates Espresso code for us. Whether you are an experienced developer, or a testing engineer...

Illustration
Firebase Remote Config

In this course, we’ll be learning about how you can use Firebase Remote Configuration to dynamically alter the look and feel of your Android applications. After looking into what Remote Configuration is, you’ll be looking at how you can use these learnings to implement it in your Android Applicat...

Illustration
Sketch

In this course you’ll learn how to use the Sketch design application. This course is a great place to start if you’ve never worked with Sketch or if you’re just needing some help understanding the concepts. This course is lead by UI/UX Google Developer Expert Raveesh Bhalla.

Illustration
RecyclerView

An introduction to the RecyclerView

Illustration
ExoPlayer - Introduction to Audio Playback

This course is an introduction to playing audio with Exoplayer: Google’s open source, application level media player. By the end of this course, you will understand how to incorporate audio playback functionality into your Android app using Exoplayer. This will include basic functionality such as...

Illustration
Android Profiler

This course introduces the Android Profiler tool. It provides real-time information about your Application relating to Memory, CPU and Network usage. The course begins with an introduction to using the tool. I will show you how to get started using the tool, explain the main features, and show...

Illustration
Git in Android Studio

This course will walk you through the essentials of using Git in Android Studio. We start out by covering the various user interface components available in the Version Control Tool Window. Then we move on to creating commits, working with branches and understanding changelist. Initially, we’ll b...

Illustration
Android Architecture Components

This course will introduce you to some of the Android Architecture Components. You'll be exposed to ViewModel's, LiveData, how to wire them up, Lifecycle management as well as how to transform LiveData.

Illustration
Build a Google VR App

In this course you’ll learn how to build your first Google VR App. You’ll dive into the differences between Cardboard and Daydream, how to use specialized libraries to help build VR scenes, and how to use Open GL.

Illustration
Introduction to Android Things

This lesson is going to show you how you can get started with AndroidThings. We'll talk about the Raspberry Pi 3 developer board and show how to flash it with Android Things, to get up and running and ready for developing your apps. We will learn about the Android Things framework and the API'...

Illustration
Google Play Developer Console

In this course, you'll learn about the various tools available to you as a developer and application publisher that will help with your application management and deployment processes.

Illustration
Understanding Material Design Guidelines

In this course, you’ll learn come to understand the theory behind Material design and its principles. After this course, you’ll be able to properly apply material design guidelines to your designs.

Illustration
Kotlin

Kotlin is a statically typed programming language for the JVM, Android and the browser. In this course, you will be introduced to Kotlin, its syntax, semantics, constructs and more. This course will cover classes, the standard lib, lambdas as args, DSLs (Domain Specific Languages), Java integrati...

Illustration
Custom Views and ViewGroups

In this course you will learn how Android Views and ViewGroups are rendered. You will also learn how to create custom views in your application.

Illustration
Espresso Idling Resource

In this course you will learn all about Espresso’s Idling Resource. You’ll learn how it works and how you can build your own custom idling resource to help you with your Android testing.

Illustration
Android Job

Background work on Android can be challenging when you have to support a wide range of API levels. Specifically you can use Alarm Manager, Job Scheduler or GCM Network Manager depending on your minimum API level and if the device has Play Services. To help abstract away which implementation you’r...

Illustration
Bootstrap our App using Android Studio

Unless you’re getting paid by the line of code, you probably don’t want to write repetitive boilerplate code. This course will show how you to quickly generate common code, so you can spend time on the custom logic that is important to your needs.You’ll do this using the code templates built into...

Illustration
Moshi

In this course, you’ll learn about serialization and deserialization and how to do it with the Moshi JSON library. You’ll dive deep into the workings of Moshi and upon exiting the other side you’ll have a great handle on how and why you’d want to use the Moshi library.

Illustration
Realm

In this course, you'll learn about an alternative to SQLite - Realm. Realm is an Object database that allows you to easily store, alter and retrieve data with ease.

Illustration
Accessing Google API's

Learn how to use Google APIs and Services from your backend servers allow you to add features and functionality to your app, without adding to your mobile device code. In this series, you will learn how to create and secure service accounts to permit access to the Google APIs, validate in-app sub...

Illustration
Mockito

If your application has ever suffered from tight coupling, or if you’ve simply had problems testing your logic in isolation in a repeatable manner then you’ve probably heard the term “mocking”. When you use mocks, you can easily isolate your dependencies, perform desired actions repeatedly and ge...

Illustration
Design Patterns

Design patterns are used in almost every application. In this course you’ll learn about various design patterns, why you’d use each one and how to implement each one in your application. From the Observer to Strategy to Factory, Decorator and much more. This course will help you finally grok desi...

Illustration
Event Bus

In this course you will be introduced to the Green Robot Event Bus. You will learn how to use the event bus to decouple your application. You will also learn about the various thread modes that Event Bus offers.

Illustration
MockWebServer

In this course you’ll learn how to use MockWebServer to test your app without talking to an external server. This will help by making your repeatable tests much more reliable. No more relying on a physical server to be in place. Wire up the MockWebServer and test with expected repeatable results.

Illustration
Material Design

In this course you’ll be exposed to various components in the Material Design guidelines. We start off with the Collapsing Toolbar Layout with many more lessons from various instructors to come.

Illustration
ButterKnife

ButterKnife allows you to inject your views without using View#findViewById(). In this series you will learn how to bind views and actions with the ButterKnife library.

Illustration
The Android MVP Pattern

In this series you will be provided with an understanding of what the Model View Presenter (MVP) Pattern is. You will be introduced to the Passive View variant and the data and event flows that decoupling the presenter from the UI Framework. You will then move on to build a Presenter and the View...

Illustration
RxJava Subjects

In this course you will learn what subjects are and how to use them. You will also be introduced to the four built-in subjects that ship with RxJava.

Illustration
RetroFit2

In this series you will learn how to use Retrofit 2 to communicate with a REST API using the common HTTP verbs: GET, POST, PUT, DELETE and PATCH. You will also learn how to use Retrofit 2 with RxJava, set up Retrofit 2 Logging and build interceptors and provide a custom OkHttpClient (OkHttp) inst...

Illustration
Test Driven Development with Espresso

In this series you will be introduced to what TDD (Test Driven Development) is, how to Test Drive a bug fix and a new Feature, check the fragment backstack for items, how Red/Green/Refactor can save you in regressions and how to Re-validate that our refactoring did or did not break all of our pre...

Illustration
AutoValue

In this series you we will provide a deep dive into AutoValue. AutoValue is a Java library for creating immutable value types easily, we will look at what the value types are and how to create them before we dive deeper behind the scenes of AutoValue’s inner workings.

Illustration
Dagger 2

In this series you’ll learn how to set up Dagger 2 in your application with multiple modules. We will construct Dagger components, modules, learn how constructor injection works and ways reuse an injection to reduce code. We will perform various injections through the code and learn about the var...

Illustration
Robolectric 3

In this course, you will dive into adding Robolectric 3 to your application. We will recap how TDD works on Android before moving on to learn testing of TextView and its attributes then creating helpers for resource fetching and view assertions. This is a look at Robolectric for test-driven devel...

Illustration
Understanding Gradle and Building a Gradle Plugin

In this series you will be introduced to various parts of Gradle and Gradle Plugins. You’ll learn about the internals of the build.gradle file and how and what it does for your app. Then we’ll dive into how to create a custom Gradle Plugin with tasks in it. You will then move on to learning how t...

Illustration
RxJava

In this series you will learn how add RxJava to your application, replace an AsyncTask, handle RxJava Errors, work with the Observable.zip() and Observable.Amb() operators.

Illustration
Dagger 1

In this course, you’ll learn how and what dependency injection is and why it’s important. You’ll learn how to implement Dagger 1 into an application and debug various parts of Dagger 1. Finally, you’ll learn how to override behavior so you can write tests using Dagger 1.

Illustration
Timber Logging Library

Timber is an easy-to-use and easy-to-customize logging framework for Android. In this course, you will learn how to install, configure and customize the Timber Logging library for use in your Android Application.

Illustration
UI Testing with Espresso

In this series you will learn how to set up your Android Studio environment to use Espresso 2.0. We talk about ViewMatchers, ViewActions and ViewAssertions and how to use them. We also demonstrate a simple TDD (Test Driven Development Method) implementation for the first test. At the end of this ...

Illustration
Android Build Variants

In this series you will be introduced to Android Build Variants. You will learn how to add a debug suffix to a debug build and you’ll also learn how to inspect an APK badging using the aapt build tool. You’ll learn how to configure your application for different build configurations and how that ...