Шпаргалка. Инструкция по тому, где скачать и как встроить - в документации Facebook. Несмотря на то, что обновляли они проект на Github недавно (23 ноября на данный момент), в нагрузку идёт у них старая версия фреймворка для работы с JSON. А, т.к. в мой проект уже встроена более новая версия фреймворка приложение не компилилось.
Решение:
после добавления SDK в проект удалить папку JSON из SDK Facebook;
в файле FBRequest.m заменить строку #import "JSON.h" на #import "SBJson.h";
Мы наконец-то сделали первую версию AllCafe для iPhone, которую уже можно показывать.
Сколько раз вы попадали в ситуацию, когда приходишь в заведение - а там нет мест или просто вам там сегодня не нравится? Я - довольно часто. И первая мысль - а где можно ещё посидеть/поесть/попить рядом?
На нашем портале AllCafe.ru собрана довольно большая база ресторанов по всей России. А также отзывов пользователей о них. Мы сделали приложение для iPhone, которое, кстати, весил всего около 200 кб. С его помощью можно посмотреть на карте ближайшие заведения, либо увидеть их списком с примерным расстоянием.
О каждом заведении можно посмотреть краткую информацию - адрес, телефон (само собой можно сразу набрать номер из приложения), что за кухня в этом заведении, почитать новости о заведении, и, что немаловажно, почитать отзывы - что люди пишут и стоит ли туда идти.
Помимо этого можно самому написать отзыв о заведении. Например, сидите вы весь довольный (или недовольный) в ресторане - открываете и добавляете отзыв.
Это пока только то, что на данный момент есть в приложении. Список запланированных фич довольно большой и работы мне хватит надолго.
Собственно - это моё первое приложение для iOS. С почином меня.
Мой Rode Stereo VideoMic не справлялся с громкими концертами и засирал звук. Во вторник я стал обладателем прекрасного девайса Zoom H4N.
Описывать чего в нём крутого не буду - это можно прочитать в интернете, скажу только, что качество записи у него очень классное. А самое главное - он отлично справляется с концертами. Дабы испытать его в бою - я сразу пошёл на концерт в Орландину, там вчера выступали ребята из Германии - WE BUTTER THE BREAD WITH BUTTER. Играют они тяжеляк, поэтому рекордер попал сразу в условия громкого и тяжёлого концерта.
В настройках рекордера есть пункт COMP/LIMITER, я так понимаю это некий набор настроек для записи. Снял видео с концерта со звуком из рекордера. Оно из двух частей. Первая - записывал с пресетом LIMIT2 (CONCERT) и ручным уровнем записи (уровень был 8 из 100). То, что записалось, мне не очень нравится. А вот вторая часть была с пресетом LIMIT3 (STUDIO) - с ним даже в домашних условиях звук получается чище и звучит приятнее. А вот уровень записи выставил AUTO. Результат мне нравится сильно больше.
В любом случае то, как записался звук на таком концерте - показатель того, что устройство пишет всё очень достойно. На нём, пожалуй, и остановлюсь.
С начала видео и до 9:43 идёт LIMIT2 (CONSERT) и уровень записи 8, с 9:43 и до конца идёт LIMIT3 (STUDIO) и автоматический уровень записи. Результат:
Появилась нужна использовать в проекте и UINavigationController, и UITabBarController одновременно. Два способа как это сделать.
Создадим пустой проект. Прописывать контроллеры будем вручную. Итак, у нас есть AppDelegate.h и AppDelegate.m.
Способ 1. UINavigationController внутри UITabBarController. (от @vox_humana)
В этом способе в приложении всегда есть Tab Bar, он всегда виден и между табами всегда можно переключаться. Внутри одного из табов (или можно сделать во всех) есть вид с UINavigationController, в котором можно делать перемещение между видами с помощью push и pop.
Создадим два новый файла типа UIViewController subclass (с галкой with XIB for user interface). Назовём их, скажем, FirstViewController и SecondViewController. Это будут два наших вида, которые будут выводиться в двух табах.
Внутри метода didFinishLaunchingWithOptions прописываем следующее:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// создаём окно для приложения по размеру экрана
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// создаём два экземпляра UIViewController
UIViewController *viewController1, *viewController2;
// первый вид инициализируем с интерфейсом нашего первого контроллера
viewController1 = [[UINavigationController alloc] initWithRootViewController:[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]];
// второй вид инициализируем с интерфейсом нашего второго контроллера
viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
// подключаем наши виды к таб-бару
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
// как основной контроллер приложению ставим tabBarController
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
Теперь при запуске у нас появится таб-бар внизу экрана. В каждом табе будет по контроллеру. Первый контроллер (viewController1) будет иметь в себе UINavigationController, что позволит нам делать push и pop видов. Для примера добавим ещё один UIViewController subclass (с галкой with XIB for user interface). Назовём его MyViewController. Таким образом у нас уже будет 3 UIViewController в проекте:
Поскольку у нас viewController1 (он же FirstViewController) содержит в себе UINavigationController, то добавим в него какое-нибудь действие, чтобы перейти в наш контроллер. Сначала в начале FirstViewController.m сделаем #import "DetailViewController.h", затем добавим метод:
Добавить в xib-файл UITabBarController, связать его в Connections Inspector. Создаём два вида в проекте - FirstViewController и SecondViewController, для UITabBarController, что внутри RootViewController.xib привязываем табы к этим видам.
Общая суть в том, что self.window.rootViewController - это UINavigationController. У приложения есть RootViewController со своим xib. Его можно оставить пустым, но ему нужно прописать @property:
Когда вид RootViewController загружается - мы сразу делаем push в наш tabBarController. Таким образом первое, что видно при запуске - это табы и верхнюю панель с кнопкой назад, которую в этом месте можно скрыть и показывать только дальше где-то.
Главный плюс - внутри видов, которые грузятся внутри UITabBarController - можно в коде делать перемещение основного экрана в другие виды и возвращаться обратно. Видео:
По такому принципу сделано приложение ВКонтакте для iPhone. Реализовано в моём примере, пожалуй, не идеально, при желании можно допилить, но работает. Скачать пример.
На будущее пригодится, заодно сам ещё раз всё проделал и закрепил.
Ну вот, вышла новая макось с поддержкой iCloud, да и сам iCloud вышел из beta.
Собственно после установки обновлений сразу после перезагрузки системы предлагается войти в iCloud под своим Apple ID. После входа предлагают отметить сервисы, которые ты хочешь использовать.
Почту я решил не отмечать - не вижу как-то смысла. Я итак пользуюсь почтовым клиентом и на компах, и на мобильных девайсах. Почта по imap, так что всё вроде итак синхронизируется. Контакты - штука относительно полезная. Лично мне она пока не нужна, но после включения этой штуки все контакты из записной книжки в телефоне появились на обоих моих маках.
Самое полезно, на мой взгляд - синхронизация календарей. Мне очень не хотелось в своё время заморачиваться с синхронизацией через гугл и ведением календаря там, тем более, что из гугловских сервисов я использую постоянно только YouTube. Очень приятно, что теперь всё из коробки может работать и синхронизироваться. Например, я забил даты премьер фильмов, которые хочу посмотреть. Они появились в календарях на всех моих устройствах и маках. Есть, правда, одна неприятная деталь - забил я эти события на одном из маков. После синхронизации у него эти события продублировались. Но, наверное, это стартовый глюк и недосмотр Apple. После добавления нового события оно везде появилось по одному разу.
С документами пока не понятно. Десктопные программы из iWork предлагают публиковать файлы только на iWork.com, который находится ещё в статусе публичной беты.
Функция «Найти Mac» позволяет отследить потом через сайт iCloud.com - где он находится. Я так понимаю - это на случай, если украли или где-то забыл, но не помнишь где.
Также стал для всех открыт iCloud.com - оформлен в стиле iOS и предлагает 5 инструментов (точнее 4).
Почта должна представлять собой похожий на стандартное приложение Mail веб-интерфейс. Контакты и Календарь выглядят точно так же, как и стандартные приложения Mac OS.
А вот функция Find My iPhone выглядит очень занятно - показывает, несмотря на название, не только телефоны, но и маки, на которых включена функция «Найти Mac».
На устройства можно отправить сообщение и звуковой сигнал. Приходит моментально, да ещё и сообщение на почту отправляет о том, что такое-то сообщение было отправлено и доставлено на устройство. Можно удалённо заблокировать устройство или очистить его. Для iPhone и вовсе есть переключатель - когда найдётся - сразу же отправить себе письмо. То есть мониторится местоположение как-то без твоего участия, похоже.
Раздел iWork пока содержит только рекламки, предлагающие поставить программы из этого пакета на свои iOS устройства. Видимо они уже работают с iCloud. У меня ни одно приложение из iWork на iOS-устройствах не стоит за ненадобностью.
В iOS-устройстве в настройках iCloud можно включить фотопоток. С того момента, как его включить - все новые фотографии начинают заливаться в iCloud и быть доступны на других устройствах. Заливаются только новые, то есть сделанные после включения функции. Сделанные до включения - никуда не заливаются. Вот так они выглядят в iPhoto на маке:
В общем-то в iPhoto надо тоже включить функцию фото-потока. Как только я сделал фотографию на iPhone (и зашёл в список фотографий) - фотография полилась на iCloud. В iPhoto появилась автоматически без моего участия.
Самая непонятная пока для меня функция - Доступ к моему Mac. Судя по иконке - это возможность подключиться по удалённому рабочему столу к своему Mac, однако пока я не нашёл - как же это сделать. Очень хочется пользоваться этой функцией, чтобы подключаться к своему домашнему компу с работы, а то TeamViewer уже порядком достал своими глюками да назойливыми сообщениями, открытиями своего сайта и предложением купить. Update: описание того, как это работает.
Закладки я не включал в iCloud, т.к. не пользуюсь Safari почти. А закладки используемой мной Opera итак синхронизируются через их встроенный в браузер сервис Opera Link.
В облаке также хранятся резервные копии моего iPhone, которые уже почти половину доступного бесплатного места забили. Штука полезная если внезапно комп сломается. Но как-то это не кажется мне такой уж трагедией. Да и остальные синхронизации тоже своего рода бэкап.
Больше всего я ждал iTunes Match, но он выйдет не скоро, и, увы, работать будет пока только в штатах, как и все облачные музыкальные сервисы - будь то Amazon, будь то Google. Грустно, прям хоть свой пиши.
В общем пробовал всяческие настройки микрофона на концерте. Лучший вариант - включённый тумблер -10 db, одетый на микрофон мех (оказывается он не только от ветра помогает, но и от перегруза). Идеального звука, увы, так и не удалось добиться, хотя концерт был довольно громкий. Но сильно лучше, чем первые попытки. Всё равно местами барабаны засираются.
Ещё снижал уровень записи на самом фотоаппарате в настройках. Если сделать около 50% - то звук лучше. Если делать меньше - то просто на итоговом видео громкость тише, а засирания те же. Вот что получилось:
Буду пробовать снимать на других концертах что-то и думать, как ещё лучше звукоизолировать микрофон, чтобы всё записывалось хорошо.
Решил приобрести себе внешний микрофон для своей зеркалки Canon 60D, чтобы снимать видео на концертах с хорошим звуком. После гугления и помощи-рассуждений @theproof в поле зрения попали изделия фирмы RODE.
Микрофон нужен для зеркалки, соответственно у него должно быть крепление типа «башмак«, чтобы одевать на камеру. Решили, что если брать микрофон - то уж фирмы, специализирующейся на них, коей RODE, вроде как, и является. Различные Nikon/Sony микрофоны сразу отбросили. У RODE довольно большой выбор. Из доступных по бюджету были конденсаторные RODE VideoMIC и RODE Stereo VideoMic. Из названия понятно, что первый пишет в Mono (к тому же имеет неприличную длину). Второй пишет в Stereo, что мне нравится гораздо больше.
Микрофону требуется отдельное питание от 9-вольтовой кроны, что скорее плюс, чем минус - не будет жрать батарейку камеры. От кроны он может работать около 60 часов подряд, что, по-моему, вполне приемлимо, если, конечно, не снимать сутки напролёт.
Подключается к камере он через 3.5 мм джек. У него есть три переключателя (не сразу понял, что это переключатели, думал сначала, что кнопки):
Левый переключатель - позволяет снизить уровень записи на 10 децибел, что годится, когда записываешь что-то громкое, например, концерт (что я и собираюсь делать). Средний переключатель - вкл/выкл. Правый при включённом состоянии позволяет снизить высокочастотные шумы - например, шум автомобилей.
Также в комплекте идёт мех для записи звука на улице в ветренную погоду.
В общем, я, как обычно, не прочитал ни инструкции, ни советов. Просто нацепил его и пошёл на концерт. Снял два видео. Звук получился местами засранный, т.к. переключатель в -10 децибел я не поставил, и уровень записи звука на камере не снизил (рекомендуют 75% ставить). К слову - концерт двух японцев - Tezya и ASAKI. В интернетах пишут, что это Future Glam Rock - ну в общем для школьниц, походу. Был в малом зале Орландины.
Получившееся видео:
Завтра с нормальными настройками попробую на Смысловых Галлюцинациях записать звук.