Dev Story Солнечная Стрела. История о достижении цели

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

Предшествовавший опыт был, мягко говоря, раздробленный: все курсовые в институте представляли собой небольшие игрушки или простые демонстрационные программы по физике, написанные на C# и иногда задействовавшие OpenGL или DirectX; на работе же занимался разработкой сайтов. Поэтому, в ходе данного проекта, багаж знаний, а главное, практических умений был весьма расширен.

Раз всё делается в одиночку, то программа должна быть небольшой, нельзя же затягивать разработку на полгода. Также сразу было принято решение не использовать платные методы продвижения, чтобы увидеть, чего реально могла бы добиться команда любителей с сильно ограниченным бюджетом.

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

Но сам по себе дартс не будет интересен мало-мальски широкой аудитории, поэтому был необходим привлекательный антураж. Тут то и пришла идея о необходимости некого персонажа, который будет комментировать действия игрока. Всё сразу встало на свои места: пусть этим персонажем будет весёленькое Солнце, соответственно всё оформление должно подходить к нему, а программа подойдёт к категории «Семейные». Сами комментарии должны быть забавными и подходящими к ситуации, а также мотивировать на дальнейшую игру. Тогда же родилось и название «Солнечная Стрела».

Собственно о разработке

Для начала следовало разобраться в Objective-C и особенностях платформы. Здесь большую помощь оказали habrahabr.ru со множеством статей о разработке под IOS, а также lookapp.ru/sdk/, где находятся разобранные примеры программ, всячески модифицируя которые, я более-менее освоил Objective-C. Кстати, регистрация разработчика каких-либо затруднений не составила, в Интернете масса подробных описаний того, что и как делать, а что нет, хотя многие отзывы о ней наводили на мысли о жуткой тягомотине.

Читайте также  Три рекламных ролика iPhone 4S

Теперь предстояло заняться самой программой. Весь процесс был строго итеративным – сначала была сделана сама стрельба и отлажена физика, затем добавлено Солнце с его комментариями, последовательно добавлялись новые функции, отлаживались, затем переходили к следующим. Самой сложной для меня, как для программиста, была оформительная часть: дизайн и звуковое сопровождение.

Поскольку не хотелось нарушать ничьи авторские права, а сам я не отличаюсь художественным талантом, то в качестве задних планов везде используются тщательно отобранные, слегка обработанные фотографии, являющиеся общественным достоянием. Само же Солнце представлено своеобразным улыбающимся лицом вроде смайлика. Анимация его лучей, кстати, сделана простейшим способом – быстрой последовательной сменой нескольких картинок (впоследствии, при снятии скриншотов это вызывало сложности, поскольку некоторые из взаимных расположений лучей в статике выглядят весьма некрасиво, хотя суммарно анимация смотрится неплохо, вот и приходилось по нескольку раз скриншотить одну игровую ситуацию, чтобы поймать подходящее взаимное расположение). Музыка должна была быть оригинальной, поэтому написана самостоятельно в GarageBand, остаётся только надеяться, что народу понравится, хотя получилось куда лучше, чем ожидал).

Когда большая часть проекта была готова, пришла мысль: «А почему бы ни сделать приложение универсальным, чтобы оно работало на iPad не только в режиме “iPhone с учетверённым экраном”, а как родное?». В итоге пришлось создавать отдельно графику под iPad с его соотношением сторон (4:3 против 3:2) и слегка другим расположением объектов, но, в результате, всё стало выглядеть лучше, чем было.

Следующим важным шагом была локализация под основные европейские языки, на английский удалось перевести всё самому, а с остальными помог сервис onehourtranslation.com. Должен отметить, что всё довольно дружелюбно к клиенту, переводчики стараются, например, для некоторых надписей на кнопках просили разъяснить, какая именно будет реакция при нажатии, чтобы перевести точнее.

В течение всех предшествовавших этапов периодически проводил тестирования с использованием Instruments, в процессе которого значительно уменьшил использование памяти программой, причём некоторые источники высокого потребления ресурсов меня удивили – уменьшение размера фоновой картинки на 150 Кб приводило к сокращению использования памяти на 4-6 Мб, что довольно странно. Что порадовало – никаких проблем с утечками памяти, которые часто упоминались в статьях других начинающих разработчиков, у меня не было.

Кстати, перевод в универсальные приложения и локализация (за счёт локализации некоторых картинок) удвоили вес программы.

Когда программа была готова, предстояло отправить её на Review. Это оказалось самым напряжённым временем, поскольку сроки, как я узнал из разных статей, могут быть совершенно любыми – от пары дней до двух-трёх недель. В моём случае программа была в стадии «Waiting for review» ровно неделю, после чего в «On Review» всего 20 минут (судя по сообщениям о смене статуса на почте). Меня это, мягко говоря, удивило, но и обрадовало, что никаких проблем не найдено.

Читайте также  Первый разлоченный iPhone 4 из США

Что в итоге?

Какие выводы можно сделать обо всём процессе разработки?

Создать небольшую, но хорошую с технической точки зрения программу для iPhone/iPad не так уж сложно – было бы желание. Документация хорошая, примеров масса, инструменты для тестирования удобны – разобраться во всём более чем реально.

Гораздо сложнее на самом деле – получить в итоге привлекательную для людей игру. Тут огромное количество нюансов, включая дизайн, музыку, звуки.… Здесь требуется команда, поскольку одиночка крайне маловероятно является «мастером на все руки».

Самое главное же – верить в себя.

iPhone + iPad: $0.99 [iTunes link]

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

TRAVEL