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

    Привет хаброчеловек!

    На днях я выпустил детское приложение-раскраску для 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.
    Поделиться публикацией

    Комментарии 42

      +1
      Симпатичное приложение, купил ребенку.
        +2
        спасибо!
        Если будут какие-то советы, отзывы — пишите. У меня есть уже TODO, но я не собираюсь останавливаться на первом выпуске. На сайте есть форма для запроса фич.
          +2
          Хорошо. Вообще, вы молодец, что нашли в себе силы закончить проект. У нас тоже есть долгоиграющий проект, который тянется уже около года. К счастью, в последнее время работа над ним идет полным ходом :)
        –2
        «Надо сказать, что на тот момент я заплатил дизайнеру 100% стоимости его услуг, и было очень обидно бросать проект.»
        А если бы не 100%, то кинули бы и дизайнера что ли?

        А вообще спасибо. Собираю опыт для реализации пары идей.
        Удачи в будущих начинаниях.
          +4
          Почему кинули? Я платил вторую половин уже зная, что сами мы не закончим.
          Я всегда плачу за работу, даже если это тестовая работа и я выбираю другого человека.
            +1
            Да я смайл забыл поставить :) Просто фраза реально странная :)

            Статья — именно то, чем я сейчас и занимаюсь. А именно продумыванием маркетинга. Ещё нет идей, нет опыта, но есть цель — зарабатывать на своих приложениях. Соотв. я пока что уже месяц думаю в направлении именно маркетинга и монетизации и вот такие статьи как нельзя кстати. Много Вы, конечно, ужастиков понаписывали и про нехватку знаний/опыта, и про сроки.
            В общем большое спасибо за статью!
              0
              Может имеет смысл сначала найти идею, а уже потом думать о маркетинге и монетизации? Делить шкуру не убитого медведя не слишком прибыльное занятие. :)
                +1
                Я думаю у каждого свои методы. У меня специальный набор методов. Это и списки идей по категориям и сложности, и принципы монетизации, и варианты продвижения и рекламы, и много всего другого.
                Идей слишком много, также слишком много всего реализовано. И вот между всем этим мы ищем середину, псоле реализации которой и мне не напишут «о, да, вы создали очередную недопрограмму, спасибо» и прри этом команда будет довольна материальной отдачей.
                Как-то так.
                0
                Я перечитал и решил изменить немного фразу, чтобы не было неоднозначностей. Спасибо.
            0
            А чего странного. На самом деле жалко бросать, когда деньги уплачены. Это был один из стимулов продолжить разработку. Точнее основной стимул :) Ну жадный я, жалко мне потраченных денег.

            Сроки не такие ужасные, если разрабатывать без остановки. И естественно очень зависит от квалификации программиста. Я практически с GUI не писал, у меня 7 лет опыт в разработке ПО для SIM карт. Поэтому мой опыт был сильно нерелевантный.
            Пожалуйста!
              0
              а как вы искали дизайнера? Кде смотрели, чего прасили, от чего дизайнерские работы оценивали?
              Не было тому давно как прочитал пост о старте ифон приложения, вид у иконки (сожрать со сливкамы) — купил, загрузиль и приболдель, браль то я иза иконки а детские пуцли какийто недотянутие по виду. Вот и спрашиваю чем руководились. Заранее спасибо
              +1
              бег — это хорошо.
              а вот бросать его и начинать потом заново — не так уж и хорошо.
              заново нужно вводить себя в «режим»… по крайней мере у меня такие ощущения были, когда усиленно начал учиться)
                0
                Я его не просто бросил. Я стал ходить в спортзал в обеденный перерыв своей основной работы. То есть освободил вечер.
                0
                Великолепно, посмотрел ролик захотелось купить ipad. :-) Ну или заняться разработкой приложений под i-девайсы. В разработке чувствуется серьезный подход. Не пробовали найти себе издателя? Буквально пару дней назад была статья о игре для appstore, там человек раскрутку оставил издателю, а сам сосредоточился на разработке. Подумайте — приложение имеет перспективу. Удачи вам!
                  0
                  Вот кстати ссылка: habrahabr.ru/blogs/gdev/127132/
                    0
                    Спасибо!
                    Ну пока я думаю учиться на своих ошибках, сам раскручивать итд. Я рассматриваю разработку iOS как свой бизнес в недалекой перспективе. Поэтому на данный момент мне важно почувствовать рынок, возможно ценой потери неплохого заработка на приложении. Возможно я заплачу компании, специализирующимися на раскрутке iOS приложений в итоге.
                      0
                      1) вышеупомянутому издателю не надо платить. он просто заберет ~50% от вырученного.
                      В топ 25 US они выводят быстро.

                      2) Расскажи, пожалуйста, какой GL функцией ты рисуешь треугольники.
                        0
                        1) Так как приложение уже выпущено, то я не думаю, что еще можно завязаться с Chillingo.

                        2) Там рисуется текстура при рисовании пальцем. При заливке закрашивается по пикселю. Треугольников нет.
                    0
                    Извините, конечно, но эффекта именно детской раскраски не просматривается :) Это просто инструмент для заливки замкнутых областей. Как я понимаю, суть раскраски — это штриховка карандашом, движение кистью. В данном случае это должно быть «раскрашивающее» движение пальцем etc
                      0
                      Хотя нет, вижу. В демо-ролике не сразу понятно.
                        0
                        Да, там есть карандаши. Более того контур шаблона нельзя зарисовать.
                      0
                      Очень интересно узнать как продвигаете?
                      Сколько продаж для приложения такого жанра?
                        0
                        Продвигаем — рассылаем приглашения написать review на приложение. Тк народ отвечает медленно (точнее почти не отвечает), то продажи пока падают. Так же начали вчера поиски специализированных страниц в фейсбуке. Первые два дня был доход сравнимый с одним днем заработка сениор девелопера в Москве. То есть при таких уровнях можно бы было оставить основную работу, но на 3й день доход упал в 4 раза. Видимо в первые 2 дня был эффект от prMac. Проблема в том, что запросы рассмотреть приложение мы начали в день релиза (тк до этого не было промо-кодов), естественно обзоры не появляются в тот-же или на следующий день. Я все еще надеюсь на написание обзоров и рост продаж.
                          0
                          Выполните несложный квест по поиску моего email адреса :)
                          По пути поймете куда писать нужно было в первую очередь…
                        +1
                        Хорошая раскраска. Давно не видел таких качественных приложений.
                          0
                          Спасибо большое!
                          +1
                          Из опыта скажу, что правильная раскрутка — 90% успеха…
                          Удачи вам!
                            0
                            Спасибо!
                            Я уверен, что качество приложения и дизайн тоже очень важны, но несомненно без раскрутки никуда.
                            У нас уже осталось всего 3 промо-кода и при этом появилось всего одно ревью… Думаю, что надо искать еще варианты, кроме обзоров на сайтах. Более того, почти все они хотят денег за «ускоренный» и гарантированный обзор.
                              0
                              хотелось бы увидеть список сайтов для ревью. есть какой-то общий ресурс или вы их собирали самостоятельно?
                                0
                                На самом деле составляли список сами. Постить его смысла не виду, так как из разосланных запросов (а некоторые сайты сразу просят промо-коды) пока нет ни одного ревью. Ревью появилось на одном сайте, которому мы даже не посылали запрос.
                                Либо у меня не интересный продукт, либо реально надо платить деньги за review.
                                  +1
                                  Вот кстати, неплохой список с ranks от Alexa.com
                                  www.altiapp.com/2011/08/ultimate-list-of-free-iphone-app-review-sites/
                                    0
                                    О! Это интересно, спасибо. Хотя как-то не расчитывал на бесплатные.
                                    Вообще как и вы хочу понять кухню раскрутки, мне кажется этот квест посильнее самой разработки приложения ;)
                              0
                              У меня есть знакомый, который лет 10 назад купил 2 диска по 3dsmax (наверное программа и обучалка, или только программа) за довольно большие по тем временам деньги (не лицензия, понятно, но по школьным временам это все равно было много). Посмотрел на это дело, да и забил.
                              А потом, несколько месяцев спустя, подумал: «Да какого черта, я ведь кучу денег на него потратил!». После этого он начал становиться (и уже довольно давно стал) очень крутым 3dsmax'ером :)
                                +1
                                Алексей, поздравляю!
                                  +1
                                  Спасибо!
                                  0
                                  На видео ощущение что снято с использованием мышки если честно.
                                    0
                                    Если вы мне подскажете как сделать видео без использования мышки — я скажу вам спасибо :)
                                    Видео можно записывать только на джеилбрейкнутом девайсе, но естественно поинтера видно не будет.
                                    В реале пальцем раскрашивать такие маленькие детали как лепестки трудно, я обычно для этого пользуюсь заливкой. При использовании стилуса все очень удобно (наверное удобнее чем с мышкой).
                                    –1
                                    Че-то так надоели такие приветствия!
                                    Интересно, а в Ведомостях надо начинать статьи с «Здравствуйте, уважаемые ведомостидамы и ведомости господа».
                                    Вот так вот, даже читать потом уже не так интересно.
                                      0
                                      Это магически действует на ЧСВ.

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое