`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Александр Пацай

Нейрохирурги

08
голосов

Если вы не провели последнее время на безлюдном и отключенном от связи острове в Тихом океане, вы наверняка в курсе последнего шума насчет сторонних приложений для iPhone, которые нельзя оставлять работать в фоновом режиме. Если сказать прямо, я никогда не видел столько экспертов, которые ничего не понимают. И если вы не писали код для iPhone через инструменты jailbreak, ваше мнение про iPhone SDK, которое основано исключительно на том, что вы видели в симуляторе, ровным счетом ничего не значит. С таким же успехом вы можете объяснять нюансы операции на мозге.

Как человек, который занимался разработкой для iPhone последние 6 месяцев, я выдам вам хорошую дозу отрезвляющего средства.

Twitterrific на iPhone однозначно мог бы выиграть от работы в фоновом режиме. На самом деле прототипная версия именно так и работала. И это оказалось огромной проблемой: после опрашивания XML каждые 5 минут, батарея телефона практически умерла за 4 часа. Первое, что я сказал Груберу (автору блога daringfireball.net), отдавая ему бета-версию на поиграться - “не используй автоматическое обновление”.

Суть проблемы заключается в радиосигнале. И EDGE, и WiFi передатчики потребляют немало питания. И чем больше работает аппаратная часть, тем хуже время работы от батареи. Мое еже-пяти-минутное обновление приводило к тому, что аппаратная часть все время работала, и использовала ценный заряд батареи.

(Те из вас, у кого подписан договор о неразглашении об iPhone SDK, можете посмотреть в документации по Core Location. Когда выпрочтете, как его надо использовать, вы поймете, почему получение местоположения в Maps и похожих приложениях делается только в ситуации “когда надо”.)

И где-то сейчас, вы думаете “Но я буду умным по поводу того, как я буду использовать железо”. Извини, но именно ты и являешься причиной, почему у нас нет возможности запускать приложения в фоновом режиме в текущей версии SDK. Ты живешь в своем собственном маленьком иллюзорном мирке.

Что случится, если приложение А будет использовать сеть спустя 5 минут после часа, а приложение Б - спустя 10 минут, а приложение С - спустя 15 минут, и так далее? И у тебя нет возможности узнать, что делают другие приложения. А батарея тем временем страдает за всех.

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

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

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

Так или иначе, я думаю, что Apple решит эту проблему в будущем. Я могу себе представить решение, базированное на архитектуре модулей, которое позволяет вашему приложению делать какие-то вещи, когда телефон решает, что сейчас это можно сделать (а не когда вы решили, что сейчас подходящее время.) Если радиоканал активен, потому что проверяется почта, тогда вы можете получить уведомление “сеть активна” и возможность запустить какое-то краткосрочное TCP/IP подключение. Если оно занимает слишком долго - его “прибьют”, так как Safari поступает с JavaScript, который работает слишком долго.

Жду ли я такой сложной системы в бета-версии продукта 1.0? Конечно, нет. И вы тоже не ждите.
Отсюда

Эта запись размещена  в блоге alexmak.net

08
голосов

Напечатать Отправить другу

Читайте также

На острове не был, последнего шума иподомании не слышал. Что я делаю не так?

мабуть, не заморочуєшся на яблука, а користуєшся windows mobile (або й просто моб. телефоном) і чекаєш виходу нормальних девайсів на базі android, openmoco тощо...

така поведінка -- абсолютно неприпустима =) рішення -- негайно придбати iphone і долучитися до "цивілізованої спільности".

> iPhone требует совершенно другого состояния разума.

браво! шо кому не ясно? =)

"it's quite easy if you don't know how" (c) d.adams

Да, про "другое состояние разума" -- это или переврал переводчик, или там в Эпле "зовсiм зъихалы с глузду" :)))

И правду говорят, что батареи медленнее всего развиваются (из всего остального железа) и серьезно усложняют дизайн портативных устройств. :[

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT