В iPhone OS 4.0 появится многозадачность и это хороший повод о ней поговорить. Спорная тема многозадачности в iPhone давно волнует умы маководов. И больше всех она волнует маководов редакции AppleInsider.
Немногим меньше месяца назад на их сайте появилась интересная аналитическая статья о многозадачности в iPad, а вчера ребята раскопали инсайдерскую информацию о том, что эта самая многозадачность наконец появится в iPhone OS 4.0.
AppleInsider получил свежую информацию из источника, который зарекомендовал себя хорошим предсказателем во всем, что касается достижений Apple в области технологий. Информация содержала сведения о том, что компания из Купертино разработала "настоящее решение" проблемы многозадачности в iPhone OS. Подробностей о том, как компания с помощью новой технологии собирается бороться за малое потребление ресурсов и экономию батареи, источник не сообщил, но AppleInsider предложил свои решения проблем Apple.
Однако, обо всем по порядку. И начнем с фактов.
Факт первый. iPhone OS не позволяет сторонним приложениям продолжать работу в фоне после того, как пользователь вышел из приложения.
Факт второй. Многозадачность в iPhone OS на самом деле есть. В мобильной операционной системе Apple используется та же технология приоритетной многозадачности Mach/BSD, что и в “настольной” Mac OS X. iPhone может и выполняет несколько процессов одновременно: например играет в фоне музыку и доставляет push-уведомления в другие приложения.
Факт третий. Более того, кроме приоритетной многозадачности, в iPhone есть еще и многопроцессорная обработка. Эта технология позволяет раcпределять задачи по разным ядрам процессора: например при просмотре видео-ролика iPhone может передавать обработку H.264-видео графическому ядру, а центральное ядро при этом нагружать процессами, которые следят за обновлениями и отвечают за интерфейс.
Из этих трех фактов легко сделать вывод, что “отсутствие” многозадачности в iPhone никак не связано с проблемами технического характера.
Так в чем же дело? Почему Apple не осчастливит своих пользователей и не даст им то, чего они так хотят? Вообще говоря, есть еще несколько проблем.
Проблема первая. Ограниченные ресурсы. Мобильные устройства отличаются небольшим количеством оперативной памяти и невысокой мощностью процессора, так что, разрешив нескольким приложениям работать одновременно, Apple будет вынуждена решать вопросы, связанные с производительностью устройства и временем работы от батареи.
Проблема вторая. Неудобства пользователя. Многозадачность, которую все так хотят видеть в своих устройствах, усложнит систему не только для Apple, но и для пользователей: на них ляжет ответственность управления процессами, работающими в фоне.
Проблема третья. Безопасность. Если приложения не будут просто заканчивать свою работу, как это происходит в iPhone OS сейчас, пользователи могут и не знать, что они продолжают работать в фоне. А работающие в фоне приложения могут приносить как пользу, так и вред. Не имея строгих ограничений, приложения смогут устанавливать вирусы, трояны и прочие вредные программы, а для iPhone OS это крайне нежелательно, сами понимаете.
Потребности пользователей в многозадачности частично решаются push-уведомлениями — даже программы для мгновенного обмена сообщениями, вроде Meebo, могут “работать в фоне” в таком режиме. Но push-уведомлений недостаточно для того, чтобы, например, одновременно слушать музыку интернет-радиостанции Pandora и работать в другом приложении. А для такого устройства как iPad более широкие возможности просто жизненно необходимы.
Есть несколько способов решить задачу так, чтобы и волки были сыты и овцы целы. Решение проблемы многозадачности можно почерпнуть из прошлого: в 1984 году Macintosh’ы, в которых тогда отсутствовала многозадачность, разрешали “многозадачно” работать по следующему принципу: операционная система позволяла запускать небольшие вспомогательные программы (виджеты), вроде Калькулятора, поверх основного приложения. И, кстати, то, что на презентации iPad и слова не было сказано о традиционных приложениях (прогноз погоды, календарь и курса акций), может говорить о том, что на iPad’е эти утилиты могут запускаться как виджеты внутри других приложений, например в iWork.
Apple может свести в минимуму проблемы с безопасностью и другим способом. Если в будущей iPhone OS разрешит работу в фоне только нескольким проверенным приложениям или встроит их в систему. Они также могут разрешить всем приложениям выполнять в фоне строго определенный круг задач. Но тогда Apple придется решать еще и проблемы интерфейса. Сейчас, когда приложение Apple работает в фоне (например диктофон или телефон), то поверх основного приложения отображается строка состояния фоновой программы, нажав на которую, вы имеете возможность переключиться. Но когда в фоне будет работать несколько приложений, такой интерфейс станет слишком громоздким.
Хотя интерфейс — это скорее второстепенная проблема, и с ней Apple, как гуру в вопросах юзабилити, мы уверены, справится легко и изящно. Гораздо острее стоит вопрос ресурсов. Поскольку большинство приложений на iPhone сейчас — это игры, вопрос вдвойне актуален. Требования к ресурсам у таких программ в разы больше, чем у обычных приложений, а потому любая многозадачность будет неизбежно отражаться на качестве игры. Apple не может позволить iPhone OS потерять статус игровой платформы.
Слухи о том, что iPhone наконец получит многозадачность ходили в сети уже давно, но дальше слухов дело не шло. Посмотрим насколько окажутся правы источники AppleInsider, но с появлением iPad’a у iPhone OS стало гораздо больше шансов стать по-настоящему многозадачной. По информации, которую получил AppleInsider, iPhone OS 4.0 все еще находится на стадии разработки, а потому появится она не скоро. Так что нам остается только надеяться на лучшее и ждать.