This project-oriented course will investigate application development for the Android mobile platform. We will look at techniques for building applications that adapt to the ways in which mobile apps differ from traditional desktop or web-based apps, including constrained resources, small screen sizes, varying display resolutions, intermittent network connectivity, specialized sensors, and security restrictions. We will explore best practices for making mobile applications flexible: using XML-based layouts, networking via NFC and Wi-Fi, determining device location and orientation, deploying applications, gracefully handling shutdowns and restarts to the application, embedding web components in applications, showing maps with the Google Maps plug-in, and storing local data with SQLite.
Expertise in simple SQL, Java and basic APIs, including callbacks, threads, XML, lists, and maps.
Students should already be very comfortable with Java. Students will be provided links to download free tools for building and testing Android apps. Note that Android emulators may run quite slowly on some machines; physical Android devices are strongly recommended for this course.