Обновить
55.96

iOS *

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

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

iPhone. Проигрывание аудио в фоновом режиме

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

Apple внедрила в iOS 5 функционал отвергнутого приложения из AppStore

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

Слева — оригинальный логотип программы WiFi-Sync, справа — иконка функции WiFi-Sync в iOS 5

Говорят, уже не первый раз Apple запрещает к распространению через AppStore приложения, которые дублируют функции интерфейса iOS. Но последний случай можно назвать из ряда вон выходящим. Приложение WiFi-Sync для беспроводной синхронизации iPhone с iTunes было отвергнуто для включения в AppStore в мае 2010 года, через месяц после подачи заявки. Автор программы, студент Бирмингемского университета Грег Хьюз (Greg Hughes), перенёс свою программу в альтернативный каталог программ Cydia для джейлбрейкнутых айфонов, где она стала бестселлером.

Каково же было удивление студента, когда 6 июня 2011 года он увидел свою программу среди новых функций iOS 5 в рекламе на офсайте Apple! Что интересно, Apple сохранила точное название WiFi-Sync и даже не потрудилась сильно изменить логотип.
Читать дальше →

О блоках и их использовании в Objective-C часть 2-ая

Время на прочтение9 мин
Количество просмотров9.4K
Продолжение топика — О блоках и их использовании в Objective-C часть 1-ая.

Многие из тех кто впервые сталкивается с блоками (или замыканиями), задают вопрос — «а зачем? Если и без них можно». Да можно. Но использование блоков имеет не мало преимуществ, и первое из них — существенная экономия на количестве кода, а следовательно и на времени написания и поддержке. Дальше буду говорить примерами.

Содержание:


1. Работа с контейнерами на примере NSArray.
2. Guards на примере UITableView.
3. Использование блоков вместо классов на примере scheduled операций.
4. Блоки вместо делегатов в UIAlertView.
5. UIView анимации, последовательность анимаций.
6. Асинхронные операции и управление ими. Переписываем пример с анимациями.
Читать дальше →

Пишем оповещение для iOS

Время на прочтение5 мин
Количество просмотров2.3K
Доброе утро/день/вечер/ночь %username%!

Предыстория

В процессе реализации очередного проекта появилась необходимость реализовать эффективное оповещение пользователя о чём-либо (например, об отсутствии интернет соединения). Так как же это сделать? Стандартный класс UIAlertView оказался для этой цели слишком громоздким и скучным, и, не найдя более ничего подходящего, было решено написать своё казино с блекдже… свой класс оповещения.
Читать дальше →

Казахстанцы отправляются в App Store или Как сделать приложение за неделю

Время на прочтение3 мин
Количество просмотров2.6K
По просьбе моих друзей-разработчиков публикую этот пост:

Привет, уважаемое Хабрасообщество!

Это мой первый пост и он, я надеюсь, не выйдет комом (хотя-бы в виде исключения).

Меня зовут Александр и мы с друзьями продвигаем, как можем, мобильные технологии в Казахстане.
Разработчиков под iOS и Android у нас едва ли наберется с десяток, поэтому рассказывать коллегам о своем опыте и набитых шишках мы решили здесь. Собственно, я хочу рассказать о нашем опыте разработки приложений для себя.

Как это часто бывает, создав пару приложений на заказ, нас стали посещать мысли о собственном продукте. И вот, когда мы решили, наконец, им заняться, нашему главному разработчику (не могу умолчать – из самого Ubisoft!) приспичило уехать в США на месяц.

Осознав, что до разлуки осталась ровно неделя и ничего сложного мы все равно сделать уже не успеем, на ум пришла простая, и, на первый взгляд, реализуемая за день, идея. Идея: цифровые часы, где самые разные люди показывают, который час. Недолго думая, мы назвали это приложение HumanClock.

Сразу скажу, что за день, конечно, ничего не получилось, но в неделю таки мы уложились!

Под катом много фотографий с процесса!

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

О блоках и их использовании в Objective-C часть 1-ая

Время на прочтение4 мин
Количество просмотров32K
В OS X 10.6 и iOS 4.0 компания Apple анонсировала поддержку блоков, по сути являющиx собою замыкания. Дальше о блоках в контексте разработки под IOS, Objective-C (тоесть работа без gc).
Для использования блоков IOS ver. < 4.0 можно применить ESBlockRuntime или PLBlocks.

Кратко о теории


Экземпляр блока, тип блока и сам блоковый литерал обозначаются с помощью оператора ^, пример:

typedef int (^MyBlock)(int);

int multiplier = 7;
MyBlock myBlock = ^(int num) {
 return num * multiplier;
};


* This source code was highlighted with Source Code Highlighter.

или

int multiplier = 7;
int (^myBlock)(int) = ^(int num) {
  return num * multiplier;
};


* This source code was highlighted with Source Code Highlighter.

Вызов блока аналогичен вызову обычной сишной функции. Например, так:

myBlock( 3 )

* This source code was highlighted with Source Code Highlighter.

Главной особенностью блоков является их умение хранить контекст в котором они создавались. В примере выше «myBlock» всегда будет умножать число на 7. Как же это все работает?
Читать дальше →

