Big recap · 8–12 июня 2026

WWDC26: всё, что нужно знать iOS-разработчику

Apple отгрузила iOS 27, Swift 6.4, переработанный SwiftUI, новый Core AI, обновлённые Foundation Models и Xcode 27 с собственными агентскими навыками. Ниже — лучшие фичи, примеры кода, разбор новых фреймворков, список сессий must-watch и ссылки на group labs. Плюс свежий дайджест из канала t.me/iosdev.

iOS 27Swift 6.4SwiftUICore AIXcode 27

Лучшие и самые интересные фичи

Если есть пять минут, а не пять дней — вот концентрат того, что реально меняет жизнь iOS-разработчика в этом году.

SwiftUI

Reorderable & swipe для любого контейнера

Drag-and-drop переупорядочивание и swipe actions больше не привилегия List — теперь работают в ScrollView, lazy-стеках и кастомных лэйаутах. Reorder доехал и до watchOS.

SwiftUI

Новый Document API

WritableDocument, снапшоты и запись на диск вне главного потока. Документные приложения наконец получили инфраструктуру уровня Pages/Xcode с first-class доступом к URL.

Swift 6.4

anyAppleOS + меньше boilerplate

Одно ключевое слово вместо простыни @available(macOS, iOS, watchOS…), async в defer, подавляемые предупреждения через @diagnose и куда более понятный type-checker.

Apple Intelligence

Core AI + vision в Foundation Models

On-device модель научилась «видеть» изображения, появился фреймворк Core AI для интеграции собственных моделей, а Private Cloud Compute — для тяжёлых запросов.

Xcode 27

Agent Skills от Apple

Новые официальные «навыки» (SwiftUI, модернизация UIKit, безопасность, C bounds safety и др.), которыми пользуется встроенный агент. Экспортируются через xcrun agent skills export.

Platform

Resizable iPhone-приложения

iPhone-приложения становятся resizable — это важно для iPhone Mirroring и запуска на iPad. В Live Previews появились ручки изменения размера прямо в Xcode.

Keynote · State of the Union

Что показали на сцене

Главный фокус кейноута — Apple Intelligence и новый Siri. Но под капотом куда больше того, что касается именно нас.

Кейноут 8 июня Apple посвятила в первую очередь обновлённому, более «умному» Siri, расширению Apple Intelligence по системным приложениям и защите детских аккаунтов. Siri стал разговорчивее и больше не передаёт запросы сторонним ИИ-провайдерам по умолчанию.

Системные фичи iOS 27, важные для прода

Контекст именования. С WWDC25 Apple перешла на «годовую» нумерацию (iOS 26). Поэтому версия этого года — iOS 27, рядом с ней Swift 6.4 и Xcode 27. Полный текст Platforms State of the Union доступен транскриптом (ссылка в разделе Group Labs).
Язык · Session 262

Swift 6.4 (и 6.3): меньше шаблона, больше контроля

Сквозная тема релиза — less boilerplate, fewer surprises, more control. Компилятор ловит больше ошибок конкурентности и объясняет их человеческим языком.

anyAppleOS — конец простыни доступности

Одно ключевое слово заменяет перечисление всех платформ:

Availability shorthand

↗ Session 262 · What's new in Swift
// Было:
extension Mission {
    @available(macOS 27, iOS 27, watchOS 27, tvOS 27, visionOS 27, *)
    func showStatus() { ... }

    #if os(macOS) || os(iOS) || os(watchOS) || os(tvOS) || os(visionOS)
    func makeLiveActivityWidget() -> some Widget { ... }
    #endif
}

// Стало:
extension Mission {
    @available(anyAppleOS 27, *)
    func showStatus() { ... }

    #if os(anyAppleOS)
    func makeLiveActivityWidget() -> some Widget { ... }
    #endif
}

@diagnose — управление предупреждениями по месту

Подавляемые и эскалируемые диагностики прямо на объявлении — без глобальных флагов компилятора:

↗ Session 262 · What's new in Swift
@diagnose(DeprecatedDeclaration, as: ignored, reason: "Flying with surplus hardware")
func makeApolloSoyuzMission() -> Mission { ... }

@diagnose(StrictMemorySafety, as: warning)
func uplinkCommand(from receiver: inout Receiver, to computer: inout Computer) { ... }

@diagnose(ErrorInFutureSwiftVersion, as: error)
func fetchPosition() -> (x: Double, y: Double, z: Double) {
    return self.rotation
}

async в defer и более умная конкурентность

Теперь в defer можно дожидаться асинхронной очистки. Параллельно компилятор стал диагностировать два паттерна, которые раньше «проскакивали»: перехват ошибок внутри Task и сохранение ссылки на task для последующего рандеву. Type-checker в большинстве кейсов, где раньше падал в fallback-ошибку, теперь либо компилирует, либо даёт actionable-подсказку.

Module selectors, @c и производительность

Появился синтаксис выбора модуля ::, атрибут @c для интеропа с Си и точные контроли инлайнинга и специализации:

↗ Session 262 · What's new in Swift
// Module selectors: однозначный выбор модуля при коллизии имён
import Rocket
import GiftShopToys

let rocket1 = SaturnV()          // неоднозначно: Rocket или GiftShopToys?
let rocket3 = Rocket::SaturnV()  // ровно тот, что нужен

// @C: безопасная обёртка для C через Span вместо pointer + count
@C
func getAverageLaunchWindowLength(_ windows: Span<LaunchWindow>) -> Double { ... }

// InlineArray — массив фиксированной длины на стеке
func histogram<Values>(of values: Values) -> [256 of Int]
    where Values: Sequence<UInt8> {
    var result = makeInts(randomized: false)   // [256 of Int]
    for value in values { result[Int(value)] += 1 }
    return result
}

// async прямо в defer
let landingTask = Task { try lander.fly(to: moon) }
defer { await orbiter.rendezvous(with: lander) }
try await orbiter.justHangOut(waitingFor: landingTask)
UI · Session 269

SwiftUI: контейнеры, документы и тулбары

Лэйаут ресайзится до 2× быстрее, состояние инициализируется лениво, а интеракции (reorder, swipe) больше не привязаны к List.

Reorderable-контейнеры (и наконец watchOS)

Переупорядочивание перетаскиванием на любом контейнере — два модификатора:

Drag & drop reorder · Session 271 (code-along)

↗ Session 269 · What's new in SwiftUI
List {
    ForEach(stickers) { sticker in
        StickerListItemView(sticker: sticker)
    }
    .reorderable()
}
.reorderContainer(for: Sticker.self) { difference in
    difference.apply(to: &stickers)
}

// Тот же приём работает и в LazyVGrid, и в кастомных контейнерах

Swipe actions вне List

Свайпы переехали в ScrollView и lazy-стеки — нужен лишь .swipeActionsContainer() на родителе:

↗ Session 269 · What's new in SwiftUI
ScrollView {
    LazyVStack {
        ForEach(stickers) { sticker in
            StickerListItemView(sticker: sticker)
                .swipeActions {
                    DeleteButton(sticker: sticker)
                }
        }
    }
}
.swipeActionsContainer()

Prominent tab role

Выделенные вкладки (корзина, «Создать») — как в Apple Music, без хаков:

↗ Session 269 · What's new in SwiftUI
TabView {
    Tab { EventsTab() }
    Tab { HolidaysTab() }
    Tab { FunTab() }

    Tab(role: .prominent) {
        CartTab()
    }
}

Новый Document API

Модель отделена от логики записи. WritableDocument + snapshot() снимают состояние, а DocumentWriter.write() — nonisolated async, то есть I/O уходит с главного потока. Можно сравнивать снапшоты и писать только diff.

↗ Session 269 · What's new in SwiftUI
@Observable
final class StickerDocument: WritableDocument {
    static let writableContentTypes: [UTType] = [.stickerDocument, .png]

    @MainActor
    func snapshot(contentType: UTType) async throws -> sending PageSnapshot {
        makeSnapshot()
    }

    func writer(configuration: sending WriteConfiguration) -> sending Writer {
        Writer(contentType: configuration.contentType)
    }
}

struct Writer<Snapshot>: DocumentWriter {
    typealias Snapshot = PageSnapshot
    let contentType: UTType

    nonisolated func write(
        content: sending PageSnapshot, to destination: URL,
        previous: sending PageSnapshot?, progress: consuming Subprogress
    ) async throws {
        // запись вне главного потока; можно сравнить с previous и писать только diff
    }
}

Тулбары на ресайзящихся окнах

Четыре новых API против тесноты на компактных экранах:

↗ Session 269 · What's new in SwiftUI
StickerPageView()
    .toolbar {
        ToolbarItemGroup {
            UndoButton()
            RedoButton()
        }
        .visibilityPriority(.high)

        ToolbarOverflowMenu {
            ChoosePhotoButton()
            ExportAsImageButton()
            ClearAllStickersButton()
        }

        ToolbarItem(placement: .topBarPinnedTrailing) {
            ShareButton()
        }
    }

Ещё по мелочи, но приятно

↗ Session 269 · What's new in SwiftUI
@Observable class StickerStore {
    static let imageSession: URLSession = {
        let config = URLSessionConfiguration.default
        config.urlCache = URLCache(
            memoryCapacity: 64 * 1024 * 1024,
            diskCapacity: 256 * 1024 * 1024)
        return URLSession(configuration: config)
    }()
}

ForEach(pets) { pet in
    AsyncImage(request: URLRequest(
        url: pet.imageURL,
        cachePolicy: .returnCacheDataElseLoad))
}
.asyncImageURLSession(StickerStore.imageSession)

// @State теперь макрос: @Observable-объект инициализируется лениво,
// ровно один раз за время жизни View (бэкпорт на iOS 17 / macOS 14)
struct StickerStoreView: View {
    @State private var store = StickerStore()
    var body: some View { ... }
}

// item-binding вместо отдельного isPresented
.confirmationDialog("Delete?", item: $stickerToDelete) { sticker in
    DeleteStickerButton(sticker)
}
Apple Intelligence · Sessions 241–242, 324–326

Foundation Models & новый Core AI

On-device модель поумнела, научилась «видеть» и лучше вызывает инструменты. А Core AI открывает дверь вашим собственным моделям.

Foundation Models: guided generation как раньше, но мощнее

API остался единым: структурированный вывод через @Generable и вызов Tool работают одинаково для разных моделей. Главное — обновлённая on-device модель стала умнее в логике и tool calling.

Модель, контекст и учёт токенов

↗ Session 241 · Foundation Models
let model = SystemLanguageModel.default
print(model.contextSize)   // напр. 8192

let count = try await model.tokenCount(
    for: "What are the Japanese characters for origami?")

// Управление «глубиной размышления» и инспекция usage
let session = LanguageModelSession()
let response = try await session.respond(
    to: "Recommend a craft that doesn't require scissors.",
    contextOptions: ContextOptions(reasoningLevel: .light)
)
print(response.usage.input.totalTokenCount)
print(response.usage.input.cachedTokenCount)
print(response.usage.output.reasoningTokenCount)

Главная новинка iOS 27 — vision на устройстве

On-device модель получила vision-возможности: теперь в промпт можно передавать изображения. Это открывает целые классы приложений без облака.

↗ Session 241 · Foundation Models
// Новое в iOS 27: изображение прямо в промпте через Attachment
let response = try await session.respond {
    "What animal is this?"
    Attachment(UIImage(named: "mystery-pet")!)
}

Tools и динамические профили

Инструмент описывается типом Tool с вложенным @Generable-аргументом, а DynamicProfile позволяет на лету менять набор инструкций, инструментов и даже саму модель (например, уводить тяжёлые задачи на Private Cloud Compute):

↗ Session 241 · Foundation Models
struct SwitchModeTool: Tool {
    let description = "Switch to a different mode."
    let states: AppStates

    @Generable
    struct Arguments {
        let mode: Mode
    }

    func call(arguments: Arguments) async throws -> some PromptRepresentable {
        states.mode = arguments.mode
        return "Successfully switched to \(arguments.mode)."
    }
}

struct CraftProfile: LanguageModelSession.DynamicProfile {
    let states: CraftProjectStates

    var body: some DynamicProfile {
        switch states.mode {
        case .craftAnalysis:
            Profile {
                Instructions { ... }
                SwitchModeTool(states: states)
            }
        case .brainstorm:
            Profile { Instructions { ... } }
                .model(states.privateCloudCompute)
                .reasoningLevel(.deep)
        }
    }
}

Core AI — ваши модели как часть платформы

Frameworks

Новые фреймворки iOS 27

Десяток новых системных фреймворков. Коротко — что это и зачем смотреть.

AI

Core AI

Запуск и интеграция собственных on-device ML-моделей на Apple silicon.

documentation/coreai →
AI

Media Intelligence

Анализ фото и видео на устройстве: FaceGroupAnalyzer группирует лица, VideoAnalyzer находит хайлайты и ключевые кадры.

documentation/mediaintelligence →
Intents

App Intents Testing

Тестирование интентов, сущностей и запросов, а также интеграции со Spotlight и Siri.

documentation/appintentstesting →
Intents

Suggested Actions

Системные подсказки действий, которые приложение может предлагать пользователю.

documentation/suggestedactions →
Media

AVSystemRouting

Отправка медиа из приложения на ТВ, колонки и другие устройства через media device extension.

documentation/avsystemrouting →
Media

Now Playing

Публикация контролов воспроизведения на Lock Screen, Control Center, Apple Watch и CarPlay.

documentation/nowplaying →
Media

Media Device

Сделать плеер-железо доступным системе: стрим из любого приложения через media device picker (как AirPlay).

documentation/mediadevice →
RealityKit

ComputeGraph

Нодовый GPU-фреймворк для симуляций частиц и compute-графов в RealityKit.

documentation/computegraph →
Reliability

CrashReportExtension

App-расширение по протоколу CrashReporterExtension для инспекции упавших процессов и создания крэш-репортов.

documentation/crashreportextension →
Reliability

StateReporting

Сообщайте системе состояние приложения через именованные домены и структурированные переходы; интеграция с MetricKit и Instruments.

documentation/statereporting →
Откуда список. Перечень новых фреймворков — из дайджеста канала iOS Dev (t.me/iosdev/2014) и подтверждается секцией «What's new» на developer.apple.com. Каждая карточка ведёт прямо на документацию фреймворка.
Tooling · Sessions 258–261

Xcode 27 и Agent Skills

Apple встроила в Xcode собственного агента и снабдила его «навыками», написанными авторами фреймворков.

Watchlist

Сессии, которые точно стоит посмотреть

100+ видеосессий за 8–12 июня. Вот выжимка для iOS-разработчика — кликабельные ссылки на developer.apple.com.

Язык и SwiftUI

Apple Intelligence · Foundation Models · Core AI

App Intents · Siri

Xcode · Data · Widgets · Тестирование

Q&A

Group Labs и транскрипты

Group labs у Apple выходят видео с панелями инженеров и дизайнеров; полные транскрипты доступны на странице каждого видео. Ниже — то, что искать.

Group LabЧто обсуждают
SwiftUIreorderable/swipe в любом контейнере, новый Document API, тулбары на ресайзящихся окнах, кэш AsyncImage, @State-макрос.
SwiftanyAppleOS, диагностика конкурентности, async в defer, module selectors, InlineArray, интероп с C через @C/Span.
SwiftUI для новичковС чего начать в SwiftUI: View и состояние, навигация и лэйаут. Базовые вопросы приветствуются.
Coding Intelligence, ML & AIFoundation Models (vision на устройстве, tool calling, reasoningLevel), Core AI, Private Cloud Compute, агентский Xcode.
Power & PerformanceНовый планировщик CPU, профилирование app responsiveness в Instruments, ускоренный лэйаут, ленивое состояние.
Privacy & SecurityРазрешения, защита данных, новые требования и API этого года, практики аудита.
visionOSНовинки visionOS и Spatial Preview, расширение Mac-приложений в пространство вокруг пользователя.
Accessibility TechnologiesVoiceOver, Dynamic Type, новые accessibility-API и инклюзивность по умолчанию.
Camera & PhotoЗахват и обработка, новые возможности AVFoundation и PhotoKit.
SwiftData скороНовинки SwiftData, миграции схемы, интеграция со SwiftUI.
Xcode Tips & Tricks скороAgent Skills, Device Hub, Live Previews с ресайзом, отладка и автоматизация сборок.
Apple Intelligence скороСистемные возможности, интеграция через App Intents, приватность данных.
Machine Learning & AI скороCore ML, Core AI, on-device модели и инструменты их подготовки.
watchOS скороНовинки watchOS, в том числе reorder в SwiftUI впервые на часах.
App Store Connect скороДистрибуция, кастомные баннеры, аналитика и управление релизами.
Icon Composer скороМногослойные и Liquid Glass иконки для всех платформ.
Safari & Web скороНовинки Safari, WebKit и веб-стандартов этого года.
Транскрипты и гайды
РесурсЧто внутри
Транскрипт SOTUПолный текст Platforms State of the Union — вкладка Transcript с таймкодами на странице видео.
SwiftUI guideГид Apple: сессии, документация и сэмплы по новинкам SwiftUI в одном месте.
iOS guideЧто нового в iOS 27 для разработчика и куда смотреть в первую очередь.
Как достать транскрипт сессии. На странице любого видео developer.apple.com/videos/play/wwdc2026/<номер>/ есть вкладка Transcript с полным текстом и таймкодами — её удобно копировать в заметки и индексировать.
✈︎ из канала

