•Lecture #0 - Handheld systems, their use, and how this affects the design of handheld applications
•Lecture #1 – The Android Platform
•Lecture #2 – The Android Development Environment
•Lab #1: Setup: Students identify required software & install it on their personal computers. Students perform several tasks to familiarize themselves with the Android Platform and development environment.
•Lecture #3 – Application Fundamentals
•Lecture #4 – The Activity Class
•Lab #2 – The Activity Lifecycle & Reconfiguration: We'll build applications that 1) trace the lifecycle callback methods issued by the Android platform and that 2) change the application’s layout when the device configuration changes (e.g., when the device moves from portrait to landscape mode).
•Lecture #5 – The Intent Class
•Lecture #6 – Permissions
• Lecture #7 – The Fragment Class
•Lab #3a - Intents & Permissions: We'll build several applications that require starting multiple Activities via standard and custom Intents, and that require non-default permissions.
•Lab #3b – Tablet User Interfaces: We'll build two applications; one that has a series of Activities for use on a phone; one that has a multi-pane user interface for use on a tablet.
•Lectures #8 – User Interface Classes - Part I
•Lectures #9 – User Interface Classes - Part II
•Lab #4 – ToDoManager: We'll build a ToDo list manager using the user interface elements discussed in lecture. The application will use custom views for creatively displaying ToDo items in a list. The application will display two different types of user interfaces, based on whether the device on which it’s running is a small phone or a larger tablet.
•Lecture #10 – User Notifications
•Lecture #11 – The BroadcastReceiver Class
•Lecture #12 – Threads, AsyncTask & Handlers
•Lecture #13 - Alarms
•Lecture #14 - Networking
•Lab #5a – Threads: We'll write concurrent, multi-threaded code to load ToDo items from a networked server via background threads (i.e., without blocking the main UI thread).
• Lab #5b - Broadcast Receiver: We'll build an application that uses a BroadcastReceiver to react when events such as connecting and disconnecting the charger occur.
•Lecture #15 – Graphics & Animation I
•Lecture #16 – Graphics & Animation II
•Lecture #17 – Multi-touch & Gestures
• Lecture #18 – MultiMedia
•Lab #6a - Gesture Sampler: Students build and application that accepts gesture input, such as using an "X" gesture to delete, using a "?" gesture to show help, etc.
•Lab #6b - Bubble Popper: We'll write an application to display and animate bubbles (graphics that look like bubbles) on the device's screen. When users touch the screen where a bubble appears, the bubble pops.
•Lecture #19 – Sensors
•Lecture #20 – Location & Maps
•Lab #7a - Obstacle Course: Students build an application that uses the orientation of the device (tilting, rotating, etc.) to guide an object around obstacles.
•Lecture #21 – DataManagement
•Lecture #22 – The ContentProvider Class
•Lecture #23 – The Service Class
•Lab #8a - Data Management (SQL): Students develop a database for storing and retrieving multimedia notes with textual tags.
•Lab #8b - Mutlimedia Notes Content Provider: Students extend the multimedia notes database so multimedia notes can be shared via a ContentProvider across multiple applications.