The following courses have been compiled to help facilitate a smoother learning experience. Enjoy!
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’re using to perform background work, you can use Android Job. Learn how to take advantage of it in this course.
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 integration (annotations like `@JvmStatic`, etc) and more.
Have you been perplexed by the elusive RecyclerView? In this course you’ll learn how to master the RecyclerView. From the LayoutManager, to ItemDecoration, you’ll learn it all. By the end of this course you’ll have RecyclerView as part of your widget arsenal that you can use on any project.
Are dependencies killing your ability to test your application logic in isolation? Learn how to use Mockito to mock out various objects and layers (Databases, API’s, Network, etc). You’ll be able to get your application under test much easier after watching this course.
Do your designers use Sketch? Have you always wanted to learn it? This is the course for you. In this course you will learn what the Sketch design tool is, how to use it. You will also be introduced to the full Sketch interface as well as various methods for building vector shapes and designs.
Testing your application when you use an API has always been quite difficult. Enter MockWebServer. Using MockWebServer you can mock out your API to return the values that you expect during test. This will make your application easier to test and your test more reliable. Learn how to use MockWebServer in this course.
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.
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.
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.
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.
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.
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.
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.
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.
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) instance to Retrofit 2.
In this course, you will Learn how to store data with the Realm database, an alternative database to SQLite. Realm is a new mobile database and object framework. You’ll learn that Realm is super fast and very easy to use. We’ll then move on to learning how to work with Realms functional reactive style of programming via the real-time data updates. We will respond to functional reactive updates to the Realm via the RealmChangeListener.
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. Finally you will learn to validate the code coverage, write FAST jUnit4 VM tests that lead to 100% code coverage.
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.
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 series you should be able to set up your Android Application with the Espresso 2.0 Testing framework with Gradle and Android Studio and write various tests with the Espresso testing framework.
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 previous tests. You’ll leave with a great understanding of how to use TDD to drive development efforts in your application.
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 various ways injection occurs in an Android application. Then we’ll dive into Dagger 2 Scopes and how to use them to enable scoping in an application. You’ll also learn how to use Dagger 2 in a testing environment with Mockito and Espresso.
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 to migrate your plugin from a local plugin to creating a plugin jar file. You’ll also learn how to implement this plugin using unit testing. At the end of this series you’ll have a custom plugin that you can distribute to other applications in your project and/or company.
In this series you’ll learn how and what dependency injection is, 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.
In this series we 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 development with Robolectric 3 within Android Studio 2.
In this course, you will learn how to create and secure service accounts to permit access to the Google APIs, validate subscriptions via backend servers to identify users with expiring subscriptions, respond to user reviews programmatically, and add/remove in app products to your offerings. Learning how to access these features via the API will allow you to save time, automate your processes, and tightly couple features and offerings into your Continuous Delivery system.
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 can help you with development and production and more.