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

iOS *

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

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

Портирование приложений под Mac OS X (WineSkin)

Время на прочтение2 мин
Количество просмотров66K
image

Более года, наша команда занимается переносом игр и приложений в операционную систему Mac OS, было портировано 99% запрошенных приложений. Для этого были разработаны специальные утилиты и врапперы, которые доступны в открытом коде. Но обо всех я сразу не успею рассказать. начну пожалуй с Wine Skin.
Читать дальше →

UITextView с картинками

Время на прочтение2 мин
Количество просмотров3.8K
Недавно возникла необходимость дать пользователям возможность добавлять статьи с iPhone`а с фотографиями, произвольно размещенными внутри текста. К сожалению, такого функционала sdk не предоставляет, поэтому пришлось изобретать велосипед.

Первоначально поискав решения наткнулся на такую возможность при отправке e-mail`а, там используется некий компонент UITextContentView, который можно отлично использовать, вставлять туда фотографии из буфера обмена и редактировать как захочется. Проблема возникла с получением этих фотографий обратно в программу, недокументированный метод contentAsHTMLString возвращал содержимое в хтмл-виде, но ссылки на картинки были вида webkit-fake-url, получить картинку имея на руках такого вида ссылку не получилось.

Хочу поделиться своим решением возникшей проблемы (спасибо пользователю [info]igrick за совет в реализации)
читать дальше

Открылся первый портал для русскоязычных разработчиков под Mac и iPhone

Время на прочтение1 мин
Количество просмотров1.7K
TouchDev.ru открылся.
Портал для разработчиков под MacOS и iPhoneOS. Плюс — всё на русском языке.
Статьи, короткие заметки, типа ФАК (пока маленький), ну и всё такое.
Сразу скажу — я не принадлежу к авторам, просто мне кажется, что это полезный ресурс.

cocos2d — фреймворк для создания игр для iPhone

Время на прочтение2 мин
Количество просмотров5.5K
Cocos2d — это небольшой opensource фреймворк для создания 2D игр. Изначально он создавался для программ, написанных на python'е для платформ Windows, Linux и Mac, но потом появились версии для iPhone и даже для Android.

Мы использовали его для написания своей игры iTreasure (ссылка в iTunes) — ремейка «Тайны Океана» и ни разу не пожалели об этом.

Почему cocos2d


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

— Простота.
Если вы уже писали что-нибудь для iPhone, то начать использовать cocos2d вам практически ничего не будет стоить.

— Открытость.
У движка очень хорошая лицензия — GNU Lesser GPL, что позволяет свободно использовать его в коммерческих продуктах.

— Большое комьюнити.
Уже более 200 программ игр сделано с использованием cocos2d. В интернете можно найти огромное количество информации о тонкостях и проблемах, связанных с использованием движка (правда, на английском языке).

— Множество рабочих примеров и приложений с открытым кодом.
Во-первых, очень много рабочих примеров включено в дистрибутив фреймворка. Кроме того, многие люди открывают исходники своих приложений (даже продающихся в appstore), для того, чтобы другие могли найти в них готовые решения и ответы на свои вопросы.
Читать дальше →

Шаблоны для проектирования приложения от руки

Время на прочтение2 мин
Количество просмотров4.8K
Приветствую, хабрасообщество.

imageРечь пойдет о проектировании графического интерфейса приложений для iPhone. Уверен, что многие из вас частенько предпочитают пачку листов A4 и простой карандаш, вместо сложных программных сред. Конечно при таком подходе тоже надо иметь некоторую системность, но в любом случае тут свой шарм, гибкость и естественность, ведь каждый творил мелом на стене дома, забора или комнаты в своем советском детстве.
Читать дальше →

Приложение 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 мин
Количество просмотров602
Дело было вечером, делать было нечего и мне взбрело в голову написать 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". Начинается настоящее волшебство!
Читать дальше →