Big Nerd Ranch front page

Android Bootcamp

Android Bootcamp is an intensive 5-day training course designed for developers who wish to create applications for the Android development platform.

Android is unlike any other mobile development platform or Java-based environment. This class will immerse students in the Android platform, leveraging their existing Java expertise, allowing students to walk away from the class ready to build Android GUIs and related components. Android Bootcamp includes instruction on the basics of setting up activities and UI widgets, as well as advanced capabilities that make Android compelling, such as GPS, mapping, Internet access, multimedia, and on-device search.

Upon completion of Android Bootcamp, the student will:

Prerequisites

Experience in Java programming is required. Experience developing graphical user interfaces will be helpful.

Students desiring preparatory reading prior to class should visit http://code.google.com/android/

Syllabus

Section Contents
Introducing Android Learn what Android is all about. Learn how to start an Android application project and what it looks like. Compile a skeleton application and use it in the Android emulator.
Widgets and Containers Understand how to structure your UI using XML. Learn the basic widgets: fields, buttons, labels, etc. Learn about the basic containers for laying out widgets on the screen.
Using Selection Widgets The concept of data adapters and how to wrangle your data into them for display. Introduction to the available selection widgets and attaching them to your data via adapters
Employing Fancy Widgets and Containers Introduction to widgets that go beyond the basics: date and time pickers, clocks, and progress bars. Working with tabbed panes.
Embedded Browsers Introduction to the capabilities of the built-in WebKit browser widget. How to embed a browser in your GUI. How to get control when the user clicks links.
Menus and Messages How to set up options menus for your application and how to get control when those menu choices are chosen. How to display messages to the user via toasts and dialogs
Dealing with Threads The “rules of the road” for using background threads, and why they are important. How to properly structure your Android GUIs to work well with background threads.
Lifecycle Events How and when activities Android GUIs are created– – and destroyed How and when you should exert control over what happens during the activity's lifecycle. How to keep your activity state even if it is killed off by the operating system.
Preferences and Files How to save user selections as preferences, and how to re-apply them the next time your activity is used. How to read and store data in files on the device or on storage cards.
Working with Resources How to externalize aspects of your application, including strings, colors, etc. How to store graphics, XML, and other files in your application package to be stored on the device. How to handle different configurations based on device characteristics or user language.
Managing Local Databases A quick introduction to SQLite. How to create, update, and remove databases and tables. How to create, retrieve, update, and delete data out of tables.
Communicating via the Internet: HTTP What the “rules of the road” are for Internet access on Android devices. How to use built-in HTTP libraries to access Web services.
Communicating via the Internet: JavaMail What the limitations are for using third-party Java code in an Android application. How to use third-party code to access non-HTTP Internet services, using JavaMail and IMAP/POP3 as an example.
Intents and Activities Introduction to intents and their role as the “glue” in Android intra- and inter-application communication What intents activities respond to by default. How to set up more than one activity in an application, and the intent filters needed for the other activities to be available for use. How to invoke another activity from your main one.
Activity Introspection How to allow your applications to invoke arbitrary available actions on data supplied by other applications. How to arrange it so your application can, in turn, be invoked by other applications if they so choose.
Using a Content Provider Introduction to the notion of content providers and their role in the Android ecosystem. How to create, retrieve, update, and delete information out of somebody else's content provider.
Building a Content Provider How to create a class that supports the content provider interface. How to wire that class into your application so it can serve as a content provider.
Database-Backed Content Providers How to route content provider methods to a SQLite database for processing. How to upgrade your database when your application is upgraded.
Services and Permissions Introduction to the concept of services and what niche they fill in your Android application. Introduction to the Android permission system for controlling access to content providers and services. How to create a stub do-nothing service.
Service AIDL Introduction to the concept of an interface definition language (IDL). Overview of the structure of the Android IDL (AIDL). How to specify an AIDL interface for your service. How to implement the AIDL interface in your service.
Service Behavior The implications of AIDL's synchronous nature. Using background threads in your service. Raising notifications to alert users of things your service has done.
Invoking a Service How to access the AIDL interface specified by a service. How to handle broken service connections.
Location-Based Services An overview of the means an Android device has to tell you where it is in the world. How to find out where the device is using location providers. How to be notified as the device moves. How to be notified when the device gets to destinations.
Displaying Maps An overview of what is possible using Google Maps integrated in Android devices. How to set up a map activity in your application. How to control the zoom level and stock overlays (e.g., satellite view). How to craft your own overlays to show the device's position or other landmarks of note.
Playing Media An overview of what media capabilities you should expect on an Android device. How to play back audio clips. How to play back video clips.
Other Advanced APIs How to access the phone service, to determine if the user is on a call or to place calls. How to invoke the on-device search engine from your application. How to have your application be searched by the on- device search engine.

Price

A five-day class, a student guide, a comfortable room, three delicious meals a day, a stylish "Big Nerd Ranch" t-shirt, and ground transportation to and from the airport for $3500. Plan to arrive on Sunday evening and depart on Friday afternoon.