В Айфон-ОС 4.0 мультитаскинга так и не появится

Сегодня на показе будущей Айфон-ОС 4.0 (выйдет летом) Эплы произнесли волшебное слово «мультитаскинг».

Мультитаскинг — это, как правило, обычная фича для галочки, и совершенно неясно, почему этой фичи так требовали пользователи. Что толку с того, что любые приложения смогут висеть в фоне и жрать ресурсы? Это загадка. Тем временем, маркетологи конкурентов тщательно промывали мозги аудитории, говоря, что в Айфоне нет многозадачности. Так как звучит это круто и современно, и вообще, в других аппаратах это есть, то все требовали от Эпла этого. Но поскольку пользователи просто не въезжали о чём тут речь, то Эплы сообразили, что нужно делать: нужно просто сказать слово «мультитаскинг», чтобы все заткнулись на тему того, что его нет. Делать мультитаскинг при этом не обязательно, потому что это плохая фича.

Два тезиса:

  1. Операционная система Айфона поддерживает многозадачность.
  2. Приложениям, написанным сторонними разработчиками, запрещено оставаться и делать что-то в фоне.

Оба эти тезиса верны применительно ко всем версиям прошивок Айфона от 1.0 до 4.0. Многозадачность как была, так и осталась (иначе как вы получаете входящие звонки, или смс, или напоминалки, пока играете в Судоку под музыку из Айпода?), а фоном висеть неэпловским приложениям как нельзя было, так и сейчас нельзя (поэтому никакая плохая программа в тайне от вас не сможет ничего делать).

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

Пользователь этой кухни никак не видит. Допустим он пользуется приложением «Болталка» и сидит в чате с Васей, а потом выходит из него и запускает браузер. Вдруг на экране появляется сообщение, что Вася пишет «Пошли в кино». То, что появление этого сообщения вызвано эпловским сервисом его не волнует. Если он жмёт отмену, то приложение «Болталка» даже не узнаёт об этом всём, а если жмёт на «Ответить», то «Болталка» запускается и показывает ему диалог ровно с того же места.

Пуш решил не все задачи. Фоновое прослушивание музыки из чужих приложений (скажем, интернет-радио) или фоновое слежение за ГПС-координатами пользователя (для геосоциальных штуковин) оставались невозможными.

В прошивке 4.0 Эплы решают эти задачи, выпуская решение под брендом «Мультитаскинг». В действительности же они просто добавляют свой фоновый сервис, который умеет играть музыку, и свой сервис, который следит за ГПС-координатами, а также АПИ для взаимодействия сторонних программ с ними. И ещё пару сервисов других. Всё. Сторонним программам по-прежнему никто не разрешит просто так висеть и занимать память и процессор. Поэтому по-прежнему не будет никакого диспетчера задач, а фоновая программа не сможет зависнуть, потому ОС будет точно так же убивать её при выходе на домашний экран, как это делают первая, вторая и третья прошивки.

И слава богу.

Дальше
42 комментария
Сергей Петров 2010

Одно только дополнение: «now I want to play a game — now I want to play a game, Tap Tap Revenge, it keeps me where I was».

То есть есть все же некий механизм дампинга состояния приложения и его восстановления.

Или оно и так было? Но даже если было — складывается ощущение, что в этой области что-то подвинулось.

Короче, думается, приложение все же не так уж тупо убивается-запускается. Приостанавливается — да. Действия в фоне только через API — да. А вот убивается ли? Не факт.

Илья Бирман 2010

Насколько я понял, оно как-то «замораживает» приложение, вероятно, скидывая его кусок памяти и состояние процессора куда-то «на диск». Это тоже одна из новых штук, кажется, последняя в их списке сервисов. Смысл в том, что фоновые процессы остаются под эпловским контролем, а это просто механизм повышения удобства для разработчиков.

Терещенков Константин 2010

Да всё правильно они сделали. Платформа iPhone/iPad вообще очень четко и уверенно развивается. Думаю, что и над МакОС ведётся тайная работа. В настоящий момент мне даже кажется, что мобильная ОС во многом лучше настольной.

