О блоках в ObjC и правильной работе с ними написано очень много, в том числе и на хабре. Вопрос о том, как правильно работать с self в блоках, чтобы избежать циклических ссылок, регулярно задается на собеседованиях. При использовании таких фреймворков, как ReactiveCocoa количество блоков в коде сильно возрастает, при этом увеличивается шанс допустить ошибку и потерять в памяти объекты. Про попытку окончательно решить эту проблему, метапрограммирование для с99 с экстеншнами и блоками + хипстерсткие макросы с @ под катом.
Компания Viber временно не ведёт блог на Хабре
Сначала показывать
MobileOptimized — мобильный уикенд в Минске с facebook, google и другими разработчиками
3 мин
2.8KЭтот пост о конференции MobileOptimized в Минске, и о том, как это, вероятно, одно из лучших мероприятий в СНГ для технологического нетворкинга в сфере разработки мобильных приложений.
MobileOptimized 2014 – впервые крупнейшая конференция для разработчиков мобильных приложений в Беларуси вышла на уровень лучших Европейских мероприятий. 2 дня, 60 докладчиков из США, Австралии, Тайваня, Англии, Германии, Голландии, Норвегии, Финляндии, Польши, Украины, России и Беларуси. Под крышей мероприятия соберутся для знакомства 15 технологических сообществ из разных городов Голландии, Польши, Беларуси, Украины, Литвы и России. Мероприятие пройдет 28-29 июня в Минске. Сайт конференции — mo.dev.by.

MobileOptimized 2014 – впервые крупнейшая конференция для разработчиков мобильных приложений в Беларуси вышла на уровень лучших Европейских мероприятий. 2 дня, 60 докладчиков из США, Австралии, Тайваня, Англии, Германии, Голландии, Норвегии, Финляндии, Польши, Украины, России и Беларуси. Под крышей мероприятия соберутся для знакомства 15 технологических сообществ из разных городов Голландии, Польши, Беларуси, Украины, Литвы и России. Мероприятие пройдет 28-29 июня в Минске. Сайт конференции — mo.dev.by.

+6
+26
Вывод текста в iOS: CoreText, NSAttributedString
11 мин
10KТуториал
Я хотел бы Вам рассказать про вывод текста на экран в iOS. Вначале это задумывалось как туториал, затем как сбор неочевидных фактов, а получилось что получилось.
Способы вывода текста условно можно разделить на несколько категорий:
Способы вывода текста условно можно разделить на несколько категорий:
- UIKit — привычные UI контролы. Дают только базовые возможности по отображению, совсем мало возможностей по форматированию
- UIKit + NSAttributedString — привычные UI контролы с возможностью установки строки с атрибутами отображения. Куча возможностей по форматированию
- CoreText — фреймворк для работы с текстом и текстовыми представлениями. В связке с NSAttributedString дает массу возможностей по форматированию текста и, благодаря нескольким уровням абстракций над элементами текста, расширенные методы по их отображению
- CoreGraphics — с помощью него тоже можно отрисовывать текст
+29
Программирование звука с низкой задержкой в iOS
6 мин
15KВ статье будут рассмотрены особенности работы низкоуровневого API для работы со звуком в iOS, с которыми пришлось столкнуться при разработке Viber. Речь пойдет о выборе размера аппаратного буфера и поведении AudioUnit при изменений частоты дискретизации.
Для программной работы со звуком в iOS Apple предоставляет 4 группы API, каждая из которых предназначена для решения определенного класса задач:
Для программной работы со звуком в iOS Apple предоставляет 4 группы API, каждая из которых предназначена для решения определенного класса задач:
- AVFoundation позволяет проигрывать и записывать файлы и буферы в памяти с возможностью использовать предоставляемые платформой аппаратные или программные реализации некоторых аудио-кодеков. Рекомендуется использовать, когда нет жестких требований к низкой задержке проигрывания и воспроизведения.
- OpenAL API предназначено для рендеринга и воспроизведения трехмерного звука а так же использования звуковых эффектов. Применяется, в основном, в играх. Обеспечивает низкую задержку воспроизведения, но не предоставляет возможности записывать звук.
- AudioQueue базовое API для записи и воспроизведения аудиопотоков с возможностью использования кодеков, предоставляемых платформой. Используя это API, не получится получить минимальную задержку, но пользоваться им крайне просто.
- И наконец AudioUnit, мощное и богатое API, для работы со звуковыми потоками. По сравнению с Mac OS X на iOS программисту доступно не полностью, но для записи и воспроизведения звука как можно ближе к «железу» подходит лучше всего.
+47