Official course description:
This course gives a fundamental overview of Android programming concepts and the best practices for mobile app development.
The mobile app development has seen significant growth in the recent past, mainly due to the current computational power of modern tablets and mobile phones. The development of mobile applications brings a set of different challenges to the developer, such as where the application will run (hardware specifications) and how is the application performance when running (OS specifications). This course provides fundamental knowledge on how to develop Android applications using both Java and Kotlin programming languages and introduces the following topics:
- The Android application lifecycle;
- The four different types of Android components, namely: (1) activities, (2) services, (3) broadcast receivers, and (4) content providers;
- The design of user interfaces (UI) using layouts, resources, and a set of Android UI controls (e.g., TextView, EditText, Button, Checkbox, Progressbar, among others);
- 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 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 prerequisitesThe student must have familiarity with at least one object-oriented programming language, such as Java (highly recommended), C++, C#, Objective-C. The student must be able to design, implement, and test medium-sized object-oriented programs as covered at SWU.
These background skills are achieved by completing one of the following courses in the 1st and 2nd semester from the BSc in Software Development (BSWU), such as "Introductory Programming with Project", "Algorithms and Data Structure" or similar.
Intended learning outcomes
After the course, the student should be able to:
- design and implement a non-trivial Android application
- design and implement a bug-free application based on Android lifecycle features
- design and implement primary user interfaces using activities, and dynamic and flexible user interfaces using fragments
- design and implement responsive, multi-threaded Android applications with asynchronous tasks and services
- design and implement applications that persist data in files and databases
- design and implement applications that communicate with remote services
- design and implement multimedia applications using video and audio resources
- design and implement location-aware applications
- design and implement applications using the built-in sensors
- plan and execute the deployment of an Android application using Android studio
- develop Android applications using both Java and Kotlin programming languages
Two-hour lectures followed by two-hour exercise sessions per week.
Each week, students will be asked to read the weekly reading material, develop an individual exercise based on the week content, and solve an optional challenge designed to further the student understanding of mobile app development.
The students must install the Android development environment used in the course on their own laptops. The installation process guides for macOS, Windows, and Linux will be provided on LearnIT before starting the course.
The apps presented in the lectures and apps 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 instructions on how to install and test the Android apps are given in the first week of the course.
One mandatory activity is included in the course. The students will develop an Android application that covers most of the topics presented in the course. This must be handed in and approved in order to be eligible for the final oral examination.Feedback:
Students will receive feedback on their reports and whether they have passed the assignment.
Students who do not pass the mandatory assignment will get a possibility for 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.
Android Programming: The Big Nerd Ranch Guide, 4th Edition. By Bill Phillips, Chris Stewart, Kristin Marsicano, Brian Gardner. Published Aug 27, 2019, by Big Nerd Ranch Guides.
Kotlin for Android Developers: Learn Kotlin the easy way while developing an Android App, 7th Edition. By Antonio Leiva. Published Feb 11, 2019, by Leanpub.
Student Activity BudgetEstimated 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 examExam type:
B: Oral exam, external (7-trinsskala)
B1H: Oral exam with time for preparation. Home.
Preparation time at home: 1 week.
The oral examination will be individual. We will publish on LearnIT (after correcting the mandatory assignment) a list with consecutive exam slots. 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 a sheet of A4 paper with the exam plan (e.g., outline in bullet form, keywords, and one or two figures) to take a look in 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 talk about the selected topic (while the student speaks some questions may be asked).
• The examiners will ask additional questions within the topic or other topics within the curriculum (includes 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 topic of the course. 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 (leave out trivial subjects). Be sure to be as precise as possible to use the correct terminologies for Android development.