Connect with us

Разработка

Первые впечатления от WWDC 2026: соответствует ожиданиям, но более прагматична

Моё первое впечатление от мероприятия этого года таково: оно соответствовало ожиданиям и было довольно прагматичным.

Опубликовано

/

     
     

Как и многие разработчики, в этом году меня больше интересовали улучшения стабильности и эффективности, и я намеренно снизил свои ожидания относительно «неожиданных новых функций». С таким настроем, после быстрого ознакомления с несколькими темами первого дня WWDC 2026, которые меня лично волнуют, моё первое впечатление от мероприятия этого года таково: оно соответствовало ожиданиям и было довольно прагматичным.

ИИ

Хотя Foundation Models был представлен в прошлом году, его возможности на тот момент были недостаточно привлекательными для многих разработчиков. Изменения этого года явно более практичны: API были улучшены, теперь поддерживается ввод изображений, разработчики могут выбирать между моделями на устройстве, частными облачными вычислениями или моделями сторонних серверов в зависимости от задачи, разработчики, отвечающие требованиям, могут бесплатно использовать Apple Foundation Models, работающие в Private Cloud Compute. В то же время система также получает более четкое понимание представления, лучшее понимание контекста приложения и возможность возвращать пользователей в приложения с помощью App Intents.

Эти улучшения значительно повышают практичность и привлекательность Foundation Models. Это уже не просто фреймворк, который «стоит попробовать»; он начинает обретать основу, необходимую для внедрения в реальные рабочие процессы разработки продуктов. Неудивительно, что в этом году, вероятно, больше разработчиков будут готовы экспериментировать с этой системой и постепенно внедрять её в качестве одной из основных возможностей своих приложений.

SwiftUI

Для меня самое большое изменение в SwiftUI связано с его всесторонней поддержкой приложений, основанных на документах. Он не только добавляет большое количество новых API, но и меняет ментальную модель в сторону «наблюдаемых объектов документа + асинхронных снепштов + выделенных читателей/писателей». Это явно лучше подходит для сложных приложений, работающих с документами, и также более тесно соответствует общей эволюции современного Swift в отношении наблюдения и параллельного выполнения.

На сессиях также упоминалось, что SwiftUI продолжает оптимизировать реализации, связанные с компоновкой и контейнерами, что приводит к заметному улучшению производительности в некоторых сценариях. Это улучшение, в котором разработчики остро нуждались. Однако SwiftUI по-прежнему не предоставляет возможности создания пользовательских ленивых контейнеров, что остается явным разочарованием. Переупорядочиваемые элементы и действия свайпа больше не ограничены определенными контейнерами. Это не просто расширение области их применения — это также отражает дальнейшую интеграцию базовой логики взаимодействия. Возможно, преимущества этой интеграции станут более очевидными в API следующего года.

@State теперь поддерживает ленивую инициализацию, улучшено выделение текста на iOS, а alert/confirmationDialog теперь поддерживают Binding<T?>. Все это — долгожданные улучшения, хотя и кажутся немного запоздалыми. AnyNavigationTransition появляется в интерфейсе, но публичной поддержки кастомных переходов по-прежнему нет. Пока разработчики могут выбирать только между системными переходами zoom и crossFade.

Новая структура DataDetection улучшает возможности распознавания содержимого Text, тулбары также получают больше контроля. Эти изменения также демонстрируют продолжающийся акцент Apple на использовании SwiftUI для создания приложений macOS. В целом, SwiftUI в этом году не полагается на какой-либо один выдающийся API для сюрприза. Вместо этого, благодаря ряду дополнений и интеграций, он приближается к повседневным потребностям сложных приложений.

SwiftData

По сравнению с @Query, получившим поддержку выборки разделов, и ResultsObserver, позволяющим отслеживать изменения результатов запроса вне представлений, меня больше интересует @Attribute(.codable). Он обеспечивает более четкое представление о назначении хранилища и дает разработчикам способ избежать попадания в «черный ящик» композиции.

Конечно, @Attribute(.codable) — это не панацея. Это скорее четко определенный лазейка, которую SwiftData предоставляет для непрозрачных типов Codable: подходит для хранения внешних типов, которые вы не можете смоделировать самостоятельно, но которые все же действительно необходимо сохранять. Цена заключается в том, что этот контент не может участвовать в обработке предикатов, сортировки или миграции SwiftData. Именно по этой причине его ценность заключается не в «большей мощности», а в «большей явности».

Однако SwiftData по-прежнему не обеспечивает облачную синхронизацию для общедоступных/совместно используемых данных, и я не видел более явных признаков улучшения производительности. Эти проблемы будут и дальше ограничивать его распространение. Для многих разработчиков SwiftData в этом году больше похож на заполнение ключевых пробелов, чем на значительный прорыв, способный коренным образом изменить доверие к нему.

Xcode

В течение последних шести месяцев мой рабочий процесс разработки в основном состоял из Codex App / Claude App + Xcode, при этом Xcode появлялся значительно реже, чем первые два. После краткого знакомства с Xcode 27 я ожидаю, что присутствие Xcode в моем рабочем процессе заметно увеличится. Я особенно жду изменений, которые могут внести встроенные в Xcode рабочие процессы с использованием ИИ в таких областях, как тонкая настройка пользовательского интерфейса, повышение производительности и валидация предварительных просмотров.

Device Hub, несомненно, стал большим сюрпризом. Он объединяет симуляторы, управление физическими устройствами, тестирование состояния системы и динамическую настройку размера в новый рабочий процесс. Его влияние на повседневный опыт разработки может быть более очевидным, чем влияние многих отдельных API. Тем не менее, приложения для iPhone теперь также поддерживают динамическую настройку размера, что создаст новые проблемы для разработчиков, особенно в плане организации данных и состояния. Адаптация к разным размерам — это задача, которую нельзя решить, просто полагаясь на динамические контейнеры компоновки. Во многих сценариях большие и малые размеры соответствуют совершенно разной логике навигации.

В этом году я, вероятно, не буду спешить писать статьи о новых API SwiftUI и SwiftData. Вместо того чтобы представлять новые интерфейсы по одному, я бы предпочел потратить некоторое время на систематическое изучение этих изменений и разбор лежащей в их основе неявной логики: как Apple реорганизует взаимосвязь между SwiftUI, SwiftData, Foundation Models и рабочим процессом ИИ в Xcode — и как эти изменения в конечном итоге повлияют на то, как мы создаем приложения.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: