Все потоки
Поиск
Написать публикацию
Обновить
44.93

iOS *

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

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

Приложение 3.х на устройстве 2.х

Время на прочтение1 мин
Количество просмотров474
    Как вам наверно извесно, счастливые обладатели iPod Touch не спешат с обновлением своей игрушки до последней версии. Толи религия не позволяет. Толи потому что обновление платное. Вобщем причина не так важна. Для нас програмистов это выливается в требования вида «Хочу чтобы, поставив приложение на 3.0, мог выбирать песенку и на 2.0 чтобы можно было запустить.» О том как это можно сделать будет описано в этой коротенькой статье.
Читать дальше →

Тестирование пользовательского интерфейса

Время на прочтение1 мин
Количество просмотров7.4K
Речь пойдет об инструменте, который с сегодняшнего дня помогает мне тестировать пользовательский интерфейс. Простой, как угол дома, но экономит столько времени!

Уверен, что многие это знают, но для меня это стало просто откровением. Своего рода панацея. Даже решился записать свой первый видеокаст:



PS. Открыл топик для всех. Думаю людям с других платформ тоже любопытно, чем нас балуют инструменты для разработки.

PS2. Тема затрунула хабраразум. Ниже будут добавлять полезные ссылки по теме, подсказанные в комментариях.

GTM познал юнит-тесты для UI
Нативные инструменты из iPhone SDK (Unit Testing Applications)

Оптимизация приложений (Iphone armv6)

Время на прочтение6 мин
Количество просмотров1.2K
    Совсем недавно стукнул год, с тех пор как на просторах AppleStore появилось наше первое приложение. По началу было довольно сложно во всем разобраться. Особенно если учесть, что до этого я разработкой приложений под MacOS не занимался. За этот год много чего было написано. Приложения, которые мы написали, я к сожалению назвать не могу (не помню всех, да и руководство не одобряет такие вещи), но о нескольких способах оптимизации приложений под данную платформу я могу вам смело рассказать.
    Где-то пол года (или даже больше) назад пришлось мне писать приложение основной задачей которого была обработка звука. Для этого был написан свой несложный движок, который все это делал. Приложение было выпущено в свет и постепенно этот движок начал часто использоваться в других приложениях подобного рода. Но вот недавно началась разработка 2-й версии этой программы. Требования возросли, а ресурсы стареньких ифонов не изменились. Вот тут и пришлось поискать пути улучшения уже написанного кода.
Читать дальше →

Семь характеристик удачного приложения для iPhone

Время на прочтение2 мин
Количество просмотров2.2K
imageТекст переведен из iPhone dev center: News and Announcements. Написанное датируется 28 августа, но не потеряло своей актуальности, а для многих только начинает обретать. Уверен информация будет полезной или хотя бы интересной. Обратите внимание, в конце дается линк на ценные подкасты.

Создать обычное приложение для iPhone просто. Однако, если при создании нового приложения или усовершенствовании уже существующего, учитывать следующие характеристики, вы сможете повысить его привлекательность, улучшить его восприятие пользователем и сделать ваше приложение заметным на фоне других:
Читать дальше →

Forismac

Время на прочтение1 мин
Количество просмотров601
Дело было вечером, делать было нечего и мне взбрело в голову написать Mac клиент для недавно упоминавшегося на хабре сервиса forismatic.com.
image
Читать дальше →

iPhone SDK на PC

Время на прочтение1 мин
Количество просмотров1.2K
Поделитесь, пожалуйста, опытом установки iPhone SDK на PC.

Как я понимаю, есть следующие варианты:

— Делать мультибут, ставить Леопард, ставить XCode.
— Делать мультибут, ставить Linux, использовать iPhone toolchain
— Делать виртуальную машину.

Какие способы вы используете, какие у них плюсы и минусы?

Создаем приложение — «Ударная установка»

Время на прочтение9 мин
Количество просмотров5.2K
image
Думаю, все знакомы с эмуляторами ударных установок. Сделать такое приложение довольно просто. В этой статье мы создадим Bickboxx — реальное приложение из App Store.

Если хотите получить представление о том, чем мы займемся, скачайте Bickboxx из App Store (бесплатно). Исходный код можно скачать здесь. Его можно свободно загружать, сообщать о найденных проблемах — вплоть до создания собственных версий с изменениями, которые считаете целесообразными.

Примечание: для работы с уроком исходный код скачивать необязательно. Все скриншоты кликабельные.
Читать дальше →

Работаем с фреймворком iPhone SDK MapKit

Время на прочтение4 мин
Количество просмотров11K
Не так давно я работал над приложением, где нужно было непосредственно в нем вывести на экран карту. Я попытался найти советы по данной теме в Интернет, но ничего не вышло. Не получилось найти и достойного урока с объяснением, как на карте в приложении показать адрес. Поэтому я решил написать свой собственный урок и надеюсь, он будет вам полезен.

Предлагаю создать простое приложение, которое будет отображать введенный пользователем адрес непосредственно на карте. Назовем его "MapApp".

1. Для начала создайте приложение типа "Window based" и присвойте проекту имя "MapApp".
2. Добавьте к проекту фреймворк "MapKit". (Удерживая нажатой клавишу, щелкните на папке "Frameworks" и выполните "Add -> Existing Frameworks".)
Читать дальше →

Интересная статистика для тех, кто продвигает свои iPhone приложения

Время на прочтение1 мин
Количество просмотров2.2K
В данной статье в сжатом виде собрана статистика, которая будет интересна тем, кто создает и продает свои iPhone приложения в AppStore.

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

MVC на iPhone: «The Model» (Часть 1)

Время на прочтение8 мин
Количество просмотров2.9K
CocoaTouch с самого начала создавалась с прицелом на парадигму MVC. Практически все шаблоны, представления и их контроллеры для пользователя уже готовы. Ключевые классы — "UIView" и "UIViewController". Во многих случаях метод "UIView" применим сам по себе — с добавлением элементов пользовательского интерфейса в общий "UIView" в редакторе IB. Для создания собственных функций добавляем подклассы к "UIViewController". Спецификаторы "IBOutlet" позволяют связывать элементы пользовательского интерфейса с представлением, обеспечивая к ним доступ.

А как быть с понятием «Model»? О нем информации я практически не нашел. В уроках по программированию с моделью предпочитают не работать, набирая код непосредственно в контроллерах.

Добившись, как мне показалось, неплохих результатов с реализацией, я предлагаю их здесь для обсуждения и оценки. Изложу вкратце. Я создаю класс "Singleton", расширяющий "NSObject" для моей модели. Потом посредством наблюдения за ключами/переменными узнаю об обновлениях. Это во многом напоминает "ModelLocator" из "Cairngorm", если кому-то приходилось работать с ним во "Flex".

Для начала создадим проект с парой представлений.
Читать дальше →

Работа с базовой анимацией на iPhone

Время на прочтение5 мин
Количество просмотров2.1K
Одна из привлекательных особенностей интерфейса Cocoa Touch — упрощенная работа с анимацией. В этом уроке я покажу пару простых примеров создания анимации для iPhone. Наша анимация будет выполнять две задачи: перемещать объект на экране и менять его размеры в зависимости от точки касания его пользователем.

Тем, кому еще не приходилось заниматься программированием на iPhone, полезно будет ознакомится с азами здесь, здесь и здесь. В качестве примера приведу также урок из серии Stanford iPhone Development (английский язык), где рассматривались основы анимации движения.

Ниже выложено короткое видео приложения, которое нам предстоит создать. Как уже упоминалось выше, с ним можно делать две вещи. Один щелчок будет перемещать внутреннее представление к точке касания. При двойном касании представление будет перемещаться с изменением размеров. Ориентируясь на точки касания, приложение создавать прямоугольник с фреймом для представления.



Что ж, приступим…
Читать дальше →

Интегрируем Twitter в приложения для iPhone

Время на прочтение6 мин
Количество просмотров1.4K
Если вы разработчик (что вероятнее всего, учитывая факт чтения данной статьи), то, по всей вероятности, у вас уже есть или должна появиться учетная запись в Twitter. В последнее время эта социальная сеть обрела такую популярность, что было бы глупо не интегрировать Twitter тем или иным способом в собственные приложения iPhone.

Сделать приложения более социально ориентированными с помощью Twitter можно разными способами. Например, предусмотрев автоматическое подключение к сети при нахождении определенного предмета в игре или победе над персонажем. При этом все друзья узнают о достижениях пользователя, а вам подобный ход добавит популярности. Кстати, а как насчет создания собственного Twitter-клиента (только не рассчитывайте продать мой урок в App Store).

Twitter предлагает элементарный пользовательский интерфейс, с помощью которого с сетью легко и просто взаимодействовать. В моем персональном блоге я как раз публикую серию статей о создании Twitter-клиента для Mac, кодом из которой мы частично воспользуемся.
Перед началом хочу остановиться ещё на одном моменте: создание интерфейса и установку связей со спецификаторами "IBOutlet" я рассмотрю очень бегло. Если что-то будет непонятно, лучше начать с более простых уроков.

Урок будет базовым: я покажу, как обновлять в Twitter собственный статус, а также создавать приложение, работающее исключительно в альбомной ориентации — два зайца одним выстрелом. Приступим…
Читать дальше →

Создаем пазл для iPhone

Время на прочтение9 мин
Количество просмотров5.9K
imageПочему бы не представить в магазине приложений свой собственный пазл — как это сделали мы! В этом уроке я поэтапно расскажу о создании такого приложения. Итоговый результат будет выглядеть примерно так, как на фото. Чашку с кофе — и можно приступать.

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

Для начала потребуется изображение, которое мы разделим на фрагменты. Разместим их в беспорядке, чтобы после снова собрать. Правда перед этим нужно как-то запомнить, где должен находиться тот или иной фрагмент. Для этого введем новый класс, который будет содержать как оригинальное, так и текущее положение каждого фрагмента в матрице (под матрицей понимается сетка, на которой формируется рисунок). Так мы сможем определить, собрал пользователь пазл или нет (сравнив для каждого фрагмента текущее положение с исходным). Следующая задача — определить разрешенные перемещения. Для этой цели заменим один из фрагментов пустым. На его место разрешается передвинуть соседний фрагмент. Ну вот, в принципе, и все. Если я что-то упустил, разберемся по ходу дела.
Читать дальше →

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

OpenGL ES: Перемещение в 3D

Время на прочтение9 мин
Количество просмотров33K
В Сидней практически пришла зима — и я умудрился подхватить грипп (простой, не свиной). А тут еще работа, день Матери и пр. и пр. Одним словом, ввиду недостатка времени двигаться будем быстро. Но прежде чем приступать к созданию «уникального» трехмерного мира, освоим концепции перемещения в 3D пространстве.

Нам предстоит освоить код обработки событий, который позволит ходить «по полу». С помощью касаний мы будем поворачивать влево, вправо, перемещаться вперед и назад. Обойдемся без бега, поворотов головы и наведения резкости, хотя добавить их легко. Подобные ограничения объясняются как желанием упростить изложение, так и возможностью для не располагающих iPod Touch или iPhone добиваться аналогичных результатов в симуляторе.

Для начала загрузим основу проекта здесь.

Кода там не много — в основном объяснения, что и как происходит.

Мифическая камера


Большинство воспринимает 3D миры как пространство, на которое смотришь через камеру, но в OpenGL камеры как таковой нет. Для иллюзии движения по сцене относительно начальной точки (0, 0, 0) перемещаются объекты, а не камера, как в кино.

Процесс может показаться трудоемким, но это не так. В зависимости от приложения есть множество способов решения данной задачи и еще больше — оптимизации для действительно больших миров. На этом я вкратце остановлюсь чуть позже.

Чтобы немного упростить работу, к уроку я приложил удобную игрушку от «большого брата» OpenGL ES — библиотеки GLU: я имею в виду функцию "gluLookAt()".
Читать дальше →

OpenGL ES: рисование базовых фигур (треугольники)

Время на прочтение6 мин
Количество просмотров28K
Базовые фигуры (примитивы) — основные элементы, из которых при рисовании выстраиваются сложные объекты. В OpenGL ES такими примитивами выступают объекты Point (Точка), Line (Линия), Triangle (Треугольник). Думаю, их названия говорят сами за себя.

В этом уроке мы будем анализировать код, на основании которого впоследствии можно будет создавать собственные проекты.

Примитив №1 — треугольники


Треугольники — самые сложные из базовых фигур, но они настолько удобны и полезны, что с них мы и начнем. Чтобы нарисовать треугольник, необходимо указать OpenGL три координаты трехмерного пространства — остальное программа сделает сама.

Первым делом создайте копию проекта из урока "OpenGL ES: настройка проекта в Xcode" или загрузите исходный код отсюда. Открыв проект в Xcode, перейдите к файлу "EAGLView.m" и найдите метод "drawView". Начинается настоящее волшебство!
Читать дальше →

Основы работы с OpenGL ES 2.0 на iPhone 3G S

Время на прочтение7 мин
Количество просмотров17K
Одно из самых приятных нововведений в iPhone 3GS — более быстрая и мощная графическая платформа с поддержкой OpenGL ES 2.0. К сожалению, информации от Apple о том, как именно задействовать открывшиеся возможности, крайне мало. Практически для всех API у них есть отличная документация с образцами кодов, но проблема в том, что в случае с OpenGL примеры всегда оставляли, мягко говоря, желать лучшего.

Более того, начинающим работу с OpenGL ES 2.0 не предлагается ни базовых примеров, ни шаблона XCode. Чтобы воспользоваться расширенными графическими возможностями, придется осваивать их самостоятельно. Не стоит ошибочно полагать, что OpenGL ES 2.0 — незначительно доработанная версия OpenGL ES 1.1 с парочкой новых функций. Отличия между ними кардинальные! Конвейер с фиксированными функциями исчез, и теперь для отображения на экране обычного треугольника понадобится более глубокое знакомство с основами компьютерной графики, включая шейдеры.
Читать дальше →

Статические библиотеки в iPhone SDK

Время на прочтение2 мин
Количество просмотров4K
Недавно столкнулся с необходимостью создания статической библиотеки (static library) в iPhone SDK. Обнаружил, что этот процесс достаточно плохо документирован, поэтому предлагаю вашему вниманию пошаговое руководство по созданию и использованию статических библиотек в iPhone SDK.

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

Tips & Tricks: изменяем User Agent в iPhone

Время на прочтение1 мин
Количество просмотров4.9K
Как известно, User Agent необходим для «идентификации» пользователя, а конкретнее, для определения, каким клиентом или через какое устройство заходит пользователь к вам на сайт. В зависимости от этого, можно «подставлять» необходимый контент (данные, разметку). Это актуально в последнее время по причине большого роста мобильных устройств.

В продолжении темы iPhone Dev Tips & Tricks расскажу о том, как поменять User Agent на «iPhone».

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

Использование акселерометра в iPhone симуляторе

Время на прочтение2 мин
Количество просмотров3.3K
Как разрабатывать приложения для iPhone, использующее акселерометр, мы уже знаем. Теперь осталось научиться тестировать его в симуляторе.
Читать дальше →

Плагин для сафари? Запросто!

Время на прочтение10 мин
Количество просмотров2.3K
Сегодня мне наконец таки надоело запускать Firefox каждый раз, когда надо быстро выдернуть из сайта XPath для какого-то элемента (там для этого приятное расширение XPather), и я решил таки глянуть, как делать инъекции своего кода в Cocoa-приложения.
Вперед, к коду и скриншотам