Назад
SwiftUI через сім років: чому фреймворк досі відчувається як бета
SiTech Team2 წთ. საკითხავი

SwiftUI через сім років: чому фреймворк досі відчувається як бета

Через сім років після анонсу SwiftUI фреймворк досі справляє враження вічної бети — стверджує відеоканал розробників Code Bird у великому критичному есеї про проблеми з потоком даних, версткою та API.

Через сім років після того, як Apple представила SwiftUI як майбутнє розробки застосунків для своїх платформ, фреймворк досі справляє враження вічної бети, — стверджує відеоканал розробників Code Bird у великому критичному есеї «SwiftUI After 7 Years: A Story of Mediocrity».

Потік даних і верстка

SwiftUI представили 2019 року з обіцянками декларативного синтаксису, єдиного джерела істини та миттєвого прев'ю. Відтоді керування станом перейшло від @State і @Binding до фреймворку Observation та макросу @Observable. Проте, за словами автора, досі важко зрозуміти, як часто оновлюється подання і чому. Верстка, побудована на узгодженні розмірів, досі ламає плаваючі подання та власні бічні панелі: в офіційному навчальному проєкті Apple бічна панель працює з помилками, якщо зібрати його в найновішому Xcode, — цей баг автор помітив понад два роки тому. Зрештою розробники загортають подання в GeometryReader, що він називає «остаточною капітуляцією».

API та сумісність

Сучасний код SwiftUI рясніє перевірками if #available: приховування клавіатури під час скролу вимагало iOS 16, налаштування панелі інструментів з'явилося лише кілька років тому, а AsyncImage вийшов в iOS 15 — тоді як API на основі request із підтримкою кешування станом на липень 2026 року досі в беті. Деякі компоненти перейменували чи замінили: проблемний NavigationView поступився NavigationStack, що змушує тримати паралельні гілки коду для старіших систем. На відміну від Jetpack Compose в Android, який постачається разом із застосунком і працює навіть на пристроях 2014 року, SwiftUI не може «відкотити» найновіші API на старі системи.

Продуктивність і кросплатформна обіцянка

У порівняльному тесті з UIKit на старому iPhone автор зафіксував помітно менш плавний скрол у SwiftUI — навіть після перенесення декодування зображень у фонові потоки. Кросплатформна обіцянка також перебільшена: «вивчи один раз, застосовуй будь-де» часто перетворюється на «вивчи один раз, вивчи вдруге, застосуй десь, зневаджуй усюди», адже знання з iOS рідко переносяться на верстку під Mac. «SwiftUI насправді не поганий. Він посередній. І це, на мою думку, набагато, набагато гірше», — підсумовує автор, додаючи, що досі віддає перевагу UIKit та AppKit.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.