Cellular (comunicazione cellulare) — tecnologia di trasmissione wireless di voce e dati attraverso una rete di stazioni base (BS) che coprono il territorio con celle da 200 metri (microcelle) a 50 chilometri (macrocelle). Nelle applicazioni mobili, Internet cellulare è il canale principale per scaricare contenuti al di fuori delle zone Wi-Fi. Secondo il Rapporto GSMA Mobile Economy, 2025, oltre 5,6 miliardi di utenti mobili unici nel mondo, e la velocità media di download nelle reti 5G ha raggiunto i 240 Mbps.
Punti Chiave
La comunicazione cellulare — uno standard di radiocomunicazione mobile basato sulla suddivisione del territorio in celle, ciascuna servita da una stazione base (BS). Quando il dispositivo si sposta, avviene un handover — commutazione automatica tra celle senza interruzione della connessione. Le celle hanno dimensioni diverse: macrocelle (10–50 km) per le aree rurali, microcelle (200–2000 m) per le città, femtocelle (fino a 50 m) per gli interni.
L'architettura della rete cellulare comprende tre componenti principali: User Equipment (UE) — lo smartphone o modem; Radio Access Network (RAN) — un insieme di stazioni base con antenne; Core Network — instradamento, autenticazione, fatturazione e connessione a Internet. Le diverse generazioni differiscono per la struttura della Core Network e i metodi di modulazione del segnale radio.
A differenza del Wi-Fi, le reti cellulari utilizzano frequenze con licenza — ogni operatore riceve bande esclusive alle aste. Ciò garantisce l'assenza di interferenze tra operatori, ma limita la velocità di implementazione di nuovi standard a causa della necessità di riallocazione delle frequenze.
Ogni generazione di comunicazione cellulare (N-G) ha portato una crescita esponenziale della velocità e nuovi casi d'uso. 2G (GSM) ha digitalizzato la voce per la prima volta e introdotto gli SMS. 3G (UMTS, HSDPA) ha aperto Internet mobile all'utente di massa. 4G LTE è passato completamente ai pacchetti IP, abbandonando la commutazione di circuito. 5G NR si è concentrato sulla latenza ultra-bassa e sulla divisione della rete in segmenti virtuali.
| Generazione | Standard | Velocità Max | Latenza | Anno |
|---|---|---|---|---|
| 2G | GSM / GPRS / EDGE | 384 kbps (EDGE) | ~300 ms | 1991 |
| 3G | UMTS / HSPA+ | 42 Mbps (HSPA+) | ~100 ms | 2001 |
| 4G | LTE-Advanced Pro | 3 Gbps | ~30 ms | 2009 |
| 5G | NR (New Radio) | 20 Gbps | <5 ms | 2019 |
| 6G | In sviluppo | 1 Tbps (previsione) | <0,1 ms | 2030 (pianificato) |
I sistemi operativi mobili determinano la generazione di rete corrente attraverso l'interfaccia radio. Su Android è disponibile TelephonyManager.getDataNetworkType(), che restituisce la costante NETWORK_TYPE_LTE o NETWORK_TYPE_NR. iOS fornisce CTTelephonyNetworkInfo con la proprietà serviceCurrentRadioAccessTechnology.
4G LTE si basa su un'architettura all-IP piatta divisa in Evolved Packet Core (EPC) e Evolved Node B (eNB). eNB è una stazione base che combina funzioni di comunicazione radio e instradamento di base. L'EPC è composto da MME (gestione della mobilità), SGW (gateway di servizio per lo scambio dati con eNB) e PGW (gateway di pacchetti verso Internet).
OFDMA (Orthogonal Frequency Division Multiple Access) — la tecnologia chiave del LTE: le risorse di frequenza sono divise in sottoportanti, ciascuna assegnata a un utente specifico. MIMO 4×4 consente di inviare fino a 4 flussi di dati indipendenti su una singola frequenza. Carrier Aggregation combina fino a 5 frequenze portanti, aumentando la larghezza di banda di 5 volte.
Le reti overlay — LTE-Advanced e LTE-Advanced Pro — hanno aggiunto CoMP (trasmissione coordinata da più eNB) e LAA (LTE nella banda non licenziata da 5 GHz). Per lo sviluppatore, questi miglioramenti sono trasparenti: il driver del modem utilizza automaticamente le tecnologie disponibili senza modificare il codice dell'applicazione.
fun getCellularType(context: Context): String {
val tm = context.getSystemService(Context.TELEPHONY_SERVICE)
as TelephonyManager
return when (tm.dataNetworkType) {
TelephonyManager.NETWORK_TYPE_NR -> "5G"
TelephonyManager.NETWORK_TYPE_LTE -> "4G LTE"
TelephonyManager.NETWORK_TYPE_HSPAP -> "3G HSPA+"
else -> "2G/Unknown: ${tm.dataNetworkType}"
}
}
La funzione ottiene TelephonyManager e determina il tipo di rete attivo. Su Android 10+, per accedere a dataNetworkType è necessario il permesso READ_PHONE_STATE, e da Android 11 — solo per le app installate come gestore di chiamate o SMS.
5G NR (New Radio) — un aggiornamento radicale del livello fisico rispetto al LTE. Lo standard opera in due gamme di frequenza: FR1 (Sub-6, 1–6 GHz) per la copertura di massa e FR2 (mmWave, 24–52 GHz) per velocità ultra-elevate su brevi distanze. mmWave richiede una linea di vista diretta con l'antenna — persino il fogliame degli alberi causa un'attenuazione fino a 30 dB.
Due modalità di distribuzione: NSA (Non-Standalone) — il 5G NR funziona con un Core LTE per accelerare il lancio, e SA (Standalone) — una rete 5G Core completamente autonoma con supporto per Network Slicing. Network Slicing divide l'infrastruttura fisica in segmenti virtuali: uno slice per IoT (bassa velocità, consumo energetico ultra-basso), un altro per veicoli autonomi (latenza < 1 ms).
Per le applicazioni mobili, il 5G significa non solo velocità, ma anche un nuovo comportamento di consumo energetico: i moduli mmWave consumano fino a 2 W in modalità attiva (contro 0,5 W del LTE). Quando si sviluppa per il 5G, è consigliabile considerare che la frequente trasmissione dati in mmWave scarica rapidamente la batteria — è ottimale bufferizzare i dati e inviarli in batch nella gamma Sub-6.
import CoreTelephony
func check5GStatus() -> String {
let info = CTTelephonyNetworkInfo()
guard let tech = info.serviceCurrentRadioAccessTechnology
?.values.first else { return "No cellular" }
if tech == CTRadioAccessTechnologyNRNSA {
return "5G NSA"
} else if tech == CTRadioAccessTechnologyNR {
return "5G SA"
} else {
return "LTE o 3G: \(tech)"
}
}
iOS tramite CoreTelephony riporta il tipo di connessione attiva: CTRadioAccessTechnologyNR per SA (5G puro) e CTRadioAccessTechnologyNRNSA per NSA (5G con core LTE). Queste informazioni aiutano ad adattare il comportamento dell'app — ad esempio, caricare contenuti pesanti solo in modalità SA con bassa latenza.
Un'app mobile può adattare il suo comportamento in base al tipo e alla qualità della connessione cellulare. ConnectivityManager (Android) e NWPathMonitor (iOS) notificano all'app i cambiamenti di rete — passaggio da Wi-Fi a Cellular, perdita di segnale o disponibilità del 5G.
Scenari chiave di gestione:
RSSI (Received Signal Strength Indicator) — la metrica principale della qualità del segnale cellulare. I valori vanno da -50 dBm (segnale eccellente) a -120 dBm (quasi nessuna rete). Android fornisce l'accesso a RSSI tramite SignalStrength.getLevel(), iOS — tramite CTCarrier (accesso limitato).
import Network
let monitor = NWPathMonitor()
monitor.pathUpdateHandler = { path in
if path.usesInterfaceType(.cellular) {
print("Rete cellulare attiva")
if path.isExpensive {
print("Connessione a consumo — limitare il traffico")
}
}
}
monitor.start(queue: .main)
NWPathMonitor del framework Network monitora il tipo di connessione (cellular, wi-fi, wired) e il flag isExpensive, che indica una connessione a consumo. Su iOS, questo è il metodo principale per adattare il comportamento dell'app al tipo di rete corrente senza accesso diretto all'interfaccia radio.
Sebbene l'app non controlli la scelta dell'operatore, la conoscenza delle caratteristiche dei diversi piani aiuta lo sviluppatore a prendere decisioni. APN (Access Point Name) — un gateway tra la rete cellulare e Internet. Diversi APN (internet, ims, mms) forniscono QoS diversa — l'APN vocale (IMS) ha priorità sul traffico Internet.
Gli operatori moderni stanno introducendo DNN (Data Network Name) nel 5G SA — un analogo dell'APN con capacità di segmentazione per requisiti: ultra-reliable low-latency (URLLC), enhanced mobile broadband (eMBB), massive IoT (mMTC). Lo sviluppatore non sceglie direttamente lo slice, ma l'app può richiedere una QoS specifica tramite 5G QoS Identifier (5QI) quando utilizza Network Slicing.
Raccomandazioni per lo sviluppatore: verificare la disponibilità della connessione tramite NetworkInfo.isConnectedOrConnecting prima di inviare dati; impostare timeout di richiesta di almeno 30 secondi per le reti cellulari (la sessione TCP si stabilisce più lentamente con segnale debole); utilizzare attività in background (WorkManager, BGTaskScheduler) per la sincronizzazione solo quando connesso a Wi-Fi o piano illimitato.
Domande Frequenti
5G NSA (Non-Standalone) utilizza 5G New Radio per la trasmissione dati e 4G LTE Core per la gestione della connessione e la mobilità. 5G SA (Standalone) utilizza un core 5G completo con autenticazione indipendente. SA è obbligatorio per Network Slicing e latenza inferiore a 10 ms, NSA — per il lancio anticipato del 5G sull'infrastruttura esistente.
Su Android — ConnectivityManager.getActiveNetwork().getNetworkCapabilities() con verifica hasTransport(TRANSPORT_CELLULAR). Su iOS — NWPathMonitor con verifica usesInterfaceType(.cellular). Inoltre, iOS fornisce isExpensive per determinare una connessione a consumo.
Carrier Aggregation — una tecnologia che combina fino a 5 portanti componenti (component carriers) per aumentare la larghezza di banda. Se ogni portante fornisce 20 MHz di larghezza di banda, l'aggregazione di 3 portanti offre 60 MHz — velocità fino a 450 Mbps. Per l'app, Carrier Aggregation è trasparente: il modem gestisce la combinazione automaticamente.
Le onde millimetriche (24–52 GHz) hanno una lunghezza d'onda molto corta (5–12 mm) e vengono fortemente attenuate attraversando muri, finestre e persino il fogliame degli alberi. mmWave richiede una linea di vista diretta con l'antenna — le perdite attraverso il vetro sono di 10–30 dB. Pertanto, mmWave viene utilizzato in spazi aperti: stadi, piazze, centri commerciali con cupole trasparenti.
Si consiglia di sottoscrivere le notifiche di ConnectivityManager (Android) o NWPathMonitor (iOS). In caso di perdita del segnale, l'app dovrebbe: annullare le richieste di rete correnti, mostrare un indicatore di assenza di connessione all'utente, salvare lo stato nell'archivio locale (Room, CoreData) e pianificare la riconnessione con backoff esponenziale (riprovare dopo 10s, 30s, 60s, 300s).
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.
Leggi anche