ТЕКСТ: НИКОЛАЙ ЛЕМЕСЕВ В разделе образовательных приложений российского 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 букв и число букв в палитре. Когда код был написан, поняли, что игра не совсем корректно отрабатывает слова с «Ъ» и «Ь». Например, в слове «ЖЁЛУДЬ» последние две буквы звучали по отдельности как «Д» и «Мягкий знак», хотя это один звук «ДЬ». Расширили функционал, чтобы звучание было соответствующее и при нажатии в палитре на «Д» реагировал также и «Ь», и наоборот.
Расширив функционал, поняли, что в принципе можно сделать вариант игры с чтением слов по слогам. Это было бы интересно малышам, которые уже освоили отдельные буквы и их звуки, но пока испытывают трудности с чтением по слогам, например в слове: «ЖИ-РАФ», где «ЖИ» – это: «Ж» + «И», а «РАФ» – это: «Р» + «А» + «Ф». Предстояли серьезные изменения в коде и озвучивании слов. Если звуки для 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 среди них.
Итого
Хочу сказать, что в любом случае, для меня приобретенный опыт и положительные эмоции от процесса создания приложения стоят всех понесенных затрат! Независимо от того, окупимся мы или нет. Спасибо за то, что прочитали нашу историю. Надеюсь, это поможет кому-то в работе над собственным приложением. С удовольствием выслушаю критику и предложения, отвечу на любые вопросы в комментариях.
iPad: 99 р. [iTunes link]
11 комментариев
Форум →Отличное и полезное приложение. Аналогов в русском аппсторе нет. Купил.
Почему же нет аналогов, есть, Мышкины читалки, например.
Очень клевое приложение!
А какое название у приложения в Американском сторе?
“Читайка”.
Простите за оффтоп, но не многовато ли обзоров детского софта? Порой кажется, что в детский сад попадаешь.
@Ivan81,
Так а устройства для женщин и детей. Без обид, если чо.
@direless, а они покупают все подряд)
@direless, откуда инфа про женщин и детей?
@Ivan81, Тут нужно посмеяться Иван, не воспринимайте все буквально)
@Ivan81, полностью с вами согласен: Почему в русском App Store засилье детских программ?
Однако в данном случае перед нами действительно полезная программа, а не очередной клон того, что уже было.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как использовать Apple Music, когда живешь в двух странах?
Как перенести фото с одного iPhone на другой
Почему Mac часто теряет Wi-Fi подключение
Если купить iPhone 7 (7 Plus) в США, будет ли гарантия в России?
Как импортировать контакты с SIM-карты на iPhone
Как при работе на Mac зафиксировать своё внимание на одном приложении
Как на iPhone создать опрос в групповом чате iMessage
Почему на iPhone постоянно сбрасывается телефонный вызов