Dev Story Читайка. История о буквах и слогах

ТЕКСТ: НИКОЛАЙ ЛЕМЕСЕВ В разделе образовательных приложений российского AppStore содержится довольно много красочных, хорошо озвученных и в целом качественных продуктов, нацеленных на изучение букв и алфавита. При этом практически отсутствуют приложения, позволяющие ребёнку, уже знающему буквы, продолжать развивать навыки чтения. Идея нашего приложения родилась, когда однажды вечером я увидел описание одной англоязычной игры для iPad. В ней нужно было составлять слова из букв и получать призы по завершению заданий. Ребёнку игра очень понравилась, но по причине незнания английского языка, интерес к ней был в скором времени потерян. Давно хотел попробовать себя в мобильной разработке и понял, что момент настал и вот она – идея, реализация которой может быть полезна. Было решено сделать аналогичное русскоязычное приложение для iPad.

Средства разработки

Так как «Читайка» – мой первый опыт мобильной разработки, первоначально я проштудировал все известные ресурсы с целью выбора среды разработки и поиска соответствующей литературы. Изначально выбор пал на Objective C. Примерно через месяц изучения литературы, я узнал про Corona SDK – платформу на базе языка программирования Lua. Основными плюсами в Corona SDK для меня были: простота и элегантность языка Lua, наличие достаточно качественной документации от создателей SDK, плюс большое и активное сообщество разработчиков. В итоге я выбрал Corona SDK, о чем не жалею. Возможно, для крупных проектов или проектов с более сложной визуальной частью, стоит поискать иное средство разработки, но для поставленной задачи Corona SDK подошла как нельзя лучше. Собрав несколько тестовых сцен, я приобрел годовую лицензию Corona для разработки под iOS. Так же были приобретены лицензия разработчика iOS и Mac Mini. Итого 6000 руб. + 3000 руб. + 23000 руб. = 32000 руб. на годовые лицензии и «железо». iPad первой версии у меня уже был.

Весь код приложения был написан в обычных текстовых редакторах с подсветкой синтаксиса Lua: TextWrangler и Notepad++. От использования какого-либо IDE я отказался. Попробую их использовать в следующих работах.

Разработка

Уже и не помню, сколько раз код дописывался и переписывался совсем с нуля. Сначала предполагалось всего два варианта игры: поиск пропущенных букв в слове и составление слов целиком. Плюс три варианта сложности, меняющих длину слов от 3 до 8 букв и число букв в палитре. Когда код был написан, поняли, что игра не совсем корректно отрабатывает слова с «Ъ» и «Ь». Например, в слове «ЖЁЛУДЬ» последние две буквы звучали по отдельности как «Д» и «Мягкий знак», хотя это один звук «ДЬ». Расширили функционал, чтобы звучание было соответствующее и при нажатии в палитре на «Д» реагировал также и «Ь», и наоборот.

Читайте также  Humble Bundle #3: набор из пяти шикарных инди-игр за любую стоимость

Расширив функционал, поняли, что в принципе можно сделать вариант игры с чтением слов по слогам. Это было бы интересно малышам, которые уже освоили отдельные буквы и их звуки, но пока испытывают трудности с чтением по слогам, например в слове: «ЖИ-РАФ», где «ЖИ» – это: «Ж» + «И», а «РАФ» – это: «Р» + «А» + «Ф». Предстояли серьезные изменения в коде и озвучивании слов. Если звуки для 33 букв были универсальными во всех словах, то озвучивание по слогам требовало персонального подхода к каждому слову. Идея нам показалась стоящей, и функционал приложения был снова расширен. Получился вариант игры, где буквы в словах раскрашены в соответствии со слогами и при нажатии на букву того или иного слога, игра произносит этот слог.

Последним большим дополнением стал четвертый вариант игры: «Игра в слова». Решив, что было бы здорово в одном приложении иметь возможность перехода от чтения слов по буквам и слогам к целым словам, был написан соответствующий функционал. Малышу предлагается картинка слова и несколько вариантов ответов, один из которых – правильный. При нажатии на любой из вариантов игра его озвучивает и показывает соответствующую картинку.

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

Про дизайн

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

После некоторых раздумий было принято решение поручить данную работу дизайнеру, т.к. всё же «Встречают по одёжке»… Дизайнера я вскоре нашел на одном из известных сайтов по найму фрилансеров. Объяснил, что хочу получить, и стал ждать результатов. Буду честен, решил на дизайне сэкономить и нанял исполнителя подешевле. Через некоторое время получил работы, которые меня не устроили ни по моим пожеланиям, ни по качеству исполнения.

