Войти

Или войди с помощью

Перестаньте закрывать приложения на iPhone. Это мешает системе работать эффективно

Павел avatar |

Apple с самого запуска iPhone была против принудительного завершения работы программы. Объясняю, почему.

Сотню раз видел, как мои друзья и люди в метро уже выученным механическим движением судорожно выкидывают карточки открытых приложений за пределы экрана iPhone, чтобы всё закрыть.

Ну, ладно, это их дело.

Но весь есть особые персонажи, которые, глядя в мой iPhone начинают возмущаться и причитать фразой «а чего у тебя столько всего отрыто?».

Ну, во-первых, это моё дело.

А во-вторых, вам бы тоже оставлять приложения работать в фоне и не закрывать при каждом случае.

Есть универсальное правило, которое используют даже в Android: приложения не надо закрывать.

Сейчас поставим точку, почему нужно оставить в покое отрытые приложения на iPhone и iPad. И почему кнопку «закрыть всё» ждут уже 17 лет, но вряд ли дождутся.

Это как если перезагружать телефон

В основе операционных систем iPad и Apple Vision Pro лежит iOS, чтобы те могли работать дольше. И это при том, что в обоих устройствах стоят чипы из Mac.

Так происходит, потому что при разработке iOS приложениям изначально запретили полноценно работать в фоне.

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

Максимально примитивно опишу матчасть.

У приложения в iOS есть три основных состояния:

  • Запуск
  • Активное
  • Фоновое.
  • «Запуск» активирует фреймворк UIKit, в ходе чего программа запускается по правилам iOS.

    Запуск делится на два вида: «активация» и «возобновление». В первом случае вы загружаете приложение с нуля, во втором оно просыпается из покинутого вами состояния, не успев полностью отключиться.

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


    Так iOS меняет состояние приложения. Источник: Apple

    «Активное» состояние это когда приложение у вас перед глазами и выполняет нужные задачи.

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

    В iOS встроена специальная система «сохранения интерфейса для перезапуска», которая помогает системе в оптимизированном виде хранить экран приложения, на котором вы остановились.


    Состояние приложения в зависимости от того, свернуто оно или нет. Источник: Apple

    Когда приложение закрывается принудительно, кэш сбрасывается, данные о последнем состоянии тоже.

    При открытии вы заставляете чип заново тратить ресурсы на запись кэша и проводить инициализацию (первичный запуск), в которую входят десятки шагов.

    А когда вы сворачиваете приложение, оно моментально переходит в «фоновое» состояние.


    Процессы во время запуска приложения в iOS. Источник: Apple

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

    Запуская программу заново, процессор нагреется больше, чем если бы вы просто развернули ранее запущенное приложение.

    Самая простая аналогия.

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

    iOS безжалостно удаляет ненужный кэш сама

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

    С практической точки зрения вы тоже себе делаете хуже.

    Разворачивание приложения происходит моментально, а запуск занимает несколько секунд. Получается, что

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


    iOS сама удаляет даже скриншоты предпросмотра, если они отнимают нужные ресурсы

    iOS автоматически отключает приложения, если ресурсов не хватает. Это самодостаточная система, которая даже процессор замедлит во избежания перегрева, если нужно.

    Да, остаётся список запущенных ранее приложений. Но, поверьте, он тоже не тратит ресурсы, которые вам нужны. Когда программа сворачивается, в режиме многозадачности отображается не готовый к взаимодействию экран, а скриншот. И даже его система удалит, заменив загрузкой стартового экрана, если ей будет нужно.

    Откуда у меня эти данные? Глава по разработке ПО Крейг Федериги рассказывал об этом в 2016 году читателю 9to5mac. Приблизительно в то же время информацию подтвердил глава по платформам и экосистемам Google Хироси Локхаймер, отвечающий за Android. Да и сама Apple рекомендует закрыть приложение, если «не отвечает или кажется, что оно зависло».

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

    В тему: 20 рабочих советов, как увеличить время работы iPhone от аккумулятора. Пробуйте

    46
    undefined
    iPhones.ru
    Apple с самого запуска iPhone была против принудительного завершения работы программы. Объясняю, почему. Сотню раз видел, как мои друзья и люди в метро уже выученным механическим движением судорожно выкидывают карточки открытых приложений за пределы экрана iPhone, чтобы всё закрыть. 