Свежее из t.me/iosdev

Пока официальные видео заливаются на Apple Developer, в канале iOS Dev уже разобраны самые сочные детали WWDC26. Дайджест последних постов:

#202009:28

Drag & Drop API в SwiftUI

Модификатор reorderable() для переупорядочивания внутри контейнеров и между приложениями. С примером карточной игры. Доступно с iOS 27.

Читать в Telegram →
#201906:27

Derived Data в 2 клика

Топ-фича нового Xcode: очистка Derived Data буквально в два клика прямо из IDE.

Читать в Telegram →
#201606:35

Лечим симулятор в Device Hub

Симулятор не стартует? killall -9 CoreDeviceService в терминале — и всё снова работает.

Читать в Telegram →
#201513:33

Кастомный TabBar через .prominent

Новая роль вкладки .prominent позволяет повторить дизайн Apple Music без костылей.

Читать в Telegram →
#201412:21

10 новых фреймворков iOS 27

Полный список: App Intents Testing, AVSystemRouting, ComputeGraph, Core AI, CrashReportExtension, Media Device, Media Intelligence, Now Playing, StateReporting, Suggested Actions.

Читать в Telegram →
#201310:36

Анимация таймера в Dynamic Island

Демонстрация анимированного таймера в Dynamic Island на iOS 27.

Читать в Telegram →
#201006:54

AsyncImage с HTTP-кэшем

Теперь поддерживает кэширование по HTTP с кастомным request и cache policy. iOS 27.

Читать в Telegram →
#200906:46

@State теперь макрос

Свойство-обёртка @State переехало с dynamic property на макрос. Бэкпортировано на iOS 17.

Читать в Telegram →
#200806:01

Кастомные баннеры App Store

Кастомные header-баннеры в App Store открыли всем разработчикам — поддержка image и video.

Читать в Telegram →
#200721:33

Кастомизация Xcode 27

Настройка тулбара за минуту и переключение темы во всей IDE.

Читать в Telegram →
#200621:25

Swift 6.4: лучше type-checker

Понятнее сообщения об ошибках при таймауте проверки типов — меньше загадочных fallback-ошибок.

Читать в Telegram →
#200521:16

SOTU: swipe actions для всего

На Platforms State of the Union показали кастомные swipe actions с произвольным удалением в любом контейнере.

Читать в Telegram →
Подписаться на iOS Dev
Sources

Источники

Материал собран из официальных страниц Apple Developer и публикаций по итогам WWDC26.

ИсточникСсылка
Apple — Platforms State of the Uniondeveloper.apple.com/videos/play/wwdc2026/102/
Apple — What's new for developersdeveloper.apple.com/whats-new/
Swift with Majid — What's new in SwiftUIswiftwithmajid.com/2026/06/08/…
DEV — What's New in Swiftdev.to/arshtechpro/wwdc-2026-whats-new-in-swift
DEV — What's New in SwiftUIdev.to/arshtechpro/wwdc26-whats-new-in-swiftui…
MacRumors — AI & Developer Tool Updatesmacrumors.com/2026/06/09/…
Engadget — Everything announced at the keynoteengadget.com/…/wwdc-2026-keynote
TechCrunch — WWDC 2026: everything announcedtechcrunch.com/2026/06/09/…
Telegram — канал iOS Dev (дайджест WWDC26)t.me/iosdev

Статья подготовлена по итогам WWDC26 (8–12 июня 2026). Названия API и сигнатуры могут уточняться по мере выхода финальной документации SDK — сверяйтесь с developer.apple.com. Примеры кода иллюстративны.