This document outlines a curriculum for learning Android app development comprising 5 units and 14 lessons. The first unit covers getting started with creating basic apps, views, and resources. Subsequent units focus on user experience, background tasks, data storage and loading, and finally polishing and publishing apps. Key topics include activities, intents, debugging, testing, support libraries, user input, screen navigation, RecyclerView, Material Design, adaptive layouts, services, notifications, data storage with SQLite and content providers, and using libraries like Firebase.
2. Curriculum Outline
5 units comprising 14 lessons
● Unit 1 : Getting Started
● Unit 2 : User Experience
● Unit 3 : Background Tasks
● Unit 4 : Data
● Unit 5 : Polish and Publish
6. Resource That Help You Learn
● Official Android documentation
● Image Asset Studio
● Android Monitor page
● Official Android blog
● Android Developers blog
● Google I/O Codelabs
● Stack Overflow
● Android vocabulary
● Google Developer Training website
8. Debugging Apps
● All code has bugs
● Android Studio logging
● Android Studio debugger
● Working with breakpoints
● Changing variables
● Stepping through code
9. Testing Your Apps
● Find and fix issues early
● Less costly
● Takes less effort
● Costs to fix bugs
increases with time
$1 Specification Design Code QA Release
$10
$100
$1000
Cost to Fix
Discovery Time
Catch bugs
early!
10. Using The Android Support Library
● What are the Android support libraries?
● Features
● Selected Libraries
● Setting up and using support libraries
17. Material Design
Material Design has guidelines on the use and implementation of
Android components
● Bottom Navigation
● Buttons
● Cards
● Chips
● Data Tables
● Dialogs
● Dividers
● Sliders
● Snackbar
● Toasts
● Steppers
● Subheaders
● Text Fields
● Toolbars
18. Resources for Adaptive Layout
Layouts that look good on different
screen sizes, orientations,
and devices
19. Testing The User Interfaces
● Testing Methods
● Automated Testing
● Using Espresso
● Testing Environment and Setup
● Creating Espresso Tests
● Espresso Test Examples
● Recording Tests
21. AsyncTask & AsyncTaskLoader
Main Thread (UI Thread)
Worker Thread
doInBackground()
onPostExecute()
LoaderManager
AsyncTaskLoader AsyncTask WorkToDo
Request
Work
Receive
Result
Activity
22. Connect to the Internet
1. Add permissions to Android Manifest
2. Check Network Connection
3. Create Worker Thread
4. Implement background task
a. Create URI
b. Make HTTP Connection
c. Connect and GET Data
5. Process results
a. Parse Results
26. Alarm Manager
● Not an actual alarm clock
● Schedules something to happen at a set time
● Fire intents at set times or intervals
● Goes off once or recurring
● Can be based on a real-time clock or elapsed time
● App does not need to run for alarm to be active
27. Job Scheduler
● Used for intelligent scheduling of background tasks
● Based on conditions, not a time schedule
● Much more efficient than AlarmManager
● Batches tasks together to minimize battery drain
● API 21+ (no support library)
29. Storing Data
● Shared Preferences—Private primitive data in key-value pairs
● Internal Storage—Private data on device memory
● External Storage—Public data on device or external storage
● SQLite Databases—Structured data in a private database
● Content Providers—Store privately and make available publicly
30. Shared Preference
● Read and write small amounts of primitive data as key/value
pairs to a file on the device storage
● SharedPreference class provides APIs for reading, writing, and
managing this data
● Save data in onPause()
restore in onCreate()
32. SQLite
● Store data in tables of rows and columns (spreadsheet…)
● Field = intersection of a row and column
● Fields contain data, references to other fields, or references to
other tables
● Rows are identified by unique IDs
● Column names are unique per table
33. Content Provider
Activity / Adapter
ContentProvider
Data
ContentResolver
1. Activity/Adapter uses
ContentResolver to query
ContentProvider
2. ContentProvider gets data
3. ContentResolver returns data as
Cursor
4. Activity/Adapter uses data
34. Loaders
● Special purpose classes that manage loading data
asynchronously in the background
● Introduced in Android 3.0
● Uses AsyncTask