There are more mobile devices on the planet than people. Mobile app development helps to unleash the full power of mobile devices and push their usage into every corner of modern society. This course introduces students to important concepts and aspects in mobile application development on Java-based Android phones, including UI design, data persistence, multimedia support, sensor management, multithreading, debug and test, and application publishing. Although the course is centered on Android, general principles of mobile app development discussed here can also be applied to other contexts.

Course Code: CS-4547
Credit Hours: 03
Prerequisites: Nil

Learning Outcomes: 

Upon completion of the course students should be able to:

  • Install and configure Android application development tools.
  • Design and develop user interfaces for the Android platform.
  • Save state information across important operating system events.
  • Apply Java programming concepts to Android application development.
  • Deploy the fully developed Android Application

Course Activities and Design:

The course consists of:

  • Lectures
  • Discussions
  • Lab assignments
  • Video presentations

Outcome Assessment Strategies:

Student mastery of learning outcomes will be assessed using:

  • Programming labs (5-Marks)
  • Quizzes /Tests (5-Marks)
  • Video Lectures (10-Marks)
  • Discussion participation on topics related to the Android programming environment and the Android application marketplace.

Course Content (Themes, Concepts, Issues, and Skills)

Outcome: Install and configure Android app development tools.

Content that supports this outcome:

  • Installation and Configuration of application development tools, including:
    • Java Software Development Kit (JDK)
    • Android Software Development Kit (SDK)
    • Android Studio
    • Android Virtual Device Manager
    • Genymobile
    • Android Debug Bridge
    • Android Device Drivers

Outcome: Design and develop User Interfaces for the Android platform.

Content that supports this outcome: 

  • Android Applications, Activities, and Widgets
  • ActionBar Activities
  • Customizing Styles and Themes
  • Displaying images
  • Playing video and audio
  • UI Fragments and the Fragment Manager
  • Creating custom SurfaceViews and simple animation
  • Responding to touch events
  • Supporting different devices, localizations, orientations, API levels, and resolutions.
  • XML resources
  • Launching Activities and passing information between Activities

Outcome: Save state information across important operating system events.

Content that supports this outcome:

  • The Activity Lifecycle
  • Saving data to external and internal storage
  • Shared preferences
  • Connecting to databases and sending SQL queries
  • Storing information in an encrypted format

Content that supports this outcome:

  • Extending classes
  • Overriding class methods
  • Adding new properties and methods to classes
  • Creating and implementing interfaces
  • Creating event listeners and responding to events
  • Tying Android XML resources to Java code
  • Creating Threads and Runnable for asynchronous event processing

Other content in this course:

  • Firebase Database
  • Volley Library
  • Networking
  • Maps
  • SQLite Database
  • Broadcast Receivers
  • Services
  • Notifications
  • Creating a Google Play Store account and preparing apps for the Play Store
  • Android manifests and permissions
  • APK contents
  • The Android security model

Text Book(s):

  1. Android Programming: The Big Nerd Ranch Guide (3rd Edition) By Phillips, B., Stewart, C., and Marsicano, K. (2017) Big Nerd Ranch Guides ISBN 978-0134706054
  2. Beginning Android Application Development -[Wiley. Wrox] - [Wei-Meng Lee

Classes and Times of classes:

  • BSSE 7th Regular
    • Thursday 12:30 PM-02:00 PM
    • Firday 02:00PM-03:30PM
  • BSSE 7th Self
    • Wednesday 12.30 PM-02:30 PM
    • Friday 12:00PM- 01:20PM
  • PPP BSSE 7th-A
    • Wednesday 03:30 PM-05:00 PM
    • Thursday 11:00 AM-12:30 PM


Course Material