iOS tips and tricks: Динамический Default.png

Время на прочтение2 мин
Количество просмотров3.4K
При разработке под iOS время от времени у заказчиков, да и у некоторых программистов возникает закономерный вопрос: «А можно ли каким-нибудь образом при старте приложения подменять картинку?».

Немного порыскав по интернету, и покопавшись в документации, то напрашивается ответ, что сделать это невозможно по следующим причинам:
  • Файл, который показывается при запуске приложения лежит внутри папки приложения, и, ак следовательно переписать его не является возможным
  • По аналогичной причине нельзя изменить файл Info.plist, в котором сохраняется относительный путь к файлу стартовым изображением

Однако, все же, это возможно сделать стандартными способами, без всякого рода Jailbreak'а. Впрочем, как и у каждого решения есть свои плюсы, минусы и особенности.

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

Используем блоки в IOS < 4.0

Время на прочтение1 мин
Количество просмотров1.1K
Для тех кто знаком с блоками в Objective-C, но не может пока их использовать в силу необходимости поддержки приложений для ios младше 4.0 версии, либо сторонится патченого компилера PLBlocks, предлагаю рантайм блоков в виде статической либы libESBlocksRuntime.a

Сам рантайм был выдернут с исходников проекта compiler-rt, и завернут в блоковые классы ESBlock. Добавлены недостающие методы -[ NSArray enumerateObjectsUsingBlock: ] и т.д. также UIView блоковые екстеншены.

Для подключения в проект достаточно скачать исходники проекта, и добавить его в dependencies например так.

Вопросы и предложения пишите в личку — с радостью отвечу каждому заинтересовавшемуся.

Здесь можно почитать о терии блоков на хабре.

Начинаем работу с Windows Azure Toolkit for iOS

Время на прочтение7 мин
Количество просмотров7.5K
Очень рад представить уже доступный тулкит Windows Azure Toolkit for iOS!

Первый релиз Windows Azure Toolkit for iOS позволяет просто и удобно получить доступ к хранилищу Windows Azure из iOS приложений. Также как и для Windows Azure Toolkit for Windows Phone 7 мы будем добавлять новые возможности в тулкит, такие как пуш-оповещение, Access Control Service и т.д.

iOS iOS iOS

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

Книги, видео и другие материалы по разработке под iOS

Время на прочтение4 мин
Количество просмотров114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


Когда решаешься заняться разработкой под iOS, то трудно выбрать литературу и ресурсы, которые действительно были бы полезны. Хорошо еще, что Apple предоставляет множество учебных материалов и программ с открытым исходным кодом в своем центре для разработчиков. В остальных книжках можно если и не утонуть, то порядочно захлебнуться. Сейчас я жалею, что потратил время на пару «мануалов». Не буду делать им антирекламу, а лучше порекомендую хорошие материалы по программированию под iOS.

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →

Что нужно знать перед тем, как писать под iOS

Время на прочтение7 мин
Количество просмотров308K
«Под Windows можно писать для iPhone?»
Анонимный разработчик


«Мы не планируем публиковаться в AppStore, это ведь возможно? И еще мы хотим версию под Android...»
Анонимный заказчик


Если вы решились разрабатывать приложения для iPhone/iPad, то, скорее всего, вас заинтересуют следующие вопросы:
  • как можно заработать на приложениях?
  • как зарегистрироваться в iOS Developer Program и что дает регистрация?
  • обязательно ли нужен Mac?
  • какие инструменты можно использовать для разработки?
Ответы на вопросы

Бесплатные инструменты мониторинга и статистики App Store

Время на прочтение2 мин
Количество просмотров63K
Мы будем следить за твоими успехами, юный Скайуокер.
(с) канцлер Палпатин.

В статье рассматриваются 3 сайта для мониторинга рейтинга/статистики AppStore, которыми я чаще всего пользуюсь. Дана краткая характеристика каждому ресурсу.
Эта статья может быть полезна:

  • раработчикам программ для iДевайсов (как начинающим, так и не очень)
  • маркетологам
  • всем, кто следит за бурным ростом мобильного IT вообще и AppStore в частности.


Основным источником информации о динамике продаж приложений в AppStore, безусловно, является iTunesConnect. Однако, как только приложений становитьься 2 и больше, там возникают некоторые сложности. Более того, естественно, iTunes совершенно не подходит для анализа успехов конкурентов, с чем рано или поздно приходится сталкиваться каждому разработчику.

Наиболее часто использую
Читать дальше →

Wordrive разбирается в себе и в отчетности Apple

Время на прочтение4 мин
Количество просмотров1.4K
В прошлый раз я начал рассказывать о собственном опыте продвижения игры Wordrive в AppStore и о связанных с этим тонкостях. Материал оказался интересным аудитории, будем продолжать.

Сегодня я затрону тему статистики. В комментариях к прошлому материалу я пытался найти ответ на вопрос — а что же такое «вчера» в терминах системы статистики App Store? Оказалось, это не так очевидно.

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

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

Введение в Core Graphics на iOS

