Многим из нас (и мне в том числе), приходила в голову идея создания своего iOS-приложения. Обычно мы вдохновляемся опытом очередного разработчика-одиночки, заработавшего миллион долларов в App Store, но дальше скачивания Xcode у нас редко доходит. У Юрия Чухлиба, сегодняшнего героя нашей рубрики «Питч», было всего три недели свободного времени, но он не зас побоялся взяться за создание приложения и довел это дело до конца, вернее до App Store. Далее его рассказ, в котором он делится своим опытом.

Немного обо мне

Меня зовут Юра, недавно мне исполнилось 18 лет, учусь на втором курсе политехнического института на программиста. Я открыл для себя мир разработки под iOS почти год назад, в мае. Помню, тогда попал на статью, что создатель Flappy Bird по примерным подсчетам получает от рекламы 50000 долларов в день. На тот момент все, что я умел, это писать простые программы в консоли на паскале. Так что я сразу принял решение начинать копать тематическую литературу и развиваться в сторону iOS.

Откуда возникла идея игры

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

Процесс создания

Где то через пару дней я прикинул, что до универа осталось три недели и можно успеть создать и выбросить в App Store какую-нибудь игрушку. Тогда я и вспомнил про квадратик. Решил следующее: заставить его падать с препятствиями и по ходу разработки прикрутить что-нибудь еще.

Снимок экрана 2015-01-26 в 18.47.19

В отличие от других своих «шедевров», я решил создать эту игру по всем правилам, соблюдая все шаги. Начал с модели на бумажке. Потратил буквально 15 минут(но это сэкономило мне часы разработки) — получилось довольно просто и понятно. По опыту, сначала решил создать все картинки для игры, а только потом начинать писать код.

Как-то спонтанно в голову пришла идея, что квадратик должен быть не одноцветным — нужно его оживить и добавить эмоций. Рисовать я не умею, поэтому открыл Pages и начал пробовать. Хотел сделать его каким-нибудь простым и веселым. Внизу фото моего лучшего варианта (их было больше 20), как мне кажется, он какой то больной получился.

Снимок экрана 2015-01-26 в 18.47.32

Я понял, что проще купить за пару долларов хорошие картинки, а не насиловать зря компьютер. Зато все остальные изображения сделаны полностью мной в программе Pages.

После создания всех изображений начался самый долгий и нудный(местами веселый) этап: нужно писать код, просто писать очень много строк кода. Я понимал, что игрушка получится немаленькой, поэтому с первых строк пытался делать код читабельным и логичным. Где то до 2000 строк у меня получалось…

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

  1. Ты знаешь, где облажался, но все равно смотришь, как не работает программа, потому что часто результаты непредсказуемы и иногда довольно забавны.
  2. Ты не знаешь, где облажался, но все равно смотришь, как не работает программа, потому что у тебя безысходность и больше нечего делать.

Большую часть времени я был во втором состоянии, но иногда возникали интересные ситуации, как та, что ниже на скрине:

screen568x568-2 screen568x568

Я планировал закончить писать игру через 3–4 недели после начала, но все затянулось на три с половиной месяца. После завершения я был приятно удивлен своим результатом, потому что я реально часто хотел в нее играть, не смотря на то, что уже играл несколько сотен раз во время разработки и тестирования. Потом начал тестировать на своих одногруппниках, особенно понравилось, что после проигрыша я очень часто замечал ту же злость, что и от Flappy Bird, люди проигрывали, матерились, но снова начинали играть, что бы заработать яблочки и разблокировать следующую оболочку для коробочки. Когда они бесились от проигрыша, меня переполняла радость, я понимал, что это успех. :)

Снимок экрана 2015-01-26 в 18.48.11

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

Для айфона и айпада я использую одинаковые изображения очень высокого качества, поэтому игрушка получилась аж на 16 мб, но я просто обожаю играть на айпаде и смотреть, как это все выглядит на Retina-дисплее.

Снимок экрана 2015-01-26 в 18.48.28

Поскольку человек всегда воспринимает цифры и картинки с большим интересом, чем текст, хочу привести вам несколько фактов в цифрах о моем приложении:

  • Весь обьем игры — 5700 строк. Плюс-минус 300 строк на комментарии к коду.
  • Финальная версия имеет 53 предупреждения в коде. Это не ошибки, с ними программа будет работать, но это значит, что в этих местах Apple хотели от меня немного другого. :)
  • На создание магазина коробочек и встроенные покупки я потратил больше двух с половиной месяцев, то есть в несколько раз больше, чем на всю остальную игру.
  • Изначально я назвал свою игру Crazy Box, но потом оказалось, что это имя уже занято. Поэтому в самом App Store написано «Crazy Box Fall», но под иконкой старое название.
  • Все изображения я создавал не в графическом редакторе, а в текстовом (Pages).
  • Когда опубликовали iOS8, мне пришлось переписать всю игру с нуля, потому что до этого я тестировал на 7-ой версии, а на 8-ой ничего даже не запускалось.
  • Каждое яблочко появляется с вероятностью в 25%.
  • Мой личный рекорд — 134. Ни у кого из знакомых не получалось набрать больше 117.
  • Уже готово обновление ко Дню святого Валентина с пятью новыми коробочками.
  • Каждый месяц я буду добавлять 10–20 новых оболочек для коробочки, вас ждет много сюрпризов. :)

Если вкратце, как то так и проходил весь процесс разработки этой игрушки. Очень надеюсь, что она вам понравится и вы будете злиться после каждого проигрыша, а потом пробовать еще и еще. :)

The app was not found in the store. :-( #wpappbox

Links: → Visit Store → Search Google