Привет! На связи KTS и наш эксперт по iOS-разработке Александр.

10-го июня в 20:00 по Москве стартовала ежегодная конференция для разработчиков Apple WWDC 2024. Рассказываю в статье про основные новости с сессии мобильной разработки:

  • Интеграция искусственного интеллекта Apple Intelligence (AI) во всю экосистему.

  • В iOS 18 добавлено плавающее размещение иконок и автоматическое затемнение в темной теме, обновлен центр управления и приложение «Фото» (аналогично — и в iPadOS 18).

  • VisionOS 2 получил конвертацию фото в 3D и SharePlay, а сам Apple Vision Pro выходит в 8 новых странах позже этим летом.

  • AirPods Pro теперь распознают жесты, а Apple TV определяет актеров и музыку с помощью функции InSight.

  • В watchOS 11 внедрили приложение Vitals для мониторинга здоровья. macOS Sequoia поддерживает зеркалирование iPhone и ИИ в Safari.

https://x.com/felibe444/status/1800239640131047494

Оглавление

Меня особенно интересует, как сторонним разработчикам интегрироваться с этими новинками и какие улучшения Apple предлагает для упрощения их работы.

Apple Intelligence

Apple Intelligence (AI) — это персональная интеллектуальная система, которая приносит возможности генеративных нейронных сетей на устройства Apple. Она глубоко интегрирована в операционные системы компании и обеспечивает бесшовное взаимодействие со сторонними приложениями.

Apple Intelligence ориентирована на выполнение большинства вычислений непосредственно на устройстве пользователя, полагаясь на новую LLM от Apple — Foundation Model. В случае, если задачи требуют больших ресурсов, система задействует Private Cloud Compute — облачные серверы с под управлением новой операционной системы, название которой не раскрыли. Безопасность обеспечивается тем, что данные не сохраняются на сервере и не используются для обучения, исключается удаленное исполнение подключений, а также применяется Secure Enclave, аналогично iPhone и iPad.

Для интеграции в сторонние приложения доступны

  • Writing Tools: функции генерации, суммаризации и обработки текста. Эти инструменты работают с любым текстовым полем в стандартных UI‑фреймворках. Новый TextView delegate API позволит контролировать изменения текста.

  • Genmoji: генератор уникальных эмодзи. Поддержка включается через свойство supportsAdaptiveImageGlyph у TextView и работает поверх AttributedString (что логично, это не текст).

  • Image Playground API: API для создания изображений, доступное бесплатно. Этот инструмент позволит разработчикам легко создавать и интегрировать изображения в свои приложения.

Генерация изображения на SwiftUI
Генерация изображения на SwiftUI
  • App Intents значительно расширяют возможности интеграции Siri в сторонние приложения. Теперь Siri поддерживает сотни новых действий внутри приложений и может корректно реагировать, если пользователь запинается или ссылается на ранее упомянутый контекст в разговоре. Siri сможет управлять любыми функциями внутри приложения, например, нажимать кнопки на панели инструментов для открытия нового экрана, просто следуя описанию в коде, без необходимости дополнительной настройки. Она также понимает контекст, поэтому, если на экране упоминается контакт из вашей телефонной книги, вы можете попросить Siri позвонить ему, и она найдет этот контакт (например, «Позвони ему», если на экране написано «Сегодня день рождения дедушки»). Новый API Spotlight — App Entities — позволит Siri искать и получать доступ к данным, хранящимся в приложении, например, к подкастам в вашей библиотеке или записанным заметкам. Siri может использовать данные из всех приложений, будь то написание письма или создание презентации.

В iOS 18 Siri получила доступ ко многим доменам, и в будущем их будет еще больше.
В iOS 18 Siri получила доступ ко многим доменам, и в будущем их будет еще больше.

ML on Device

Системные фреймворки, обеспечивающие функции машинного обучения на устройстве, расширили свои возможности в области обработки языка, звука, речи и распознавания образов.

Если имеющихся функций недостаточно, существует возможность импортировать с помощью Core ML модели из различных источников, включая Stable Diffusion и Mistral.
Если имеющихся функций недостаточно, существует возможность импортировать с помощью Core ML модели из различных источников, включая Stable Diffusion и Mistral.

Vision framework

Возможности Vision.framework тяжело уместить на одном слайде
Возможности Vision.framework тяжело уместить на одном слайде

Code completion in Xcode

Возможности Xcode 16 прокачали с помощью генеративных моделей. Обучали на документации, примерах кода, справочных материалах, накопленных в Apple за десятилетия развития экосистемы.

Predictive code completion

Одним из ключевых нововведений стал Predictive code completion, натренированный улучшать Swift‑код (про Objective‑C ни слова). Он дообучается на символах конкретного проекта, использует комментарии к будущим функциям в качестве промтов и автоматически дополняет код на их основе. Важно отметить, что работает в оффлайн‑режиме и будет автоматически обновляться при выходе новых версий Swift и SDKs.

Swift Assist

Еще один инструмент, но работающий в облаке — Swift Assist — может «отвечать на ваши вопросы» и экспериментировать с новыми API внутри проектов. Он отлично подходит для создания прототипов, например, поможет быстро создать простое приложение с любимыми фильмами. При генерации кода учитывается контекст всего проекта. Кроме того, также планируется его автоматическое обновление при выпуске новых версий Swift и SDKs.

Xcode 16 и Swift Assist способны автоматически писать и рефакторить код.
Xcode 16 и Swift Assist способны автоматически писать и рефакторить код.

Код проектов не хранится на серверах Apple и не используется в качестве обучающих данных (тут напрашивается сравнение с GitHub Copilot не в пользу последнего).

Xcode 16

Xcode 16, помимо генеративных функций, получил ряд приятных улучшений

  • single view для стек‑трейса,

  • frame graph в Instruments для анализа производительности,

  • localisation каталог.

Swift 6

Проникновение языка Swift медленно, но верно расширяется. Через поддержку Language Server Protocol он интегрирован в Visual Studio Code, подерживается различными дистрибутивами Linux (в этом году добавили Debian и Fedora), улучшается поддержка на Windows.

Для развития и поддержки идеи open source запустили новое сообщество на GitHub —
The Swift Programming Language, куда перенесут поддержку ключевых библиотек вроде Foundation.

Также официально заявили о релизе шестой версии языка. Он улучшает модель работы с многопоточностью (compile‑time data race safety), добавляет access‑атрибуты для импортов, итерирование по pack‑параметрам, прокачивает noncopyable‑типы.

Swift Testing

Также вывели из беты новый кросс‑платформенный фреймворк для написания тестового кода — Swift Testing. Поддерживает параметризацию, параллельное выполнение, точную настройку test plans. Поддеживается Xcode и Visual Studio Code.

SwiftUI

Apple использовала SwiftUI для создания нового приложений Passwords, Image Playground, Photos и других. SwiftUI также широко используется на watchOS и VisionOS. Прокачали Preview, добавили настройку кнопок на Vision Pro, тюнинг внешнего вида панели инструментов на macOS.

SwiftData

SwiftData теперь поддерживает разные типы хранилищ, в том числе JSON.

iOS и iPadOS

Новый Controls API позволяет сторонним приложениям назначать элементы управления на экране блокировки. Так, разработчики могут сделать раздел своего приложения доступным пользователю без разблокировки устройства.

iOS‑приложения теперь поддерживают три режима: Светлый, Темный и Окрашенный (Tinted). Можно доавлять новые альтернативные версии в каталог иконок приложения.

iPadOS получил новую, переработанную панель вкладок для навигации по приложениям. Она размещается вверху экрана и автоматически расширяется для отображения дополнительной информации по бокам экрана при необходимости с использованием простого API.

watchOS 11

Новый Smart Stack на watchOS 11 строится на том же API, который уже используется для создания Live Activities, а интерактивные complications rиспользуют тот же код, который используется для создания виджетов из iOS. Они могут быть контекстно‑ориентированными в зависимости от времени суток, подключенных AirPods и других факторов.

Также добавили новый API для обработки жеста двойного нажатия на Apple Watch Series 9 и Ultra 2.

Портирование игр

Game Porting Toolkit 2 позволяет портировать игры с PC на macOS. Кроме того, разработчики могут переносить игры с Mac на iPhone и iPad. Он поддерживает трассировку лучей, улучшения API для моделей памяти и управления резидентностью шейдеров. После переноса кода в Xcode можно отлаживать код шейдеров HLSL.

Вместо выводов

Apple сильно ускоряет написание простого кода, добавляя поддержку генеративных моделей в Xcode. Большинство остальных изменений, скорее, эволюционные и также давно напрашивающиеся (вроде обновления тестового фреймворка). На неделе будут доступны десятки новых видео с подробностями новинок и улучшений. Оставайтесь на связи, мы обязательно вернемся с их разбором!


Подписывайтесь на наши каналы, чтобы всегда быть в курсе новых статей и видео:

И не забывайте про мой телеграмм канал ?

Комментарии (0)