Поняв, что смысла требовать что-то лучше – нет, я написал детализированное ТЗ (которого раньше не было), где подробно описал: что я хочу, привёл примеры того, что мне нравится и что – нет, и начал искать нового исполнителя. Интересно, что на тот же объём работ с наличием ТЗ, предлагаемые исполнителями цены в среднем значительно повысились. Да и разброс цен был довольно большим. В итоге я выбрал художника по качеству его работ. Работать с художником по ТЗ для меня было гораздо проще. Не нужно было объяснять что-то несколько раз и стало удобнее фиксировать процент выполнения работ. Оба смотрели в документ и обменивались информацией. Разработка дизайна вместе с иконкой и картинками для AppStore заняла примерно месяц. Наибольшее количество времени ушло на отрисовку картинок для всех 130 слов. Первоначально такая задача не ставилась, но потом я решил, что стоит сделать игру в одном стиле, не используя для рисунков слов где-то фотографии, где-то рисунки из разных источников, иногда не самые подходящие. Итого за дизайн вышло 34000 рублей. Не дёшево, но я остался доволен выполненной работой.

Читайте также  История со “слежкой” за пользователями ещё не закончена

Звук

Довольно много времени ушло на озвучивание игры, т.к. необходимо было озвучить все звуки букв алфавита, сочетания согласных с мягким знаком, слова и все их слоги. Слоги заняли наибольшую часть времени. Звуки изначально записывались в WAV формате. Затем производилась их перекодировка в формат CAF со сжатием IMA4. Перекодировка производилась штатными средствами Mac OS: посредством afconvert. Corona SDK поддерживает как CAF, так и WAV для iOS приложений, но так как WAV – это формат без сжатия, при его использовании мы получили размер звуковых файлов около 80 мегабайт, а это, не лучшим образом могло сказаться на отзывах о приложении. После конвертации исходных WAV файлов в CAF мы получили выигрыш в размерах файлов в среднем в 3 – 4 раза. Озвучивание программы заняло около трех недель работы в итерационном режиме. Исполнителю было выслано ТЗ, он отрабатывал его порционно и присылал результат. Часть результата принималась, часть отправлялась на доработку. С каждым разом объём того, что нужно сделать уменьшался. Хотелось найти женский голос, который бы «оживил» игру, привнёс в неё ярких позитивных эмоций. Думаю, нам это удалось! Озвучивание игры обошлось нам в 6000 рублей.

Тестирование

Бесплатная и сравнительно небольшая по времени часть работ по приложению. Процесс тестирования непрерывно шёл от начала проекта и до написания последних строчек кода. Первичное тестирование проводилось в эмуляторе iPad Corona SDK, потом уже на реальном устройстве. Сначала мы отлавливали много ошибок и несоответствий, в основном связанных с неверным описание структур слов. Со временем все найденные ошибки были исправлены. На последних этапах проекта привлекли к тестированию и дочку, когда уже появилась новая сочная графика и призы за успешное прохождение заданий. Её основным критерием тестирования была реакция: «Нравится» / «Не нравится».

Публикация и продвижение

Приложение было одобрено с первого раза, без комментариев от Apple. Срок рассмотрения составил 9 дней с момента получения статуса «Waiting For Review». Сейчас мы на 50 месте в категории «Образование». Это около 10 продаж в день. Не густо, если честно. Общи затраты составили 72000 рублей. Попробуем их отбить.

Касательно продвижения, мы постарались ответственно подойти к элементам, которые покупатель видит в AppStore в первую очередь. Сделали сочную, яркую иконку и скриншоты для AppStore.

В дальнейшем основной упор предполагается сделать на размещение обзоров на специализированных сайтах, как на наиболее адекватный способ по соотношению затраты/результат. Судя по общению в форумах, есть только несколько сайтов, дающих ощутимый эффект от размещения обзора. iphones.ru среди них.

Читайте также  Apple не только зарабатывает

Итого

Хочу сказать, что в любом случае, для меня приобретенный опыт и положительные эмоции от процесса создания приложения стоят всех понесенных затрат! Независимо от того, окупимся мы или нет. Спасибо за то, что прочитали нашу историю. Надеюсь, это поможет кому-то в работе над собственным приложением. С удовольствием выслушаю критику и предложения, отвечу на любые вопросы в комментариях.

iPad: 99 р. [iTunes link]

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
Источник: iphones.ru

TRAVEL