CONTENUTI
Modulo 1: Introduzione a Kotlin
- Panoramica del linguaggio e filosofia
- Setup dell’ambiente di sviluppo (IDE, SDK, emulatori)
- Sintassi base e idiomi Kotlin
- Convenzioni di codifica e stile
Modulo 2: Sintassi e costrutti di base
- Tipi base e inferenza di tipo
- Type checks, cast sicuri e is/as
- Costrutti condizionali (if, when) e cicli (for, while)
- Packages e visibilità
- Return, break, continue e jump expressions
- Type-safe builders e tipi dinamici
Modulo 3: Programmazione Orientata agli Oggetti
- Classi, oggetti e costruttori
- Null Safety e operatori Elvis / Safe Call
- Modificatori di accesso e visibilità
- Properties, fields e lateinit
- Data classes, enums, sealed classes
- Overload, extensions e destructuring
- Delegation e delegated properties
- Generics: uso, covarianza e controvarianza
Modulo 4: Funzioni, Lambdas ed Error Handling
- Funzioni top-level e locali
- Parametri default, named arguments
- Lambdas e funzioni di ordine superiore
- Inline functions e reified generics
- Gestione degli errori con try/catch/finally e Result
Modulo 5: Collezioni e Generics
- Liste, Set e Map: mutabili e immutabili
- Operazioni funzionali (map, filter, fold, ecc.)
- Generics avanzati e type constraints
Modulo 6: Coroutine e Programmazione Asincrona
- Introduzione alle coroutine e suspend functions
- Scope, Job, Dispatcher e launch/async
- Gestione del ciclo di vita e cancellazione
- Flow e canali per stream di dati reattivi
- Esercitazione: chiamata API con coroutine e gestione dello stato
Modulo 7: Sviluppo Mobile con Kotlin
- Installazione e configurazione di Android Studio
- Architettura Android moderna (MVVM, Jetpack)
- Creazione di app con Kotlin e Jetpack Compose
- Persistenza dati con Room e DataStore
- Esercitazione: sviluppo di un’app reale con UI, networking e persistenza
Modulo 8: Interoperabilità con Java
- Chiamare codice Java da Kotlin e viceversa
- Annotazioni (@JvmStatic, @JvmOverloads, @JvmName)
- Conversione automatica e compatibilità
- Best practices per progetti misti Kotlin/Java