Overview of the Android Environment
Learning Objectives; Overview of Android OS; Android Market;
Installing the Android Environment
Eclipse Integrated Development Environment (IDE); Android Development Tools (ADT); Software Development Kit (SDK); Android Versions;
The Eclipse IDE
Building your App using Eclipse; Breakpoints in Eclipse; Debugging in Eclipse; Fixing Errors;
Introduction to Java Programming
Variables; Strings; Control Structures; Arrays; Methods; Classes and OOP; Inheritance;
XML Format; XML Schema; XML used in Android;
Your first Android App
Creating your App using Eclipse; Understanding the Default Files; Setting up the Emulator; XML Layout and String resources;
Creation of a basic single view HelloWorld Android App to show how to create and run an App using Eclipse and the Emulator.
Android Application Lifecycle - Activities
Creating Activities, The Activity Lifecycle, Activity Stacks, Activity States, Monitoring State Changes, Understanding Activity Lifetimes, The Activity Class.
Creation of an app to demonstrate the activity lifecycle.
Creating new fragments; Understanding the Fragment Lifecycle; Events, States; The Fragment Manager; Adding Fragments to Activities; Interfacing between Fragments and Activities; Android Fragment Classes;
Creation of an App to demonstrate how to create and manage Fragments, add to activities and interface with Activities.
Adding Interactive Behaviour
Basic Event Handling; Linking UI elements to Method;
Creation of an App to show how to add interaction between the App and the user. Adding Button elements to the UI and showing how to link these Button events to Java methods.
Designing the User Interface
App Design Guidelines; Introduction to Views and View Groups; Using Layouts; View orientations;
Creation of an App from scratch using the GUI editor in Eclipse to design your App's User Interface. How to create views and layouts and link UI element to Java classes.
Android UI Elements
Using Android provided Views, ListViews, PickerViews; Using Menus, Adapter Objects and Adapter Views; Displaying properties file contents;
Creation of an App using Android views, which will show how to add menus and display basic text file data.
Using Intents to launch Activities; Setting launch and task behaviour; Understanding the Intent Object; Creating Intent Filters;
Creation of an App which will show how to implement Intents to launch an Activity to take a picture.
Listening for Native Broadcast Intents; Monitoring Device State Changes using Broadcast Intents; Managing Manifest Receivers at runtime;
Creation of an App which implements the broadcast receiver, which detects when the mobile's Battery is low.
Using Internet Resources
Connecting to the Internet; Understanding JSON format; Parsing JSON into Java Objects; Writing JSON Web Queries; Using Internet Services; Connecting to Google App Engine; Best practices for downloading data without draining the battery;
Creation of a Simple network example; Connecting to the Network; Creating Basic Web Views.
Files, Saving State and Preferences
Saving Simple Application Data; Creating and Saving Shared Preferences; Retrieving Shared Preferences; Creating a Settings Activity; Persisting the Application Instance State; Including static files as resources; Working with the File System; Creating, Using, Storing Application Files;
Creation of a Simple App to read and write data to files.
Introducing the Android Databases; Overview of Relational Data; Introducing SQLite; Android Database Considerations; Querying a Database Adding; Updating and Deleting Rows; The Android Database Classes;
Creation of an App to implement and use the SQLite database, which can edit and store contact details.
Syncing to the Cloud
Syncing to the Cloud; Resolving conflicts; Transferring data using Sync Adapters;
Creation of a Simple App to store data to a cloud based database.
Displaying Maps; Getting and monitoring location data; Storing your tracking data;
Creation of an App which displays a Google Map, displays your location and tracks and displays your movements.
Audio, Video and using the Camera
Playing audio and Video; Introduction to the Media Player; Controlling Media Player; Requesting and Managing Audio Focus; Audio Effects; Using the Camera to take Pictures; Controlling the Camera directly; Recording Video using Intents; Using Media Effects; Adding Media to the Media Store;
Creation of an App which displays and plays your pictures and video content, uses the Media Effects and adds media to the Media Store.
Managing Networks, Internet Connectivity and WI-FI
Introduction to the Connectivity Manager; Supporting User Preferences for Background Data Transfer; Finding and Monitoring Network Connectivity; Managing WI-FI Connectivity; Monitoring Active WI-FI Connections; Scanning HotSpots; Creating and Managing WI-FI Configurations; Transferring Data using WI-FI Direct;
Creation of an App which connects to the Internet when WI-FI is detected and plays online video content.
Advanced GUI Elements
Designing for Every Screen size and density; Optimising for Different Screen Sizes; Introduction to the Action Bar; Modifying the Icons and Title; Customising the background; Customising the Action Bar using drop-down lists; Using Custom Navigation Views; Introducing User Notifications; Registering Events;
Creation of an App which demonstrates how to use the advanced GUI elements such as the action bar, icons, drop-down lists and how to create custom navigation windows, user notifications and register events.
Graphics and Animation
Displaying Bitmaps Effectively; Using OpenGL; Adding Animation;
Creation of an App which displays 2D content using OpenGL.
Mobile Device Restrictions
Power concerns; Network concerns; Memory Usage;
Unit Testing, Source Control
Introduction to Unit Testing; Creating and running simple Unit Tests; Source Control using Git, Commits and Branches;
Creation of an App to show how to create and run unit tests in Eclipse IDE. Also demonstrating how to use source control features such as Commits and Branches.
Publishing your App
Preparing your App; Become a market publisher; Understanding Android Market; Uploading your App;
Demo on how to submit your completed App to the Android Market site.