*changes may apply

Syllabus Android Development Course with Kotlin and AI Integration

Detailed Syllabus

Android Jetpack Overview & Intro to Kotlin
  • Introduction – Android Native Development
  • Android OS Historical Overview
  • AndroidX & Android Jetpack Components
  • Android Platform Architecture
  • JVM, DVM and ART
  • Kotlin overview
  • Kotlin’s Extensions
  • Kotlin vals & vars
  • Kotlin’s Nullability
  • Kotlin Basics (if, when, loops, Arrays, Collections)
Kotlin – Functional Programming
  • Functions & Lambdas
  • Default Arguments
  • High order Functions
  • Collections high order functions (filter, map, flatMap…)
  • Lazy Sequences
  • Scope Functions
  • infix functions
  • extension functions
Object Oriented with Kotlin
  • Classes – Constructors and Properties
  • Inheritance
  • Interfaces and Abstract classes
  • Data classes
  • Delegated properties & lazy initialization
  • Object expressions and Object Declarations
  • SAM interfaces
  • Nested & inner classes
  • Access modifiers and Generics
  • Operator Overloading
Android Studio with Gemini and Basic UI
  • Intro to Android Studio and Gemini
  • Creating projects and using AI Tools for code completion
  • Using Emulators and physical Android OS devices
  • App resource types and localization
  • Basic Events handling and touch events
  • Animations, Dialogs, and other basic UI components
Android Building Blocks - Part 1
  • Android App Components (Activity, Service, Receiver and Provider)
  • Activities & Intents (Explicit and Implicit)
  • Runtime Permissions using Launchers
  • Activity Lifecycle and Shared preferences
Android Building Blocks - Part 2
  • Single Activity Architecture with Fragments
  • Fragment Lifecycle
  • Using Navigation for Fragments transactions
  • Recycler View (Adapter, View Holder, Layout Manager)

View Models & Live Data (MVVM)
  • App Resources & Localization (language, screen, orientation…)
  • Configuration changes, default UI behavior and legacy solutions
  • MVVM Design pattern
  • Jetpack Lifecycle object
  • View Model Scope
  • Live Data & Mutable Live Data
  • Saved state module
  • Transformations
  • View Model provider Factory

MidProject using Room

  • Internal Database with Room
  • MVVM project with View Model, Live data, Navigation and Room.
Asynchronous programming with Coroutines
  • Intro to Android Views and Bindings
  • Making a Responsive UI
  • Suspension over Blocking
  • CoroutineScope & CoroutineContext
  • Dispatchers
  • Coroutines Builders (launch, async, withContext…)
  • Combining Suspended Functions
  • Jetpack Components Scopes
  • Continuation Object
Phone services
  • Launchers API for communication with system apps
  • Working with the phone’s Camera
  • Implementing speech recognition
  • Android External Storage
  • File Provider
  • Google play services
  • Fused location combined with Live Data
  • Retrieving the user contacts
  • Working with local phone databases
Firebase

 

  • Working with Firebase Console
  • Implementing Users Authentication
  • Using Firebase Firestore for saving data on the cloud database
  • Using Firebase Storage
ML Kit
  • Intro to Machine learning for mobile developers
  • Choosing and integrating an API
  • ML-Kit Android sample app
  • Use-case 1: Text Recognition V2 API
  • Use-case 2: Face Recognition API
  • [Optional] OpenCV for computer vision

Components 1 – The Broadcasting system

  • Notifications and PendingIntents
  • Broadcast Receivers
  • Static vs Dynamic Registration
  • Local Broadcast Manager
  • Alarm Manager

 

 

Components 2 – Non-UI Related tasks 

  • Service and Foreground service
  • Job Schedulers
  • Work Managers
  • Background Execution limits
Jetpack Compise
  • Introduction to Jetpack Compose: Overview of declarative UI & comparison with XML-based Views. 
  • Compose Basics: Understanding Composables, @Composable annotation, and creating simple UI elements. 
  • State Management: Introduction to state in Compose, using remember, mutableStateOf, and more 
  • Layouts in Compose: Exploring layout containers like Column, Row, Box… 
  • Modifiers: Using Modifier for styling, positioning, and adding behavior to Composables. 
  • Navigation in Compose: implementing navigation between Composables. 
  • Interoperability with Views: Iintegrating traditional Android Views within Compose and vice versa. 
  • Working with Lists: Implementing LazyColumn, LazyRow, and efficient scrolling lists. 
  • Handling Events and Side Effects: Understanding event handling in Compose and managing side effects with LaunchedEffect and SideEffect. 
  • Animations: Creating simple animations using animate* functions and AnimatedVisibility.