This project-oriented course will investigate the issues surrounding application development for mobile platforms. First, 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: constrained resources, small screen sizes, varying display resolutions, intermittent network connectivity, specialized sensors, security restrictions, and so forth. Second, we will look at best practices for making mobile applications flexible: using XML-based layouts, managing multimedia, storing user data, networking via NFC and WiFi, determining device location and orientation, deploying applications, and gracefully handling shutdowns and restarts to the application. We will also explore embedding web components in applications, showing maps with the Google Maps plug-in, and storing local data with SQLite.

Course prerequisites: 

605.481 Principles of Enterprise Web Development or equivalent Java experience.

Course notes: 

Note: Students will be provided links to download free tools for building and testing Android apps; Android devices are required for online sections of this course. The instructor has a limited number of loaner devices for in-person sections.

Course instructor: