Обновить
63.33

iOS *

Мобильная ОС компании Apple

Сначала показывать
Порог рейтинга
Уровень сложности

Пишем игру-клон Super Mario Brothers (часть 2)

Время на прочтение11 мин
Охват и читатели27K
imageДобро пожаловать во вторую часть из серии туториалов о том, как написать собственный платформер по типу Super Mario Brothers!
В первой части мы написали простой физический движок на основе Tiled Map.
Во второй (и последней) части мы научим Коалио двигаться и прыгать — самая веселая часть любого платформера!

Мы научимся отслеживать столкновения с опасностями на уровне, обрабатывать победу и поражение; добавим великолепные звуковые эффекты и музыку!

Вторая часть на порядок легче (и короче) первой — небольшой отдых после тяжелой работы в прошлый раз! Так что включайте свое кодо-кунг-фу и наслаждайтесь!
Читать дальше →

О том, как выпустить отличное iOS приложение, которое никому не нужно

Время на прочтение7 мин
Охват и читатели63K

1. Для начала нужна хорошая и востребованная идея


Все началось с тайм-менеджмента. Прочитав Тайм Драйв, я пришел к выводу, что Глеб Архангельский действительно сделал очень хорошую работу и все разложил по полочкам. Но, когда захотелось применить его теорию на практике, используя смартфон, возникла проблема — до сих пор не было хоть какой-то минимально приемлемой реализации его методики.

В то время я как раз был в поисках идеи для пробы пера на AppStore. Я протестировал с десяток популярных планировщиков под iOS, платных и бесплатных. Некоторые были хороши в своих аспектах (списки задач, календари), но универсального решения я не нашел. Вернее нашел, но они были страшные и неуклюжие, и, судя по всему, неудачные в плане коммерции. Поэтому было решено реализовать универсальный и, в то же время, простой органайзер с максимальным применением советов Глеба Архангельского, как самых практичных, на мой взгляд.

Читать дальше →

Appnique дебютирует с новой службой, которая поможет разработчикам с ASO

Время на прочтение4 мин
Охват и читатели2.7K
Appnique из Сиэтла – новый стартап от ветерана в мобильной индустрии Джаи Джаисимха, направленный на то, чтобы помочь разработчикам приложений достичь более высоких позиций, сделав их более заметными в магазинах приложений iOS и Android. Это самый новый проект, нацеленный именно на пространство ASO (App Store Optimization, оптимизации для магазина приложений), новое поколение поисковой оптимизации, которая исследует ключевые слова, заголовки и описания, чтобы поднять приложение выше в поиске и, соответственно, помочь приложению взобраться на вершины чартов.

Читать дальше →

iOS Console App — пишем программу для iOS без GUI

Время на прочтение7 мин
Охват и читатели19K
Доброго дня всем хабравчанам!

Сегодня я расскажу вам о том, как можно легко, быстро и просто написать консольную программку для запуска на iOS-девайсе. Разумеется, нам потребуется для этого jailbreak-нутый девайс, без него, увы, никак: iOS AppStore (он же iTunesStore) не позволяет распространять консольные утилиты.



Писать HelloWorld — дело не особо интересное. Поэтому, мы будем писать полезную утилиту, позволяющую просмотреть некоторую информацию о системе, полученную через приватные API.

К примеру, информацию об установленных программах и их версиях.

В принципе, можно ещё поворовать пароли и прочие персональные данные, но это оставлю как факультативное задание.

Итак, под катом — описание процесса создания консольной программки прямо в Xcode.
Поехали

Самая крутая программа на Winter Nights

Время на прочтение1 мин
Охват и читатели3.1K
Мы опубликовали программу зимней конференции, посвященной мобильным играм. Такого состава спикеров не было еще нигде в мире. Если хотите послушать Supercell, Rovio, Wooga, Chillingo, Big Fish, FishLabs, PlayFirst, Facebook, Microsoft, Google и других, регистрируйтесь скорее — 25 декабря мы поднимаем цены.

image
Читать дальше →

Как мы iOS приложение тестировали из-под Ubuntu

Время на прочтение4 мин
Охват и читатели27K


В компании где я работаю наступила пора корпоративов тестирования нашего iOS приложения, и т.к. мако тут только у меня, а все остальные разработчики и, что самое главное, QA работают под Ubuntu, <irony>а значит айфонов у них нет</irony>, то пришлось придумать решение проблемы и избавить себя от мук передачи личного айфона в руки тестеров.

Если Вы сталкивались с подобной проблемой или просто интересуетесь темой шаринга одного мака с возможностью одновременной работы на нём, то прошу под кат.
Читать дальше →

Пишем игру-клон Super Mario Brothers (часть 1)

Время на прочтение23 мин
Охват и читатели89K
imageДля многих из нас Super Mario Brothers была первой игрой, которая по-настоящему завораживала своим игровым процессом.
Интуитивное управление SMB и великолепный дизайн уровней от Nintendo заставляли проводить часы напролет в виртуальной вселенной сантехника и его напарника.

В этом чудесном туториале от Джейкоба Гандерсена мы создадим собственный платформер; но, так как главным героем будет Коала, мы назовем нашу игру «Super Koalio Brothers!» ;]
Также, чтобы упростить механику, мы забудем о движущихся врагах. Вместо них мы будем использовать шипованные блоки, встроенные в пол. Это позволит нам полностью сконцентрироваться на сердце платформера — физическом движке.

Внимание! Под катом невероятное количество переведенного текста, картинок, кода (код не переведен) и руководство по созданию собственного физического движка!
Читать дальше →

Как написать игру в стиле Tower Defense

Время на прочтение19 мин
Охват и читатели63K
Жанр Tower Defence один из самых популярных жанров игр на iOS. Причиной тому веселое времяпрепровождение, сдобренное постройкой башен для создания последней точки обороны против орд монстров, пытающихся эту самую оборону прорвать.
Представляю вашему вниманию перевод статьи, написанной Pablo Ruiz, и найденной мной на сайте raywenderlich.com.
В этом уроке будет показано, как создать игру Tower Defense с нуля, с помощью Cocos2D.
В процессе вы выучите следующее:
  • Как создавать волны врагов и настраивать время их появления.
  • Как заставить этих врагов двигаться по заданным точкам(waypoint'ам).
  • Как строить башни на специально отведенных местах на карте.
  • Как заставить башни стрелять во врагов.
  • Как визуально представить waypoint'ы и радиусы атак башен.

В конце урока, у вас будет свой фрэймворк для создания игр такого типа, который вы сможете расширять, добавляя новые типы врагов, башен и карт.
Для понимания этого урока, вам нужно базовое понимание Cocos2D. Если вы новичок, то можете взглянуть на более легкие уроки на сайте Рэя.
Читать дальше →

Автоматическое обновление номера сборки проекта в Xcode

Время на прочтение3 мин
Охват и читатели6.9K
При передаче приложения тестировщикам или конечным пользователям не стоит забывать увеличивать версию проекта / номера сборки для того, чтобы в будущем можно было без проблем идентифицировать установленное приложение.

Память, как известно, бывает подводит. Здесь на помощь приходит простой и действенный чудо-рецепт автоматической установки номера сборки проекта.

Готовый проект с кратким описанием доступен на github: github.com/eshurakov/XcodeAutoBundleVersion
Подробнее

Framework в Мармеладе (часть 4)

Время на прочтение18 мин
Охват и читатели3K
В последней статье цикла, посвященного разработке Marmalade Framework, мы добавим в проект анимированные и составные спрайты, а также построим небольшое демонстрационное приложение, иллюстрирующее принципы использования библиотеки.
Читать дальше →

Google Maps для iOS

Время на прочтение1 мин
Охват и читатели55K


Компания Google наконец-то выпустила приложение Google Maps for iOS, сегодня утром оно появилось в App Store.

Удивительно, но программа работает быстрее, чем даже «родное» приложение Apple Maps, не говоря уже о наборе функций.
Читать дальше →

Как из мобильного приложения сделать продукт

Время на прочтение3 мин
Охват и читатели10K
Сделать мобильное приложение очень просто. Сделать хорошее мобильное приложение — сложнее. Создать продукт из мобильного приложения — задача посерьезней. В статье хочу поделиться некоторыми наблюдениями на тему того, как этого достичь.

Поехали!
Читать дальше →

Observer Pattern со строгой типизацией или зачем нам нужен Objective-C++

Время на прочтение4 мин
Охват и читатели9.4K


Уже много копий было сломанно о тему «обработка событий в Objective-C», о делегировании событий (к примеру, viewWillAppear:(BOOL)animated ), о том как это не удобно, когда надо слушать их одновременно в разных местах программы.

Я хочу предложить Вам свою реализацию шаблона Observer, который использует мощь C++0x и позволяет объявлять сигналы с жёстко типизированным списком параметров, например, вот так:
	new TLSignal<NSString *, BOOL>(self);

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

Заинтересовавшихся прошу под кат.
Читать дальше →

Ближайшие события

История одного Crash-а, и NSLog'а его лечившего

Время на прочтение11 мин
Охват и читатели31K
Лечу Crash'и NSLog'ами. Недорого. Многолетний опыт. 100% гарантия.

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

Все началось с того, что на одном из относительно больших проектов начало стабильно вываливаться исключение при авторизации пользователя. «Ну и что тут такого? У всех бывает. Проверку на nil забыли поставить или где-то накосячили. „Тоже, мне, большое событие — crash на проекте“, — подумает большая часть программистов. В принципе — абсолютно согласен. Crash — не такое уж и редкое явление в программировании под iPhone, и с ним сталкиваешься по десять раз на день. Но этот был особенным. От него уже начало попахивать „магией“, когда мне сказали про его некоторые параметры и особенности:

  • Воспроизводимость на симуляторе: 100%
  • Воспроизводимость на устройстве: 0%
  • Путь к крэшу (после локализации крэша): ~ 40 секунд
  • Настройки оптимизации при компиляции (-O1,-O2...) не влияют на воспроизводимость
  • XIB'ы в проекте не используются


Да выглядел он довольно безобидно:

// Code
UITextView * textView = [ [UITextView alloc] initWithFrame:CGRectMake(0, 150, _width, _height)];

// Exception
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', 
    reason: 'CALayer bounds contains NaN: [0 0; nan 200]'


»Ну тут же и ежу понятно, что width — после вычисления — NaN!", — подумал я. Бегло поглядев где и как вычисляется ширина вьюхи, и не найдя ничего особого опасного, я, для утверждения своей догадки, поставил перед созданием вьюхи NSLog. А вдобавок, и точку останова на строке с созданием элемента.
// Source:
NSLog(@"width = %f", _width);

//Output:
width = 200


«Гм», — подумал про себя я, и продолжил выполнение программы после точки останова. И крэша не произошло…

Что было дальше? Читайте во второй части сразу под катом...

Framework в Мармеладе (часть 3)

Время на прочтение8 мин
Охват и читатели3.2K
Сегодня мы продолжим описание разработки Marmalade Framework, начатой в 1 части статей этого цикла, усовершенствовав работу с графическими ресурсами, а также добавив работу со звуком и группами изображений, при помощи которых мы обеспечим локализацию приложений.
Читать дальше →

Framework в Мармеладе (часть 2)

Время на прочтение12 мин
Охват и читатели4.3K
В предыдущей статье я начал рассказывать о разработке небольшого Framework-а для создания 2D-игр, с использованием инструментальной системы Marmalade, предоставляющей возможность разработки и сборки приложений для ряда платформ, в том числе iOS и Android. Мы научились работать с графическими ресурсами и построили небольшое тестовое приложение. Сегодня я хочу рассказать об обработке событий.
Читать дальше →

MAD’Day — день разработки мобильных приложений

Время на прочтение1 мин
Охват и читатели3.7K
11 декабря в Санкт-Петербурге (Бизнес-Инкубатор «Ингрия») пройдет день разработки мобильных приложений — MAD'Day.

image

Главная задача MAD'Day – рассказать о тенденциях и перспективах данного рынка, фишках и особенностях программирования на разных платформах, объединив знания и опыт специалистов из разных компаний. Игроки рынка и заказчики поделятся своим опытом внедрения мобильных решений, тонкостями работы с разработчиками, и самое главное об эффективности использования мобильных сайтов и приложений для их бизнеса.

Участие бесплатное. Узнать подробности и докладах и зарегистрироваться можно по ссылке.

Почему заработать на планшетах проще, чем на смартфонах

Время на прочтение1 мин
Охват и читатели12K
image

Интернет-ресурс PocketGamer опубликовал интересную инфографику, в которой сравнивает преимущества планшетов и смартфонов с точки зрения разработчиков. Согласно предоставленной статистике, средняя сессия на «таблетках» в 2 раза дольше, да и тратят деньги на планшетах гораздо охотнее (оригинальный перевод инфографики подготовлен порталом App2Top.ru).
Читать дальше →

Framework в Мармеладе (часть 1)

Время на прочтение12 мин
Охват и читатели13K
В этом цикле статей я опишу разработку небольшого Framework-а, предназначенного для создания 2D-игр, с использованием Marmalade. Marmalade предоставляет API для разработки кросс-платформенных приложений, позволяя собирать их, в том числе, под Android и iOS. Работа в Marmalade довольно комфортна, а его справочная система сопровождена большим количеством примеров, но сам процесс разработки носит довольно низкоуровневый характер. Использование готового Framework-а может сильно облегчить жизнь начинающему разработчику.
Читать дальше →

6 трендов рынка мобильных игр

Время на прочтение3 мин
Охват и читатели24K
image

В своем недавнем интервью ресурсу Gamasutra Кен Чиу (Ken Chiu) и Энил Дарни (Anil Dharni), возглавляющие американское подразделение GREE, поделились видением дальнейшего развития мобильной игровой индустрии. С оригинальным переводом можно ознакомиться на сайте App2Top.ru.
Читать дальше →