Почему не стоит закрывать приложения в iOS

Всевозможные техно-мифы и предрассудки прочно вошли в ежедневную жизнь современного пользователя. И речь идёт не о постукивании по дереву, даже если ваш смартфон — Motorola X с деревянной крышкой. Пережитки прошлого, доставшиеся нам от систем наподобие Symbian или Windows Mobile, до сих пор не дают покоя «юзерам», однако если для той же Android некоторые из них могут быть актуальными в силу особенностей архитектуры, то система iOS справляется с нарушителями спокойствия сама. Причём — довольно успешно.

ios_8_multitasking

На написание этого материала, который многим может показаться чем-то очевидным или даже повторяющимся, автора подвигло практически ежедневное наблюдение одной и той же картины: работающий с iPod, iPhone или iPad пользователь дважды нажимает на кнопку Home и «смахивает» приложения, прежде чем заблокировать свой гаджет. Проблема в том, что это занятие обычно является пустой тратой времени, и давайте разберёмся, почему.

Многозадачность — понятие, простите за словесный каламбур, многозадачное само по себе. На прошедшей неделю назад конференции WWDC этим звучным словом назвали новый режим работы с iPad, при котором на экране комфортно размещается несколько окон. Однако у большинства из нас упоминание этого термина в компьютерном контексте ассоциируется с несколькими задачами, одновременно выполняемыми тем или иным гаджетом. Реализация этой функции разнится от платформы к платформе, но в общем и целом всё сводится к одному: вы можете работать с одним приложением, в то время как другое выполняется в фоновом («свёрнутом») режиме. Принципы работы мобильных систем прошлого и персональных компьютеров сильно повлияли на аудиторию привыкших к последним пользователей современной техники, породив множество домыслов и заблуждений. Одним из таких стереотипов и является необходимость «убирать» приложения из панели переключения на iOS. В чём же дело?

Распределение ресурсов в системе iOS происходит автоматически, и каждой программе доступны пять состояний:

  • Активно: приложение работает.
  • Неактивно: приложение запущено и находится в фоновом режиме, но не регистрирует события (например, если устройство переведено в режим сна с экрана приложения).
  • Фоновый режим: приложение убрано с экрана, но продолжает выполняться в свёрнутом виде.
  • Остановлено: приложение находится в памяти, но не выполняется.
  • Не запущено: приложение было удалено из списка активных или попросту не запущено.

При нажатии кнопки Home с экрана приложения последнее переходит из состояния «активно» в состояние «фоновый режим». Здесь ему предоставляется краткий отрезок времени (максимум 10 минут по специальному запросу), чтобы завершить выполнение текущих задач. После этого большинству приложений присваивается статус «остановлено». Это позволяет быстро открыть программу, не требуя повторной загрузки её данных в оперативную память. Никакие вычислительные или аккумуляторные ресурсы в данном случае не задействуются. По сути дела, удаление приложения из ОЗУ удлиняет процедуру запуска, и хотя в большинстве случаев им можно пренебречь, это следствие приводит нас к двум основным тезисам: а) удаление иконок приложений из панели многозадачности как минимум не увеличивает время автономной работы или скорость работы устройства и б) сама панель отображает не работающие в данный момент, а лишь недавно использованные программы. В случае же нехватки памяти система попросту переведёт ненужные приложения в режим «не запущено».

ipad_multitasking_tray

Впрочем, из любого правила бывают исключения, и некоторые категории приложений могут проявлять активность после сворачивания. К таковым относятся, например, программы для записи и воспроизведения звука (диктофоны, аудиоплееры и т. д.), навигационное и прочее ПО, определяющее местоположение устройства в фоновом режиме, а также различные решения для VoIP, которые ожидают входящих событий — сообщений, звонков и т. п. Не подчиняются общим правилам и некоторые стандартные компоненты iOS, например почтовый клиент Mail или приложение Акции. Для поддерживаемых программ можно также включить опцию фонового обновления данных, появившуюся в седьмой версии «яблочной» системы. Это позволит автоматически проверять наличие новой информации, скачивать обновления или загружать обновленный контент в фоновом режиме при получении push-уведомлений. Но даже такое поведение, если речь не идёт о работающей навигации или «играющем» музыкальном плеере, вряд ли отразится на работе устройства серьёзным образом, поскольку такая активность приложений регулируется самой iOS. В двух упомянутых исключениях (навигация и музыка) она обозначается значком геолокации в строке состояния (возле индикатора батареи) и включенным воспроизведением в Пункте управления или на экране блокировки. Случаи сбоев происходят довольно редко даже среди сторонних программ. Особо на этом поприще когда-то отличался фирменный клиент Facebook, настроенный таким образом, что при значительном изменении положения устройства и включённых службах геолокации запрашивал местоположение автоматически, чем мог уменьшить время работы гаджета от батареи. Однако такие недочёты на сегодняшний день встречаются нечасто, а сама проблема решалась легко: в настройках геолокации на iOS 8 можно установить доступ приложению к GPS только во время его использования.
background-location-use

Что ж, пора сформулировать основную мысль. Безусловно, некоторые из дорогих читателей могут не согласиться, опираясь на субъективные наблюдения, однако в большинстве случаев вывод прост: закрывать приложения в iOS не требуется. И да будет всем счастье.

iOS 8Обзоры приложений для iOS и MacОперационные системы AppleСоветы по работе с Apple