Ну, ладно, это их дело. Но весь есть особые персонажи, которые, глядя в мой iPhone начинают...

    Войди и оставь комментарий

    Или войди с помощью

    <- Назад Забыли пароль? Войти
    1. fimoz avatar
      fimoz 23 февраля 2024
      20

      Я не перестану, тк мне их количество попросту мешает в трее

      Andrey-lights avatar
      Andrey-lights23 февраля 2024
      7

      @fimoz, я с тобой

      AirPods Max2024 avatar
      AirPods Max202423 февраля 2024
      0

      @fimoz, Я закрываю лишь телеграмм и tiktok

      Bazily avatar
      Bazily23 февраля 2024
      1

      @fimoz, чем мешает, как?

      fimoz avatar
      fimoz24 февраля 2024
      0

      @Bazily, у вас какой андроид?

      redupcoming avatar
      redupcoming29 февраля 2024
      0

      @fimoz, так в 2024 это не проблема android, а вообще всех платформ с частым обновлением в фоне, даже фззду.

      redupcoming avatar
      redupcoming23 февраля 2024
      3

      @fimoz, вот абсолютно согласен, никакого комфорта и удобства от свалки программ и вкладок – нет.

      C0nfy avatar
      C0nfy27 февраля 2024
      0

      @fimoz, отключаю спотифай и телеграм. ибо жрут много батарейку в фоне

      Войди на сайт, чтобы ответить
      Ответить
    2. rukamaster avatar
      rukamaster 23 февраля 2024
      9

      Ага, я так пару раз телегу забыл закрыть, так за ночь батарейку почти под ноль сажает

      Войди на сайт, чтобы ответить
      Ответить
    3. Виктор avatar
      Виктор 23 февраля 2024
      0

      Идеально было бы добавить настройку “закрывать приложения через …”, как сделали в Safari с открытимы вкладками. Если не пользуешься приложением 2 дня .. 7 дней .. 30 дней, то наверняка это был одноразовый запуск, чтобы освободить ресурсы “хоть и минимально используемые”.

      haxanus avatar
      haxanus23 февраля 2024
      1

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

      Войди на сайт, чтобы ответить
      Ответить
    4. mza avatar
      mza 23 февраля 2024
      4

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

      Matthew avatar
      Matthew23 февраля 2024
      3

      @mza, потому что иногда есл и приложение тупит, лагает и тд, то его можно выгрузить и снова запустить, после чего все работает как надо с вероятностью 99%
      Например актуальное приложение альфабанка запускается только со второго раза (не у одного меня). Обязательно нужно выгрузить один раз из памяти и снова открыть, видимо что-то намудрили разработчики

      Megabass avatar
      Megabass23 февраля 2024
      0

      @mza, а лучше дать пользователю возможность выбора – не закрывать или закрывать через выстланный промежуток времени :)

      Войди на сайт, чтобы ответить
      Ответить
    5. dimixx avatar
      dimixx 23 февраля 2024
      2

      Да всем плевать на то, сколько энергии сжирает перезапуск! Многие приложения просто умудряются пи…ить личные данные даже с выключенными параметрами отказа предоставлять те или иные данные!
      Ну, и потом когда открыто штук 20-30 уже вообще неудобно по ним перелистываться

      Войди на сайт, чтобы ответить
      Ответить
    6. andrey-m86 avatar
      andrey-m86 23 февраля 2024
      19

      “Ну, во-первых, это моё дело.”
      Ну так ты со “своим делом” не лезь в чужие -=))

      Войди на сайт, чтобы ответить
      Ответить
    7. fimoz avatar
      fimoz 23 февраля 2024
      13

      [quote]Есть универсальное правило, которое используют даже в Android: приложения не надо.[/quote]

      🤔

      Andy_professional avatar
      Andy_professional23 февраля 2024
      8

      @fimoz, верно, “приложения не надо” и точка.

      haxanus avatar
      haxanus23 февраля 2024
      4

      @fimoz, андроид не надо.

      Siberian84 avatar
      Siberian8423 февраля 2024
      1

      @fimoz, местным авторам похрен на грамматику, пунктуацию, синтаксис, логику. На всё. Раньше был и годные материалы. Сейчас скатилось в кликбейт и рекламный навоз. Зачем-то жду, когда вернутся годные авторские статьи.

      iBarmalei avatar
      iBarmalei24 февраля 2024
      0

      @Siberian84, годные статьи ушли вместе с Артуром

      Войди на сайт, чтобы ответить
      Ответить
    Помни о правилах — если начал оффтопить, то не удивляйся потом.

    Нашли орфографическую ошибку в новости?

    Выделите ее мышью и нажмите Ctrl+Enter.