CSE 382 Mobile App Development

Catalog description:

Implementation of cross-platform applications for mobile platforms such as iOS and Android. Programming languages, development environments, debugging, testing, and application design. Development of applications that: provide an effective graphical interface, access internet resources, permanently store data, access the device’s hardware, and display graphical elements.

Prerequisites: 

CSE 278

Required topics (and weeks per topic):

  • Introduction to Mobile Applications (0.5)
    • Issues related to mobile applications: limited storage, minimize communication and power consumption, etc.
    • Portable applications
  • Tools for Mobile Application Development (2.0)
    • IDE for application development and simulation
    • Programming language(s) for mobile development
    • Debugging mobile applications
    • Testing GUIs
  • Design and Implementation of Mobile Applications (5.0)
    • Controls for user input
    • Specifying GUIs using code and markup languages
    • User interfaces for effective navigation
    • Events and event handlers
    • Software design patterns for supporting GUI development
    • Asynchronous processing for responsive interfaces
    • Using 3rd party software
  • Permanent storage (2.5)
    • Preferences
    • File system
    • Databases
  • Connected applications (2.0)
    • JSON
    • Using web services
  • Accessing Device Hardware (1.0)
    • Devices: accelerometer, GPS, camera
    • Accessing the devices from an application
  • Quizzes (1.0)

Learning Outcomes:

  1. Utilize modern techniques to implement cross platform mobile applications
    • The student can use an IDE to develop, debug, and test mobile applications
    • The student can develop cross platform applications that provide behavior unique to the runtime platform
    • The student can use software frameworks for testing GUI applications
    • The student can compare and contrast the benefits and trade-offs of cross platform development relative to developing native applications
  2. Develop effective and responsive mobile applications
    • identify the important issues relevant to mobile applications
    • utilize common graphical elements to acquire user input and display data (e.g., labels, button, list box, etc)
    • develop mobile applications that support different form factors (e.g., phone or tablet) and orientations (e.g., landscape or portrait)
    • utilize software design patterns commonly used in mobile application development
    • describe and utilize common navigation patterns for constraining user input (e.g., tabbed, carousel, hierarchical, etc)
    • use asynchronous processing to provide a responsive interface
    • identify the basic security aspects of mobile applications
  3. Implement mobile applications that permanently store data.
    • store information in a local database
    • store information in the app’s file system
    • store information in the app’s preferences
  4. Implement mobile applications that use internet resources
    • use a webservice to retrieve information from an internet resource
    • use a standard data interchange format (e.g., JSON) to receive data from an external source
  5. Implement mobile applications that access the device’s hardware (e.g., GPS, accelerometer, camera, etc.)