Pull to refresh
32
0
Send message

Решение проблемы с циклическими ссылками в блоках ObjC

Reading time12 min
Views29K
О блоках в ObjC и правильной работе с ними написано очень много, в том числе и на хабре. Вопрос о том, как правильно работать с self в блоках, чтобы избежать циклических ссылок, регулярно задается на собеседованиях. При использовании таких фреймворков, как ReactiveCocoa количество блоков в коде сильно возрастает, при этом увеличивается шанс допустить ошибку и потерять в памяти объекты. Про попытку окончательно решить эту проблему, метапрограммирование для с99 с экстеншнами и блоками + хипстерсткие макросы с @ под катом.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments16

Программирование звука с низкой задержкой в iOS

Reading time6 min
Views15K
В статье будут рассмотрены особенности работы низкоуровневого API для работы со звуком в iOS, с которыми пришлось столкнуться при разработке Viber. Речь пойдет о выборе размера аппаратного буфера и поведении AudioUnit при изменений частоты дискретизации.

Для программной работы со звуком в iOS Apple предоставляет 4 группы API, каждая из которых предназначена для решения определенного класса задач:
  • AVFoundation позволяет проигрывать и записывать файлы и буферы в памяти с возможностью использовать предоставляемые платформой аппаратные или программные реализации некоторых аудио-кодеков. Рекомендуется использовать, когда нет жестких требований к низкой задержке проигрывания и воспроизведения.
  • OpenAL API предназначено для рендеринга и воспроизведения трехмерного звука а так же использования звуковых эффектов. Применяется, в основном, в играх. Обеспечивает низкую задержку воспроизведения, но не предоставляет возможности записывать звук.
  • AudioQueue базовое API для записи и воспроизведения аудиопотоков с возможностью использования кодеков, предоставляемых платформой. Используя это API, не получится получить минимальную задержку, но пользоваться им крайне просто.
  • И наконец AudioUnit, мощное и богатое API, для работы со звуковыми потоками. По сравнению с Mac OS X на iOS программисту доступно не полностью, но для записи и воспроизведения звука как можно ближе к «железу» подходит лучше всего.

Поговорим про AudioUnit и iOS
Total votes 55: ↑51 and ↓4+47
Comments12

Некоторые особенности реализации фоновых приложений для iOS 4

Reading time7 min
Views13K
В статье речь пойдет об опыте реализации фоновых приложений для платформы iOS 4 в рамках работ над проектом Viber компании Viber Inc. Первая версия Viber была доступна пользователям AppStore 2 декабря 2010 года. Количество пользователей приложения Viber для iPhone в мае 2011 года превысило 15 млн. пользователей. Приложение обладает несколькими интересными особенностями:
  • повторяет интерфейс телефонной книги iPhone;
  • строит социальный граф на базе телефонной книги пользователя;
  • позволяет звонить и отправлять короткие сообщения между пользователями Viber.


Версия под операционную систему Android сейчас в стадии закрытого бета-теста.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments9

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity