WWDC 2017 с точки зрения мобильного разработчика

Ведущий iOS-разработчик «Яндекса» Роман Бусыгин о ключевых изменениях в iOS, macOS, watchOS и инструментах разработки.

c3653a4618d5e4.jpg

Ключевые изменения с точки зрения разработчика

Ключевые вещи были добавлены во все платформы и о них стоит рассказать отдельно.

Metal 2

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

Core ML

Apple представила фрэймворк Core ML, позволяющий эффективно реализовывать машинное обучение на устройстве, учитывая аппаратные возможности каждой из платформ: iOS, macOS, tvOS или watchOS. При помощи него в iOS реализовано компьютерное зрение (разработчикам доступен API камеры, определяющий лица и ориентиры, прямоугольники, текст, баркоды и слежение за объектами на видео) и обработка естественного текста в Siri.

ARKit

Поддержка дополненной реальности постепенно появляется у всех игроков на рынке. С релизом iOS 11 и ARKit дополненная реальность появится в кармане у всех владельцев современных iPhone и iPad. Любой разработчик сможет добавить в своё приложение дополненную реальность. Будет интересно наблюдать за применениями.

351253998acf26.jpg
Фото Романа Бусыгина

iOS

В iOS основной фокус был направлен на iPad. Apple хочет сделать из него Major Productivity Device. В чём это заключается? В iOS 11 появится поддержка drag&drop.

Для iPhone drag&drop будет работать в рамках одного приложения (например, можно будет перетащить элемент с одного экрана на другой), а на iPad — между приложениями. Теперь можно будет выстраивать сложные потоки, упрощая передачу данных от одного приложения к другому. Разработчикам приложений необходимо будет добавить поддержку drag&drop в своё приложение, автоматически она не появится.

Ещё одной заметной фичей станут большие заголовки à la Music.app. Вместе с ней появится и единый дизайн поисковых полей в приложении. Это опциональная фича, однако в приложениях с кастомной реализацией поисковых полей, придётся попотеть, чтобы аккуратно поддержать эти изменения.

Работа с файлами также была улучшена. В iOS 11 появится приложение Files, которое заменит приложение iCloud Drive. В этом приложении сподручно управлять файлами на облачных хранилищах, а также в приложениях, которые поддерживают новый API работы с файлами, который учёл все пожелания по улучшениям, накопившиеся за несколько лет.

watchOS

Apple продолжает расширять возможности платформы, делая её более привлекательной для разработчиков. Ключевыми хочется отметить следующие области:

  • Возможность считывания данных с Bluetooth-устройств (спортивное оборудование в спортзалах или медицинское в больнице или у себя дома) напрямую, минуя телефон. Это позволит оперативно обновлять данные на часах.​
  • Два новых режима работы в фоне для приложений: навигация и запись аудио.
  • Apple продолжает экспериментировать с взаимодействием людей с часами и в этом году инженеры сократили время, которое проходит между просмотрами циферблата до повторного запуска приложения. В watchOS 3 если ты пользовался приложением, потом опустил руку и поднял её через меньше 8 минут, то ты видел прошлое приложение. Сейчас этот интервал сократили до двух минут, однако давая разработчикам возможность в каких-то случаях вернуть восьмиминутный интервал.
  • Autorotate. Восхитительная в своей простоте и гениальности фича. Включив автоматический переворот интерфейса в приложении, разработчики дадут возможность людям показать соседу перед собой интерфейс приложения в их ориентации, а не вверх ногами.

macOS

В macOS появилась поддержка VRKit, позволяющая создавать VR-контент (видео и игры), который будет создаваться в Final Cut Pro X, SteamVR, Epic Unreal 4 Editor и Unity Editor.

tvOS

  • Поддержка тёмного интерфейса.
  • Увеличение подгружаемых по запросу ресурсов приложения до 4 ГБ, открывается больше возможностей для разработчиков игр.
  • Больше способов выполнить работу в фоне: либо по push-уведомлению, либо запустив фоновое скачивание большого файла. Приложениям проще будет поддерживать в актуальном состоянии кэш на Apple TV, а пользователям не нужно будет ждать, пока скачаются файлы — приставка сама это может сделать днём, пока вы на работе.

App Store

  • Постепенные релизы. При выкатке в App Store разработчик может раскатывать приложение постепенно. Это удобно в случае, если хочется аккуратно дозировать нагрузку на свои сервера.​
  • Новый дизайн App Store, в котором на первом месте находится вкладка «Сегодня». Она будет показывать что-то новенькое каждый день — пользователям будет интересно возвращаться, чтобы посмотреть рекомендации. Также в рамках этого редизайна отдельные вкладки получат игры и приложения, позволяя Apple более эффективно их предлагать пользователю. Переработаны будут и страницы приложений. Разработчики теперь смогут опубликовывать до трёх видеопревью приложений, добавлять новые поля (у приложений теперь будет заголовок и подзаголовок, а также промотексты). Приложения смогу продвигать свои встроенные покупки прямо в App Store, покупая их там, пользователь может установить приложение и активировать её сразу же после установки.
db9f365fb3dc27.jpg
Фото Романа Бусыгина

Что нового для разработчиков

Мне очень понравились изменения в Swift 4 и Xcode 9, Cocoa Touch и Foundation, а также новый App Store, позволяющий разработчикам приложений улучшить страницу своего приложения и продвигать встроенные покупки.

В этом году Apple сфокусировалась на технологиях и улучшениях. Благодаря этому, моя работа станет лучше во многих местах: Xcode 9 станет быстрее и надёжнее, в Swift 4 появилась встроенная поддержка кодирования/декодирования в JSON, а сами приложения, написанные на Swift 4 станут ещё быстрее и надёжнее благодаря оптимизациям, сделанным в этой версии языка.

Xcode

Текстовый редактор в Xcode переписали на Swift, сделав его надёжнее и быстрее. Что переписывание означает для разработчиков? Например, подсветка синтаксиса работает моментально, открытие и навигация по файлу происходит мгновенно, а сообщения об ошибках больше не перекрывают исходный код.

Помимо этого в Xcode появилась поддержка Markdown — популярного формата среди разработчиков. Также редактор научился подсвечивать блоки кода, что бесценно при изучении большого объёма кода.

Ещё одной важной фичей Xcode 9 стал рефакторинг кода на Swift, Objective-C, Objective-C++, C. Долгожданная фича. Рефакторинг позволяет переименовывать классы, переменные, а также создавать дробить методы на более мелкие.

Фичи, о которых стоит упомянуть одной строкой:

  • Новая система сборки, написанная на Swift.
  • Поддержка GitHub.
  • UI debugger стал показывать UIViewController.
  • Добавили больше проверок (одна из которых будет, main thread API checker и undefined behavior tracking).
  • Параллельный запуск тестов на разных устройствах и симуляторах, UI-тесты нескольких приложений.
  • Беспроводная отладка, несколько загруженных устройств для проверки приложений под iPad и iPhone.​

Swift 4

Swift также является инструментом для разработки, поэтому стоит его отметить отдельно:

  • Приложения, написанные на Swift 4, станут меньше в размерах.
  • Swift 4 получил встроенную поддержку кодирования, декодирования в или из JSON. До Swift 4 приходилось много писать много кода самому, либо использовать сторонние кодогенераторы. Сейчас этот код генерирует компилятор.
  • Возврат к удобной модели работы со строками, которая была реализована в Swift 2 и убрана из Swift 3. Вместе с этим рефакторингом строки стали лучше поддерживать Unicode, чтобы ваши любимые приложения корректно показывали все ваши emoji, а также ускорили их работу.
  • Проекты, в которых используется Swift и Objective-C (такие как «Яндекс.Музыка») будут собираться на 40% быстрее за счёт улучшений в Xcode 9 и его системы сборки.​

Apple обещает простую миграцию на Swift 4 и одновременную поддержку разных кодовых баз (3.2 и 4.0).

Swift Playgrounds

Приложение продолжает развиваться. Я обращаю на него внимание, потому что это удобный способ проверить какую-нибудь гипотезу прямо на iPad, без необходимости идти к компьютеру.

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

©  vc.ru