Sitemap

WWDC19: Apple İmperative UI-dan Declarative UI-a

4 min readJul 22, 2026

--

UIKit 11 il ərzində milyonlarla iOS tətbiqinin əsasını təşkil etdi. Bəs Apple niyə UIKit-i sadəcə yenisi ilə dəyişmək əvəzinə, WWDC19-da tamamilə fərqli bir UI yanaşması təqdim etdi?

Press enter or click to view image in full size

2008-ci ildə Apple ilk iPhone SDK ilə birlikdə UIKit framework-unu təqdim etdi. Sonrakı illərdə App Store-da yayımlanan milyonlarla tətbiqin arxasında məhz UIKit dayanırdı. Bu, sadəcə yeni sintaksis deyildi. Bu, Apple-ın istifadəçi interfeysləri haqqında düşünmə tərzini dəyişən mühəndislik qərarı idi.

UIKit öz dövrü üçün niyə mükəmməl idi?

2008-ci ildə mobil tətbiqlərin funksionallığı bugünkü qədər geniş deyildi və istifadəçi interfeysləri daha az dinamik idi. Bir UIViewController açılırdı, UIButton əlavə olunurdu, UITableView yaradılırdı, istifadəçi klik edirdi, yeni ekran açılırdı. Bütün proses addım-addım developer tərəfindən asanlıqla idarə olunurdu. Developer UI-yə belə “göstərişlər” verirdi:

“Əvvəl bunu yarat.”
“İndi bunu gizlət.”
“Sonra label-ın mətnini dəyiş.”
“İndi isə layout-u yenilə.”

Başqa sözlə, proqramçı istifadəçi interfeysinin necə dəyişəcəyini addım-addım özü idarə edirdi. Bu yanaşma Imperative UI adlanır. Yəni proqramçı nəticəni yox, nəticəyə necə çatılacağını təsvir edir. Bu model uzun illər ərzində özünü doğrultdu. UIKit çevik idi, performansı yüksək idi və onunla demək olar ki, istənilən interfeysi yaratmaq mümkün idi. Elə buna görə də UIKit bu gün də iOS inkişafının ən güclü framework-larından biri hesab olunur.

Bəs problem nə idi?

İllər keçdikcə tətbiqlər daha dinamik olmağa başladı. Təsəvvür edin: bir ekranda eyni anda loading, error, empty, success state-lərini, pagination və real-time məlumatları idarə etməlisiniz UIKit ilə bu, hər state üçün ayrıca UI yeniləməsi demək idi və həmin yeniləmələrin ardıcıllığını developer özü təmin etməli idi. Məsələn:

  • Label-ın mətnini dəyiş
  • tableView.reloadData() çağır
  • Constraint dəyiş
  • layoutIfNeeded() çağır

Layihə böyüdükcə bu yanaşmanı idarə etmək getdikcə çətinləşirdi. Üstəlik, MVC istifadə edən bir çox layihədə məşhur Massive View Controller problemi yaranmağa başladı. Bir UIViewController yüzlərlə, bəzən isə minlərlə sətrə çatırdı. Kod işləyirdi, lakin onu inkişaf etdirmək, test etmək və dəstəkləmək çətinləşirdi. Yəni problem UIKit-in zəif olması deyildi. Problem mobil tətbiqlərin tələblərinin dəyişməsi idi.

Apple nəyi dəyişmək istəyirdi?

WWDC (Worldwide Developers Conference) — Apple-ın hər il keçirdiyi ən böyük developer konfransıdır. Burada şirkət iOS, macOS, watchOS və digər platformalar üçün yenilikləri, yeni API-ləri və gələcək inkişaf istiqamətlərini təqdim edir. Məhz WWDC19 konfransında Apple iOS inkişafı üçün son illərin ən böyük yeniliklərindən birini təqdim etdi — SwiftUI.

İlk baxışdan bu, sadəcə yeni bir UI framework-u kimi görünürdü. Lakin zaman göstərdi ki, SwiftUI təkcə yeni API-lər toplusu deyil. O, Apple-ın istifadəçi interfeysi yaratmağa yanaşmasını dəyişən yeni proqramlaşdırma modeli idi. Əslində Apple developerlərə belə bir fikir çatdırırdı:

“UI-ni necə qurduğunu mənə izah etmə. Mənə sadəcə onun hansı vəziyyətdə görünməli olduğunu təsvir et.”

Bu yanaşma Declarative UI adlanır.

Imperative UI modelində proqramçı istifadəçi interfeysinin necə dəyişəcəyini addım-addım özü idarə edir.

Declarative UI modelində isə proqramçı yalnız son nəticəni təsvir edir.

Get Gunel Balayeva’s stories in your inbox

Join Medium for free to get updates from this writer.

Məsələn:

if isLoggedIn {
HomeView()
} else {
LoginView()
}

Burada proqramçı ekrana keçid etmək, view-ləri gizlətmək və ya yenidən göstərmək kimi əməliyyatları əl ilə idarə etmir. O, sadəcə tətbiqin cari vəziyyətini (State) təsvir edir. State dəyişdikdə isə SwiftUI body-ni yenidən hesablayır, əvvəlki və yeni View strukturlarını müqayisə edir (Diffing) və yalnız dəyişən hissələri yeniləyir.

