Chat with us, powered by LiveChat

Узнаем, что нового в iOS 13

что нового ios 13 2019

В мае на конференции разработчиков Apple WWDC 2019 было анонсировано очередное обновление операционной системы iOS. Среди нововведений в iOS 13 появление ночной темы, авторизация через Apple ID и обновление голосового помощника Siri. Все это станет доступным для пользователей в сентябре 2019.

Мы расспросили магоровских разработчиков: какие отличия они выделили для себя в новой операционке и есть ли что-то достойное внимания? 

iOS 13 глазами разработчика

С начала лета в тестовом режиме платформа доступна для программистов. iOS разработчик Магоры, Жангали Пернебаев, делится с нами своими наблюдениями.

Перспективный SwiftUI

swift ui в новой версии ос

SwiftUI выглядит многообещающе:

  • Фреймворк SwiftUI невероятно быстрый, и есть ощущение, что опережает UIKit;
  • Программирование в Swift UI требует написания меньшего количества строк кода. Верстать стало легче.  
  • Можно задекларировать контент и макет для любого состояния экрана (view). SwiftUI отслеживает, когда это состояние меняется, и сам запускает рендеринг. 

Так выглядит код на SwiftUI. Он отображает список из следующих наборов элементов: иконку, название, значок «избранное» и стрелку вправо. 

Вот сколько места занимал код на UKit:

код на ui

Даже если использовать Interface Builder, чтобы создать UITableViewCell, то все равно реализация задачи занимает больше времени на UIKit по сравнению с SwiftUI.

код swift ui

Плюсы SwiftUI

  • Универсальные компоненты. В iOS13 создаваемые пользовательские компоненты можно задействовать сразу в нескольких приложениях.
  • Упрощенная анимация. Создавать плавную анимацию теперь так же просто, как и добавлять отдельные слайды. SwiftUI автоматически вычисляет и анимирует переходы состояний, когда это необходимо.
упрощенная анимация
  • Интегрированный режим просмотра. Режим просмотра (Live Preview) позволяет вам увидеть приложение в режиме пользователя, как если бы оно работало в симуляторе.
интегрированный режим просмотра

Кроме того, SwiftUI легко взаимодействует с существующими фреймворками пользовательского интерфейса на всех платформах Apple.

  • Например, вы можете использовать возможности режима просмотра SwiftUI views внутри UIKit views and view controllers и наоборот.

Режим одновременной съемки

C помощью AVCaptureMultiCamSession в iOS 13 добавляется возможность одновременной записи видео с фронтальной и основной камер в один видеофайл.

  • Эта задача стояла перед нашей командой, когда для сервиса страховой компании мы писали данные видеорегистраторов. Наш клиент хотел сформировать один файл с использованием двух камер одновременно. Теперь для разработчиков эта задача упрощена. 

Вход в систему с помощью Apple ID

Если вы когда-либо использовали вход в приложения с помощью Google или Facebook, то понимаете, насколько это удобно. Apple также представила свою технологию единого входа SSO с использованием Apple ID.

зайти с apple id
  • Может быть использована для сайтов и приложений, которые запрашивают ваш адрес электронной почты. Apple сгенерирует временный адрес электронной почты для защиты вашей приватности. Затем ящик перешлет важные сообщения от сторонних служб на вашу обычную почту и удалится.
  • Apple не отслеживает активность пользователей. В этом он выгодно отличается от Facebook и Google, которые активно собирают данные в рекламных целях.
  • Чтобы использовать Apple ID, не нужно интегрировать внешние библиотеки или SDK, как у Google и Facebook. Это экономит память приложения. Кроме того, для интеграции разработчик использует кнопку “вход в систему с Apple”. Не нужно рисовать свою собственную форму для авторизации.

В нативной разработке при использовании сторонних сервисов для авторизации (например, Google или Facebook), теперь обязательным будет использование Sign in with Apple. Добавляется еще одна кнопка в интерфейсе пользователя.

Вот иллюстрация добавления входа с помощью кнопки Sign in with Apple:

интеграция кнопки sign in with apple

SF символы

sf символы

SF Symbols — это набор встроенных символов для интеграции с системным шрифтом Apple San Francisco. Новые возможности:

  • без дополнительной загрузки внешних библиотек в распоряжении дизайнеров более 1 500 встроенных символов;
  • доступны в нескольких размерах;
  • можно использовать в iOS 13, watchOS 6 и tvOS 13;
  • каждый символ кастомизируется, так что вы можете настроить его масштаб и начертание. Например, вот как выглядит символ gamecontroller:
gamecontroller
изменение начертания gamecontroller

Фреймворк Vision

В iOS 13 Apple обновила фреймворк компьютерного зрения Vision, добавив туда OCR (Оптическое распознавание символов). Теперь возможно извлекать текстовую информацию из изображений.

  • Можно отказаться от интеграции внешних фреймворков, таких как Tesseract и SwiftOCR и забыть про традиционно возникающие с каждым апдейтом конфликты интеграции, дополнительные тесты и необходимость регулярных обновлений. 

MetricKit

Фреймворк MetricKit в iOS 13 позволяет агрегировать и анализировать отчеты по каждому устройству по показателям мощности и производительности.

MetricKit анализирует такие показатели, как среднюю яркость пикселей, качество приема сотовой сети и продолжительность использования OSSignpost в приложении.

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

  • Уменьшить время запуска приложения и вероятность того, что таймер iOS watchdog самостоятельно завершит приложение.
  • Снизить объем используемой памяти, чтобы iOS не освободил память вашего приложения в фоновом режиме.
  • Ускорить время загрузки и выхода из спящего режима для улучшения восприятия пользователями вашего приложения.
  • Снизить энергопотребление приложения. 

Еще больше деталей о MetricKit и других новинках:

Обработка асинхронных событий

Отличная новость для тех, кто любит реактивное программирование.

  • Фреймворк Combine — альтернатива сторонним асинхронным платформам обработки событий, например, RxSwift и ReactiveSwift.

Этот фреймворк, как и любой другой реактивный фреймворк, ориентирован на управление потоками данных и распространением изменений.

Combine дает возможность выражать статические и динамические потоки данных и позволяет нижележащей модели исполнения автоматически распространять изменения благодаря потоку данных.

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

В целом, Apple включил в iOS 13 много полезных функций, которые делают процесс разработки более легким и приятным. Мы с командой ждем официального релиза, чтобы в полную силу задействовать новые возможности платформы.

Если у вас есть вопросы, буду рад ответить, пишите на почту или заполняйте форму на сайте.