Pull to refresh

От Дублина до Сингапура: история разработки iPad приложения

Development for iOS *
Привет хаброчеловек!

На днях я выпустил детское приложение-раскраску для iPad Colorific. Разработка затянулась на год, но теперь, когда основная работа завершена, я хочу поделиться некоторыми вынесенными из всей этой истории уроками.



«Баловаться» с Cocoa я начал примерно полгода спустя после того, как у меня появился белый iMac G5 20" в 2005 году. Тогда я потратил на него я почти всю свою месячную зарплату. После 4-х лет на Slackware и Debian Linux макось (на тот момент Tiger) была как глоток свежего воздуха. Дальше баловства дело не заходило. Написал пару утилит для себя на Cocoa, поэксперементировал с AppleScript и отложил это дело в долгий ящик.

В следующий раз я открыл XCode, когда Apple зарелизил свой SDK. Я был полон энтузиазма, ведь они пошли примерно тем путем, о котором я говорил друзьям. Мне всегда не нравилась «анархия» в J2ME разработке, и казалось, что Apple должен пойти по пути Brew от Qualcomm, только сделать это не так «топорно». Собственно всё — среда разработчика XCode, Instruments и App Store казались мне просто идеалом того, как дожен выглядеть мобильный SDK. У меня был совсем небольшой опыт на заре J2ME, и мы даже не могли мечтать о такой инфраструктуре.



Но на одном восторге много не заработаешь. Сам я как-то не решался начать, а все знакомые разработчики упирались в необходимость покупки мака и нежелание инвестировать деньги даже в Mac Mini. Так я проспал эру «золотой лихорадки» в App Store.

В 2010 году Apple объявила о выпуске iPad. На этот раз я решил не упускать момент. К тому времени мы уже перебрались в Дублин и мой друг, профессиональный программист на J2ME и любитель Android решил ко мне присоединиться. На тот момент у меня был iMac и MacBook и я поделился с ним буком. Мы решили сделать раскраску для детей, так как формат iPad был для этого идеален. Начали мы, когда iPad еще не поступил в продажу но SDK уже появился.

Мы быстро начали писать код и достаточно шустро сделали черновик программы. Можно было выбирать цвет, рисовать пальцем по экрану и делать заливку замкнутых областей. Все очень неплохо работало на симуляторе. Потом начались продажи iPad в UK, я сел в машину, доехал до ближайшего города в Северной Ирландии — Newry — и купил заветный девайс.

После тестирования приложения на iPad мы поняли, что нынешняя версия ни на что не годится. Core Graphics безбожно тормозил при рисовании пальцем по экрану. Вы это можете наблюдать в большинстве бесплатных рисовалок. После небольшого исследования было выявлено, что все «грамотные» рисовалки сожержат OpenGL ES библиотеку, и было принято решение все переписать.

Никто из нас до этого не работал с OpenGL. Почитали Джефа Ле Марша, посмотрели эппловские примеры кода и начали писать. В итоге через какое-то время уперлись в недостаток знаний в этой области. Было два View класса: один умел рисовать, другой делать заливку. С объединением их в один класс были проблемы. В итоге после некоторых мучений мы забили. Надо сказать, что на тот момент я уже заказал дизайн и заплатил за него, и было очень обидно бросать проект.

Затем начались собственные проблемы — компания решила закрыть офис в Дублине, мне предложили перебраться с повышением в Сингапур. Мы долго думали, потом решились переезжать. Естественно, в это время было уже не до разработки. Так с сентября 2010 до мая 2011 раработка не велась совсем. В мае я решил, что раз деньги потрачены — надо бы их вернуть :) Начал прикручивать нарисованный интерфейс к коду. Одновременно я нашел программиста на free-lance.ru, который частично мне помогал с OpenGL. Дизайнеру заказал еще сделать вебсайт для приложения, что он успешно сделал за несколько дней. Ну и нанял иллюстратора для создания шаблонов раскраски.

Надо заметить, что на этом этапе я тратил уже очень много времени. От бега по вечерам (я бегал по 10-15км) пришлось отказаться, так как стало не хватать времени.

В итоге к концу июня приложение было готово, и я приступил к бета тестированию. Так как приложение расчитано на детей, а у нас пока их нет, я задался цель найти бета-тестеров с детьми. Среди знакомых оказалось немного владельцев iPad с детьми (всего одна пара), поэтому я решил запустить public beta. На форуме macrumors.com я запостил объявление о наборе бета тестеров. Для распространения беты использовал сервис Test Flight. Он очень удобен — предоставляет форму регистрации для тестеров, автоматом собирает UDID и собирает информацию о девайсах и версиях iOS, помогает собирать feedback, рассылать новые версии беты и т.д. В общем, я очень рекомендую Test Flight людям, которые хотят заняться public тестированием своего приложения.

После тестов были выявлены некоторые недостатки, было несколько запросов новых фич и т.д. Практически все запрошенное я реализовал в релизе. В качестве благодарности тестерам, которые присылали репорты, я разослал промо-коды к релизу, а лучшему тестеру выслал стилус для iPad.

Затем начался процесс заливки приложения в iTunes Connect, ожидания рассмотрения командой цензоров и т.д.
Что могу здесь посоветовать новичкам (а может и не только новичкам).
Если вы хотите залить переводы описаний делайте это до заливки бинарника в iTunes Connect: после заливки, пока идет ожидание рассмотрения приложения, сделать это нельзя. Это было моей ошибкой, так как я заказал 2 перевода, но решил, что пока рассматривают приложение я могу подожать, а потом добавить переводы. Оказалось, что нет :) Надо добавлять локализацию (даже если речь о переводе описания в App Store) до добавления бинарника. Теперь я вынужден выпускать апдейт для добавления локализаций.
Приложение было в ожидании рассмотрения около полутора недель. Рассмотрели его за несколько часов, и затем мы его зарелизили в AppStore.

Сейчас мы бъемся над раскруткой. Мне помогает жена, но опыта в раскрутке мобильных приложений у нас нет. Статей читал много, в том числе и на хабре, но тем не менее тут нужен опыт.

Забавный факт: понадобилось всего 2 продажи в Бахрейне за день, чтобы вывести приложение в местном App Store в Top 4.

Что я вынес из своего первого опыта:
1. Начинайте маркениг ДО начала кодинга. Выбор приложения, целевой аудитории — это тоже маркетинг. Прочитайте книгу App Savvy — она очень неплозо описывает процесс разработки со стороны не-разработчика.
2. Разработывайте быстро. Когда мы начинали не было ни одной раскраски для iPad. Когда мы уперлись в проблему с OpenGL было всего 2 очень убогих приложения. Спустя год мое приложение теряется в App Store.
3. Не пытайтесь сами сделать дизайн, если вы не профессиональный дизайнер. Все отзывы о моем приложении начинались со слов «какой у вас классый дизайн» или типа того. Он, возможно, не идеальный, и нам еще предстоит над ним поработать, но у большинства раскрасок и детских рисовалок все совсем плохо.
4. Если при разработке вы уперлись в проблему недостатка знаний — рассмотрите возможность аутсорсинга. Я уверен, что если бы я пришел к этому решению на 8 месяцев раньше, продажи отличались бы на порядок.
5. Тестируйте на девайсе. А лучше нескольких. У нас в семье есть обе модели iPad. Даже переписаное на OpenGL приложение притормаживало на первом iPad. Пришлось переписать часть кода на plain C и существенно оптимизировать алгоритм.
6. Будте готовы отдать практически все свое свободное время на разработку. И даже когда разработка окончена, я трачу все свободное время на попытки раскрутки приложения. Но не доводите до фанатизма (сегодня я нашел 3 часа на бег ;))

Ну и конечно же я хочу здесь дать ссылки на свое приложение и скриншот, надеюсь вы не против. Возможно, это поможет мне немного поднять рейтинг в российском App Store. Я организовал небольшую лотерею — приславшим разрисованные раскраски мне на email или запостившим свои работы на страницу приложения в Facebook я высылаю stylus. Вышлю я 15 участникам с наибольшим количеством «Like» на их картинке в Facebook.





Ссылка на App Store: тыц
Website: colorificapp.com
Facebook page: facebook.com/colorificapp

Так же, пользуясь случаем, хочу передать привет хочу попытаться найти человека, со знанием Objective C и OpenGL ES. Мне надо поправить некоторые вещи и, возможно, провести оптимизацию, естественно не за спасибо ;)

Если у кого есть предложения/feedback/советы по самому приложению, раскрутке и т.д. — пожалуйста, добро пожаловать в камменты. Ну или пишите на твиттер @colorificapp.

Части кода приложения были написаны в: Ирландии, Сингапуре, Украине, Малайзии и немного в Москве.

Удачи в разработке!
«Кто не рискует, тот не пьет шампанского.» (с) Народная мудрость

UDP: Меня только что «зафрендил» на хабре дизайнер моего приложения и сайта. Это пользователь Mokkey.
Tags:
Hubs:
Total votes 72: ↑57 and ↓15 +42
Views 4.5K
Comments Comments 42