Source Code for Android Course Example Applications
Week 1
Introduction to the Android Platform
HelloAndroid
Development Environment
TheAnswer
Week 2
Application Fundamentals
AppFundamentalsVideoSourceExamples
The Activity Class
MapLocation
MapLocationFromContacts
Week 3
The Intent Class
HelloAndroidWithLogin
Permissions
PermissionExampleBoom
PermissionExampleBoomUser
The Fragment Class
FragmentDynamicLayout
FragmentDynamicLayoutWithActionBar
FragmentProgrammaticLayout
FragmentQuoteViewerWithActivity
FragmentStaticConfigLayout
FragmentStaticLayout
Week 4
User Interface Classes
google-play-services_lib
HelloAndroidWithMenus
UIAlertDialog
UIAutoComplete
UIButton
UICheckBox
UIDatePicker
UIGallery
UIGoogleMaps
UIGridLayout
UILinearLayout
UIListView
UIRadioGroup
UIRatingsBar
UIRelativeLayout
UISampler
UISpinner
UITabLayout
UITableLayout
UITimePicker
UIToggleButton
UIWebView
Week 5
User Notifications
NotificationStatusBar
NotificationStatusBarWithCustomView
NotificationToast
NotificationToastWithCustomView
The BroadcastReceiver Class
BcastRecCompBcast:
BcastRecCompOrdBcast:
BcastRecCompOrdBcastWithResRec:
BcastRecSinBcastDynReg:
BcastRecSinBcastStatReg:
BcastRecStickyInt:
Threads, AsyncTasks and Handlers
ThreadingAsyncTask
ThreadingHandlerMessages
ThreadingHandlerRunnable
ThreadingNoThreading
ThreadingRunOnUiThread
ThreadingSimple
ThreadingViewPost
Alarms
AlarmCreateActivity
Networking
NetworkingAndroidHttpClient
NetworkingAndroidHttpClientJSON
NetworkingAndroidHttpClientXML
NetworkingSockets
NetworkingURL
Week 6
Graphics and Animation
GraphicsBubbleProgram
GraphicsBubbleXML
GraphicsCanvasBubble
GraphicsCanvasBubbleSurfaceView
GraphicsFrameAnimation
GraphicsPaint
GraphicsShapeDraw
GraphicsShapeDrawXML
GraphicsTransitionDrawable
GraphicsTweenAnimation
GraphicsValueAnimator
GraphicsViewPropertyAnimator
Multi-touch and Gestures
TouchGestureViewFlipperTest
TouchGestures
TouchIndicateTouchLocation
MultiMedia
AudioVideoAudioManager
AudioVideoAudioRecording
AudioVideoCamera
AudioVideoRingtoneManager
AudioVideoVideoPlay
Week 7
Location and Maps
LocationGetLocation
LocationGetLocationServices
MapEarthQuakeMap
Sensors
SensorCompass
SensorFilteredAccelerometer
SensorShowValues
Week 8
Data Management
DataManagementFileExternalMemory
DataManagementFileInternalMemory
DataManagementPreferenceActivity
DataManagementSQL
DataManagementSharedPreference
The ContentProvider Class
ContentProviderCustom
ContentProviderCustomUser
ContentProviderExample
ContentProviderWithCursorLoader
ContentProviderWithInsertionDeletion
ContentProviderWithSimpleCursorAdapter
The Service Class
LoggingServiceExample
LoggingServiceWithMessenger
LoggingServiceWithMessengerClient
MusicPlayingServiceExample
ServiceWithIPCExampleClient
ServiceWithIPCExampleService
Syllabus Help
Tentative Schedule
Week #1:
• 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.
Week #2:
• Lecture #3 – Application Fundamentals
• Lecture #4 – The Activity Class
• Lab #2 – The Activity Lifecycle & Reconfiguration: Students build applications that trace the lifecycle callback methods issued by the Android platform and that demonstrate Android's behavior when the device configuration changes (e.g., when the device moves from portrait to landscape mode and back).
Week #3:
• Lecture #5 – The Intent Class
• Lecture #6 – Permissions
• Lecture #7 – The Fragment Class
• Lab #3a - Intents & Permissions: Students build applications that require starting multiple Activities via both standard and custom Intents.
• Lab #3b - Permissions: Students build applications that require standard and custom permissions.
• Lab #3c – Multi-pane and single-pane User Interfaces: Students build an application that uses a single code base, but creates different user interfaces depending on a device's screen size.
Week #4:
• Lectures #8 – User Interface Classes - Part I
• Lectures #9 – User Interface Classes - Part II
• Lab #4 – ToDoManager: Students build a ToDo list manager using the user interface elements discussed in lecture. The application allows users to create new ToDo Items and to display them in a ListView.
Week #5:
• 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.
Week #6:
• 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.
Week #7:
• 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.
Week #8:
• 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.
Final Project: iRemember
We'll implement the front end of a complex handheld application involving many of the concepts presented in the class.