CSC413: Mobile Application Development 6 credits (24-6-30)

Objectives

This course covers how to develop applications for mobile devices (e.g., those devices that use the Google Android platform). The course not only teaches the required programming, but also an understanding of constraints peculiar to mobile hardware and software (power usage, screen real estate, challenges in capturing user’s attention) that runs on them, and in spite of these limitations, how to develop truly useful applications that run on these devices. Differences between mobile and desktop computing will be examined, sample mobile apps will be analyzed, and tools for the development of new mobile apps will be covered. Knowledge of Java and an IDEs like NetBeans and Eclipse are assumed, but the Android Application Framework and relevant libraries will be taught.

Contents

Overview of mobile technologies (SMS, MMS, GPRS, 3G, M-PESA). Device and carrier dependence and independence. Categories of Mobile Apps: phone-related, Internet/Web-based, games, GPS-based, standalone utilities, integration utilities. SMS Applications.

Mobile Application Development (J2ME Programming) on the Android platform: Software architecture. Application models. User interfaces: view hierarchy, navigation, gestures, multi touch interfaces, graphics, animation. Data storage: UNIX File System files, SQLite Databases, object persistence. Networking: Internet, Bluetooth, Near-Field Communication (NFC). Development environments: Eclipse (or some other environment) with Android Development Tools/Android Application Framework/Java/Android device emulator.

Emergent Mobile technologies (orientation awareness, location awareness, multimedia). Selling a Mobile App, e.g., at the Google Android Marke