| Course title | Mobile Technology and Applications |
|---|---|
| Course code | KIT/BMTA |
| Organizational form of instruction | Lecture + Tutorial |
| Level of course | Bachelor |
| Year of study | not specified |
| Semester | Winter |
| Number of ECTS credits | 4 |
| Language of instruction | English |
| Status of course | Compulsory, Compulsory-optional, Optional |
| Form of instruction | Face-to-face |
| Work placements | This is not an internship |
| Recommended optional programme components | None |
| Lecturer(s) |
|---|
|
| Course content |
|
1. Introduction to Android ecosystem - What Android is, versions, API levels, app architecture; install Android Studio, SDK, emulator, ADB, project structure. 2. Kotlin Basics I - Syntax, variables, types, null-safety, conditionals, loops, functions, collections. 3. Kotlin Basics II (OO and functional style) - data/sealed classes, objects, inheritance, extension functions, lambdas, generics. 4. Getting started with jetpack compose - first UI, Composable functions, layouts, Modifiers, Preview, Material 3 5. State management and lifecycle - remember, state hoisting, ViewModel, SavedStateHandle, Lifecycle. 6. MVVM and dependency injection - MVVM, Repository pattern, Flow/StateFlow, unidirectional data flow, error states. 7. Navigation with Jetpack compose - Navigation Component, graph, arguments, back stack, deep links. 8. Testing - Unit tests (JUnit), Compose UI tests, fakes/mocks, debugging (Logcat), profiling (CPU/Memory/Network), optimizations (recomposition, lazy lists). 9. Data flow - Coroutines (launch, async, scopes), WorkManager, foreground service, notifications. 10. Networking, using API - REST, Retrofit or Ktor Client, Kotlinx Serialization/Moshi, interceptors, error handling, retry, offline-first. 11. Security - DI (Hilt/Koin), modularization, secret management (Gradle keystore), build variants, Crashlytics/Analytics 12. Local Storage - Entity/DAO, Room Database, migrations, DataStore (Preferences/Proto). 13. Permissions & hardware/sensors: Runtime permissions, camera/gallery (MediaPicker), location (FusedLocation), maps (Maps Compose), content sharing.
|
| Learning activities and teaching methods |
unspecified, Methods of individual activities, Demonstration, Work-related activities
|
| Learning outcomes |
|
The aim is to improve the existing programming knowledge of the mobile applications design and development. During the classes, students will learn about the current state of mobile technology and development tools for creating mobile applications. And also they learn how to implement a real mobile application for the chosen development platform. Development will provide by Kotlin language on IntelliJ IDEA IDE and Android Studio.
Students of the BMTA course will acquire knowledge and skills in the field of mobile application development on the selected mobile device with the appropriate operating system of Android. |
| Prerequisites |
|
Knowledge of the basic programming and OOP in Java.
|
| Assessment methods and criteria |
|
Oral examination, Work-related product analysis, Self project defence
Active participation in exercises. Completed exercises. Credit: Development of a functional application Exam: Defence of the programmed functional application |
| Recommended literature |
|
| Study plans that include the course |
| Faculty | Study plan (Version) | Category of Branch/Specialization | Recommended semester |
|---|