Notch — iPhone displeyinin yuxarı hissəsində ön kameranı, dinamiki və Face ID sensorlarını yerləşdirən kəsikdir. İlk dəfə iPhone X (2017)-də təqdim edilən notch, mobil interfeyslərin layihələndirilməsinə yanaşmanı dəyişdi: kəsik ətrafındakı ekran sahəsi məzmun üçün "ölü zona" oldu. İnterfeysi uyğunlaşdırmaq üçün Apple Safe Area — məzmunun notch, yuvarlaq künclər və Home Indicator ilə örtülməməsini təmin edən kənar boşluqları təqdim etdi. Android-də oxşar konsepsiya safeAreaInsets vasitəsilə iOS-da və displayCutout + WindowInsets Android-də həyata keçirilir.
Əsas Məqamlar
Notch (kəsik, "çəki") — smartfon ekranının yuxarı hissəsində ön kameranın, danışıq dinamikinin, yaxınlıq və işıqlandırma sensorlarının, iPhone X və daha yeni modellər üçün isə Face ID infraqırmızı kamerasının, nöqtə proyektorunun və işıqlandırıcının (TrueDepth kamera sistemi) yerləşdiyi sahədir. Notch bütün lazımi sensorları qoruyaraq istifadəyə yararlı ekran sahəsini artırmaq üçün tətbiq edilmişdir — yuxarı çərçivə (bezel) əvəzinə displey kəsik ətrafında yuxarıya doğru genişlənir.
Ölçülər: standart iPhone notch-inin eni ~34 mm (~6.1 düymlük modellər üçün portret oriyentasiyada ~209 pt) və hündürlüyü ~5 mm (~30 pt)-dir. Notch-in yanlarında "qulaqlar" (ears) — kəsikin sağında və solunda kiçik ekran hissələri qalır. Sağ "qulaq" adətən saatı, batareya göstəricisini və Wi-Fi-ı göstərir; sol — operatoru və statusu. Üfüqi oriyentasiyada iOS notch-i status zolağının bütün eni boyunca qara zolaqla gizlədir — məzmun kəsik zonasında göstərilmir.
Yalnız iPhone deyil: notch konsepsiyasını bir çox Android istehsalçısı mənimsədi. Google Pixel 3 XL, OnePlus 6, Huawei P20, Xiaomi Mi 8 — hamısında kəsik var idi. Bəzi istehsalçılar daha da irəli getdilər: "damcı" kəsik (waterdrop notch), punch-hole kamera (ekranda deşik), sürgülü kamera (çıxarılan modul). Müasir Android flaqmanları (Samsung Galaxy S23+, Google Pixel 8 Pro) geniş kəsik olmadan, ekranın yuxarı hissəsində kamera üçün minimal deşik olan punch-hole istifadə edir.
Safe Area — görünüş daxilində sistem interfeys elementləri (notch, yuvarlaq ekran küncləri (corner radius), Home Indicator, tab bar və navigation bar) tərəfindən örtülməyən düzbucaqlı sahədir. Safe Area-nın ölçüləri UIView.safeAreaInsets xassəsi — top, left, bottom, right dəyərləri olan UIEdgeInsets vasitəsilə qaytarılır. Notch-li iPhone üçün yuxarı kənar boşluq = ~44 pt (portret) və ya ~0 pt (qara zolaqlı üfüqi).
// safeAreaInsets-in məzmunun yerləşdirilməsi üçün istifadəsi
class NotchAwareViewController: UIViewController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// Safe Area kənar boşluqlarının oxunması
let safeArea = self.view.safeAreaInsets
// Debug üçün dəyərlərin loglanması
print("Yuxarı inset: \(safeArea.top)") // ~44 pt notch ilə
print("Aşağı inset: \(safeArea.bottom)") // ~34 pt Home Indicator ilə
// Safe Area nəzərə alınmaqla başlığın yerləşdirilməsi
titleLabel.frame = CGRect(
x: safeArea.left + 16,
y: safeArea.top + 16,
width: self.view.bounds.width - safeArea.left - safeArea.right - 32,
height: 44
)
}
// Safe Area dəyişikliklərinin idarə edilməsi (fırlanma, Multi-Tasking)
override func viewSafeAreaInsetsDidChange() {
super.viewSafeAreaInsetsDidChange()
viewDidLayoutSubviews() // Layout-un yenidən hesablanması
}
}Auto Layout və Safe Area: Interface Builder-də "Superview" əvəzinə anchor hədəfi olaraq "Safe Area"-dan istifadə edin. Proqram layoutu üçün safeAreaLayoutGuide-dən istifadə edin: let guide = view.safeAreaLayoutGuide; titleLabel.topAnchor.constraint(equalTo: guide.topAnchor). iOS cihazın fırlanması, iPad-də Split View-ə keçid, klaviaturanın göstərilməsi/gizlənməsi və oriyentasiya dəyişikliyi zamanı safeAreaInsets-i avtomatik yeniləyir. Bütün standart UIKit kontrollerləri (UINavigationController, UITabBarController) artıq Safe Area-nı nəzərə alır. Xüsusi görünüşlər və kontrollerlər safeAreaInsets-dən açıq şəkildə istifadə etməlidir.
DisplayCutout — API 28-də (Android 9.0) əlavə edilmiş, ekrandakı kəsik sahəsini təsvir edən Android SDK sinifidir. Onu WindowInsets.displayCutout() vasitəsilə əldə etmək olar. Sinif boundingBoxList — kəsik(lər)i təsvir edən düzbucaqlılar siyahısı və safeInsetTop/safeInsetBottom/safeInsetLeft/safeInsetRight — məzmunun təhlükəsiz göstərilməsi üçün minimal kənar boşluqları qaytarır. Android müxtəlif kəsik konfiqurasiyalarını dəstəkləyir: mərkəzi (iPhone kimi), yan (küncdə kamera), qoşa (iki kamera), punch-hole.
// Activity-də DisplayCutout altında interfeysin uyğunlaşdırılması
class NotchAwareActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Kəsik zonasında məzmunun göstərilməsinə icazə veririk (lazım olduqda)
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)
// WindowInsets vasitəsilə DisplayCutout-un əldə edilməsi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && hasFocus) {
val cutout = window.decorView.rootWindowInsets.displayCutout
val safeTop = cutout?.safeInsetTop ?: 0
// Yuxarı məzmun üçün kənar boşluq təyin edirik
headerView.updatePadding(top = safeTop)
}
}
}Göstərmə rejimləri (layoutInDisplayCutoutMode): ALWAYS — məzmun kəsik zonasında göstərilə bilər (tam ekran tətbiqləri, video, oyunlar üçün); NEVER — məzmun heç vaxt kəsiyi örtmür, sistem kənar boşluq əlavə edir; SHORT_EDGES — məzmun yalnız qısa tərəfdə kəsik zonasında göstərilir (yuxarıda notch olan portret tətbiqləri üçün). Standart rejim — SHORT_EDGES (Android 12-dən etibarən). Punch-hole kamera üçün kəsik daha kiçikdir və bir çox tətbiq ekrandan maksimum istifadə üçün ALWAYS istifadə edir.
iPhone X (2017) — notch-li ilk Apple smartfonu. Kəsik Face ID üçün TrueDepth kamerasını — infraqırmızı kamera, nöqtə proyektoru (Dot Projector) və işıqlandırıcıdan (Flood Illuminator) ibarət sistemi ehtiva edirdi. Kəsik ölçüləri: ~34 mm × 5 mm. iOS 11-də Apple tətbiqlərin uyğunlaşdırılması üçün Safe Area-nı təqdim etdi. İstifadəçilər iki yerə bölündü: bəziləri notch-i Face ID üçün zərurət kimi qəbul etdi, digərləri "kəsilmiş" ekrana görə tənqid etdi.
iPhone 13 (2021) — Apple dinamiki ekranın yuxarı çərçivəsinə sürüşdürməklə notch-i 20% azaltdı. Bu son klassik notch idi. iPhone 14 və 14 Plus (2022) azaldılmış notch-i qorudu. iPhone 14 Pro və Pro Max kameranı və Face ID sensorlarını birləşdirən, dinamik olaraq formasını dəyişən və sistem bildirişlərini (taymer, musiqi, AirPods qoşulması) göstərən ellipsformalı kəsik — Dynamic Island-i təqdim etdi. Dynamic Island öz API-si (ActivityKit, Live Activities) olan proqram platformasına çevrildi.
| Nəsil | Kəsik növü | Xüsusiyyətlər | Safe Area Top |
|---|---|---|---|
| iPhone X–XS (2017–2018) | Böyük notch | Face ID, 34×5 mm | 44 pt |
| iPhone XR (2018) | Notch | Touch ID, daha kiçik notch | 44 pt |
| iPhone 11 (2019) | Notch | Face ID, geniş kəsik | 44 pt |
| iPhone 12 (2020) | Notch | Dinamik çərçivəyə sürüşdürülüb | 44 pt |
| iPhone 13 (2021) | Azaldılmış notch | 20% daha kiçik | 44 pt |
| iPhone 14 / 14 Plus (2022) | Azaldılmış notch | Face ID yoxdur (14 Plus) | 44 pt |
| iPhone 14 Pro (2022) | Dynamic Island | Adaptiv kəsik | 54 pt |
| iPhone 15–16 (2023–2024) | Dynamic Island | ActivityKit, Live Activities | 54 pt |
Dynamic Island — sadəcə kəsik deyil, interaktiv interfeys elementidir. AirPods qoşulduqda ada genişlənərək ikona və statusu göstərir. Taksi çağırışı (Uber) gəliş vaxtını göstərir. Taymer tətbiq kiçildildikdə adada görünür. Dynamic Island iPhone 14 Pro/Pro Max, iPhone 15/15 Pro/15 Pro Max, iPhone 16/16 Pro/16 Pro Max modellərində mövcuddur. Dynamic Island üçün Safe Area: yuxarı kənar boşluq = 54 pt (klassik notch-dən 10 pt çox).
Məzmunu heç vaxt notch-in arxasında gizlətməyin — kənar boşluqların avtomatik hesablanması üçün Safe Area və ya DisplayCutout istifadə edin. Sabit kənar boşluq dəyərləri təyin etməyin (məsələn, 44 pt) — onlar müxtəlif cihazlarda və müxtəlif oriyentasiyalarda fərqlənir. Safe Area-nı oxumaq üçün həmişə sistem API-lərindən istifadə edin: iOS-da safeAreaInsets, Android-də windowInsets.displayCutout. Bu, bütün cihazlarda düzgün göstərilməni təmin edir: iPhone SE (notch yoxdur), iPhone 14 Pro (notch), iPhone 15 (Dynamic Island), iPad (notch yoxdur, lakin Home Indicator ilə).
Üfüqi oriyentasiya — xüsusi risk zonası. Notch-li iPhone-da üfüqi rejimdə iOS avtomatik olaraq status zolağının bütün eni boyunca qara zolaq əlavə edir (notch-in solunda və sağında məzmun göstərilmir). Bu, sistem Safe Area inset = 0 top, lakin artırılmış left/right insets (~47 pt) ilə edilir. Bu davranışı söndürməyə çalışmayın — App Store üfüqi rejimdə məzmun üçün "qadağan" ekran zonalarından istifadə edən tətbiqi rədd edəcək. Tam ekran video üçün idarəetmə elementlərini notch zonasından kənarda avtomatik yerləşdirən AVPlayerViewController istifadə edin.
| Qayda | iOS | Android |
|---|---|---|
| Kənar boşluqlar üçün API | safeAreaInsets / safeAreaLayoutGuide | WindowInsets.displayCutout.safeInsetTop |
| Fırlanmaya uyğunlaşma | viewSafeAreaInsetsDidChange | onWindowFocusChanged |
| Tam ekran rejimi | prefersStatusBarHidden = true | SYSTEM_UI_FLAG_FULLSCREEN |
| Status zolağı məzmunu | Notch yanında "qulaqlarda" avtomatik | layoutInDisplayCutoutMode vasitəsilə |
| Üfüqi oriyentasiya | Qara zolaq (avtomatik) | WindowInsets-dən kənar boşluqlar |
| Video/oyunlar | AVPlayerViewController (təhlükəsiz) | LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS |
Fon və status zolağı: xüsusi fon rəngi istifadə edirsinizsə, o, notch arxasındakı zona da daxil olmaqla bütün ekran sahəsini doldurmalıdır. Status zolağının üzərində məzmun çəkməyin — Safe Area istifadə edin. Qaranlıq rejim üçün status zolağının oxunaqlı olduğundan əmin olun: preferredStatusBarStyle-i fon üslubunuza uyğun təyin edin (.default açıq fonda qaranlıq mətn üçün, .lightContent qaranlıq fonda açıq mətn üçün).
Simulyatorlar və emulyatorlar: Xcode notch-li (iPhone X–14) və Dynamic Island-li (iPhone 14 Pro–15) bütün iPhone modellərinin simulyatorlarını təqdim edir. Android Studio müxtəlif kəsik konfiqurasiyaları olan emulyatorlar (Google Pixel 3 XL, cutout ilə xüsusi emulyator) təqdim edir. Portret və üfüqi oriyentasiyada, klaviatura ilə və klaviatura olmadan, Split View-də (iPad) test edin. Bütün məzmunun oxunaqlı və örtülməmiş olduğunu yoxlayın.
Real cihazlar: simulyatorda və real cihazda notch fərqli ola bilər. Məsələn, iPhone 14 Pro simulyatoru Dynamic Island-i göstərir, lakin real interaktivlik (Live Activities) olmadan. Android-də punch-hole kamera dəqiq emulyasiya olunmaya bilər. Ən yaxşı üsul real cihazlarda test etməkdir. Minimum dəst: iPhone SE (notch yoxdur), iPhone 14 (notch), iPhone 15 Pro (Dynamic Island), punch-hole-li Android, suallı ekranlı Android (Samsung Edge).
Alətlər: iOS üçün "Show Safe Area Insets" seçimi ilə Xcode View Debugger istifadə edin — Safe Area sərhədlərini vizual olaraq göstərəcək. Android üçün — Attributes panelində WindowInsets və DisplayCutout göstərən Android Studio Layout Inspector. Həmçinin Safe Area daxilində bütün elementlərin VoiceOver/TalkBack üçün əlçatan olduğunu yoxlamaq üçün Accessibility Inspector faydalıdır. Notch-siz, lakin Home Indicator (aşağı kənar boşluq ~21 pt) və yuvarlaq küncləri olan iPad-i unutmayın.
Tez-tez verilən suallar
Notch-li iPhone (X–14) üçün portret oriyentasiyada: top = 44 pt, left = 0, right = 0, bottom = 34 pt (Home Indicator). Dynamic Island-li iPhone (14 Pro–16) üçün: top = 54 pt, bottom = 34 pt. iPhone SE (notch yoxdur) üçün: top = 20 pt (status zolağı), bottom = 0 pt (Home Indicator yoxdursa) və ya 21 pt (Home Indicator olan modellər üçün). Üfüqi rejimdə top = 0, left = 47 pt, right = 47 pt, bottom = 21 pt.
Notch — kamera və Face ID sensorları üçün statik kəsik. Dynamic Island — formasını dəyişən və bildirişlər, taymerlər, Live Activities göstərən proqram-aparat elementi. Dynamic Island iPhone 14 Pro və daha yeni modellərdə mövcuddur. Dynamic Island üçün Safe Area daha böyükdür (top = 54 pt vs notch üçün 44 pt). Dynamic Island üçüncü tərəf tərtibatçıları üçün ActivityKit API-ni dəstəkləyir.
Android-də DisplayCutout altında kənar boşluq WindowInsets vasitəsilə əldə edilir. Çağırış: decorView.rootWindowInsets.displayCutout?.safeInsetTop. API 28+ (Android 9) üçün. Göstərmə rejimi window.attributes.layoutInDisplayCutoutMode ilə idarə olunur: NEVER (kənar boşluq), SHORT_EDGES (qısa tərəfdə kənar boşluq), ALWAYS (kənar boşluq yoxdur). Punch-hole kamera üçün safeInsetTop status zolağının hündürlüyünə bərabərdir (~24 dp).
Üfüqi oriyentasiyada iOS avtomatik olaraq ekranın yanlarında qara zolaqlar əlavə edir ki, məzmun kəsik zonasında göstərilməsin. Bu, Safe Area insets (left/right ~47 pt) ilə tənzimlənən sistem davranışıdır. Səbəb: üfüqi rejimdə notch-in yanlarındakı "qulaqlar" faydalı məzmun göstərmək üçün çox kiçikdir. Tam ekran tətbiqləri (video, oyunlar) üçün avtomatik pleyer idarəetməsi ilə AVPlayerViewController istifadə edilə bilər.
Bəli, Safe Area-dan istifadə App Store-da dərc olunan bütün tətbiqlər üçün məcburidir. Apple bunu icmalda yoxlayır: əgər məzmun notch, yuvarlaq künclər və ya Home Indicator ilə örtülürsə, tətbiq rədd edilir. Android-də tövsiyə: kəsik altında uyğunlaşma üçün WindowInsets istifadə edin. Android 12-dən etibarən SHORT_EDGES rejimi standartdır və sistem xüsusi layout istifadə etməyən tətbiqlər üçün avtomatik olaraq kəsik altında kənar boşluqlar əlavə edir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun