Paths

Android

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 provide unique resources for different device configurations. Apps are developed using the Java language in tandem with the Android SDK. This path will start you out with the basics of Android and Android studio, before fine-tuning your skills to make beautiful and functional apps. For those interested, we have the Associate Android Developer learning path to facilitate preparation for the exam.... Read moreRead less

Beginner

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

Description

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

Introduction3m

Android Studio Installation9m

Building the Hello World App45m

Taking Your Next Steps5m

Android Beginner Series: Understanding Android

Description

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

Welcome To Android26m

The Android Operating System25m

Anatomy Of An Android App27m

Ways To Develop Android Apps23m

Android App Markets23m

Android Programming with Intents

Description

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

Android Late Binding and Intents37m

Component activation with intents1h 5m

Delegation and Callbacks through PendingIntents44m

IntentFilter data tests43m

Working with Platform Features Through Intents1h 3m

Introduction to Testing in Java

Description

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

Introduction15m

Testing Code38m

Writing Good Tests48m

Introducing Test Driven Development43m

Dependencies39m

Going Outside-in47m

Exploring Android Studio

Description

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

Introduction14m

Setting Up Android Studio11m

Migrating to Android Studio19m

Android SDK Tools44m

Creating Apps With Android Studio48m

Building and Debugging With Android Studio16m

Library Projects With Android Studio19m

Building a Release Package12m

Advanced Features1h 13m

The Gradle Build System48m

The Android Gradle Plugin31m

Android Fundamentals: SharedPreferences

Description

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

Course Overview1m

Introduction6m

Saving and Retrieving Data from SharedPreferences54m

Using GSON to Save and Retrieve Non-primitive Data Type35m

Introduction to SQL

Description

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

Course Overview1m

Introduction11m

Understanding Basic SQL Syntax13m

Querying Data with the SELECT Statement25m

Filtering Results with the WHERE Clause36m

Shaping Results with ORDER BY and GROUP BY27m

Matching Different Data Tables with JOINs18m

Adding, Changing, and Removing Data20m

Creating Database Tables28m

Android Fundamentals: Activities

Description

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

Course Overview1m

Introduction5m

Getting Familiar with Building Blocks of Android18m

Using Activities to Listen to Events31m

Sharing Data Between Activities Using Explicit Intent27m

Exploring Activity Lifecycle33m

Understanding Activity Lifecycle in Context of Screen Rotation45m

Android Fundamentals: Data Binding

Description

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

Introduction8m

Simple Data Binding35m

Custom and Dynamic Binding25m

Observables20m

Pitfalls and Pro-tips9m

Android Layout Fundamentals

Description

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

Introduction15m

LinearLayout12m

RelativeLayout13m

FrameLayout6m

TableLayout11m

Choosing the Right Layout39m

Android Fundamentals: Styles and Themes

Description

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

Course Overview1m

Introduction3m

Styling Views49m

Using the Concept of Inheritance for Styling Views35m

Applying Themes27m

Maintaining Backward Compatibility27m

Exploring Practical Usage of Styles and Themes22m

Project

Add Implicit and Explicit Intents to an Android Candy Store App

Description

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

Setup15m

Start the Store Information Activity20m

Start the Google Maps Activity20m

Start the Phone Activity20m

Share a Candy with an Intent20m

Intermediate

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

Description

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

Understanding Google Play Billing6m

Creating Digital Products in Google Play15m

Purchasing and Testing In-app Products42m

Securing Your In-app Billing13m

Increasing Your Sales7m

Android Processes and Threads

Description

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

Android Processes and Threads (Application Process Model)27m

Android Processes and Threads (Sharing User IDs and Processes)36m

Android Processes and Threads (Threads and Thread Options)56m

Getting Started with Android Material Design

Description

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

Course Overview1m

Introduction10m

Understanding Material Design40m

Adding a Toolbar31m

Understanding Recycler and Card Views1h 2m

Working with Items and Layout in Recycler View30m

Implementing the Navigation Drawer31m

Using Animation53m

Improving User Interface Design with Android Fragments

Description

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

Fragment Basics44m

Fragment Transactions35m

Fragments lifecycle and specialization55m

Fragments and the ActionBar45m

Android Dreams, Widgets and Notifications: Life Outside Your App

Description

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

Providing an Out-of-App Experience16m

Creating Engaging Notfications49m

Making Notfications Interactive46m

Creating Home Screen Widgets36m

Updating and Configuring Widgets51m

Advanced

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

Description

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

Improving User Interaction with the Android ActionBar22m

Managing the ActionBar Layout39m

ActionBar Navigation1h 4m

ActionBar Interactivity29m

Android Custom Components

Description

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

Introduction4m

Extend a Simple View13m

Compound Control27m

onMeasure9m

onLayout10m

onDraw24m

dispatchDraw6m

Fragment vs. Custom View3m

Android Fundamentals: Accessibility

Description

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

Course Overview2m

Understanding Accessibility Basics12m

Making Your App Accessible39m

Designing for Accessibility51m

Creating Accessible CustomViews57m

Testing Accessibility19m

Android Async Programming and Services

Description

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.