iOS background modes. Применяем и укрощаем на практике

RU / День 3 / 17:15 / Зал 3

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

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

От разработчика требуется обеспечить корректность выполнения функционала неактивного приложения, не войти в противоречие с концепцией энергосбережения в iOS и уложиться в отведенные по умолчанию 30 секунд. Это требует advanced-подхода к решению задачи.

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

В качестве практических примеров рассмотрим такие ситуации, как:

  • поддержка периодической работы приложения;
  • опрос сенсоров и датчиков устройства в фоновом режиме (в т.ч BLE и GPS);
  • продление работы в фоне и синхронизация по своим правилам.

Также посмотрим на то, помогут ли в достижении целей в этих ситуаций новые решения, предлагаемые в iOS 13 и iOS 14.