Владимир 2010

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

Илья Бирман 2010

Ну что значит договориться? Надо было Адобам взять да сделать нормальный флеш-плеер. Они провафлили хрен знает сколько лет, забивая на Мак, а теперь, когда оказалось, что это было ошибкой, виноваты оказываются Эплы? Странный взгляд.

Мурат Прокопов 2010

Поддерживаю Сергея Петрова.
Думаю там какой-то механизм для дампа состояния будет, для полной «эмуляции многозадачности».
Иначе не совсем понятно, зачем этим эппловым сервисам 256 мег памяти, например.

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

Тогда вопрос что же там делал тот же Tap-Tap Revenge в списке задач, если он по сути для работы требует непосредственного общения с юзером.

Короче много всего непонятно осталось.

Илья Бирман 2010

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

Я могу ошибаться, конечно.

Владимир 2010

оффтоп: ээ.. третьего уровня в каментах нету?

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

Илья Бирман 2010

Не, я думаю вы неправильно оцениваете ситуацию. Эпл ни с кем не воюет. Есть технология, которая работает очень плохо. У них есть выбор: использовать её или нет. Они, естественно, выбирают «не использовать». Всё тихо и мирно.

Мурат Прокопов 2010

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

  1. Как будет происходить автоматическое закрытие, просто idle timeout что ли?
  2. Почему отображается всего 4 иконки и как их листать? Я предполагаю, что можно просто как локскрины, но тогда нужно какой-то индикатор сколько у тебя запущенных приложений и всё такое — это сильно переусложняет всё.
  3. Как закрыть приложение, которое не хочется, чтобы висело в фоне кроме принудительного закрытия. Ну например, не хочу я, чтобы Скайп принимал звонки, возвращаюсь в него и ставлю Offline прежде чем закрыть? Это что ли в каждой проге надо будет завершить всё, чтобы она только закрылась, а не на системный сервис присела слушать?

Странно и непонятно это всё, если честно, пока что.

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

  • система уже хранит скриншоты всех приложений, чтобы при открытии их показать пока грузится сама софтинка
  • есть отличная привычная пользователям схема переключения между активными страницами в Safari
  • при переключении между приложениями 80% экрана остаётся неиспользованными, показывая скриншот текущей программы замороженной
  • «съезжание» вверх чтобы открыть «док» у пользоваталей макоси прямо ассоциируется с Dashboard, а не переключением приложений

Уж лучше бы exposé, честное слово.

Илья Бирман 2010
  1. А зачем вам про это знать? Вот я сейчас не знаю на Айфоне, когда у меня что закрывается, и я не понимаю, зачем мне может понадобиться эта информация. Если же вы разработчик, то для вас всё в документации написано.
  2. Оно скролится влево-вправо. Какая разница сколько их? Они все запущены «понарошку», они не занимают процессорного времени и памяти :-)
  3. Думаю, что вам нужно просто распрощаться с концепцией «открытости» приложений. Если вы хотите, чтобы из окна не дуло, надо его закрыть. Если вы хотите, чтобы в Скайп вам не звонили, ставите статус офлайн. Это логично.
Андрей 2010

Хотелось бы видеть ласт.фм скробблер для айфона, и судя по представленным заменителям мультитаскинга, фиг знает, появится ли возможность его реализовать :/ Он должен висеть в фоне, цеплять названия песен и сохранять на потом или сразу слать на сайт. Ну или цепляться к плееру как плагин, если там такое вообще есть.

Относительно эпл/эдоби: ладно эпл не использует флеш в броузере, хрен с ним. Зачем запрещать создание софта через что-то отличное от xcode? Это ж не только флеш, а monotouch и другие пролетают.

Дмитрий Ачкасов 2010

У меня сто лет тому назад был Handspring, прозрачный такой (платформа Palm). Так небыло мультитаскинга, но зато все приложения постоянно висели в памяти и ничего не надо было сохранять. Работал он от двух ААА батареек месяц. Очень хороший аппарат. Кстати к интерфейсу там очень хорошо подходили, были даже guidlines как делать интерфейс неперегруженным (основной принцип: Одна задача — одно приложение).

Николай Коваленко 2010

отличный телефон. продолжай пользоваться.

Bolk 2010

. Что толку с того, что любые приложения смогут висеть в фоне и жрать ресурсы? Это загадка. Тем временем, маркетологи конкурентов тщательно промывали мозги аудитории, говоря, что в Айфоне нет многозадачности.

я когда читаю книжку у себя в телефоне, у меня в фоне может ставится новое приложение и висит google talk, по которому я изредка общаюсь, если сообщение приходит. Вот тебе и применение.

Илья Бирман 2010

На Айфоне новые приложения ставятся фоном и всегда ставились фоном. Инсталлятор — это эпловский процесс, ему можно висеть фоном. Что касается общения, то Voice over IP — один из новых фоновых сервисов, его как раз показали на примере Скайпа.

Bolk 2010

Ага, ты про IM написал.

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

Артём 2010

Bolk, приложение ставится не настолько долго, чтобы во время этого прям нужно было читать книжку. А IM в фоне у тебя батарейку жрёт, что на Айфоне решается пуш-уведомлениями.

OnyX 2010

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

А про флэш на айфоне, я думаю что его не хотят не потому, что он кривой, а просто из-за того что народ перестанет покупать проги в сторе. Это ж пизнес ;)

Илья Бирман 2010

Последнее — ерунда. То, что он кривой — научный факт. Он у меня на четырёхядерном компе с 10 ГБ памяти тормозит, зачем ему разрешать работать в Айфоне? Что касается прог вне стора, то непонятно в такой логике, почему они не запрещают ХТМЛ+Джаваскрипт. Есть много очень навороченных веб-приложений, которые вполне заменяют нативные, и Эпл совершенно не переживает по этому поводу, а только наоборот, развивает крутые фичи ХТМЛа для этого.

Терещенков Константин 2010

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

Денис Атясов 2010

Илья если этот процесс такой легкий и быстрый почему не сделали мультитаскинг для 3г? Маркетинг?

Илья Бирман 2010

Я склонен думать, что да. Хотя официальная позиция — старые Айфоны «аппаратно не поддерживают». Явная чушь. Но в принципе, 7 фоновых сервисов вместо одного — это, конечно, всё равно нагрузка, тормозов это добавит, так что, наверное, это тоже возымело значение.

Bolk 2010

Артём, оно не ставится долго, оно долго скачивается.

Илья, я всё забываю, что Сидия не родное приложение.

Илья Бирман 2010

Скачивание и установка — это единый процесс с точки зрения интерфейса Айфона, всё это делается фоном.

Сидия не родное приложение, но оно требует джейлбрейка, а значит ломает эпловские штуки, мешающие ему оставаться в фоне. Поэтому если Сидия не умеет скачивать и устанавливать приложения в фоне, то вопросы уж точно к Сидии, а не к Эплу.

Bolk 2010

Кстати, Илья, ты Flash 10.1 на Маке пробовал? Как оно? Перестало тормозить?

Илья Бирман 2010

Не знаю ничего про Флеш 10.1, разве он вышел?

OnyX 2010

«Есть много очень навороченных веб-приложений, которые вполне заменяют нативные, и Эпл совершенно не переживает по этому поводу, а только наоборот, развивает крутые фичи ХТМЛа для этого.»

Я думаю, что в эппсторе на порядок чаще покупают игрушки, а не утилиты. Поэтому ХТМЛ это хорошо, но на нем много не заработаешь. А флеш не пустят т. к. он ударит по популярности нативных игр. Кстати, а может эпл делает свой «флэш», поэтому и не пускают адоб.

Илья Бирман 2010

А как на Флеше заработать больше, чем на ХТМЛ? Что-то я не пойму. Эпл делает свой Флэш, он называется Какао-тач.

Виталий 2010

На самом деле нечто похожее на диспетчер задач всё-таки есть. По двойному хоуму выползает панель с висящими в фоне приложениями. Совершенно интуитивным образом тапнув и подержав палец на иконке, на ней появляется значёк удаления. То есть можно закрыть неиспользуемое, но висящее в памяти приложение.

Виталий 2010

Скриншот к предыдущему сообщению (на всякий случай):
http://dl.dropbox.com/u/689835/home.PNG

Павел Малинников 2010

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

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

Но ваши оценки технологии в целом — ерунда, так как флеш существует все зависимости от маков, линуксов и прочих ириксов с их кривыми реализациями.

Илья Бирман 2010

Вы не поверите, Павел, но ни на Айфоне, ни на Айпаде не будет устанавливаться Виндоус :-)

Вы очень, очень, очень смешной, просто умора.

Bolk 2010

10.1 не вышел, но есть бета, можно попробовать.

Илья Бирман 2010

Флеш и так еле работает, так что ставить то, что даже сами разработчики не называют «релизом», а называют «бетой» мне как-то совсем стрёмно.

Bolk 2010

Должно стать сильно легче, его переписали полностью, под новое API Мака.

Илья Бирман 2010

Я дождусь релиза :-)

Юра Тан 2010

...iPhone OS 4 многозадачна! Для того, чтобы переключаться между приложениями достаточно два раза нажать на кнопку Home и вы увидете все запущенные приложения.
Как сказал Стив, проблема внедрения многозадачности состояла в уменьшении времени работы гаджета, но инженеры Apple смогли найти компромисс... Вот такое прочитал на Хабре, может они что-то перепутали?

Илья Бирман 2010

В чём именно состоит «компромисс» описано в заметке, которую вы комментируете, Юра.

Павел Малинников 2010

Вы не поверите, Павел, но ни на Айфоне, ни на Айпаде не будет устанавливаться Виндоус :-)

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

Вы очень, очень, очень смешной, просто умора.

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

Илья Бирман 2010

Я клянуюсь, что улыбаюсь, когда читаю ваши сообщения. Это ж надо так уверовать во Флеш, а!

Андрей Руденко 2010

OnyX, йойо, svg + js, которые в вебе развивают в первую очередь эппловцы. И на Айфоне тоже. То есть они усиленно, уже несколько лет продвигают и пиарят открытые технологии, которым никакие Сторы не нужны. Собственно первый айфон и запускался исключительно с такой мыслью. Сейчас на html5 реализован iAd. Ага, игры, фильмы, музыка. «app inside app» что-то такое звучало комментариями к iAd. А это обычный html.

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

И насчет фоновых приложений. Можно я свой коммент с хабра сюда перепощу? Простите, если что, но вроде в тему ):

Да когда ж вы ребята поймете, что проблема не в пользователях, а разработчиках. Айфон стал первой мобильной платформой, которая предлагала 100 процентов ресурсов железа разработчику. Ему не нужно больше ни о чем думать. Запустил? Не тормозит? Отлично, в апп стор! Не нужно заниматься лишней оптимизацией, не нужно убирать полезные «красивости», избавляться от второстепенного функционала. И ни один пользователь не отдаст предпочтение конкурирующей программе «потому что на два мегабайта меньше занимает и не тормозит с браузером». Никогда бы айфон не стал столь успешной игровой платформой будь там многозадачность. И не потому что каждый отдельный пользователь не может выключать приложения прежде чем игру запустить, а потому что таких бы игр никогда не появилось.

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

Юра Тан 2010

http://habrahabr.ru/blogs/iphone/90435/ — ссылка на заметку, но в чем именно заключается компромисс неизвестно.

Илья Бирман 2010

Юра, я говорю этой заметке, ссылка на которую — http://ilyabirman.ru/meanwhile/2010/04/09/1/

Павел Малинников 2010

вы наверняка знаете, в каких случаях переходят на метод: «вы смешной». Немного разочаровали, Илья.

Илья Бирман 2010

Я постараюсь стать лучше в будущем.

Павел Малинников 2010

А эта ос4, она на 3G станет? Или как?

Илья Бирман 2010

На 3Г — без «мультитаскинга».

Алексей Лебедев 2010

