Mobile Programming Course Syllabus
Table of contents
Course Description
This course is designed to introduce students to the concepts and patterns of mobile programming, specifically focusing on Android and iOS platforms. The course covers a comprehensive overview of mobile application development, with an emphasis on setting up the development environments for Android and iOS, as well as implementing core application functionality. By the end of the course, students will gain familiarity with user interfaces, data management, memory handling, threading, and various services such as location-based services, sensors, and in-app purchases. Prior knowledge of Java is essential as the Advanced Programming course is a prerequisite for this course.
Assessment
- Assignments and quizzes
- Midterm examination
- Final project presentation and report
- Class participation
Prerequisites
- Advanced Programming course
- Familiarity with Java programming
Course Topics
Introduction and Setup of Android Development Environment Introduction to Android concepts and tools (Android Studio, Android SDK), debugging and testing, and the process of building an Android application.
User Interface Design and Patterns Overview of the MVP pattern, user interface components, designing and implementing a custom UI (extending views and group views), dynamic layout management, and best practices for UI design in Android.
Data Management and Localization Storing and retrieving application data using shared and private preferences, interacting with SQLite databases, and implementing localization (l10n) and internationalization (i18n) mechanisms.
Memory and Thread Management Understanding the Android application lifecycle, memory model, and threading. Introduction to the AsyncTask pattern.
Service Management Location-based services, managing services and notifications, working with the camera and sensors, and understanding in-app purchasing.
Introduction and Setup of iOS Development Environment Overview of iOS development concepts and tools (Xcode), user interface components, and storyboards. Introduction to the MVC pattern.
Programming with Swift Introduction to the Swift language, data types, classes and objects, scopes, optionals, generics, protocols, error handling, and memory management.
iOS Technologies User interface technologies (UIKit, Core Graphics, Core Animation), game development technologies (Game Kit, Sprite Kit, OpenGL ES, Game Controller), data management technologies (Core Data, Foundation), and media management (AV Foundation).
Security Introduction to mobile security threats and assessment standards, obfuscation tools, and security risk analysis tools (static and dynamic analysis, reverse engineering methods).