Какие обновления Apple показала разработчикам на WWDC 2019 и в каких продуктах их можно применить.Sign in with Apple: регистрация без подтверждения почты и виртуальные адреса для приложенийНа фоне скандалов с утечкой персональных данных Apple решила сделать ставку на приватности — как нового типа сервиса. По словам компании, Sign in with Apple станет наиболее безопасным способом авторизации в сторонних сервисах. Можно предположить, что в ближайшее время это станет ещё и основным способом идентификации в приложениях App Store. Уже сейчас компания рекомендует ставить кнопку первой в списке доступных опций. А в будущем якобы и вовсе обяжет разработчиков внедрять собственную кнопку во все iOS-приложения, требующие авторизацию.С Sign in with Apple процесс регистрации действительно упростился. Во-первых, компания рекомендует разработчикам не использовать подтверждение почты для верификации профиля — если пользователь авторизовывается через Face ID или Touch ID, он верифицирован по умолчанию. Таким образом можно избавиться от лишнего перехода в почтовую программу.Во-вторых, не нужно заполнять какие-либо поля при регистрации. Например, в сервисе аренды самокатов Bird, который уже тестирует кнопку авторизации Apple, процесс регистрации сократился до одного шага: после нажатия на Sign in with Apple приложение сразу авторизовывает пользователя через Face ID и открывает карту с доступными самокатами.По умолчанию Apple отдаёт только имя пользователя и его почту. Однако пользователь может скрыть свой email в окне регистрации — тогда Apple создаст виртуальный почтовый адрес у себя на сервере и будет пересылать поступающие на этот ящик письма пользователю.Отключить созданный почтовый адрес на случай, если приложение злоупотребляет доверием, пользователь может в системных настройках.Разработчик может запросить «настоящий» email у пользователя, если нужно, например, связать регистрацию с ранее созданным профилем. Но сделать это можно только отправив письмо с предложением на созданный виртуальный адрес. Его, кстати, можно легко определить по домену — виртуальные ящики создаются в зоне privaterelay.appleid.com. Авторизация Apple работает на Windows и Android. Сценарий аналогичен тому, как это реализовано в кнопках Facebook или Google — по клику на Sign in with Apple пользователя переадресовывает на страницу авторизации Apple ID, а после ввода данных возвращает обратно в приложение.CoreML: дообучение на устройстве, определение основных объектов на снимках и распознавание интонацийПриложение для тренировки нейронных сетей Create ML в новой версии получило простой интерфейс, для работы с которым не нужны навыки программирования. Например, чтобы создать модель для распознавания изображений, достаточно перетащить в приложение каталог с размеченными картинками (каждая категория должна находиться в соответствующей папке) и запустить процесс обучения.Ключевое нововведение во фреймворке для работы с технологиями машинного обучения CoreML — возможность дообучать модель на устройстве пользователя. Это помогает одновременно решить проблему нехватки данных и персонализировать работу алгоритма. Например, разработчики приложения для обучения игре на гитаре Fretello использовали камеру iPhone для распознавания положения руки на гитарном грифе, а также микрофон для распознавания проигрываемых звуков. Приложение понимает, верно ли пользователь зажал аккорд и правильно ли его сыграл. А с помощью обновлённого CoreML Fretello дополнительно обучает модель на допущенных пользователем ошибках и исходя из этого формирует для него персональные рекомендации.Что ещё появилось в Core ML:API для определения основного объекта на снимке — области фотографии, на которую пользователь обратит внимание в первую очередь. Алгоритм используется в обновлённом нативном приложении «Фото» в iOS 13, которое научилось обрезать снимки для отображения в ленте. И уже есть примеры использования в сторонних приложениях. Например, в сервисе для очистки городов от мусора Rubbish технология используется для распознавания объектов и составления рекомендаций по их утилизации.«Эмбединг» — алгоритм определяет контекст фразы и подбирает слова со схожим смыслом (русский язык пока не поддерживается). Аналогичный принцип используют рекомендательные системы при поиске похожих материалов — «Яндекс.Дзен» и соцсети. «Эмбединг» Core ML можно применить в подсказках в поисковых запросах.Распознавание интонации речи и звуки. На базе новой функции разработано приложение компании Lumen Digital для чтения детских сказок NoisyBook (пока недоступно в App Store) — оно распознаёт издаваемые человеком звуки и показывает соответствующую анимацию на экране. Распознавание текста на снимках и поиск по изображениям. Технология использовалась во встроенном приложении «Заметок» ещё на iOS 11, но теперь она доступна и в фреймворке Core ML. Сам процесс распознавания удалось заметно ускорить — по словам разработчиков, изображения распознаются в шесть раз быстрее по сравнению с Google Pixel.SwiftUI: быстрее, проще, но только для последних ОСSwiftUI — новый фреймворк для декларативного описания интерфейса в коде. Он сокращает время разработки приложения благодаря большому количеству готовых функций. Если раньше простой интерфейс со списком требовал написания сотен строчек кода, то со SwiftUI можно обойтись одним десятком.Для работы со SwiftUI в XCode появился новый режим редактирования кода — Editor And Canvas, который позволяет просматривать в прямом эфире результаты отработки кода. Причём превью также можно редактировать через контекстное меню: менять шрифты, текст, размеры элементов и прочее. Изменения также сразу отображаются в редакторе кода.Кроме того, симуляции можно запускать на подключённых устройствах Apple, в том числе iPhone, iPad, iPod Touch, Apple Watch и Apple TV, — появилась возможность сразу проверить, как приложение реагирует на жесты мультитач, работает с камерами и сенсорами.Приложение, написанное на SwiftUI, по умолчанию будет поддерживать тёмный режим, универсальный доступ, поддержку языков с письмом справа налево и локализацию. Кроме того, использование нового фреймворка увеличивает скорость работы приложения и уменьшает его размер.Впрочем, среди всех плюсов есть и главный минус — приложения SwiftUI работают только на последних версиях операционных систем Apple. Поэтому переход на новый фреймворк подразумевает отказ от поддержки пользователей со старыми операционными системами.Apple утверждает, что таких пользователей в экосистеме с каждым годом становится меньше, однако большинство разработчиков не будут рисковать и растянут переход на SwiftUI на пару лет — как раз, когда все успеют обновиться до iOS 13, macOS Catalina и так далее.В 2019 году Apple подготовила несколько обучающих уроков по использованию SwiftUI — с тестовыми заданиями и примерами проектов.iPad-приложения на macOS: своё ценообразование и галочка в XCodeПожалуй, самый важный анонс для будушего экосистемы Apple — приложения для iPad и Mac теперь могут иметь одинаковый код проекта и исходный код. На презентации показали, как просто перенести приложение для iPad на macOS — якобы достаточно включить галочку в настройках проекта в XCode. Это, конечно, не совсем так — в любом случае потребуется адаптация планшетного приложения к macOS, однако эта задача действительно займёт не так уж много времени. Разработчики, которые уже успели перенести приложения на macOS, рекомендуют закладывать один–два дня на адаптацию, чтобы настроить строку меню, проверить интерфейс на поведение при растягивании окна, адаптировать работу мышки и клавиатуры и так далее.Что примечательно: стоимость iOS-приложения не наследуется на созданное на его базе macOS-приложение — разработчик сам выбирает ценовую политику. Поэтому если пользователь уже приобрёл iOS-приложение, вполне возможно, что созданное на его основе macOS-приложение нужно будет покупать отдельно.ARKit 3: распознавание людей и взаимодействие с объектами дополненной реальностиARKit научился определять людей, которые находятся в дополненной реальности, захватывать и передавать виртуальным объектам их движения. Так пользователь может взаимодействовать с объектами AR-пространства.Появилась поддержка «зелёного экрана» (People Occlusion), когда алгоритм понимает, что человек находится перед виртуальным объектом, поэтому он не «перекрывает» пользователя.Что ещё появилось в ARKit 3:Фреймворк научился с помощью камеры распознавать и отслеживать одновременно до трёх лиц. В приложении Sesame Street разработчики применили это нововведение для того, чтобы добавлять маски с главными героями сразу для трёх пользователей, находящихся в одном кадре.ARKit может одновременно работать с фронтальной и основной камерами. Например, чтобы отслеживать реакцию пользователя на происходящее в дополненной реальности.Среда разработки RealityKit теперь поддерживает эффекты съёмки на камеру — размытие объекта во время движения и шум на изображении. Улучшилась работа с общими сценами — устройства, находящиеся в едином AR-пространстве, автоматически обмениваются информацией о расположении объектов. Для ARKit Apple разработала простой редактор дополненной реальности для iOS, iPadOS и Mac — Reality Composer. С его помощью можно создавать модели дополненной реальности, перемещать обычным перетаскиванием объекты, настраивать анимации и так далее.В демо-приложении, которое можно было протестировать на WWDC, на основе новых особенностей ARKit была реализована игра в боулинг. Двум игрокам нужно было при помощи iPad толкать виртуальный шар в едином пространстве, чтобы сбивать кегли, находящиеся за игроками. Приложение определяло, что перед шаром находится человек, поэтому не давало его передвинуть. Демо-приложение с игрой в боулинг, написанное на ARKit 3ARKit 3 оказался очень требовательным к ресурсам устройства, поэтому полноценно фреймворк будет поддерживаться только на процессорах A12 Bionic и новее. То есть речь идёт только об iPhone XS, XR, iPad Pro 2018 года, что заметно ограничивает распространение технологии.watchOS: API для трансляция потокового аудио и фоновая работа приложенийСамые заметные нововведения в watchOS 6 нацелены на модель часов с eSIM — то есть мало относятся к российскому рынку. Например, новый API для потокового воспроизведения звука, который даёт возможность проигрывать звук из сторонних медиаприложений напрямую на часах. Или отдельный App Store, позволяющий устанавливать приложения без iPhone.Впрочем, часть обновлений касается и часов без eSIM. Появилась расширенная поддержка CoreML — можно дообучать модель на основе данных о движениях пользователя. Разработчики Back Pain Relief таким образом определяют программу тренировок для каждого владельца Apple Watch.Другой метод — Extended Runtime API — позволяет продлить работу приложения в фоновом режиме, даже когда пользователь опустил руку с часами. Разработчики приложения Colgate Connect использовали этот метод, чтобы синхронизация с электрической зубной щёткой не останавливалась во время чистки зубов — в любой момент пользователь может посмотреть на часы и увидеть текущий статус, не запуская заново приложение. #wwdc2019 #apple #swift #arkit