Что, как я думаю, должно появиться в Apple в ближайшем будущем

WWDC 2020 почти наступил, и это первое онлайн-мероприятие Apple для разработчиков, учитывая текущую ситуацию со здоровьем. Нам наверняка будет не хватать аплодисментов живой аудитории, и будет интересно посмотреть, как Apple воссоздает этот опыт в своих выступлениях и видеороликах.

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

WWDC 2019, бесспорно, стало крупнейшим событием Apple за последние годы, поскольку он представил революционные изменения: темный режим на уровне системы; новый iPadOS 13 с поддержкой многооконной реализации; Project Catalyst, позволяющий переносить приложения iOS на macOS одним щелчком мыши; или SwiftUI, новый блестящий фреймворк декларативного пользовательского интерфейса от Apple.

Это гарантирует, что планка для «Dub Dub» 2020 будет высокой, и на общем уровне можно ожидать улучшений и улучшений в экосистеме разработчиков, а не так много значительных новых функций.

Как разработчик macOS, tvOS и iPadOS, я очень рад, и у меня есть список желаемых улучшений и функций, которые я хотел бы увидеть на конференции Apple.

CoreML, CreateML и Vision Framework были подкреплены огромными обновлениями в прошлом году, в то время как фреймворки RealityKit, SwiftUI и Combine дебютировали и привлекли внимание. Я ожидал, что эти шесть фреймворков и на этот раз будут ключевыми игроками, а другие будут вращаться вокруг них.

CoreML: поддержка большего количества слоев

CoreML представил в WWDC 19 обучение передачи на устройстве, которое позволяет нам переобучать модели на наших устройствах iOS. В настоящее время он поддерживает только классификаторы k-ближайшего соседа и CNN. Можно было бы ожидать, что Apple расширит набор уровней, включив в него слои рекуррентной нейронной сети (RNN), такие как LSTM; предоставление большего количества встроенных оптимизаторов (в настоящее время есть Adam и SGD) и возможность создания пользовательских функций потерь.

Возможность обучать модели RNN должна помочь разработчикам легко создавать интересные мобильные приложения для машинного обучения, такие как прогнозы цен на акции (правда, только в образовательных / развлекательных целях - не используйте их для советов по инвестициям).

CreateML: обучение пользовательским моделям сегментации изображений и многое другое

В прошлый раз CreateML наконец-то получил отдельное приложение за пределами Playgrounds. Теперь он позволяет разработчикам, не занимающимся машинным обучением, быстро обучать модели с помощью потрясающего интерфейса с перетаскиванием, который может похвастаться встроенными обучающими программами для классификаторов изображений, систем обнаружения объектов и рекомендаций, среди многих других.

Расширение возможностей обучения за счет сегментации изображения и оценки позы - в верхней части моего списка желаний. Наличие встроенного инструмента аннотации, который, возможно, позволяет вам выбирать объекты из видео, значительно упростит обнаружение обучающих объектов и сделает его возможным полностью самостоятельно - сегодня вам нужно добавить свой annotation.json файл извне.

Более мощная концепция видения

Vision - это платформа Apple для глубокого обучения, которая обеспечивает готовую реализацию сложных алгоритмов компьютерного зрения. Это также помогает управлять моделями CoreML. WWDC 19 представила новые классификаторы домашних животных, встроенный инструмент классификации изображений, вычисление сходства изображений и поддержку технологии лиц с запросами качества захвата.

В этом году Apple может еще больше расширить границы возможностей компьютерного зрения:

  • Расширение качества захвата лиц до более общего запроса качества изображения Vision
  • Внедрение отслеживания движения и предоставление встроенной возможности определять расстояние до объектов от камеры, чтобы открыть возможности для более умных приложений.
  • Регистрация изображений и встроенный запрос сегментации изображений позволят улучшить обработку цифровых изображений, что может быть полезно для случаев использования в медицине.

Вот некоторые из вещей, которые я хотел бы видеть в обновлениях концепции Vision в этом году.

Огромные обновления в RealityKit и Reality Composer

С появлением RealityKit, 3D-движка, Apple перезагрузила свою стратегию дополненной реальности (AR), которая ранее использовала SceneKit.

Но он страдал от недостатка документации. Apple наверняка постарается поработать над этим, чтобы привлечь разработчиков к поезду с дополненной реальностью. Хорошим началом должно стать новое приложение AR с iOS 14, возможно, для демонстрации окклюзии объекта. Готовая к использованию поддержка отслеживания жестов рук поможет открыть дверь для захватывающих приложений AR.

Reality Composer - это редактор AR-сцены, который позволяет создавать, импортировать и настраивать 3D-контент. Должна помочь большая гибкость в смешивании форм с поворотами и способ импорта файлов GLTF и других типов моделей в USDZ.

RealityKit будет играть огромную роль в ближайшие годы, учитывая большие стремления Apple к очкам AR. В этом году мы можем ожидать огромных обновлений, и это может быть просто занавес для SceneKit в AR.

Больше издателей Combine

Combine, собственный фреймворк декларативного-реактивного программирования Apple, был, пожалуй, самым совершенным фреймворком, дебютировавшим в прошлом году. Несколько типов Foundation могут через него раскрыть функциональные возможности своих издателей.

В этом году Apple может представить больше встроенных издателей для MapKit, PencilKit, CoreLocation и CoreML и предоставить новые операторы слияния.

PencilKit на основе машинного обучения

Фреймворк PencilKit также дебютировал в прошлом году, но получил довольно сдержанный прием, поскольку другие привлекли внимание. В настоящее время он позволяет интегрировать только инструменты холста и рукописного ввода.

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

SwiftUI снова может стать хит-парадом

В прошлый раз SwiftUI вызвал бурю, и этот год, возможно, не станет исключением. Фреймворк, управляемый состоянием, все еще немного грубоват, и отсутствие хорошей документации в сочетании с отсутствующими функциями UIKit уже возлагает большие надежды на SwiftUI 2.0. Неудивительно, что эта функция будет самой обсуждаемой во время и после недели WWDC 2020.

Вот мой список желаний SwiftUI и улучшений, которые я хотел бы увидеть.

Представления коллекций в SwiftUI

Представления коллекций получили интересное обновление с новыми композиционными макетами, но они полностью отсутствовали в SwiftUI. Декларативный характер композиционных макетов должен в этом году привнести в SwiftUI некую коллекцию. При этом разработчики могут создавать сложные пользовательские интерфейсы на основе сетки.

Принесите недостающие просмотры пользовательского интерфейса

В первой версии SwiftUI отсутствовали индикаторы активности, панели поиска, многострочные текстовые представления и элементы управления обновлением. Нам пришлось использовать либо протокол UIViewRepresentable и совместимость UIKit, либо использовать GeometryReader и формы (для индикатора выполнения) для создания эквивалентных представлений оболочки SwiftUI.

Улучшения в представлениях вкладок и навигации

Хотя основной вид вкладок и вид навигации, похоже, работают, были некоторые серьезные проблемы. Например, представление вкладок SwiftUI было причиной беспокойства при переключении вкладок. Ни прокрутка, ни положение навигации не сохраняются, и вам придется использовать UITabBarController.

В области навигации самой большой проблемой была обработка окон назначения в NavigationLinks - они были созданы до того, как вы нажали на ссылку навигации. Мы ожидаем последовательной отложенной загрузки целевых представлений (Apple исправила это в Xcode 11.4.1, но это все еще несовместимо).

Мы ожидаем, что Apple исправит эти проблемы и, возможно, предложит более эффективные средства навигации для SwiftUI.

Текущая позиция прокрутки

Возможность доступа к текущей позиции прокрутки в SwiftUI отсутствует. Мы можем ожидать, что Apple представит свойство привязки для смещения позиции.

Более легкая интеграция с другими фреймворками

Для просмотра WKWebView, MapKit, PencilKit, ARKit и ShareSheet в настоящее время требуется UIViewRepresentable. Лучшая совместимость со SwiftUI ускорит рабочий процесс и сократит шаблонный код.

Восстановить CoreData

Подобно тому, как SwiftUI изменил способ создания пользовательских интерфейсов, пора Apple представить что-то вроде SwiftData, созданного только на Swift, а не на Objective-C.

Раскадровки SwiftUI

В то время как SwiftUI представляет предварительный просмотр холста в реальном времени, наличие представления на уровне приложения, которое показывает, как связаны различные представления SwiftUI - например, раскадровки - было бы хорошим дополнением и помогло бы разработчикам использовать SwiftUI в производстве.

Заключительные мысли

Хотя это и составляет мой основной список желаний, иметь Xcode для iPad было бы мечтой, учитывая, что в прошлый раз мы представили игровые площадки.

Также нельзя исключать возможности визуальной po-подобной отладки TestFlight для macOS и Xcode.

Можно ожидать значительных изменений в AVFoundation API (учитывая, что теперь у нас тройные камеры или больше), а также в Location и Bluetooth API.

Как и в прошлый раз, SwiftUI и RealityKit будут лидерами на WWDC 20, если Apple снова не удивит нас.

Спасибо за прочтение. Я с нетерпением жду WWDC 2020 и далее!