Апдейт — всему голова?

Пропущенному наконец-то в субботу в App Store iPref-у посвящается…
На самом деле этот пост у меня зреет уже какое-то время. Началось все с того момента, как я переехал на Snow Leopard, обзор которого я писал для блога. (Тот обзор с тех пор уже был удален, а точнее, спрятан, так как на меня по этому поводу наехала Apple, и статью пришлось убрать. Те, кто не успел почитать, могут случайно наткнуться на PDF из статьи на каком-то DropBox :).
Естественно, в процессе работы с 10.6 я столкнулся с тем, что некоторые приложения перестали работать — часть из них вообще не запускается, а часть некорректно функционирует, что может приводить к невыполнению поставленных им задач. Соответственно, возник вопрос о том, что надо бы проверить все установленные приложения насчет обновлений, закачать эти самые обновления и установить их. В этом месте я пожалел, что для приложений под Mac OS X нет чего-то подобного App Store. Но жалел я недолго.
software-update

Про App Store я вспомнил потому, что в нем, без сомнения, есть определенные преимущества. В частности, все приложения собраны в одном месте, тут же все рейтинги и отзывы, так что выбрать подходящее приложение, ориентируясь на них, довольно легко. Все приложения отсюда же можно и установить, скачав с компьютера или телефона – затем все легко синхронизируется в обе стороны. Не надо заморачиваться с каким-то сайтами, битыми ссылками и прочими сложностями, с которыми сталкиваешься, когда ищешь какую-то программу в интернете. Соответственно, с обновлениями тоже легко – как только для приложения выходит обновление, оно тут же показывается в iTunes или на телефоне, и обновления ко всем приложениям устанавливаются путем нажатия 1 кнопки. Удобно? Без сомнения, если вы – конечный пользователь. А вот с точки зрения разработчика все немного хуже, и мы это на своей шкуре ощутили в случае с iPref, нашим преферансом для iPhone.
[ad#intext-inside]
О том, что iPref несовместим с iPhone OS 3.0, мы, конечно же, знали достаточно давно – с тех пор, как Apple начала раздавать бета-версии прошивок 3.0. Но сразу менять приложение, подстраивая его под каждую конкретную бету, не зная, что будет в будущих бетах, не имело особого смысла, так как неизвестно, что Apple могла изменить в последующих бетах – все наши исправления могли оказаться бессмысленными. Это сродни тому, как Dev Team не выпускала свой jailbreak для бета-версий iPhone OS – в каждой последующей бете все могло перестать работать снова, поэтому лучше сесть и ждать чего-то более устаканившегося. Проблема с Apple заключается в том, что сколько ждать – неизвестно. Они не говорят “вот эта бета – последняя, давайте под нее прикручивайте уже что можно”, или же “еще пара бета-версий впереди”. Только потом, постфактум, мы вдруг узнаем из новостей, что “теперь Apple тестирует приложения в App Store с этой версией, значит, это уже что-то, похожее на релиз”.
Соответственно, когда мы узнали об этом (недели за две, наверно, до официального выхода 3.0 – сейчас уже не помню точных дат), мы, конечно же, собрали версию iPref (да и других приложений), которая точно была совместима с 3.0, и подали ее в App Store. Но, во-первых, точно также сделали, наверно, большинство разработчиков 40-50 тысяч приложений из App Store – можете себе представить загрузку тех, кто проводит проверку приложений. А во-вторых, нас ждал облом в виде отказа – примерно через недели полторы нам пришло письмо, что приложение “зареджектили” по причине опции “вибрирования”. Напомню, что эта опция там была всегда, начиная с декабря прошлого года, когда iPref начал продаваться в App Store. Только в этот раз, видимо, либо проверяющий был с iPod touch, либо просто был более придирчив, и он отказал приложению, мотивируя тем, что раз вибрации нет на iPod touch, то игроки на этом устройстве, бедняжечки, страшно запутаются, и не смогут расписать пулю.
Естественно, что в тот же день мы внесли изменения в программу (теперь она узнает на каком устройстве происходит запуск и если это iPod touch, то просто прячет опцию включения вибрации), и тут же переподали ее в App Store, однако, то ли в отместку за то, что один раз мы получили “reject”, то ли просто лавина приложений в очереди на обзор стала невероятно огромной, но после повторной подачи iPref провел в режиме pending около 3 недель, и был пропущен в App Store только в субботу утром в начале июля. Естественно, поскольку с момента выхода iPhone OS 3.0 прошло уже почти 3 недели, пользователи успели массово на нее мигрировать, и в комментариях к приложению в App Store мы выгребли кучу отрицательных отзывов “нифига не работает!”
И дело ведь не только в том, что “ну у вас же там написано “совместимо с 2.0 и выше”” — в конце концов, это такие варианты в системе у Apple, когда при подаче приложения нельзя указать “совместимо с 2.1-2.2”. Такая централизованная система управления приложениями вместе с присущими ей удобствами, часть из которых я озвучил выше, несет в себе и недостатки. Например, в случае единой системы с одним проверяющим именно Apple решает, какие приложения можно, а какие нельзя выпускать для платформы. Поэтому в App Store практически нет альтернативных браузеров (туда прорвался только iCab, а клоны Safari не в счет), нет альтернативных медиа-плееров, нет приложений для взрослых, до недавнего времени не было полноценных приложений для GPS, MMS, интернет-tethering, и тд (те, кто делал jailbreak для своего телефона, прекрасно осведомлены о тех приложениях, которые становятся доступными телефону после JB). Именно в силах Apple допустить или запретить то или иное приложение, и это, безусловно, ограничивает свободу пользователей.
Ну и второй недостаток связан с медлительностью той же Apple во всех процессах, связанных с разработчиками. Ведь не только поданное обновление приложения (как в случае с iPref) может рассматриваться очень долго, точно также долго происходит процесс рассмотрения первоначальных заявок на право разработки приложений для iPhone, а также утверждение финансовой информации (чтобы Apple могла переводить деньги). Да, кстати про деньги — с переводами денег тоже возникают задержки: мало того, что Apple сохраняет за собой право платить через 45 дней после окончания учетного месяца, так еще и зачастую деньги приходят с опозданием. То есть за продажи в январе деньги придут в марте, если повезет, а если не повезет, то в апреле. Не нравится? Ну вы знаете ответ на этот вопрос.
Но вообще я, наверно, отвлекся 🙂 — явно видно, что тема с App Store для меня наболевшая. При всех его недостатках, когда я искал обновления для приложений, установленных на Маке, мне хотелось, чтобы была какая-то централизованная база, которая бы автоматически показывала и обновляла мои приложения. Да-да, я знаю про AppFresh, которая вроде как по описанию должна помогать находить обновления для установленных на компьютере приложений. Но эта штука находится в версии 0.8.4, что, понятное дело, не обещает особой стабильности работы даже на релизнутых 10.4 и 10.5, а уж на 10.6 она вообще крешится практически сразу.
Частично помогает решить проблему штука под названием Sparkle Framework — это специальная бесплатная библиотека, разработанная для добавления более-менее стандартного интерфейса по обновлению приложений. Добавив его в программу, разработчик получает практически готовое решение по проверке приложений на наличие обновлений, а также их автоматическую закачку и установку. Есть только несколько проблем — во-первых, Sparkle сам не без изъянов, и в наших приложениях, где мы его использовали, мы сталкивались с его глюками, иногда приводящими к падениям. А во-вторых, пользователю Sparkle сам по себе бесполезен, если разработчик приложения не потрудился его вкрутить в программу. А в третьих, несмотря на то, что Sparkle бесплатен и доступен с открытым исходным кодом, многие компании используют свои решения для software update, так что до стандартизации на одном решении еще очень далеко.
[ad#intext-inside]
В итоге, конечно, все это приводит к тому, что для конечного пользователя весь процесс обновления приложений состоит в многочисленных ручных и полуавтоматических проверках, скачиваниях и установках, после чего система App Store начинает выглядеть привлекательно. Но это опасно, так как возьми Apple в руки систему распространения приложений для Mac OS X, мы не досчитаемся очень многих и полезных приложений на Маке. Так что, похоже, в ближайшее время особо лучше не станет.

16 thoughts on “Апдейт — всему голова?

  1. На выходных был очень удивлен, когда App Store предложил мне сразу 13 обновлений 🙂 На зарубежных форумах некоторые отписывались и о трех-четырех десятках доступных апдейтах %)
    Меня в App Store раздражает только одно – невозможность скопировать текст и взять изображения.

    • в линуксе проблема “обновления всего и вся” решена давно, многими разными способами, но все с одной идеей – механизм обновления единый, а репозитории у каждого вендора могут быть свои. Конечный пользователь про все эти тонкости может даже не догадываться.

  2. всегда есть выбор… ты или играешь по правилам “большого брата” и получаешь свой кусок с праздничного стола, или уходишь голодный, но гордый в поисках своего счастья. воевать с мельницами бесполезно… Apple, как и все мы, развивается по законам регрессии – за каждым подъемом обязательно следует спад. диалектика 🙂

  3. Интресно, какой именно код в iPref был не совместим с OS 3.0. Почему-то остальные игрушки прекрасно работали. Сильно подозреваю, что все проблемы возникли из-за хваленой системы защиты от копирования. Что характерно, на сайте разработчиков не было ни слова о проблеме с  OS3.0, хотя несколько недель в Appstore висело недешевое приложение, которое даже не запускается. Ну и вполне ожидаемо, что хваленый алгоритм игры как изначально был построен на подглядывании в карты игроков, снос и прикуп так и остался. Слова так и остались словами.

    • во-первых, когда приложение уже стоит в статусе pending for review, с ним ничего нельзя сделать, даже убрать его оттуда. Поэтому “висело недешевое приложение” — все претензии к Apple, мы подали его ДО выхода 3.0. А что касается алгоритма — что означает “слова остались словами”?

      • А комментарий в AppStore изменить тоже нельзя? А на сайте большими красными буквами написать, что оно не работает? Основные покупатели iPref – россияне. Трудно на iPhones.ru и подобные повесить новость – там Ваш же человек рулит.
        Претензии не к Apple. У Apple Texas Holdem не обновлялся ни разу и работает на всех прошивках, хотя посложнее раз в сто. И куча других игр тоже. iPref не имеет ни мультиплеера ни каких-то иных заморочек связанных с системой – так почему не работает? Больше чем уверен, что дело в системе защиты, хотя Вы на этот вопрос не ответили.
        Когда жутко сырой iPref только вышел сразу выяснилось, что алгоритм игры основан на подглядывании. Вы сами это подтвердили, указав, что скоро будут обновления, где это поправят. Был всего один апдейт с исправлениями уж совсем вопиющих несоответствий правилам преферанса и все. Алгоритм как был жульнический так и остался.

        • комментарий в App Store — стандартный чекбокс, указывающий совместимость приложения. ну и опять же, кто же знал, что Apple будет так долго утверждать приложение. с объявлениями на сайтах та же ситуация, гдето повесить нельзя, где-то нет смысла, так как “вот-вот же должны пропустить прогу!”.
          а то, что не работала программа — да, в 3.0 изменилась схема работы с памятью, что сказалось именно на том, как работает система защиты. какая разница на самом деле, из-за чего не работала программа?
          Переделка алгоритма — это весьма существенный кусок работы, и несмотря на наше желание его обновить, это не самая приоритетная на данный момент задача. Да, хотелось бы улучшить, но получится, когда получится, поэтому странно видеть обвинения в том, что “обещали, но не сделали”.

          • Да собственно все логично, если учесть что продукт хакерский. Четырехметровый забор из кирпича вокруг домика из картона – это по нашему. Особенно весело читать комментарии пользователей, которые купили за 7 баксов программу, а она даже не запускается. Защита от копирования не дает. 🙂
            “Улучшить” не совсем нужное слово для алгоритма основанного на ГРЯЗНОМ ОБМАНЕ. В AppStore куча карточных игр, покера например, однако я не видел ни одной где все основано на подглядывании в карты игрока.

          • в покере, однако, нет толком никакого алгоритма, в отличии от преферанса.

          • Это как раз в преферансе есть достаточно четко формализованный аглоритм торгов, вполне доступный и без жульничества. А тут компьютер имея на руках три взяки смело торгуется до восьми и “чисто случайно” получает два туза. В другой раздаче имея верных 6 взяток – пасует, потому как неблагоприятный расклад ему известен. Ну про снос на мизере и говорить не приходится.
            Не требуется особых усилий чтобы ЧЕСТНО написать давно известный и хорошо формализованный алгоритм торгов, которым пользуются все игроки в преф, даже самые неопытные. Вот в покере все гораздо сложнее.

  4. А зачем использовать Private APIs? Всё публичное API продолжает работать от версии к версии и неважно насколько серьёзным был апдейт системы. Если же публичное API у вас перестало работать, то что именно, если не секрет? Багу на эту тему загнали?

Leave a Reply