Время на прочтение6 мин
Количество просмотров42K
Недавно обнаружил, что на хабре нет статей по работе с Core Graphics в iOS, также как не нашел подобных статей на русском языке. На сайте Apple для разработчиков есть документация по работе с 2D графикой в iOS — Core Graphics Framework Reference, включающее 400 страниц документации, полезной в качестве справки, но не дающей начального представления о работе с видами и рисованием. Поэтому я решил написать вводную статью по работе с 2D графикой в iOS.
Читать дальше →

The Cocoa Environment. Part 1

Время на прочтение5 мин
Количество просмотров13K
Многие об этом говорят, но какое на самом деле место занимает Cocoa environment в жизни IOS и MacOS, да и вообще что это за такая уличная магия?

Поприветствуйте Cocoa!


Cocoa — это основная среда приложений для Mac OS X (есть еще Carbon, но эта среда используется в основном только для поддержки кода написанного для Mac OS 9.) и единственная среда приложений для операционных систем IOS. Она состоит из набора объектно-ориентированных библиотек, исполняющей среды и среды разработки.
Большинство программ, которые используют пользователи Mac OS X (например, Mail или Safari), а тем более, пользователи IOS, это программы, написанные с помощью Cocoa.
Ну а для создания приложений под Cocoa используется знаменитый Xcode.

Как и с чем?


Как и во всех средах приложений, Cocoa имеет два мира: мир runtime'а и
Читать дальше →

«Съешь меня»… нет, не так… «Выполни меня»!

Время на прочтение15 мин
Количество просмотров2.9K
У меня периодические возникают разные потребности решения мелких насущных задач в Mac OS X. Для этих целей я обычно делаю небольшие программы, которые «закрывают» потребность частным образом. Но иногда хочется, чтоб программа была универсальной, и ей могли воспользоваться другие люди при необходимости (например «Переlator»). Так получилось и в этот раз…

Я люблю, когда Dock отображается всегда на экране. Но при запуске Симулятора iOS постоянно приходилось включать автоматические скрытие, чтобы симулятор полностью умещался на экране. Появилась задача — автоматизировать этот процесс. За пару дней набросал универсальную программу, с помощью которой можно задать AppleScript на определённое действие любой программы: «Программа запущена», «Программа завершена», «Программа активирована», «Программа деактивирована» и пр.



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

Веселые шрифты в своем приложении

Время на прочтение2 мин
Количество просмотров5.1K
Игровые приложения для детей и взрослых скучны без веселых букв и цифр.
Строгий iPhone кодекс не давал разработчику до версии iOS 3.2 стандартных способов использовать свои шрифты в приложениях.
Все спасались нарисованными в редакторе картинками цифр и букв или чужими библиотеками.

image

Как теперь обстоит дело с custom fonts для разработчиков iPhone поделок?
Осторожно! Под хабракатом 1 картинка, 1 анекдот сомнение и 2 фрагмента кода.

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

Начало работы с Facebook SDK для iOS

Время на прочтение8 мин
Количество просмотров20K
Сегодня важным элементом приложения является возможность сообщить вашим друзьям, коллегам, а также всему миру, что вы делаете, где и почему. В этом нам помогают социальные сети. Сети в свою очередь стараются облегчить труд программиста и создают свои SDK. Сейчас мы рассмотрим Facebook SDK для платформы iOS.

Когда я начинал разбираться с Facebook SDK примерно год назад, еще была версия, которая называлась facebook-iphone-sdk. Она и сейчас работает. Но я стал замечать странные сбои в приложении и решил, проверить не вышло ли что-то нового. Оказалось этот проект законсервирован, а разработчикам рекомендуется теперь использовать facebook-ios-sdk, где как утверждалось все еще проще. И как оказалось, не соврали.
Читать дальше →

Перенаправление функций в Mach-O библиотеках

Время на прочтение13 мин
Количество просмотров9.2K
В предыдущей статье был описан метод перехвата вызовов для разделяемых библиотек ELF. А сейчас мы посмотрим как сделать то же самое с библиотеками в формате Mach-O.

Вкратце напомню ситуацию. Имеем программу под Mac OS X, которая пользуется множеством сторонних динамически-компонуемых библиотек, которые, в свою очередь, также пользуются функциями друг друга.

Задача следующая: перехватить вызов некоторой функции из одной библиотеки к другой, и в обработчике вызвать оригинал.

Как обычно, нетерпеливые могут все скачать и попробовать прямо сейчас.
Решение и много картинок

Руководство Эпл по проектированию интерфейсов

Время на прочтение1 мин
Количество просмотров4.1K

Внимание! Новая информация о переводе!


Здравствуй, подхабр переводов. Я хочу обратиться к тебе с просьбой. Суть просьбы, как все уже догадались, в том, что нужна помощь в переводе. Переводим руководство Эпл по проектированию интерфейсов.1 Это полезный и важный документ для всех разработчиков и дизайнеров ПО. Да и не только ПО. В нём описываются как общеизвестные, так и не очень распространённые принципы, следование которым сделает дизайн, окружающий нас, на порядок лучше.
Читать дальше →