Коротко об iAd

Рекламная латформа iAd предоставляет разработчикам новые способы получения дохода и продвижения приложений. Вы добавляете баннер или полноэкранную рекламу в ваше приложение; Apple продает рекламное место и заполняет ею эти места. Вы зарабатываете, когда пользователь отображает или взаимодействует с рекламой, отображаемой …

Программирование фитнес-трекера Misfit. Authentication API

Источник

Общая схема работы:
1)регистрация нового приложения
2)Misfit предоставляет App ID и App Secret
3)приложение получает Auth Code (/auth/dialog/authorize), параметры запроса: client_id, scopes, response_type, redirect_uri
4)Misfit запрашивает авторизацию пользователя
5)пользователь успешно авторизуется
6)Misfit с Auth Code перенаправляет пользователя в приложение, …

Основные направления разработки с использованием HTTP Live Streaming для iOS (Перевод)

Источник:
https://developer.apple.com/streaming/

Отправляйте в реальном времени или предварительно закодированное аудио и видео на iPad, iPod touch и Mac с помощью обычного веб-сервера. Разработанное для мобильных устройств HTTP Live Streaming может динамически настраивать качество проигрываемого видео для того, чтобы соответствовать скорости …

OAuth и другие способы аутентификации в веб-приложениях

Источник:
http://habrahabr.ru/company/dataart/blog/262817/

Коротко об OAuth (например, gmail.com):
1)приложение запрашивает у пользователя разрешение на использование аккаунта gmail
2)пользователь дает разрешение приложению (разрешение == grant)
3)приложение обращается к серверу авторизации и обменивает grant и ключ авторизации (выдается при регистрации приложения) на token…

App Thinning (iOS, watchOS). Оптимизация приложений

App Store и операционная система оптимизируют установку iOS и watchOS приложений отдельно для каждого устройства, требуя минимальный объем занимаемой памяти. Эта оптимизация, названная app thinning (утоньшение приложения), позволяет вам создавать приложения, которые используют больше ососбенностей устройства, занимают меньше места и …

Горячие клавиши xCode

control+cmd+? (для ? может понадобиться shift) или option+click — всплывающая подсказка
control+option+cmd+/ или option+double click — открыть документацию по интересующему тексту

Остальное можно найти здесь:
http://iphonedev.tv/blog/2014/9/15/14-xcode-time-saving-shortcuts-memorize-and-improve-your-productivity…

Простое создание одновременных и последовательных анимаций

Когда используете animateWithDuration, то анимации постоянно конфликтуют между собой. А для одновременных анимаций проще всего делать «nested animations» (но при этом блоки animateWithDuration, вложены друг в друга).

Проблему решает библиотека RZViewActions:
https://github.com/Raizlabs/RZViewActions

Базируется на animateWithDuration, но при этом есть 3 …

Директивы компилятора Objective-C

Статья частично устарела, но может дать представление о различных директивах компилятора (начинающиеся со знака @):
http://itw66.ru/blog/obj_c/585.html

Что изменилось:
— @«string» называется литералом и с тех пор к нему добавлись массивы, словари, NSNumber и т.п.;
— категория не может добавлять переменных …

Как определить, поддерживает ли устройство на iOS эффект blur (размытие)?

Вариант 1. Требуется определить поддерживает ли устройство blur программно.
Решение:
http://stackoverflow.com/questions/19412094/how-can-i-detect-if-an-ios-device-supports-the-blur-effect

Код:

@interface UIDevice (Additions)

@property (readonly) NSString *platform;
@property (readonly) BOOL canBlur;

@end


@implementation UIDevice (Additions)

- (NSString *)platform {
    int mib[] = { CTL_HW, HW_MACHINE };
    size_t len 

Дочерний UIView блокирует срабатывание события TouchesBegan для родительского UIView

Суть проблемы — событие TouchesBegan срабатывает непосредственно на view, которого касается пользователь. У superview по умолчанию событие не срабатывает.
Ссылка на решение проблемы:
http://stackoverflow.com/questions/12811848/subview-blocking-parent-view-touchesbegan

Решение — в дочернем UIView нужно прописать следующий код:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   [super touchesBegan:touches