Developing Android Apps Course

Developing Android Apps Course

As the first course in the Android Developer Nanodegree, Developing Android Apps is the foundation of our advanced Android curriculum. This course blends theory and practice to help you build great apps the right way. In this course, you'll work with instructors step-by-step to build a cloud-connected Android app, and learn best practices of mobile development, and Android development in particular.

Lesson 1: Create Project Sunshine with a Simple UI (5-8 hrs)

Starting by installing Android Studio, you’ll create your first project with a simple list-based user interface and built and deploy it to virtual and actual devices. You’ll also discover what makes mobile - and Android in particular - a unique environment for app development.

Android Studio, Gradle, and debugging tools
User Interface and Layout managers
ListViews and Adapters
Lesson 2: Connect Sunshine to the Cloud (8-10 hrs)

Replace the mock data with real weather data by connecting Sunshine up to an Internet back-end courtesy of the Open Weather Map API. You’ll learn how to add permissions to your app, initiate network I/O, and how to move time consuming tasks like network data transfers off the main UI thread.

Threading and ASyncTask
HTTP requests on web APIs
Android Permission System
Lesson 3: Create New Activities and Navigate Apps with Intents (8-10 hrs)

Give your app structure and create more complex Activities. You’ll learn about Android’s Intent framework, and how to use Intents to navigate between Activities, both within your app and as a way to add 3rd party functionality.

App navigation with Explicit Intents
Implicit Intents to incorporate 3rd-party apps
Share Intent and the Android sharing framework
Broadcast Intents and Broadcast Receivers
Optional Project: Popular Movies, Stage 1 (5-10 hours)

Build an app to help users discover popular and recent movies. You will build a clean UI, sync to a server, and present information to the user.

Lessons 4: Use Content Providers and Loaders to Persist and Recover Data (15-20 hrs)

Learn how the Android framework manages the activity lifecycle, and how it differs from what you might expect, and dive head-first into the world of persistent storage. Learn how to create databases, use Android’s Content Providers to provide an abstraction layer between your data and your UI implementation, and use Loaders to efficiently load stored data.

Activity lifecycle and background activity termination
SQLite databases and JUnit tests
Creating and using a Content Provider as an abstraction layer
Using Loaders to asynchronously load data
Creating Adapters to bind UI components to Content Providers
Lesson 5: Implement Rich and Responsive Layouts (8-10 hrs)

Create rich, responsive user interfaces that work across a variety of different hardware types and screen sizes. You’ll learn more details on using the Android Layout managers, Fragments, UI widgets, and Android design principles to add visual polish to your user interfaces, and how to create your own controls from scratch.

Fundamental Android design principles
Supporting localization and variable screen sizes
Optimizing tablet UIs using Fragments
Accessibility Features
Custom views
Lesson 6: Use Services and Notifications to Run in the Background (5-8 hrs)

Deliver a great user experience, even when your app isn’t visible. Learn how the Android framework manages background apps; and discover how to use Services and Notifications to make your app to be active when it’s not in the foreground. You’ll learn techniques for efficient data transfers using SyncAdapters and Google Cloud Messaging, so your app can stay up-to-date without draining the battery.

Background services and alarms to schedule background tasks
Efficient background data transfers with SyncAdapters
Rich notifications to interact with users
Optional Project: Popular Movies, Stage 2 (4-6 hours)

Add to the app you built in Stage 1 by building on the detail view for each movie, allowing users to 'favorite' movies, and adding a tablet layout.

Final Project (10-20 hours)

Build your own Android app incorporating the skills you've learned in this course.