SwiftUI özü ilə hansı üstünlükləri gətirdi?

SwiftUI bir neçə mühüm ideyanı birlikdə təqdim etdi.

State-driven UI: İnterfeys artıq tətbiqin cari vəziyyətinə (State) əsasən qurulur. State dəyişdikdə SwiftUI yalnız zəruri UI dəyişikliklərini tətbiq edir.

Daha az Boilerplate kod: UIKit-də bir çox sadə əməliyyat üçün əlavə kod yazmaq lazım gəlirdi. SwiftUI-də isə eyni nəticəyə daha az kodla çatmaq mümkündür.

Live Preview: Əvvəllər UI-də etdiyiniz dəyişiklikləri görmək üçün tətbiqi yenidən build etmək lazım idi. SwiftUI Preview isə dəyişiklikləri demək olar ki, real vaxtda göstərməyə başladı. Bu da inkişaf sürətini əhəmiyyətli dərəcədə artırdı.

Cross-platform yanaşması: Apple ilk gündən SwiftUI-ni yalnız iPhone üçün düşünmədi. Eyni UI yanaşması: iOS, iPadOS, macOS, watchOS, tvOS üçün istifadə oluna bildi. Sonrakı illərdə isə visionOS kimi platformalar da bu yanaşmanı davam etdirdi.

Əlbəttə, SwiftUI hələ UIKit qədər yetkin deyil. Bəzi mürəkkəb interfeyslər UIKit-də daha rahat hazırlanır. Lakin Apple hər il SwiftUI-ni inkişaf etdirir və bu boşluqları tədricən aradan qaldırır.

Apple niyə 2026-cı ildə belə UIKit-dən tam imtina etmir?

SwiftUI təqdim olunanda bir çox developer düşünürdü ki, UIKit artıq keçmişdə qalacaq. Amma reallıq fərqlidir. Bu gün də böyük şirkətlərdə yazılmış milyonlarla sətir UIKit kodu işləyir və Apple özü də UIKit-i tamamilə kənara qoymayıb. Əksinə, hər iki framework-un birlikdə işləməsini mümkün edib.

Məsələn:

  • SwiftUI layihəsində UIKit komponentlərindən istifadə etmək üçün UIViewRepresentable
  • UIKit layihəsinə SwiftUI ekranı əlavə etmək üçün isə UIHostingController təqdim olunub.

Bu onu göstərir ki, Apple üçün məqsəd köhnə texnologiyanı silmək yox, yeni yanaşmanı mərhələli şəkildə tətbiq etmək idi. 2026-cı ildə Apple UIKit-dən tam imtina etmir, çünki bu, texniki məcburiyyətdən çox, mərhələli keçid strategiyasıdır.

Apple-ın yanaşması: “UIKit öldü, hamı SwiftUI-yə keçsin.” deyil. Əksinə “Hər iki framework birlikdə işləyir və siz öz tempinizlə keçid edə bilərsiniz.” yanaşmasıdır.

Nəticə

Apple SwiftUI-ni UIKit uğursuz olduğu üçün yaratmadı.

WWDC19-da təqdim olunan ən böyük yenilik yeni bir framework deyildi. Ən böyük yenilik proqramçıların UI haqqında düşünmə tərzinin dəyişməsi idi. UIKit öz dövrü üçün son dərəcə uğurlu idi və bu gün də bir çox peşəkar layihənin əsasını təşkil edir. Lakin mobil tətbiqlər böyüdükcə istifadəçi interfeysləri daha çox State idarə etməyə başladı. Apple da bunun gələcəyini görərək proqramçıların UI-ni “necə qurduğunu” deyil, “nə göstərmək istədiyini” ifadə edə biləcəyi yeni bir yanaşma təqdim etdi. SwiftUI məhz bu düşüncə tərzinin məhsuludur.

WWDC19 təqdimatında Apple SwiftUI-ni təqdim edərkən “Declarative syntax”, “Single source of truth” və “Less code” kimi anlayışları xüsusi vurğulayırdı. Bu da göstərirdi ki, məqsəd sadəcə yeni framework yaratmaq deyil, UI inkişafının istiqamətini dəyişmək idi.

Bugünkü iOS developerləri üçün bu nə deməkdir?

Yeni layihələrdə SwiftUI getdikcə daha çox standart seçimə çevrilir. Mövcud UIKit layihələrində isə Apple hələ də mərhələli keçidi dəstəkləyir və hər iki framework-un birlikdə işləməsi üçün imkanlar təqdim edir. UIKit bizi uzun illər uğurla bu günə gətirdi. SwiftUI isə Apple-ın növbəti onillik üçün seçdiyi istiqamətdir. Görünən odur ki, gələcək bu iki framework-un rəqabətində deyil, birlikdə işləməsindədir.

--

--

Gunel Balayeva
Gunel Balayeva

Written by Gunel Balayeva

iOS Mobile Developer | UIKit & SwiftUI