Introduction:
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 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 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 Runnables 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):
- 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
- Beginning Android Application Development -[Wiley. Wrox] - [Wei-Meng Lee]
Class Timing:
Ex-PPP BSSE 7th B
- Monday (9:00 AM - 11:00 AM)
- Friday (11:00 AM - 12:30 PM)
Ex-PPP BSSE 7th C
- Monday (11:00 AM - 12:30 PM)
- Friday (9:00 AM - 11:00 AM)