Да кому нужны Флэш и честный Мультитаскинг, когда есть iAd?
Логика, ок

Терещенков Константин 2010

Пойду гляну как там на Witu флеш-сайты работают. Может и пойму чего в этом такого крутого.

Семён Перепелица 2010

Заставят-таки купить 3Г С :-) Тем более, в последнее время, меня как-то напрягают различные задержки: при открытии приложений или просто тыкании в программе, особенно это заметно у эсемесалки (открывается порядка 2-3 секунд), настройки (открывается столько же), так как я ими достаточно часто пользуюсь, ну и у остальных похожая ситуация, разве что кроме «телефона» — он висит постоянно в фоне, насколько я понимаю. Иногда столько же приходится ждать при нажатии на контакт из списка. Видел ролики про 3Г С, выглядит всё намного лучше.

А ещё, Сафари писал какой-то идиот. Не понимаю, как может идти речь про многозадачность, когда в браузере до сих пор нельзя нормально держать 2 открытые вкладки.

Стивен Дедел 2010

Семён Перепелица, в смысле «нельзя нормально держать 2 открытые вкладки»?

Илья Бирман 2010

Видимо речь о том, что браузер любит через какое время забыть, что было в соседней вкладке, и при переключении в неё начинает качать страницу заново.

Стивен Дедел 2010

Илья, да, есть такое. Проверю не убрали ли в 4.0. Сколько надо выжидать?

Стивен Дедел 2010

Кстати, по поводу сервисов многозадачности. Я так и не понял, это сервисы самой ОС? Я видел сегодня статью, где утверждали, что при нажатии на хоум, приложения «встают на паузу», то есть они вроде не работают, но оставляют в фоне свои сервисы.

Илья Бирман 2010

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

Терещенков Константин 2010

А кто, кстати вообще видел флеш на телефоне? Ну там на андроиде или винде? Можно глянуть хоть, как это выглядит? Как вот например http://www.matiz2.ru/ будет на экране мобильника смотреться? Как вообще навигацией пользоваться на флеше?

Я сегодня пытался найти счастливого обладателя неайфона и увы не нашел.

Стивен Дедел 2010

Илья, а, например, Томтом, который из фона следит за маршрутом и озвучивает подсказки. Он просто создает маршрут и передает его сервису ОС, который делает все остальное, или Томтом оставляет после закрытия «хвост», в виде собственного сервиса, который и делает всю работу?

Илья Бирман 2010

Я могу врать, но насколько я понял, он может отдать системному геоследящему сервису какой-то свой callback. Ближе к лету будет ясно, как это работает :-)

Семён Перепелица 2010

Видео http://gizmodo.com/5512966/iphone-os-4-hands+on-video
Закрытие фоновых приложений таки есть :-)

mono2k 2010

Сторонним программам по-прежнему никто не разрешит просто так висеть и занимать память и процессор.

разрешили, будут висеть и занимать. Источник — документация iPhone OS 4 SDK

Поэтому по-прежнему не будет никакого диспетчера задач

вы смотрели презентацию?

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

немного не так. Фоновые программы именно «зависают», т. е. полностью останавливают работу, если они не подписаны на вышеозначенные фоновые сервисы. При этом, программы не удаляются из памяти. Реальное убивание программы происходит только в случае, если системе не хватает памяти.

Имя Фамилия 2010

А как на Флеше заработать больше, чем на ХТМЛ? Что-то я не пойму.

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

Стивен Дедал 2010

mono2k, может вы источник-то покажите? А то как-то сомнительно все это звучит.

Илья, почему ближе к лету, что изменится?

Илья Бирман 2010

Ну как: сейчас СДК постепенно попадёт в руки к разным людям, все будут писать статьи и всё такое.

Василий Иванович 2010

Советую автору использовать Windows 7 Starter с ограниченным мультитаскингом дабы насладится всеми прелестями этой ненужной фичи.

Илья Бирман 2010

Даже Микрософт уже понял, чем мобильное устройство отличается от компьютера, а вы всё ещё нет. Постарайтесь впредь давать советы по темам, в которых что-то понимаете.

Мои книги