UIKit 6: iOS 26 va iOS 27 yangiliklari — Liquid Glass, Yangi API va qoidalar
📱 UIKit va SwiftUI — chuqur
UIKit 6: iOS 26 va iOS 27 yangiliklari — Liquid Glass, Yangi API va qoidalar
Holat: 2026-yil sentabr. Har yili Apple o'zining dizayn tili va xavfsizlik talablarini yangilaydi. iOS 26 bilan yangi avlod Liquid Glass vizual arxitekturasi va
updatePropertieskiritilgan bo'lsa, iOS 27 da Toolbar boshqaruvi, "iPhone Duo" ikki ekranli apparat API'lari vaUIScenemajburiyati e'lon qilindi. Ushbu darsda 2026-yilgi eng so'nggi API o'zgarishlari va App Store qoidalari tahlil qilinadi.
Mundarija
- Liquid Glass arxitekturasi: UIGlassEffect va shisha tugmalar
- SwiftUI'da Liquid Glass: GlassEffectContainer
- Toolbar va minimizatsiya evolyutsiyasi (iOS 26 -> 27)
- iPhone Duo va September 2026 apparat klasteri
- Xcode 27: @State makrosi va @ContentBuilder (TN3211)
- AsyncImage avtomatik HTTP kesh va yangi hujjatlar
- App Store talablari: Launch Screen va UIScene
- Xulosa
- Manbalar
1. Liquid Glass arxitekturasi: UIGlassEffect va shisha tugmalar {#liquid-glass}
Apple iOS 26.0 da yangi vizual dizayn tili — Liquid Glass tizimini taqdim etdi (sdk_facts.md):
- **
UIGlassEffect:**@MainActorsinfi bo'lib, zamonaviy shishasimon dinamik materialni render qiladi (UIGlassEffect.Style.regularva.clear). - **
UIGlassContainerEffect:** Bir nechta shisha elementlarni yagona umumiy qatlamda birlashtirib, GPU sarfini optimallashtiradi. - **
UIButton.Configuration.glass():** Tizim bilan hamohang shaffof tugmalar konfiguratsiyasi.
Quyidagi Swift kodi iOS 26 SDK da to'liq kompilyatsiya qilinadi:
import UIKit
@available(iOS 26.0, *)
@MainActor
public func createLiquidGlassInterface() -> UIView {
// Bir nechta shisha elementlar uchun konteyner:
let containerView = UIVisualEffectView(effect: UIGlassContainerEffect())
// Interaktiv Liquid Glass effekti:
let glassEffect = UIGlassEffect(style: .regular)
glassEffect.isInteractive = true
let effectView = UIVisualEffectView(effect: glassEffect)
containerView.contentView.addSubview(effectView)
// Yangi shisha tugma:
var config = UIButton.Configuration.glass()
config.title = "Liquid Glass"
let button = UIButton(configuration: config)
containerView.contentView.addSubview(button)
return containerView
}
2. SwiftUI'da Liquid Glass: GlassEffectContainer {#swiftui-glass}
SwiftUI'da ham parallel ravishda iOS 26.0 dan boshlab quyidagi API'lar taqdim etildi:
.glassEffect(_:in:)modifier'i;GlassEffectContainerko'rinishi;PrimitiveButtonStyle.glassva.glassProminent.
import SwiftUI
@available(iOS 26.0, *)
struct GlassCardView: View {
var body: some View {
GlassEffectContainer {
VStack(spacing: 12) {
Text("Liquid Glass Karta")
.font(.headline)
Button("Tasdiqlash") {}
.buttonStyle(.glass)
}
.padding(24)
}
}
}
3. Toolbar va minimizatsiya evolyutsiyasi (iOS 26 -> 27) {#toolbar-minimization}
iOS 26 da foydalanuvchi scroll qilganda panelni kichraytirish uchun toolbarMinimizeBehavior taklif etilgan edi. Biroq Apple iOS 27 da ushbu nomlarni standartlashtirdi (iOS 27 Release Notes):
1. SwiftUI o'zgarishi:
toolbarMinimizationBehavior(_:for:) modifier'i avvalgi toolbarMinimizeBehavior o'rniga keldi:
// iOS 27 SDK (Xcode 27) — Apple manbasidan
// https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-27-release-notes
content
.toolbarMinimizationBehavior(.collapsible, for: .navigationBar)
2. UIKit o'zgarishi:
UINavigationItem.navigationBarMinimization xususiyati eski barMinimizeBehavior va barMinimizationSafeAreaAdjustment o'rniga yagona standart bo'ldi:
// iOS 27 SDK (Xcode 27) — Apple manbasidan
// https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-27-release-notes
navigationItem.navigationBarMinimization = .collapsible
Shuningdek, iOS 27 da UITabBarController.prominentTabIdentifier (markaziy ajralib turuvchi tab) va UITabBarController.Sidebar.preferredPlacement qo'shildi.
4. iPhone Duo va September 2026 apparat klasteri {#iphone-duo}
Apple'ning rasmiy SwiftUI Updates sahifasida 2026-yil sentabr oyida birinchi marta buklanuvchi ikki ekranli apparat — "iPhone Duo" nomi ochiq tasdiqlandi:
// iOS 27 SDK (Xcode 27) — Apple manbasidan
// https://developer.apple.com/documentation/updates/swiftui
// 1. Ekranlar orasidagi burchak (Hinge) holatini kuzatish:
.onHingeChange(isEnabled: true) { hingeContext in
switch hingeContext.state {
case .closed:
print("Yopiq rejim")
case .partiallyOpen:
print("Burchak ostida yarim ochiq (Laptop rejimi)")
case .fullyOpen:
print("To'liq tekis yoyilgan")
@unknown default:
break
}
}
// 2. Tashqi yordamchi ekranda kontent chiqarish:
CameraCaptureAccessory {
Text("Tashqi displey ko'rinishi")
}
Ikki displeyli tartibni boshqarish uchun ArrangementView (.split va .overlay) hamda apparat to'siqlari uchun ReservedRegion (.occlusion, .division) taqdim etildi.
5. Xcode 27: @State makrosi va @ContentBuilder (TN3211) {#state-contentbuilder}
Apple ishlab chiquvchilar uchun texnik hisobotida (TN3211) ikkita katta me'moriy yangilikni e'lon qildi:
- **
@Statemakrosi yangilanishi:** SwiftUI@Stateendi ichki Property Wrapper emas, Swift Syntax Makrosi sifatida qayta yozildi. Eng katta xushxabar: ushbu makro kompilyatsiya darajasida iOS 17 gacha back-deploy qilinadi, ya'ni ishlab chiqarishda yangi xususiyatdan foydalanish uchun foydalanuvchida iOS 27 bo'lishi shart emas! - **
@ContentBuilderbirlashuvi:** Ilgari alohida bo'lganViewBuilder,ToolbarContentBuildervaCommandsBuilderprotokollari endi yagona@ContentBuilderostida birlashtirildi. Natijada Xcode 27 da SwiftUI kodini kompilyatsiya qilish va tip tekshirish tezligi sezilarli darajada oshdi.
6. AsyncImage avtomatik HTTP kesh va yangi hujjatlar {#async-image-docs}
- **
AsyncImagekeshlash:** iOS 27 gachaAsyncImagerasmlarni xotirada keshlamas, har marta qayta so'rov yuborar edi (shuning uchun Nuke yoki Kingfisher ishlatilar edi). iOS 27 daAsyncImagega avtomatik HTTP kesh qo'shildi va maxsus sessiya ulash uchunasyncImageURLSession(_:)modifier'i taqdim etildi (iOS 27 Release Notes). - Hujjatlar arxitekturasi: Eski
FileDocumentvaReferenceFileDocumentprotokollari rasman deprecated qilindi, o'rniga yagonaWritableDocument/ReadableDocument/Documenttizimi joriy etildi.
7. App Store talablari: Launch Screen va UIScene {#app-store-rules}
iOS 27 SDK (Xcode 27) bilan ilovani App Store'ga topshirishda quyidagi ikki qat'iy talab joriy qilindi:
- Launch Screen bo'lishi shart: Ilovaning
Info.plistfaylida quyidagi 4 ta kalitdan kamida bittasi mavjud bo'lishi shart, aks holda App Store Connect yig'mani qabul qilmaydi: UILaunchStoryboardNameUILaunchStoryboardsUILaunchScreenUILaunchScreens- UIScene lifecycle majburiyati: iOS 27 SDK da eski AppDelegate hayot sikli bilan yig'ilgan ilovalar qurilmada ishga tushmaydi ("fail to launch"). Har qanday yangi ilova
UIScenevaUIWindowScenearxitekturasiga o'tgan bo'lishi shart (/ios-lessons/uikit-vc-lifecycle#ui-scene).
8. Xulosa {#xulosa}
- iOS 26 da
UIGlassEffectva.glassuslubidagi tugmalar bilan Liquid Glass dizayn tili boshlandi. - iOS 27 da toolbar boshqaruvi
toolbarMinimizationBehaviorvanavigationBarMinimizationko'rinishida standartlashtirildi. - "iPhone Duo" apparatining e'lon qilinishi bilan
DeviceHingevaArrangementViewikki ekranli rejimlar uchun asosiy vositaga aylandi. - Xcode 27 dagi yangi
@Statemakrosi iOS 17 gacha moslashuvchan,@ContentBuilderesa kompilyatsiya tezligini oshiradi. AsyncImagega rasmiy kesh qo'shildi, App Store esa Launch Screen va UIScene mavjudligini qat'iy tekshiradi.