The courses in this section will teach you the fundamentals of Android development including Android Studio, activities, activity lifecycle, activity interaction with intents, UI layout design, debugging, automated testing, Android Support Libraries, Gradle, and more. These courses will give the foundation necessary to move to the intermediate level.
The key to becoming a successful Android app developer is getting the basics right. Android is a component-based platform that has a different programming model than many other platforms. Understanding this component model, especially the familiar UI components known as Activities, is essential to success. In this course, Understanding Android Application Basics, you'll get a better understanding of the Android application basics. First, you'll start by deploying a simple Android application to become familiar with the environment. Next, you'll walk through the process of designing the user experience for a more involved application. Finally, using the Android Studio designer, you'll layout an interactive activity and connect it to Java code. Throughout the course you'll continue enhancing the app to become a multi-activity user experience that provides interactive editing features and proper Activity lifecycle management.
Table of contents
- Building a Simple App28m
- Designing and Planning Our App19m
- Understanding Activities and Activity Layout Interaction46m
- Working with Activities51m
- Taking a Deeper Look at Activity Interaction52m
- Understanding Activity Lifecycle33m
With any craftsman, knowing how to use your tools is a critical part of doing a job well. Android Studio, is the single most important tool for Android developers, and it includes a wide variety of features that empower developers to work effectively and assure software quality through testing. In this course, Working with Android Tools and Testing, you'll learn the skills necessary to work efficiently as an Android app developer, and assure quality software through testing. First, you'll start by exploring Android Studio productivity tools, such as refactoring and automatic code generation. Next, you'll learn how to identify and resolve application problems using the debugger. From there, you'll learn how to incorporate more expansive feature support into your applications using Android Support Libraries and the Gradle build system. Finally, you'll learn how to assure software quality and reliability through the combination of local JVM unit tests, Android instrumented unit tests, and automated user interface tests. By the end of this course, you'll have the necessary skills and knowledge to utilize Android Studio efficiently for your own Android applications.
Table of contents
- Working with the Core Tools and Features45m
- Understanding the Android Studio Build Process29m
- Using JVM Testing48m
- Understanding Instrumented Testing50m
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.
- Start the Store Information Activity20m
- Start the Google Maps Activity20m
- Start the Phone Activity20m
- Share a Candy with an Intent20m
These courses build on the Android fundamentals you learned in the previous section to teach you the skills necessary to provide a rich application experience that leverages the many features and capabilities of the Android platform. Topics covered include RecyclerView, CardView, NavigationDrawer, options menus, app bar actions, styles, themes, preferences, SQLite, content providers, notifications, PendingIntent, and more.
Providing a high-quality user experience is critical to the success of any application. Android provides a wide-variety of features and capabilities that empower developers to provide such an experience and this course, Enhancing the Android Application Experience, will serve as your guide to including these features in your applications. First, you'll learn how to include rich, card-based lists using RecyclerView and CardView. After that, you'll explore how to improve user interaction with options menus and app bar actions. Next, you'll cover how to expand your application navigation experience with NavigationDrawer. To assure application reliability, you'll learn how to create automated UI tests that cover RecyclerView, options menus, and NavigationDrawer. Additionally, you'll dive into how to enrich the app appearance and branding through resources, styles, and themes. Finally, you'll discover how to provide user customizable behavior with SharedPreferences and settings screens. By the end of this course, you'll have the necessary skills and knowledge to create Android apps of your own that provide a high-quality engaging user experience.
Table of contents
- Designing and Planning Your App8m
- Working with RecyclerView and CardView26m
- Binding Data to RecyclerView35m
- Using Options Menus30m
- Working with Navigation Drawer52m
- Testing Menu, Navigation Drawer, and RecyclerView Behavior18m
- Using Drawable and Values Resources34m
- Customizing App Appearance with Styles and Themes45m
- Creating Settings Screens and Accessing SharedPreferences39m
SQLite is the persistent storage solution of choice for the overwhelming majority of Android applications. In this course, Managing Android App Data with SQLite, you'll learn how to create Android applications that effectively leverage the persistent storage capabilities of SQLite. First, you'll explore how to create and access a SQLite database in a way that conforms to the standards and best practices of Android app development. Next, you'll dig into the rich query capabilities of SQLite including row selection criteria and row ordering. Then, you'll discover how to use adapters to connect SQLite data to views like RecyclerView, Spinner, and ListView. Additionally, you'll walk through how to perform lifecycle aware queries using LoaderManager and CursorLoader. Finally, you'll learn how to update, delete, and insert data within a SQLite database, including how to maintain a responsive user experience. By the end of this course, you'll have the skills and knowledge to create Android applications of your own that persistently manage data within a SQLite database.
Table of contents
- Understanding SQLite and SQLite Database Creation48m
- Reading Data from SQLite38m
- Filtering SQL Queries34m
- Connecting SQLite Data to Views with Adapters39m
- Performing Lifecycle Aware Data Loading with Loaders36m
- Doing More with SQLite Queries31m
- Interacting with SQLite Data38m
Looking to create opportunities by expanding your Android applications and users beyond all traditional boundaries? In this course, Exposing Data and Information Outside Your Android App, you'll learn how to create opportunities for both applications and users to engage with your app's content in ways that extend beyond the traditional app experience. First, you'll explore how to centralize data management using a Content Provider and make that data available to other applications. Next, you'll discover how to access Content Provider data using a CursorLoader and content URIs. After that, you'll learn how to modify data through a Content Provider including associating URIs with individual table rows. Finally, you'll cover how to interact with users through notifications, including how to create expandable notifications that provide comprehensive display information, and allow users to launch app activities directly from the notification through the use of PendingIntents. By the end of this course, you'll have the skills and knowledge to create your own Android applications that provide rich data and user experiences that extend beyond the traditional reach of applications.
Table of contents
- Creating a Content Provider38m
- Identifying Content Provider Content47m
- Interacting with Content Provider Content43m
- Working with Notifications47m
The courses in this section build on what you've learned in the previous sections to teach you how to create Android applications that closely integrate with the capabilities of the Android platform and are able to reach the widest available user audience. Topics covered include background work with services and JobScheduler, BroadcastReceiver, deep linking, globalization, device adaptability, accessibility, app widgets, custom views, and more.
Modern applications include many rich time-based and background behaviors that extend well beyond direct interaction with the user. In this course, Leveraging the Power of the Android Platform, you'll learn how to use the powerful capabilities of the Android platform to create applications that incorporate these and other related behaviors. First, you'll explore how to utilize the Android threading model, AsyncTasks, Handlers, and StrictMode to effectively perform long-running work in a way that doesn't impact the user experience. Next, you'll discover how to use Android Services for background work that can be safely performed even after the user exits your application. After that, you'll learn how to use the Android Job Scheduler to create background jobs that rely on run criteria such as networking and power requirements, and delegate those jobs to the Android system for management and execution. Additionally, you'll cover how to use Android Broadcasts and Broadcast Receivers to publish information from one application, and allow other applications running on the same device to subscribe to that information. Finally, you'll delve into scheduling time-sensitive tasks using the Android Alarm Manager. By the end of this course, you'll have the skills and knowledge to create your own Android applications that incorporate the rich time-based and background execution behaviors required to create a successful application.
Table of contents
- Understanding the Android Threading Model48m
- Performing Background Work with Services36m
- Scheduling Background Work with JobScheduler45m
- Working with Broadcast Receivers32m
- Using Alarms to Schedule Time-sensitive Tasks20m
The Android platform encompasses one of the largest user bases of any platform and provides those users with a rich device ecosystem filled with choices. In this course, Broadening Android App Appeal and Reach, you’ll learn how to succeed in this environment by creating apps that effectively engage the needs of these users and that adapt to their individual device capabilities. First, you will see how to use the Android resource system to create apps that dynamically adapt to device features and capabilities. Next, you’ll explore how to create locale-aware apps that have multiple-language support and display text in the user’s language of choice. After that, you’ll dive into creating custom views that allow your app to present a rich and engaging user experience. You’ll then learn to add Android Studio design-time configurability to your custom views and incorporate interactive features. Finally, you’ll gain an understanding of how to create apps that provide support for accessibility features such as non-touch navigation and screen readers. By the end of this course, you’ll have the skills and knowledge to create your own Android applications that that effectively engage and meet the needs of the rich ecosystem of Android devices and users.
Table of contents
- Working with Resources for Localization and Adaptability57m
- Creating a Custom View34m
- Handling Custom View Positioning and Sizing44m
- Incorporating Custom View Interactivity and Configurability44m
- Adding Accessibility29m
- Making the Custom View Accessible34m
What you will learn
- Android Application Basics
- Android Tools and Testing
- Enhancing the Android Application Experience
- Managing Android App Data with SQLite
- Exposing Data & Information Outside Your Android App
- Leveraging the Power of the Android Platform
- Broadening Android App Appeal and Reach
This path is intended for beginning Android developers with prior knowledge of the Java programming language. Recommended prerequisite course: Java Fundamentals: The Java Language.