ТЕКСТ: ДМИТРИЙ СИНЕВ. Достаточно давно хотел попробовать себя в разработке под мобильные устройства и 4 месяца назад, наконец, решился. Первым вопросом был – что, собственно говоря, разрабатывать – хотелось создать программу, которая будет пользоваться хотя бы небольшим спросом, причём полностью самостоятельно, чтобы пройти лично через все стадии создания нового продукта: от идеи до релиза.
Предшествовавший опыт был, мягко говоря, раздробленный: все курсовые в институте представляли собой небольшие игрушки или простые демонстрационные программы по физике, написанные на C# и иногда задействовавшие OpenGL или DirectX; на работе же занимался разработкой сайтов. Поэтому, в ходе данного проекта, багаж знаний, а главное, практических умений был весьма расширен.
Раз всё делается в одиночку, то программа должна быть небольшой, нельзя же затягивать разработку на полгода. Также сразу было принято решение не использовать платные методы продвижения, чтобы увидеть, чего реально могла бы добиться команда любителей с сильно ограниченным бюджетом.
Какие идеи сразу возникали: получившееся приложение должно быть простым в использовании, понятным даже ребёнку, и при этом подходить для использования в небольшие промежутки времени. Сначала я хотел сделать некую стрельбу из пушки, но, в итоге, остановился на двумерном подобии дартса. Суть метания снаряда в мишень понятна любому, управление легко можно организовать так, чтобы оно осуществлялось одним движением, а один выстрел не займёт много времени, значит можно запустить игру стоя в очереди или сидя в автобусе и немного отвлечься от внешней суеты.
Но сам по себе дартс не будет интересен мало-мальски широкой аудитории, поэтому был необходим привлекательный антураж. Тут то и пришла идея о необходимости некого персонажа, который будет комментировать действия игрока. Всё сразу встало на свои места: пусть этим персонажем будет весёленькое Солнце, соответственно всё оформление должно подходить к нему, а программа подойдёт к категории «Семейные». Сами комментарии должны быть забавными и подходящими к ситуации, а также мотивировать на дальнейшую игру. Тогда же родилось и название «Солнечная Стрела».
Собственно о разработке
Для начала следовало разобраться в Objective-C и особенностях платформы. Здесь большую помощь оказали habrahabr.ru со множеством статей о разработке под IOS, а также lookapp.ru/sdk/, где находятся разобранные примеры программ, всячески модифицируя которые, я более-менее освоил Objective-C. Кстати, регистрация разработчика каких-либо затруднений не составила, в Интернете масса подробных описаний того, что и как делать, а что нет, хотя многие отзывы о ней наводили на мысли о жуткой тягомотине.
Теперь предстояло заняться самой программой. Весь процесс был строго итеративным – сначала была сделана сама стрельба и отлажена физика, затем добавлено Солнце с его комментариями, последовательно добавлялись новые функции, отлаживались, затем переходили к следующим. Самой сложной для меня, как для программиста, была оформительная часть: дизайн и звуковое сопровождение.
Поскольку не хотелось нарушать ничьи авторские права, а сам я не отличаюсь художественным талантом, то в качестве задних планов везде используются тщательно отобранные, слегка обработанные фотографии, являющиеся общественным достоянием. Само же Солнце представлено своеобразным улыбающимся лицом вроде смайлика. Анимация его лучей, кстати, сделана простейшим способом – быстрой последовательной сменой нескольких картинок (впоследствии, при снятии скриншотов это вызывало сложности, поскольку некоторые из взаимных расположений лучей в статике выглядят весьма некрасиво, хотя суммарно анимация смотрится неплохо, вот и приходилось по нескольку раз скриншотить одну игровую ситуацию, чтобы поймать подходящее взаимное расположение). Музыка должна была быть оригинальной, поэтому написана самостоятельно в GarageBand, остаётся только надеяться, что народу понравится, хотя получилось куда лучше, чем ожидал).
Когда большая часть проекта была готова, пришла мысль: «А почему бы ни сделать приложение универсальным, чтобы оно работало на iPad не только в режиме “iPhone с учетверённым экраном”, а как родное?». В итоге пришлось создавать отдельно графику под iPad с его соотношением сторон (4:3 против 3:2) и слегка другим расположением объектов, но, в результате, всё стало выглядеть лучше, чем было.
Следующим важным шагом была локализация под основные европейские языки, на английский удалось перевести всё самому, а с остальными помог сервис onehourtranslation.com. Должен отметить, что всё довольно дружелюбно к клиенту, переводчики стараются, например, для некоторых надписей на кнопках просили разъяснить, какая именно будет реакция при нажатии, чтобы перевести точнее.
В течение всех предшествовавших этапов периодически проводил тестирования с использованием Instruments, в процессе которого значительно уменьшил использование памяти программой, причём некоторые источники высокого потребления ресурсов меня удивили – уменьшение размера фоновой картинки на 150 Кб приводило к сокращению использования памяти на 4-6 Мб, что довольно странно. Что порадовало – никаких проблем с утечками памяти, которые часто упоминались в статьях других начинающих разработчиков, у меня не было.
Кстати, перевод в универсальные приложения и локализация (за счёт локализации некоторых картинок) удвоили вес программы.
Когда программа была готова, предстояло отправить её на Review. Это оказалось самым напряжённым временем, поскольку сроки, как я узнал из разных статей, могут быть совершенно любыми – от пары дней до двух-трёх недель. В моём случае программа была в стадии «Waiting for review» ровно неделю, после чего в «On Review» всего 20 минут (судя по сообщениям о смене статуса на почте). Меня это, мягко говоря, удивило, но и обрадовало, что никаких проблем не найдено.
Что в итоге?
Какие выводы можно сделать обо всём процессе разработки?
Создать небольшую, но хорошую с технической точки зрения программу для iPhone/iPad не так уж сложно – было бы желание. Документация хорошая, примеров масса, инструменты для тестирования удобны – разобраться во всём более чем реально.
Гораздо сложнее на самом деле – получить в итоге привлекательную для людей игру. Тут огромное количество нюансов, включая дизайн, музыку, звуки.… Здесь требуется команда, поскольку одиночка крайне маловероятно является «мастером на все руки».
Самое главное же – верить в себя.
iPhone + iPad: $0.99 [iTunes link]
11 комментариев
Форум →Эту игру за 0,99$ продавать, это шутка такая?
и главное при чем здесь солнце )
А я люблю типо “бесконечные” игры на мобиле. Потому что нет желания и времени играть во что-то серьёзное.
Ну что тут скажешь?…
Это реальное убожество еще и платно?
жаль что промо няма(
Просто абзац… Очередная перделка, вид сбоку… :(
А я вот хочу поздравить уважаемого автора программы с дебютом! :) Скажем прямо: уровень игры не очень высок, но лиха беда начало :) Интерфейс хоть и прост (с точки зрения оформления), но не перегружен. Единственное – меня, как пользователя, смущает надпись “ВКЛ бонус за рикошеты”. Возможно, стоит просто включить их по умолчанию, а при обучении сообщить, что за рикошеты дают бонусы? Плюс, можно добавить уровни, где попасть в мишень можно только рикошетом (а лучше – несколькими).
Получилось очень позитивно) Опять же плюс) Единственное (субъективное мнение) – солнышко без лучей на иконке похоже на колобка. Или на скинхеда. Нужное подчеркнуть))
В общем, уже сейчас можно выделить определенные плюсы :)
Как Вы совершенно верно заметили, самое главное – верить в себя, и у Вас получится замечательное приложение :)
Не в обиду автору будет сказано, но такие “самоделки” надо бесплатно раздавать, хотя бы для того, чтобы труд зря не пропал. Серьезно, не смешите народ.
Автор молодец. Конечно можно было бесплатно раздавать, но то что довел дело до конца – уже хорошо (я уже год все не могу с места сдвинуться)
Автору респект полюбэ. За смелость, упорство и статью. Купил в поддержку. Молодец, не бросай, все получится.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как записывать разговоры на iPhone
Как конвертировать любые типы файлов прямо на iPhone
Как очистить оперативную память iPhone перед запуском требовательных программ
Как добавить в iPhone события из календаря Google
Влияет ли True Tone на выгорание матрицы в iPhone X
Как на iPhone отправлять сообщения в WhatsApp без добавления пользователя в контакты
Как быстро проверить скорость интернета на Mac?
Почему быстрый просмотр на Mac не запускает фильмы и ролики