Since the Android mobile platform was first open sourced by Google in November 2007, it has attracted thousands of developers and deployment of over 70,000 mobile applications in the Android Market with over 1 billion downloads. Today, more than 60 smart phones from major manufacturers run the Android platform. In addition, within the last two years, the number of web searches through mobile phones (both Android and non-Android platforms) has increased five times. All these numbers show how the Android project has gained its momentum to move forward and how mobile applications will become more widely-used by smart phone users.

This tutorial, presented by GVSU Computer Science Profs Hans Dulimarta and Jonathan Engelsma, will introduce you to the open source Google Android SDK and how to develop mobile applications on the Android platform. Upon completing this tutorial, you will have acquired a working knowledge of the Android platform and its development environment.  As we progress through the topics we will incrementally develop a fully functional Android Twitter application from scratch to learn the key concepts and overall life cycle of an Android application.  By downloading the source code and following along you can quickly develop an understanding of the Android platform and go off and build Android apps of your own.

The Android SDK is based on the Java programming language, so in this tutorial we will assume you already have a working knowledge of Java.  If you do not, we’d suggest you Google for one of the many wonderful Java tutorials online and come up to speed in Java before attempting this tutorial.  We also realize that it would be futile to try to cover the entire Android platform in a half dozen 30 minute segments!   Instead, we’ve sort of cherry picked what we think are the basic core concepts that every Android developer must learn along the way.  We believe once you’ve mastered these you are well positioned to master the entire Android platform in its full glory.

Here are the links you need to retrieve the videos, viewgraphs, and sample source code:

1. Download the videos on iTunes U.
2. Download a copy of the viewgraphs used in the tutorial here.
3. Download a copy of the sample source code here.

Here is a brief summary of the contents of the tutorial:

Module 1: An over view the Android platform archiecture, the Dalvik virtual machines, identification of the key Android building blocks: Activities, Services, Broadcast Receivers, Content Providers, Intents, and the Activity lifecycle.  Duration 27:18.

Module 2: Whirlwind tour of setting up your Android development environment.  Your first “hello world” Android app, how to emulate and debug Android applications on your desktop.  Duration 30:13.

Module 3: Android user interface basics.  Views, viewgroups, layouts, and widgets.  A brief discussion comparing Android UI concepts to the potentially more familiar Java Swing/AWT concepts.  Revisiting the “hello world” app from the previous module and making it interactive. Duration 29:47.

Module 4: Most interesting mobile apps fetch and interact with data stored in the cloud.    In this module we present and discuss guidelines for dealing with various challenges that networked mobile apps face.  To demonstrate these concepts, we revisit our running sample program and integrate with  the Twitter RESTful web services to search for and display interesting tweets. Duration 25:23.

Module 5: In this modules we look at ways to jazz up our sample program by using more advanced techniques.  In particular we discuss and demonstrate the importance of using RelativeLayouts.  We also show how LayoutInflators are used to instantiate individual list items via an XML description of the item’s layout. Duration 22:38.

Module 6: We complete the tutorial by discussing a number of more advanced topics.  In particular we show how to handle the special markup found in the tweet text (urls, @mentions, #hashtages, etc.).  We also show how to efficiently download and display the twitter user thumbnails for each tweet.  Duration 30:00.

We recently gave this tutorial at the Consortium for Computing Sciences in Colleges Conference, and in the future will be giving it at additional venues as well. We would really appreciate any feedback/comments that will help us improve the content moving forward.

Finally, a big THANK YOU to our GVSU colleagues Vincent St. Germain who was responsible for the video production, and to Jayne Dissette who was the behind-the-scenes instigator of this entire project.