Notch è un ritaglio nella parte superiore del display dell'iPhone che ospita la fotocamera frontale, l'altoparlante e i sensori Face ID. Presentato per la prima volta con l'iPhone X (2017), il notch ha cambiato l'approccio alla progettazione delle interfacce mobili: l'area dello schermo attorno al ritaglio è diventata una "zona morta" per i contenuti. Per adattare l'interfaccia, Apple ha introdotto Safe Area — margini che garantiscono che i contenuti non vengano coperti dal notch, dagli angoli arrotondati e dall'Home Indicator. Su Android, un concetto simile viene implementato tramite safeAreaInsets in iOS e displayCutout + WindowInsets in Android.
Punti chiave
Notch (ritaglio, "tacca") è un'area nella parte superiore dello schermo dello smartphone dove si trovano la fotocamera frontale, l'altoparlante auricolare, i sensori di prossimità e luce ambientale, e per iPhone X e successivi — la fotocamera a infrarossi Face ID, il proiettore di punti e l'illuminatore (TrueDepth camera system). Il notch è stato introdotto per aumentare l'area utile dello schermo mantenendo tutti i sensori necessari — invece di una cornice superiore (bezel), il display si estende verso l'alto attorno al ritaglio.
Dimensioni: il notch standard dell'iPhone è largo circa ~34 mm (~209 pt in orientamento ritratto per modelli da 6,1 pollici) e alto circa ~5 mm (~30 pt). Ai lati del notch ci sono "orecchie" — piccole sezioni dello schermo a destra e a sinistra del ritaglio. L'orecchia destra mostra solitamente l'ora, l'indicatore della batteria e il Wi-Fi; la sinistra mostra l'operatore e lo stato. In orientamento paesaggio, iOS nasconde il notch con una barra nera per tutta la larghezza della barra di stato — i contenuti non vengono visualizzati nell'area del ritaglio.
Non solo iPhone: il concetto di notch è stato adottato da molti produttori Android. Google Pixel 3 XL, OnePlus 6, Huawei P20, Xiaomi Mi 8 — tutti avevano un ritaglio. Alcuni produttori sono andati oltre: notch a goccia (waterdrop), fotocamera punch-hole (foro nello schermo), fotocamera scorrevole (modulo retrattile). I flagship Android moderni (Samsung Galaxy S23+, Google Pixel 8 Pro) usano il punch-hole — un foro minimo per la fotocamera nella parte superiore dello schermo, senza un ritaglio largo.
Safe Area è un'area rettangolare all'interno di una vista che è garantita non essere coperta dagli elementi dell'interfaccia di sistema: notch, angoli arrotondati dello schermo (corner radius), Home Indicator, barra delle schede (tab bar) e barra di navigazione (navigation bar). Le dimensioni di Safe Area vengono restituite tramite la proprietà UIView.safeAreaInsets — UIEdgeInsets con valori top, left, bottom, right. Per un iPhone con notch, top inset = ~44 pt (ritratto) o ~0 pt (paesaggio con barra nera).
// Utilizzo di safeAreaInsets per posizionare contenuti
class NotchAwareViewController: UIViewController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// Lettura dei margini Safe Area
let safeArea = self.view.safeAreaInsets
// Registrazione dei valori per il debug
print("Top inset: \(safeArea.top)") // ~44 pt con notch
print("Bottom inset: \(safeArea.bottom)") // ~34 pt con Home Indicator
// Posizionamento del titolo con Safe Area
titleLabel.frame = CGRect(
x: safeArea.left + 16,
y: safeArea.top + 16,
width: self.view.bounds.width - safeArea.left - safeArea.right - 32,
height: 44
)
}
// Gestione delle modifiche Safe Area (rotazione, Multi-Tasking)
override func viewSafeAreaInsetsDidChange() {
super.viewSafeAreaInsetsDidChange()
viewDidLayoutSubviews() // Ricalcolo del layout
}
}Auto Layout e Safe Area: in Interface Builder, usa "Safe Area" come destinazione dell'ancora invece di "Superview". Per layout programmatico, usa safeAreaLayoutGuide: let guide = view.safeAreaLayoutGuide; titleLabel.topAnchor.constraint(equalTo: guide.topAnchor). iOS aggiorna automaticamente safeAreaInsets durante la rotazione del dispositivo, l'ingresso in Split View su iPad, la visualizzazione/nascondimento della tastiera e i cambi di orientamento. Tutti i controller UIKit standard (UINavigationController, UITabBarController) già considerano Safe Area. Le viste e i controller personalizzati devono usare esplicitamente safeAreaInsets.
DisplayCutout è una classe dell'SDK Android aggiunta in API 28 (Android 9.0) che descrive l'area di ritaglio sullo schermo. Può essere ottenuta tramite WindowInsets.displayCutout(). La classe restituisce boundingBoxList — un elenco di rettangoli che descrivono il/i ritaglio/i, e safeInsetTop/safeInsetBottom/safeInsetLeft/safeInsetRight — margini minimi per la visualizzazione sicura dei contenuti. Android supporta varie configurazioni di ritaglio: centrale (come iPhone), laterale (fotocamera nell'angolo), doppio (due fotocamere), punch-hole.
// Adattamento dell'interfaccia per DisplayCutout in Activity
class NotchAwareActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Consentire la visualizzazione dei contenuti nell'area di ritaglio (se necessario)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
window.attributes.layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
}
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
// Ottenere DisplayCutout tramite WindowInsets
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && hasFocus) {
val cutout = window.decorView.rootWindowInsets.displayCutout
val safeTop = cutout?.safeInsetTop ?: 0
// Impostare il margine per i contenuti superiori
headerView.updatePadding(top = safeTop)
}
}
}Modalità di visualizzazione (layoutInDisplayCutoutMode): ALWAYS — i contenuti possono essere visualizzati nell'area di ritaglio (per app a schermo intero, video, giochi); NEVER — i contenuti non sovrappongono mai il ritaglio, il sistema aggiunge margini; SHORT_EDGES — i contenuti vengono visualizzati nell'area di ritaglio solo sul bordo corto (per app in ritratto con notch superiore). La modalità predefinita è SHORT_EDGES (da Android 12). Per le fotocamere punch-hole, il ritaglio è più piccolo e molte app usano ALWAYS per massimizzare l'uso dello schermo.
iPhone X (2017) — il primo smartphone Apple con notch. Il ritaglio conteneva la fotocamera TrueDepth per Face ID — un sistema di fotocamera a infrarossi, proiettore di punti e illuminatore. Dimensioni del ritaglio: ~34 mm × 5 mm. In iOS 11, Apple ha introdotto Safe Area per l'adattamento delle app. Gli utenti erano divisi: alcuni hanno accettato il notch come necessario per Face ID, altri lo hanno criticato per uno schermo "ritagliato".
iPhone 13 (2021) — Apple ha ridotto il notch del 20% spostando l'altoparlante nella cornice superiore. Questo è stato l'ultimo notch classico. L'iPhone 14 e 14 Plus (2022) hanno mantenuto il notch ridotto. L'iPhone 14 Pro e Pro Max hanno introdotto Dynamic Island — un ritaglio ellissoidale che combina fotocamera e sensori Face ID, che cambia dinamicamente forma e mostra notifiche di sistema (timer, musica, connessione AirPods). Dynamic Island è diventata una piattaforma software con una propria API (ActivityKit, Live Activities).
| Generazione | Tipo di ritaglio | Caratteristiche | Safe Area Top |
|---|---|---|---|
| iPhone X–XS (2017–2018) | Notch grande | Face ID, 34×5 mm | 44 pt |
| iPhone XR (2018) | Notch | Touch ID, notch più piccolo | 44 pt |
| iPhone 11 (2019) | Notch | Face ID, ritaglio largo | 44 pt |
| iPhone 12 (2020) | Notch | Altoparlante spostato nella cornice | 44 pt |
| iPhone 13 (2021) | Notch ridotto | 20% più piccolo | 44 pt |
| iPhone 14 / 14 Plus (2022) | Notch ridotto | Senza Face ID (14 Plus) | 44 pt |
| iPhone 14 Pro (2022) | Dynamic Island | Ritaglio adattivo | 54 pt |
| iPhone 15–16 (2023–2024) | Dynamic Island | ActivityKit, Live Activities | 54 pt |
Dynamic Island non è solo un ritaglio, ma un elemento dell'interfaccia interattivo. Quando si collegano gli AirPods, l'isola si espande mostrando un'icona e lo stato. Chiamare un taxi (Uber) mostra l'orario di arrivo. Un timer è visibile nell'isola quando si minimizza l'app. Dynamic Island è disponibile su iPhone 14 Pro/Pro Max, iPhone 15/15 Pro/15 Pro Max, iPhone 16/16 Pro/16 Pro Max. Safe Area per Dynamic Island: top inset = 54 pt (10 pt in più rispetto al notch classico).
Non nascondere mai contenuti dietro il notch — usa Safe Area o DisplayCutout per il calcolo automatico dei margini. Non impostare valori di margine fissi (ad esempio, 44 pt) — differiscono su diversi dispositivi e orientamenti. Usa sempre le API di sistema per leggere Safe Area: safeAreaInsets in iOS, windowInsets.displayCutout in Android. Questo garantisce una visualizzazione corretta su tutti i dispositivi: iPhone SE (senza notch), iPhone 14 Pro (con notch), iPhone 15 (Dynamic Island), iPad (senza notch, ma con Home Indicator).
Orientamento paesaggio — un'area di rischio speciale. Su un iPhone con notch in paesaggio, iOS aggiunge automaticamente una barra nera per tutta la larghezza della barra di stato (i contenuti non vengono visualizzati a sinistra e destra del notch). Ciò avviene tramite Safe Area inset = 0 top, ma con margini sinistro/destro aumentati (~47 pt). Non tentare di disabilitare questo comportamento — l'App Store rifiuterà un'app che utilizza aree "vietate" dello schermo per i contenuti in paesaggio. Per i video a schermo intero, usa AVPlayerViewController che posiziona automaticamente i controlli fuori dall'area del notch.
| Regola | iOS | Android |
|---|---|---|
| API per margini | safeAreaInsets / safeAreaLayoutGuide | WindowInsets.displayCutout.safeInsetTop |
| Adattamento rotazione | viewSafeAreaInsetsDidChange | onWindowFocusChanged |
| Modalità schermo intero | prefersStatusBarHidden = true | SYSTEM_UI_FLAG_FULLSCREEN |
| Contenuto barra di stato | Automaticamente nelle "orecchie" attorno al notch | Tramite layoutInDisplayCutoutMode |
| Paesaggio | Barra nera (automatica) | Margini da WindowInsets |
| Video/Giochi | AVPlayerViewController (sicuro) | LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS |
Sfondo e barra di stato: se usi un colore di sfondo personalizzato, deve riempire l'intera area dello schermo, inclusa l'area dietro il notch. Non disegnare contenuti sopra la barra di stato — usa Safe Area. Per la modalità scura, assicurati che la barra di stato sia leggibile: imposta preferredStatusBarStyle in base al tuo stile di sfondo (.default per testo scuro su sfondo chiaro, .lightContent per testo chiaro su sfondo scuro).
Simulatori ed emulatori: Xcode fornisce simulatori di tutti i modelli di iPhone con notch (iPhone X–14) e Dynamic Island (iPhone 14 Pro–15). Android Studio fornisce emulatori con varie configurazioni di ritaglio (Google Pixel 3 XL, emulatore personalizzato con cutout). Testa in orientamento ritratto e paesaggio, con e senza tastiera, in Split View (iPad). Verifica che tutti i contenuti siano leggibili e non coperti.
Dispositivi reali: il notch su un simulatore e su un dispositivo reale può differire. Ad esempio, il simulatore di iPhone 14 Pro mostra Dynamic Island, ma senza interattività reale (Live Activities). Per Android, una fotocamera punch-hole potrebbe non essere emulata con precisione. Il metodo migliore è testare su dispositivi reali. Set minimo: iPhone SE (senza notch), iPhone 14 (con notch), iPhone 15 Pro (Dynamic Island), Android con punch-hole, Android con schermo waterfall (Samsung Edge).
Strumenti: per iOS, usa Xcode View Debugger con l'opzione "Show Safe Area Insets" — mostra visivamente i confini di Safe Area. Per Android — Layout Inspector in Android Studio, che mostra WindowInsets e DisplayCutout nel pannello Attributes. Utile anche Accessibility Inspector per verificare che tutti gli elementi all'interno di Safe Area siano accessibili a VoiceOver/TalkBack. Non dimenticare l'iPad senza notch, ma con Home Indicator (margine inferiore ~21 pt) e angoli arrotondati.
Domande frequenti
Per un iPhone con notch (X–14) in orientamento ritratto: top = 44 pt, left = 0, right = 0, bottom = 34 pt (Home Indicator). Per un iPhone con Dynamic Island (14 Pro–16): top = 54 pt, bottom = 34 pt. Per iPhone SE (senza notch): top = 20 pt (barra di stato), bottom = 0 pt (se senza Home Indicator) o 21 pt (per modelli con Home Indicator). In paesaggio top = 0, left = 47 pt, right = 47 pt, bottom = 21 pt.
Notch è un ritaglio statico per la fotocamera e i sensori Face ID. Dynamic Island è un elemento software-hardware che cambia forma e mostra notifiche, timer, Live Activities. Dynamic Island è disponibile su iPhone 14 Pro e successivi. Safe Area per Dynamic Island è maggiore (top = 54 pt vs 44 pt per notch). Dynamic Island supporta l'API ActivityKit per sviluppatori di terze parti.
In Android, il margine di DisplayCutout si ottiene tramite WindowInsets. Chiamata: decorView.rootWindowInsets.displayCutout?.safeInsetTop. Per API 28+ (Android 9). La modalità di visualizzazione è controllata tramite window.attributes.layoutInDisplayCutoutMode: NEVER (margine), SHORT_EDGES (margine sul bordo corto), ALWAYS (senza margine). Per fotocamere punch-hole, safeInsetTop è uguale all'altezza della barra di stato (~24 dp).
In orientamento paesaggio, iOS aggiunge automaticamente barre nere ai lati dello schermo in modo che i contenuti non vengano visualizzati nell'area del ritaglio. Questo è un comportamento di sistema controllato dagli insets di Safe Area (sinistro/destro ~47 pt). Il motivo: in paesaggio, le "orecchie" ai lati del notch sono troppo piccole per visualizzare contenuti utili. Per le app a schermo intero (video, giochi), puoi usare AVPlayerViewController con controllo automatico del lettore.
Sì, l'uso di Safe Area è obbligatorio per tutte le app pubblicate sull'App Store. Apple lo verifica durante la revisione: se i contenuti vengono coperti dal notch, dagli angoli arrotondati o dall'Home Indicator, l'app viene rifiutata. Su Android, si raccomanda di usare WindowInsets per l'adattamento al ritaglio. Da Android 12, la modalità SHORT_EDGES è predefinita e il sistema aggiunge automaticamente margini per il ritaglio nelle app che non utilizzano layout personalizzati.
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