Enhancing the Android Application Experience

Start learning the skills necessary to create Android apps that provide the kind of rich, high-quality, and engaging experience users expect.
Course info
Rating
(38)
Level
Intermediate
Updated
Jun 26, 2017
Duration
4h 51m
Table of contents
Designing and Planning Your App
Working with RecyclerView and CardView
Binding Data to RecyclerView
Using Options Menus
Working with Navigation Drawer
Testing Menu, Navigation Drawer, and RecyclerView Behavior
Using Drawable and Values Resources
Customizing App Appearance with Styles and Themes
Creating Settings Screens and Accessing SharedPreferences
Description
Course info
Rating
(38)
Level
Intermediate
Updated
Jun 26, 2017
Duration
4h 51m
Description

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.

About the author
About the author

Jim Wilson is president of JW Hedgehog, Inc., a consulting firm specializing in solutions for the Android, iOS, and Microsoft platforms. Jim has over 30 years of software engineering experience, with the past 15 years heavily focused on creating mobile device and location-based solutions.

More from the author
More courses by Jim Wilson
Section Introduction Transcripts
Section Introduction Transcripts

Designing and Planning Your App
Welcome to the Pluralsight course, Enhancing the Android Application Experience. This is our first module, Designing and Planning our App. In this module, we'll quickly provide a high-level view of what we're going to cover throughout this course. My name is Jim Wilson. This is a super exciting course, and I'm so glad you're joining me for it. It's exciting for two reasons. One is that we're going to cover a lot of great Android stuff, but also, the application we've been working on really begins to grow up throughout this course, and we really transition our app from being a little baby duckling to being a beautiful grown-up swan, so we're going to cover a lot of things throughout this course to achieve that. So from an application standpoint, the first thing we'll do throughout this course is improve the appearance of our note list, and we're going to do that using something called a RecyclerView. And then from there, we'll improve the interaction of our note activity, and we'll do that through a combination of using the Options menu, but also using a feature of the Options menu known as app bar actions. We'll then expand the navigation of our application using the navigation drawer, and then we'll revisit automated user interface testing. And that's important, because as we add these new features to our application, there are new testing capabilities we need to understand. We'll then enrich the app appearance overall using resources. We'll cover drawing resources, as well as some other resource types such as string resources. We'll then give our application more consistency and better branding using Android styles and themes. And then we'll cover how our application can include customizable content behavior using the Android preference system.

Working with RecyclerView and CardView
Welcome to the Working with RecyclerView and CardView module of the Pluralsight course, Enhancing the Android Application Experience. My name is Jim Wilson. Providing a rich user experience is an essential part of most modern applications. Achieving this rich experience using the ListView is difficult to do, so in this module we'll look at a much richer alternative to ListView known as the RecyclerView. So we'll start off by looking at the ListView limitations, we'll then get an overview of the RecyclerView, we'll see what's involved in developing the RecyclerView components, and then we'll take a close look at one of those component types known as RecyclerView LayoutManagers.

Binding Data to RecyclerView
Welcome to the Binding Data to RecyclerView module of the Pluralsight course Enhancing the Android Application Experience. My name is Jim Wilson. The RecyclerView uses an efficient presentation model that separates view creation from data display. This model's behavior is provided by the RecyclerView adapter. Understanding the RecyclerView adapter is essential to working effectively with RecyclerView. So in this module, we'll start out by looking at RecyclerView and adapter interaction, we'll then see what's involved with implementing the RecyclerView adapter, we'll look at the view management aspects of the adapter, we'll then look at the data management aspects of the adapter, and then we'll finish up with a discussion of item selection within a RecyclerView.

Using Options Menus
Welcome to the Using Options Menus module of the Pluralsight course Enhancing the Android Application Experience. My name is Jim Wilson. In the first course in this series, we added a few features to our NoteActivity using the options menu. As we saw then, the options menu provided a quick and easy way to surface activity features to the user. Well, in this module we're going to take a closer look at options menus so more fully understand their capabilities. So we'll start out with taking a look at the options menu basics, we'll then look at how menu items become app bar actions, in other words, icons that appear directly on the app bar. Then we'll see how we can change menu items at runtime.

Working with Navigation Drawer
Welcome to the Working with Navigation Drawer module of the Pluralsight course, Enhancing the Android Application Experience. My name is Jim Wilson. In this module, we're going to take a look at the navigation drawer, which is one of the key user interface facilities for providing users with the ability to easily navigate through your application's features. We'll start out by taking a look at the navigation drawer's behavior and usage, we'll then look at the classes that are involved in creating a navigation drawer. We'll then focus in on one of the really important classes called the NavigationView, we'll look at the resource types that are associated with the NavigationView, and then finally we'll take a look at NavigationView selection handling.

Testing Menu, Navigation Drawer, and RecyclerView Behavior
Welcome to the Testing Menu, Navigation Drawer, and RecyclerView Behavior module of the Pluralsight course, Enhancing the Android Application Experience. My name is Jim Wilson. Throughout this course, we've seen how to provide users with a richer application experience through the use of menus, navigation drawers, and RecyclerViews. Well in this module, we dig into how to build automated UI tests that exercise these features, so that we can be sure that our app continues to provide users with a high quality and reliable experience. So to get us started, the first thing we'll look at is how testing these UI features are similar to our automated UI tests we talked about earlier in our series, and as you'll see, they have far more in common than is actually different. We'll then look at test actions that are related to navigation drawers, look at test actions that are related to RecyclerViews, and then to bring this all together, we'll finish up this module by building a comprehensive automated UI test that exercises the features of our application that rely on these UI capabilities.

Using Drawable and Values Resources
Welcome to the Using Drawable and Values Resources module of the Pluralsight course, Enhancing the Android Application Experience. My name is Jim Wilson. In this module, we'll look at the important role that drawable resources and values resources play in creating an application's user experience. So we'll start off by taking a brief look at the general aspect of working with resources, we'll then see how we can introduce imagery into our application using drawable resources, we'll see how we can provide values like strings, colors, or even integers using values resources, and then we'll finish up by taking a look at how we can access resources from our Java code.

Customizing App Appearance with Styles and Themes
Welcome to the Customizing App Appearance with Styles and Themes module from the Pluralsight course, Enhancing the Android Application Experience. My name is Jim Wilson. An important aspect of modern application development is providing a rich, consistent, and oftentimes well-branded application experience. Styles and themes are a key part of achieving this goal. So in this module, we'll first look at the role of styles, we'll then see how to declare and use styles, we'll see the role of themes, we'll see how we can modify themes using the Android Studio Theme Editor, and we'll also see how we can use themes to provide default styling for views.

Creating Settings Screens and Accessing SharedPreferences
Welcome to the Creating Settings Screens and Accessing SharedPreferences module in the Pluralsight course Enhancing the Android Application Experience. My name is Jim Wilson. Most applications provide at least some degree of user customization. In this module, we dig into how to use the Android preference system to expose such customization through settings screens. So we'll start out with an overview of what's required for a settings screen, we'll then see how to create a settings screen using Android Studio we'll see the resources and classes involved in creating settings screens, we'll see how to customize a settings screen for our own application needs, we'll see how to manage preference summary information and deal with default values, and then we'll finish up by seeing how to access the information from our settings screen using the SharedPreferences class.