Pull to refresh

Как попасть в App Store. Или история случайного аппрува

Reading time5 min
Views11K

Привет Хабр,

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



Сама идея написать приложения для iOS и Android витала в моей голове довольно давно, так давно что даже стала идеей фикс. Заразив энтузиазмом своих друзей, мы стали выбирать из вороха вариантов то, что должно было стать нашим первым приложением.
Смысл эдакой селекции был прост — подтянуть навыки в программирование под мобильную платформу для создания в будущем мега приложения. К сожалению, сбыться этому развитию событий было не суждено.

Прыгнули мы, как говорится, с места — в карьер. Являясь идеалистами по природе, мы очень бережно отнеслись к выбору идеи. Тратить время на очередной клон или никому не нужную утилиту, определенно не хотелось. Идеальным вариантом была игровая индустрия, но Бог обделил толковым дизайнером в команде, да и создание, даже простенькой Indi игры было бы для нас делом нескольких лет. Посему на очередном “пивопое”, было решено сделать игру, но для людей не желающих бездумно убивать время, водя пальцем по экрану запуская очередную птичку или разрезая банан на части.

Что же мы такого придумали, справедливо спросите вы? А ничего на самом деле оригинально-гениального. Можно, даже сказать, что идея была проста и знакома до безобразия. Мы решили делать онлайн викторину, с умными вопросами, динамичным чатом и старым, добрым ботом-ведущим. Думаю, многие из вас помнят IRC викторины, в которые, играют и по сей день.

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

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


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

В процессе обсуждения, было принято стратегическое и спустя время — правильное решение написать игру используя HTML5 & javascript.
Рабочим фрэймворком стал Titanium, а игру мы научили общаться с системными функциями каждой платформы через колбэки(callbacks),
например покупка виртуальных вещей через механизмы App Store, GooglePlay, Facebook(credits).

Клиентский код был написан на GWT. iPhone и Android общаются с сервером посредством стрингов через веб сокеты. В обычных браузерах, если нет поддержки веб сокетов, то общение происходит через flash сокеты.
Несколько слов о сервере. Это набирающий популярность java web server Netty прикрученный к Amazon. Для базы данных мы использовали MongoDB.
До и после. GWT в действии.


Ну хватит уже технических подробностей, мне уже не терпится рассказать вам, что было дальше :)
Итак, доделав первую сносную версию приложения, где работали уже все функции(не без багов и мелких косяков, конечно). Мы решили залить приложение на эпловскую модерацию, дабы узнать в правильном ли направлении мы движемся. Так же было интересно понять уже на раннем этапе, по какой причине приложение будет отклонено. Как оказалось это было отчасти ошибкой, т.к. через 6 дней статус приложения поменялся сначала на “In Review”, потом на “Processing for App Store”. Финальным аккордом стало письмо с темой “Your app status is “Ready for Sale”.
Судорожно взяв в руки iPhone и запустив поиск App store, я… нашел наше приложение.
Это сейчас я понимаю, что нужно было подстраховаться и поставить датой публикации “Release after approve” Но задним числом мы все умнее, правда?

Я же пытался понять, что нам делать дальше.
Выбор пал на самый простой вариант — не делать ничего. Мы решили допилить уже имеющуюся игру, добавив всё то, что хотели видеть в финальной версии и будь что будет.

А было вот как:
Уже через 2 дня, без какой либо рекламы наше приложение скачало около 200 человек и начали дружно играть. Такой поворот событий нас, несомненно, ошеломил. С одной стороны приложение стало доступно со всеми недоработками и багами, а это стыдно. С другой же, это придало нам уверенности, утвердив осознание того, что мы движемся в правильном направлении.
Хотелось бы выразить благодарность, а так же принести извинения всем тем, кто не по своей воле стал нашим бета тестером. Вы все нам очень помогли!

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

Через несколько месяцев мы уже обкатывали новую, совершенно другую версию игры, которую уже можно было отправлять на модерацию. Обновления были действительно глобальны. Мы изменили игровую модель, разбавив геймплэй новыми функциями и возможностями.
Ввели игровую валюту, тем самым монетизировав все новые фишки. Добавили авторизацию через facebook, прикрутили twitter.

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

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

Модератора не устраивал внешний вид интерфейса. То бишь, он не отвечает эппловским стандартам по всем известному гайду. Отчасти я понимал, что это дело вкуса. Один модератор посчитал дизайн приложения достаточным. Другой же нашел его не отвечающим стандартам. По идее можно было попытать счастья новой попыткой, надеясь попасть не на “эстета”, но я решил отправить в довесок небольшое письмо.

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

Потянулась очередная неделя долгого ожидания. Мы получили очередной отказ. На этот раз они мотивировали его невозможностью размещения приложения в App Store, которое является по сути “web app”.

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


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

На этом эпопея с случайным аппрувом нашего первого приложения можно считать законченной. Правда конец, это начало чего то нового. Но как говаривал классик, — это уже совсем другая история :)

P.S. Кому интересно название приложения, я думаю он без труда найдёт его в тексте ;)
Tags:
Hubs:
Total votes 52: ↑34 and ↓18+16
Comments26

Articles