Игра "Abc Matches"
Дата публикации: 05/07/2011Написал небольшую детскую игру для iPhone/iPod touch. Собственно говоря, это достаточно известная игра на тренировку памяти, когда требуется открывать парные картинки за минимально возможное время. Только я использовал вместо картинок буквы, которые выбираются случайным образом.
Игру я написал в процессе изучения фреймворка Cocos2D, предназначенного для написания двумерных игр. Фреймворк очень неплох и содержит базовые классы для работы со сценами, спрайтами, текстом, эффектами трансформации, обеспечивают поддержку звука и прочего, что обычно востребовано в играх. Сам фреймворк построен на базе графического языка OpenGL и, кроме уже упомянутых базовых возможностей, включает в себя также и два физических движка, что позволяет писать игрушки класса "Angry Birds" или "Tiki Totems".
По сути, программирование с использованием фреймворка cocos2d кардинально отличается от классического программирования для iPhone с использованием CocoaTouch и, пожалуй, несколько проще. Если у вас есть небольшой опыт программирования на Objective-C, то этого вполне достаточно, чтобы начать писать свои собственные игры. Да, здесь нужно сказать, что сам фреймворк, за исключением физических движков, ориентирован на работу с объектами в стиле CocoaTouch. Использование готового игрового движка позволяет сэкономить массу времени на написании и оптимизации базовых функций, которые на 80% совпадают в большинстве игр. Что, в свою очередь, позволяет сосредоточиться непосредственно на написании самой игры.
Но вот что вам обязательно понадобится, так это хорошая книжка. Я очень рекомендую книгу Pablo Ruiz "Cocos2D for iPhone 0.99", в которой подробно разбираются все возможности фреймворка на примере написания трех типичных игрушек. Кроме этого, Ray Wanderlich поддерживает замечательный блог, посвященный программированию для iPhone/iPad, в том числе и с использованием Cocos2d. Ну и наконец, есть документация непосредственно на официальном сайте cocos2d, хотя ее там, к сожалению, не так много, как хотелось бы.
"Abc Matches" - игра на самом деле простая, но мне такая и была нужна, чтобы разобраться с фреймворком. Другой задачей было довести игру до завершенного состояния и опубликовать в AppStore. Ну и чтобы продукт был законченным, я также создал для этого приложения небольшой сайт поддержки.
Утилита "Task Tracker"
Дата публикации: 07/01/2011Вот новый год и начался, а у меня пару дней назад в AppStore появилась вторая программа для iPhone/iPod touch об истории создания которой я и хочу рассказать. Идея написать подобную утилиту, появилась у меня, когда я решил найти похожую программу в AppStore.
Нельзя сказать, что подобных приложений нет, скорее даже наоборот, но мне полностью ни одна из них не понравилась. У одних был ужасный интерфейс, другие были слишком сложными для той достаточно простой задачи, которую я хотел решить, третьи были привязаны к web-сервису и требовали предварительной регистрации перед использованием. Проанализировав существующие приложения, я постепенно пришел к той концепции, которая и была воплощена в утилите "Task Tracker".
Изначально я планировал сделать настолько простое и удобное приложение, насколько это возможно. Для меня это означало минимальный входной порог для обучения работы с программой. В идеале я хотел, чтобы с приложением можно было начать работать сразу и его интерфейс должен был недвусмысленно подсказать как это сделать. Так я пришел к идее с двумя кнопками - одна большая для запуска/приостановки задачи и другая поменьше - для ее завершения. Вполне естественно первая кнопка будет использоваться гораздо чаще и, следовательно, должна быть более заметной. Здесь было важно еще нарисовать удачный графический дизайн и, кажется, это удалось.
Кроме этого, мне хотелось чтобы всегда была видна задача над которой идет работа в данный конкретный момент и поэтому я добавил ее описание под управляющими кнопками. Верхняя же часть была естественным образом отведена для отображения таймера текущей запущенной задачи. При этом я сознательно отказался от учета и показа секунд при отслеживании затраченного времени, сочтя вполне достаточным мигающих точек для индикации процесса.
Другой задачей, которую я хотел решить, была поддержка нескольких проектов. Не секрет, что большинство из нас имеет в работе одновременно несколько различных проектов. При этом поддержка множества проектов не должна была отвлекать внимание от текущего проекта. И здесь очень хорошо подошла концепция нескольких экранов, которые можно было бы прокручивать, подобно тому как это делается во встроенном приложении с прогнозом погоды. Сами параметры проекта при этом были спрятаны на "обратной стороне" таймера. Чуть позже я подумал о необходимости упорядочивания проектов и также добавил эту функциональность в приложение.
Движение в сторону iOS
Дата публикации: 21/11/2010Блог - штука странная. Иногда писать в него по каким-то причинам не очень хочется, а потом появляется новая информация, и тогда я снова что-нибудь публикую. С моей последней заметки прошло уже более полугода, в течение которого я постепенно изучал программирование под iPhone/iPad и уже могу показать первые результаты.
Строго говоря, прошло уже больше месяца с тех пор, как я опубликовал в AppStore свое первое приложение "Engagement Rings" для iPhone/iPod touch, и на данный момент уже могу анализировать статистику скачиваний. Первое приложение было написано на заказ и может быть не всем интересно с практической точки зрения, но если вам любопытно, то вы можете посмотреть на него на сайте поддержки приложения.
Само приложение "Engagement rings" бесплатное, поддерживает только английский язык и может быть установлено через AppStore. За первый месяц приложение было загружено более 2500 раз и в среднем получается порядка 80-90 скачиваний в день. В ближайшее время я планирую выложить его обновление и посмотреть, как это скажется на статистике апгрейдов. В любом случае, это достаточно интересный опыт :).
Скоро я планирую запустить в AppStore свой второй проект, говорить о котором пока рано, но, как мне кажется, он уже будет полезен гораздо большему кругу пользователей. А пока, в качестве небольшого объявления, - если у Вас есть интересные идеи и потребность в написании приложения под iPhone/iPad, то можете написать мне.
Кроме этого, я зарегистрировал для удобства аккаунт студии в Twitter-е, так что желающие могут либо добавить пользователя "@cherrystudio" в своей программе для чтения твитов, либо воспользоваться встроенной трансляцией на сайте Twitter-а.