Impara da zero il linguaggio ufficiale di Android: sintassi concisa, when, funzioni, classi ed ereditarietà per costruire programmi moderni e app mobile.
Cos'è Kotlin
Kotlin è un linguaggio di programmazione moderno, conciso e sicuro, creato da JetBrains nel 2011. Gira sulla Java Virtual Machine (JVM) ed è il linguaggio ufficiale per lo sviluppo di app Android, scelto da Google.
Perché imparare Kotlin
📱 Android: è il linguaggio numero uno per creare app Android
✍️ Conciso: scrivi meno codice rispetto a Java per fare le stesse cose
🛡️ Sicuro: il sistema di tipi previene i temuti errori di null
🤝 Interoperabile: funziona perfettamente con il codice Java esistente
💼 Richiesto: molto ricercato nel mondo mobile e backend
Il classico "Hello World" in Kotlin
📘 Premi ▶ Provalo tu su ogni esempio per leggere e modificare il codice con la sintassi colorata. Per eseguirlo davvero useremo il Kotlin Playground, indicato nel pannello.
Introduzione a Kotlin
Kotlin è nato per superare i limiti di Java mantenendone la compatibilità. Il risultato è un linguaggio più moderno, leggibile e meno verboso, ma con tutto l'ecosistema della JVM a disposizione.
Caratteristiche principali
Null safety: distingue tra valori che possono essere nulli e quelli che non possono
Inferenza di tipo: spesso non devi scrivere il tipo, lo deduce il compilatore
Interoperabilità con Java: usi librerie Java senza problemi
Multipiattaforma: Android, backend, web e persino iOS
💡 Conosci già Java? Imparare Kotlin sarà rapidissimo: condividono la stessa piattaforma e molte idee, ma Kotlin è molto più snello.
Iniziare con Kotlin
Per esercitarti subito senza installare nulla usa il Kotlin Playground online. Per progetti veri si usa IntelliJ IDEA o Android Studio (entrambi di JetBrains/Google).
Struttura di un programma Kotlin
Ogni programma Kotlin parte dalla funzione main(), il punto di ingresso. Per stampare a schermo si usa println().
Il tuo primo programma, spiegato
📘 In Kotlin non servono il punto e virgola a fine riga e nemmeno una classe attorno al main: il codice è subito più pulito di Java.
La sintassi di Kotlin
La sintassi di Kotlin è essenziale. Ecco gli elementi base che ritroverai sempre.
fun — definisce una funzione
main() — la funzione di partenza del programma
println() — stampa una riga a schermo
Le graffe{ } delimitano i blocchi
Anatomia del codice Kotlin
Stampare a schermo
Per stampare a schermo Kotlin offre due funzioni: println() (va a capo) e print() (resta sulla stessa riga).
println e print
💡 Userai println() nel 99% dei casi: stampa il valore e passa alla riga successiva, come ci si aspetta.
I commenti
I commenti sono note ignorate dal compilatore. Kotlin ne ha due tipi, identici a Java e C.
Commenti su una riga e su più righe
Le variabili
In Kotlin le variabili si dichiarano con val (valore immutabile, non cambia) o var (valore modificabile).
val e var
📘 Il tipo è spesso dedotto automaticamente dal valore, ma puoi indicarlo: val eta: Int = 25.
💡 Buona pratica: usa sempre val di default, e var solo quando il valore deve davvero cambiare. Rende il codice più sicuro e prevedibile.
I tipi di dato
Ogni variabile ha un tipo. Ecco i tipi fondamentali di Kotlin.
Tipo
Descrizione
Esempio
Int
Numeri interi
42, -7
Double
Numeri decimali
3.14
String
Testo
"ciao"
Boolean
Vero/falso
true, false
Char
Singolo carattere
'A'
I tipi fondamentali
Gli operatori
Gli operatori eseguono calcoli, confronti e operazioni logiche.
Categoria
Operatori
Aritmetici
+ - * / %
Confronto
== != > < >= <=
Logici
&& || !
Operatori in azione
Le stringhe
Le stringhe rappresentano testo. Kotlin offre i comodissimi template di stringa con $ per inserire variabili direttamente nel testo.
Template e metodi delle stringhe
💡 I template "$variabile" e "${espressione}" sono una delle comodità più amate di Kotlin: addio a infinite concatenazioni con +.
I booleani
Un Boolean ha solo due valori: true o false. Sono il risultato dei confronti e la base delle decisioni nel codice.
Valori e confronti booleani
Le condizioni (if/else)
L'if esegue codice diverso a seconda di una condizione. In Kotlin è anche un'espressione: può restituire un valore.
if come istruzione e come espressione
📘 In Kotlin non esiste l'operatore ternario ? : di altri linguaggi: si usa direttamente if/else come espressione, più leggibile.
Il when
Il when è la versione potenziata dello switch: sceglie tra molti casi in modo elegante e, come if, può restituire un valore.
when su un valore
💡 Il when è molto più flessibile dello switch: può valutare intervalli, tipi e condizioni booleane, non solo valori esatti.
Il ciclo while
Il ciclo while ripete un blocco finché una condizione è vera. La variante do..while esegue il blocco almeno una volta.
while e do-while
Break e continue
break esce subito dal ciclo; continue salta all'iterazione successiva.
Controllare il flusso del ciclo
Gli array
Un array contiene più valori dello stesso tipo. Si crea con arrayOf() e si accede agli elementi tramite l'indice (che parte da 0).
Creare e usare array
Il ciclo for
Il ciclo for scorre gli elementi di una collezione o di un intervallo, con la sintassi for (x in ...).
for su array e intervalli
📘 In Kotlin non esiste il for classico con contatore in stile C: si usa sempre for (x in qualcosa), più semplice e sicuro.
Gli intervalli (ranges)
Un range (intervallo) rappresenta una sequenza di valori. Si crea con .. ed è perfetto con il for.
Intervalli in vari modi
Le funzioni
Una funzione raggruppa istruzioni riutilizzabili. Si definisce con fun, indicando i parametri e il tipo restituito dopo i due punti.
Definire e usare funzioni
💡 La forma compatta fun doppio(x: Int) = x * 2 è tipica di Kotlin: per funzioni di una riga elimina graffe e return.
La programmazione a oggetti
La programmazione a oggetti (OOP, Object-Oriented Programming) organizza il codice attorno a oggetti: entità che uniscono dati (proprietà) e comportamenti (funzioni).
I concetti chiave
Classe: il "progetto", lo stampo da cui creare oggetti (es. Auto)
Oggetto: un'istanza concreta della classe (es. la mia Auto rossa)
Proprietà: i dati dell'oggetto (colore, velocità)
Metodo: le azioni dell'oggetto (accelera, frena)
📘 L'OOP rende il codice modulare e riutilizzabile: modelli il mondo reale con oggetti che collaborano. Kotlin la rende particolarmente concisa.
Classi e oggetti
Una classe si definisce con class e descrive le proprietà di un tipo di oggetto. Da essa si creano gli oggetti chiamando il nome della classe.
Definire una classe e creare oggetti
I costruttori
Il costruttore imposta i valori iniziali di un oggetto al momento della creazione. In Kotlin si dichiara spesso direttamente nell'intestazione della classe.
Costruttore primario
💡 Dichiarare le proprietà direttamente nel costruttore (class Persona(val nome: String)) elimina decine di righe rispetto a Java: ecco perché Kotlin è così conciso.
I metodi (funzioni di classe)
Una funzione definita dentro una classe si chiama metodo: rappresenta un'azione che l'oggetto può compiere, e può usare le sue proprietà.
Metodi di una classe
L'ereditarietà
L'ereditarietà permette a una classe di ereditare proprietà e metodi da un'altra. In Kotlin una classe dev'essere marcata open per poter essere estesa.
Una classe che eredita da un'altra
📘 In Kotlin le classi sono chiuse all'ereditarietà per default (a differenza di Java): devi scrivere open esplicitamente. È una scelta di sicurezza voluta.
Certificazione Kotlin
Una certificazione su Kotlin attesta la tua capacità di sviluppare applicazioni moderne, soprattutto per Android: una competenza molto richiesta nel mondo mobile, ben valorizzata insieme a un portfolio di app reali.
Certificazione
Ente
Note
Kotlin Certificate
W3Schools
Base, ottima per il CV
Associate Android Developer
Google
Ufficiale, incentrata su Kotlin
JetBrains Academy
JetBrains
Percorsi e progetti su Kotlin
Il tuo portfolio
—
App pubblicate valgono piu' di ogni badge
Come prepararsi
📐 Padroneggia val/var, funzioni, when e null safety
🏗️ Conosci bene classi, costruttori ed ereditarietà
📱 Costruisci una piccola app Android con Android Studio
Ogni esempio del corso ha il pulsante ▶ Provalo tu: apre un editor dove leggere e modificare il codice con la sintassi colorata. Per compilarlo ed eseguirlo davvero, usa uno di questi strumenti gratuiti.
Dove eseguire il codice Kotlin
🎮 Kotlin Playground — scrivi ed esegui Kotlin nel browser, senza installare nulla: il modo più rapido per esercitarti
💻 IntelliJ IDEA — l'ambiente di sviluppo professionale per Kotlin
Esercizi pratici progressivi. Svolgili nell'editor Provalo tu e poi eseguili sul Kotlin Playground.
Livello base
Stampa il tuo nome e la tua età usando un template di stringa
Dichiara due numeri e stampa somma, differenza e prodotto
Crea un array di 3 città e stampalo con un ciclo for
Scrivi un if/else che dica se un numero è pari o dispari
Livello intermedio
Scrivi una funzione che restituisce il maggiore tra due numeri
Usa un when per tradurre un numero da 1 a 7 nel giorno della settimana
Stampa i numeri da 1 a 20 saltando i multipli di 3 (con continue)
Crea una classe Prodotto con nome e prezzo e creane un oggetto
Livello avanzato
Scrivi una classe ContoBancario con metodi deposita() e preleva()
Calcola la media dei valori di un array di interi
Crea una classe base Forma e due classi che la estendono (Cerchio, Quadrato)
Scrivi una funzione che conta le vocali in una stringa
🎯 Sfida
Crea un piccolo programma "gestione studenti": una classe Studente con nome e voti (un array), e metodi per aggiungere un voto e calcolare la media. Crea alcuni studenti e stampa chi ha la media più alta.
Come funziona Kotlin
Kotlin è un linguaggio compilato: il codice viene tradotto in bytecode che gira sulla Java Virtual Machine (JVM), la stessa di Java. Per questo Kotlin e Java possono convivere nello stesso progetto.
Il percorso del codice
📝 Scrivi il codice in file .kt
⚙️ Il compilatore Kotlin lo traduce in bytecode JVM
🚀 La JVM esegue il bytecode su qualsiasi sistema
📘 Grazie alla JVM, lo stesso programma Kotlin gira su Windows, macOS e Linux senza modifiche. E con Kotlin Multiplatform può puntare anche ad Android, iOS e web.
Problemi pratici
Piccoli problemi reali da risolvere mettendo insieme ciò che hai imparato. Prova prima da solo, poi confronta.
Sfide guidate
Convertitore di temperatura: una funzione che converte i gradi Celsius in Fahrenheit
FizzBuzz: stampa i numeri da 1 a 30, ma "Fizz" per i multipli di 3, "Buzz" per quelli di 5 e "FizzBuzz" per entrambi
Conta parole: data una frase, conta quante parole contiene
Numero più grande: trova il massimo in un array di interi senza usare funzioni pronte
Soluzione: FizzBuzz
Programma del corso
La mappa completa di ciò che copre questo corso, dalle basi alla programmazione a oggetti.
Fondamenti: sintassi, output, commenti, variabili (val/var), tipi di dato
Dati e logica: operatori, stringhe, booleani, if/else, when
Kotlin si impara in fretta, ancora di più se conosci già Java. Questo piano ti porta da zero all'autonomia in 3-4 settimane.
Periodo
Obiettivo
Giorni 1-3
Playground, sintassi, output, variabili, tipi di dato
Giorni 4-7
Operatori, stringhe, booleani, if/else, when
Giorni 8-11
Cicli while/for, break/continue, array, ranges
Giorni 12-14
Funzioni in tutte le loro forme
Settimana 3
OOP: classi, costruttori, metodi, ereditarietà
Settimana 4
Progetto pratico + primi passi con un'app Android
💡 Il traguardo più motivante: dopo le basi, prova a creare una semplice app Android con Android Studio. Vedere il tuo codice Kotlin girare su un telefono è impagabile.
Domande da colloquio
Kotlin è molto richiesto per lo sviluppo Android. Queste sono le domande più frequenti ai colloqui.
🔹 Qual è la differenza tra val e var?
🔹 Cos'è la null safety e perché è importante?
🔹 In cosa Kotlin è più conciso di Java?
🔹 Cosa rende when più potente di uno switch?
🔹 Perché in Kotlin le classi sono final per default (serve open)?
🔹 Cosa significa che Kotlin è interoperabile con Java?
🔹 Come si dichiarano le proprietà nel costruttore primario?
🔹 Cos'è una data class? (approfondimento)
💡 Punto chiave: Kotlin nasce per essere conciso e sicuro. Saper spiegare la null safety e i vantaggi rispetto a Java fa un'ottima impressione, soprattutto per ruoli Android.
Quiz Kotlin
Verifica le tue conoscenze. Le risposte sono in fondo.
Qual è la differenza tra val e var?
Serve il punto e virgola a fine riga in Kotlin?
Come si inserisce una variabile dentro una stringa?
L'if in Kotlin può restituire un valore?
Quale costrutto sostituisce lo switch?
Come si crea un array?
Cosa significa 5 downTo 1?
Cosa deve avere una classe per poter essere ereditata?
Dove si possono dichiarare le proprietà di una classe in modo conciso?
Su quale macchina virtuale gira Kotlin?
📘 Risposte: 1) val è immutabile, var è modificabile. 2) No. 3) Con un template: "$variabile" o "${espressione}". 4) Sì, è un'espressione. 5) Il when. 6) Con arrayOf(...). 7) Un intervallo decrescente da 5 a 1. 8) Dev'essere marcata open. 9) Direttamente nel costruttore primario. 10) La Java Virtual Machine (JVM).
Conclusione — E ora?
Hai completato il corso Kotlin! Ora conosci variabili, tipi, stringhe, condizioni, cicli, funzioni e la programmazione a oggetti: tutto il necessario per scrivere programmi reali e iniziare lo sviluppo Android.
I tuoi prossimi passi
📱 Android: installa Android Studio e crea la tua prima app in Kotlin
🛡️ Null safety: approfondisci i tipi nullable (?) e l'operatore ?.
🧩 Data class e collezioni: scopri le funzionalità più avanzate del linguaggio
Crea un programma da console "agenda contatti": una classe Contatto (nome, telefono, email) e una lista di contatti con funzioni per aggiungere, cercare ed elencare. Aggiungi un menu con un when. Pubblicalo su GitHub: sarà il primo progetto Kotlin del tuo portfolio, e un'ottima base per trasformarlo poi in app Android.