Skip to content

fabricionarcizo/moapd2024

Repository files navigation

Mobile App Development, BSc. 2024

This course gives a fundamental overview of Android programming concepts and the best practices for mobile app development.

Description

Mobile app development has grown significantly recently, mainly due to the current computational power of modern tablets and mobile phones. The development of mobile applications brings different challenges to the developer, such as where the application will run (hardware specifications) and how the application performs when running (OS specifications). This course provides fundamental knowledge on how to develop Android applications using the native programming language Kotlin and introduces the following topics:

  • The Android application lifecycle;
  • The four types of Android app components, namely: (1) activities, (2) services, (3) broadcast receivers, and (4) content providers;
  • The design of user interfaces using imperative programming via Android Framework UI Toolkit;
  • The design of user interfaces using declarative programming via Jetpack Compose;
  • How to share data between Android components, how to persist data using files and databases, and how to manage the internal and external file storages;
  • The use of concurrency to improve speed and performance in Android applications;
  • The integration of Android apps with mobile backend services available on Google Firebase (i.e., app authentication, cloud-based database, and cloud-based storage);
  • The development of multimedia applications using the built-in camera and audio resources;
  • The use of geolocation information to develop location-aware Android applications;
  • The use of device sensors (motion, position, environment, and advanced sensors) to collect additional information for Android applications; and
  • The security aspects of Android deployment to make an Android application safer.

Formal Prerequisites

The student must be familiar with at least one object-oriented programming language, such as Java (highly recommended), C++, C#, or Objective-C. The student must be able to design, implement, and test medium-sized object-oriented programs as covered at SWU.

One of the following courses from the 1st and 2nd semesters of the BSc in Software Development (BSWU), such as Introductory Programming with Project, Algorithms and Data Structure or similar, provides these background skills.

Experience with Kotlin programming language will be an advantage but is not compulsory. Knowledge of functional programming is optional for this course.

Intended Learning Outcomes

After the course, the student should be able to:

  • Design and implement native Android applications using the Kotlin programming language
  • Identify Android components, their lifecycle, and their role in the mobile application pipeline
  • Describe the Android OS architecture and how to implement, run, and debug a mobile app
  • Design mobile applications based on the resources available in mobile devices and considering their limitations
  • Design and implement mobile applications considering concurrency and using resources such as communication and multimedia components, local and remote persistence data, location, and sensor
  • Design user interfaces using imperative programming via Android Framework UI Toolkit and declarative programming via Jetpack Compose
  • Plan and execute the deployment of an Android application using Android Studio.

Learning Activities

The course spans 14 weeks, with two-hour lectures and two-hour exercise sessions per week.

The students will read the weekly reading material each week, develop an individual exercise based on the week's content, and solve an optional challenge.

The students must install the Android development environment used in the course on their laptops. The installation guides for macOS, Windows, and Linux will be available on learnIT.

The apps presented in the lectures and those developed in the exercise sessions can be tested on standard Android phones (older versions ok) or using the virtual device available on Android Studio. The following table presents the lectures plan:

Week Date Lecture
01 30/01/2024 Getting Started
02 06/02/2024 Introduction to Kotlin for Mobile Development
03 13/02/2024 Android Framework UI Toolkit
04 20/02/2024 Advanced User Interface Components
05 27/02/2024 Flexible Data View and Threads
06 05/03/2024 Firebase Android App
07 12/03/2024 App Data and Files
08 19/03/2024 Cloud Storage on Android
09 02/04/2024 Android Location-Aware
10 09/04/2024 Android Multimedia and Machine Learning
11 16/04/2024 Jetpack Compose
12 23/04/2024 Android Sensors
13 30/04/2024 Guest Lecture #01 (Stefanos Marios Chourdakis from Shape)
14 07/05/2024 Shrink, Obfuscate, and Optimize an Android App

Mandatory Activities

Activities

The course includes two mandatory assignments. The students will develop a single Android application that covers most of the topics presented. The application and reports must be handed in and approved to be eligible for the final oral examination.

Feedback

Students will receive feedback on their reports, solutions, and whether they have passed the mandatory activities.

Students who do not pass the mandatory assignment may get a second attempt to resubmit the revised solutions before the final exam – details about submission and resubmission will be available on learnIT.

The student will receive the grade NA (not approved) at the ordinary exam if the mandatory activities are not approved, and the student will use an exam attempt.

Course Literature

Android Programming: The Big Nerd Ranch Guide, 5th Edition. By Bryan Sills, Brian Gardner, Kristin Marsicano, and Chris Stewart. Published Jul 25, 2022, by Big Nerd Ranch Guides. ISBN-10 0137645546. ISBN-13 978-0137645541.

Kotlin Programming: The Big Nerd Ranch Guide, 2nd Edition. By Andrew Bailey, David Greenhalgh, and Josh Skeen. Published Nov 01, 2021, by Big Nerd Ranch Guides. ISBN-10 0136891055. ISBN-13 978-0136891055.

Student Activity Budget

Estimated distribution of learning activities for the typical student

  • Preparation for lectures and exercises: 14%
  • Lectures: 28%
  • Exercises: 28%
  • Assignments: 15%
  • Exam with preparation: 15%

Ordinary Exam

Exam type

B: Oral exam, External (7-point scale)

Exam variation

B1H: Oral exam with time for preparation. Home.

Exam duration for the preparation

Preparation time at home: 1 week. The oral examination will be individual. We will publish a list with consecutive exam slots on LearnIT (after correcting the mandatory assignment). The exam will take about 20 minutes in total.

These will be the steps of the exam:

  • Draw randomly one question from the examiners' table (i.e., the main question) and write your outline on the whiteboard/blackboard.
  • The student may bring an A4 paper with the exam plan (e.g., outline in bullet form, keywords, and one or two figures) to look at the paper briefly (30 seconds) after drawing the question. Then, the student should put this paper aside and not look at it again during the exam.
  • The student will have a maximum of 8 minutes to discuss the selected topic (while the student speaks, the examiners may ask some questions).
  • The examiners will ask additional questions about the topic or other topics within the curriculum (including topics on the slides, weekly work plans, exercises, mandatory assignments, and the reading material).
  • Grading and feedback.

We strongly recommend that the student prepare and plan the content of each course topic. The student must start the presentation by giving the examiners a brief overview of the topic and then focus on the more exciting and substantial parts of the questions (leaving out trivial subjects). Be sure to be precise in using the correct terminologies for Android development.

Exam duration per student for the oral exam

20 minutes

Reexam

Reexam type

B: Oral exam, External (7-point scale)

Reexam variation

B1H: Oral exam with time for preparation. Home.

Reexam duration per student for the oral exam

20 minutes

Time and Data

Ordinary Exam Thu, 27 Jun 2024, 09:00 - 21:00

Ordinary Exam Fri, 28 Jun 2024, 09:00 - 21:00

Reexam Mon, 12 Aug 2024, 13:00 - 18:00

About

Mobile App Development, BSc. 2024

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published