ТЕКСТ: ДИМА КЛИЧИНСКИЙ Приветствую посетителей айфонса. Меня зовут Дима и я расскажу вам один забавный случай, который связан с аппрувом. Хотел бы поделиться с вами опытом, и пусть он вдохновит вас на написание первого приложения. Согласитесь, что App Store – это та первая вершина, к которой стоит идти.
Аппрув – это особое событие для разработчика, требующее тщательной подготовки. Но везде есть исключения из правил, а порой нужно простое везение. Иначе, как можно объяснить успешную модерацию с первой попытки сырого материала? Или это все-таки закономерность? Яблоко мне на голову не падало, и вещего сна тоже не было. Были энергия, терпение и Идея.
1. Начало начал
Итак, как же все начиналось? Как и многие пользователи девайсов Apple, я увлекся этими устройствами и загорелся идеей создать собственное приложение для iOS. Прежде, чем взяться за нечто масштабное, я решил набить руку с простым проектом. С другой стороны разработка под мобильную платформу требует взвешенного подхода и с наскока ничего путного не получится. Другими словами: либо делать хорошо, либо не делать вообще.
Для этой задачи мне нужны были помощники, а еще лучше – несколько. Проведя мозговой штурм своим приятелям-программистам, я обзавелся командой и бросился в атаку на ветряные мельницы игровой индустрии. И не надо фыркать, что мы выбрали наиболее предсказуемую цель, потому что здесь тоже пришлось приложить некоторые усилия. Например, существенно осложняло задачу отсутствие в нашей обойме толкового дизайнера.
На самом деле основная трудность состоит в достаточной мотивации, которая заставит заработать весь коллектив эффективно и получить результат. Все остальное – лишь отговорки и следствие недостаточного желания. Если чего-то хочешь, действительно хочешь, то найдешь и время, и возможность для занятия любимым делом. У всех нас есть семья и работа, но мы все равно смогли выделить временные ресурсы для хобби.
2. Какой выбрать жанр?
Мы решили остановиться на онлайн викторине и тому есть несколько причин.
Банальное отсутствие профессионального дизайнера.
Если навыки в программировании еще можно подтянуть, то здесь включиться в тему, прочитав пособие для чайников в стиле «Как стать дизайнером за 10 дней» вряд ли получится.
Лично я против бездумного убивания времени вообще и с помощью гаджетов в частности.
Считайте меня идеалистом и ботаном, но я скорее буду отвечать на вопросы, чем монотонно стрелять птичками или резать фрукты на экране.
Не люблю быть вторым номером и подражать, кому бы то ни было.
Также я против создания аналогов какой-то популярной игры. Копирование чужой идеи, чтобы выдать еще один клон – это не для меня. С другой стороны этим не брезгуют даже мастодонты электроники. И все равно, это не мой путь.
3. Закулисье разработчиков
Итак, на «военном совете» было решено работать над онлайн – викториной с множеством в меру сложных вопросов, динамичным чатом и старым добрым ботом-ведущим.
Постепенно нам удалось создать более-менее приличное с точки зрения дизайна приложение. Что касается программного обеспечения, то мы взяли за основу HTML5 & javascript. Дополнительным преимуществом данного решения было возможность создать единое приложение для всех платформ.
Игру мы научили общаться с системными функциями каждой платформы через колбэки (callbacks). Например, покупка виртуальных вещей осуществляется через механизмы App Store, GooglePlay, Facebook (credits).
Рабочим фрэймворком стал Titanium, а клиентский код был написан на GWT. IPhone и Android общаются с сервером посредством стрингов через веб-сокеты. Если их нет, то общение происходит через флэш-сокеты. Для сервера мы выбрали набирающий популярность java web server Netty, прикрученный к Amazon. Функцию базы данных выполнил MongoDB.
Всего месяц регулярной работы и мы уже имели первый рабочий вариант Trivi Online. Пусть он выглядел аскетично, но чат и движок викторины функционировали, а это главное.
4. Закон Мерфи
Не знаю, как получилось, но нам дали зеленый свет с первой попытки! Я отослал приложение в App Store, чтобы только бросить пробный шар. Мы хотели получить оценку, а пришло письмо с темой: “Your app status is “Ready for Sale”. Сказать, что мы были ошеломлены – значит, ничего не сказать. В течении следующих двух дней Trivi загрузили более 200 человек без какой-либо рекламы и маркетинговых ухищрений с нашей стороны. Мы решили пустить приложение на самотек до большого обновления стабильной версии.
Было очень стыдно, что программа вышла на сцену с букетом детских багов. С другой стороны, команда получила допинг для более энергичной работы, чтобы все исправить. Улучшенную версию мы отсылали со спокойным сердцем, но не тут-то было! Именно в ночь проверки сервис подвис, и игра не запустилась!
Соответственно, нам прислали холодный отказ со шлейфом критических замечаний. Главный минус модератор увидел в дизайне, хотя предыдущий его пропустил. Но мы не опустили руки и вступили в переписку с Большим Братом. Наше ответное письмо апеллировало к аппруву старой версии и содержало подробное разъяснение используемых технологий. То ли снова вмешался закон Мерфи, то ли вышел на смену первый модератор, но нас пропустили.
5. Начинающему разработчику
А теперь несколько банальностей для тех, кто хочет решиться начать создавать для iOS и Android. Звучит это на самом деле тривиально. Но поверьте, без этих основ не стоит даже начинать.
Не бойтесь мечтать
Плох тот солдат, который не хочет стать Наполеоном. Главное поставить себе цель и идти к ней. Поверьте, вы можете многое, если приложите определенные усилия.
Оптимизируйте свой ежедневный график
Правильная организация своего времени – это залог успеха. У всех нас только 24 часа в сутки, только используем мы их по-разному. Кто-то и на работу опаздывает, а кто – умудряется выкроить дополнительные ресурсы для любимого дела.
Учиться и еще раз учиться
Неважно, если у вас не хватает знаний – их всегда можно получить. Намного хуже, если нет соответствующего желания. И потом, в процессе работы обучение идет намного эффективнее, потому что вы наглядно видите результат применения новой информации. Мы, например, давно хотели GWT освоить. А в процессе написали ещё и свой протокол общения клиент-сервер.
Боритесь за свое детище
Порой надо простое упорство, чтобы прийти к финишу. И помните, что взгляд со стороны – это очень важно, не закрывайте глаза на конструктивную критику. Не бойтесь показывать ваши наработки.
Не делайте ничего наполовину
Тут как с похуданием. Приложение, как и тело, нужно ненавидеть и любить одновременно. В процессе, наверняка, придется чем-то жертвовать. Жертвуйте не в ущерб общей задумки.
Не останавливайтесь на достигнутом
В то время, когда модераторы Apple слали нам свои отказы, мы продолжали разработку. Сразу же после обновления мы запустили приложение на Facebook. А очень скоро выйдет и Android версия в купе с новым дизайном. После публикации статьи о Триви на одном тематическом IT ресурсе на нас вышел талантливый дизайнер и предложил безвозмездно помочь. Пути девелопера неисповедимы, знаете ли.
iPhone + iPad: Free [iTunes link]
Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
Источник: