Multiplatform development of mobile applications
| Code | Completion | Credits | Range | Language |
|---|---|---|---|---|
| NI-MMA | KZ | 4 | 2P+2C | Czech |
- Course guarantor:
- Martin Půlpitel
- Lecturer:
- Rostislav Babáček, Jan Mottl, Igor Rosocha, Petr Šíma
- Tutor:
- Rostislav Babáček, Jan Mottl, Igor Rosocha, Petr Šíma
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
The course introduces students to a modern approach to native mobile app development for iOS and Android using cutting-edge technologies. Emphasis is placed on sharing code for business logic, the data layer, and network communication. Students will learn to structure projects effectively, access the native APIs of both platforms from the shared codebase, and solve common as well as advanced problems in multiplatform development. The lectures will feature concrete methodologies and practice-oriented case studies from industry professionals.
- Requirements:
-
Class covers advanced topics, students need to know all the basics from the beginners class BI-IOS or BI-AND.
- Syllabus of lectures:
-
1. Intro lecture, schedule, introduction to multiplatform development
2. Jetpack Compose: Fundamentals of Android UI development
3. SwiftUI: Declarative UI development for iOS
4. Architecture of a multiplatform app (MVVM/MVI)
5. Networking and data serialization
6. Data persistence in KMP
7. Asynchronous programming
8. Dependency management and modularization; dependency injection
9. Accessing native APIs (sensors, notifications)
10. App release and automation (CI/CD)
11. Testing
12. Shared UI with Compose Multiplatform
13. Semester project consultations and reserve session
- Syllabus of tutorials:
-
1. Getting familiar with the environment
2. Jetpack Compose: Declarative UI in practice
3. SwiftUI: Architecture and state management
4. First multiplatform project, architectural basics
5. Network communication
6. Database, securing sensitive data
7. Asynchronous programming in practice
8. Dependency Injection
9. Accessing native APIs (sensors, notifications)
10. App release, automation via CI/CD
11. Implementation of unit and snapshot tests
12. Shared UI via Compose Multiplatform
13. Reserve, consultations
- Study Objective:
- Study materials:
-
[1] https://developer.apple.com
[2] https://developer.android.com
[3] https://kotlinlang.org/docs/multiplatform/get-started.html
- Note:
- Further information:
- https://courses.fit.cvut.cz/NI-MMA/
- Time-table for winter semester 2025/2026:
- Time-table is not available yet
- Time-table for summer semester 2025/2026:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - The course is a part of the following study plans:
-
- Master specialization Computer Security, in Czech, 2020 (elective course)
- Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 2020 (elective course)
- Master specialization Management Informatics, in Czech, 2020 (elective course)
- Master specialization Software Engineering, in Czech, 2020 (elective course)
- Master specialization System Programming, in Czech, version from 2020 (elective course)
- Master specialization Web Engineering, in Czech, 2020 (elective course)
- Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
- Master specialization Computer Science, in Czech, 2020 (elective course)
- Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (elective course)
- Study plan for Ukrainian refugees (elective course)
- Master specialization System Programming, in Czech, version from 2023 (elective course)
- Master specialization Computer Science, in Czech, 2023 (elective course)
- Mgr. programe Applied informatics (code ANIE) for the phase of study without specialization (elective course)
- Master specialization Embedded systems (elective course)
- Master specialization Business Informatics, 2026 (elective course)
- Master specialization Software Engineering (elective course)
- Master specialization Web Engineering (elective course)
- Master specialization Visual computing and Game design (elective course)
- Master specialization Computer Security, in Czech, 2026 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 2026 (elective course)
- Master specialization Computer Science, in Czech, 2026 (elective course)
- Master specialization Programming Languages, in Czech, 2026 (elective course)
- Master specialization Artificial Intelligence, in Czech, 2026 (elective course)
- Master programme, for the phase of study without specialisation, ver. for 2026 and higher (elective course)