среда, 14 сентября 2016 г.

ios 10 | appledrom.ru


ios 10

iOS 10 стала лучше, быстрее, продуманнее в ряде аспектов и положила конец поддержке некоторых устройств. Изменений много, но не все бросаются в глаза. Так что постарайтесь ничего не пропустить.

Поддерживаемые устройства

Установить iOS 10 можно на iPhone 5, iPad mini 2, iPad 4, iPod touch шестого поколения и более новые модели.


apple.com

Экран блокировки

Пожалуй, самые заметные изменения в iOS 10 претерпел экран блокировки. Теперь многое происходит по-другому. Так, владельцам iPhone 6s и iPhone 6s Plus не нужно даже ничего нажимать, чтобы экран смартфона ожил: всё происходит автоматически. Более старые устройства потребуют нажатия кнопки «Домой». Если у вас не установлен пароль для входа и не используется Touch ID, то для разблокировки больше не нужно делать привычный свайп по экрану. Необходимо всего лишь ещё раз нажать «Домой».

iOS 10 iOS 10

Если сканер отпечатков пальцев у вас настроен и работает, то уже первым нажатием вы разблокируете смартфон. Тут есть интересный момент: если оторвать палец достаточно быстро, то вам удастся задержаться на экране блокировки, который на самом деле уже не заблокирован.

На этом изменения не заканчиваются. Обращает на себя внимание новый дизайн уведомлений. Взаимодействовать с ними можно как при помощи 3D Touch, так и просто разворачивая входящие оповещения и выбирая из доступных действий.

iOS 10 iOS 10

Экран блокировки теперь поддерживает перемещение влево и вправо. Слева от главного экрана расположилась строка поиска Spotlight и переработанный блок виджетов. Последние также видоизменились, стали более функциональными, обзавелись поддержкой нажатий 3D Touch. Ну а у разработчиков появилась причина делать небольшие представления своих приложений уже на этапе разблокировки девайса.

Наконец, справа от главного экрана расположился доступ к камере. Больше никакого смахивания снизу вверх в правом углу.

Домашний экран

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

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

Пункт управления тоже был изменён. Теперь он разделён на отдельные экраны. Первый очень похож на то, что было раньше. Пропали только инструменты для управления воспроизведением. Они переехали на следующий экран пункта управления, их стало больше. В целом изменился дизайн, освободившееся пространство позволило укрупнить кнопки. При этом настроить собственные переключатели по-прежнему нельзя.

Примечательно, что если у вас установлено приложение Shazam, то запустить его можно будет прямо из пункта управления, с экрана управления воспроизведением.

iOS 10 iOS 10

Сам по себе домашний экран с сеткой приложений претерпел наименьшие визуальные изменения. Обновилась только анимация открытия и закрытия папок. Тем не менее здесь имеется одно серьёзное нововведение: возможность скрывать предустановленные в iOS программы. Происходит это примерно так же, как удаляются приложения из App Store. Однако системные программы просто скрываются с домашнего экрана и могут быть восстановлены в любой момент. Спрятать можно большую часть предустановленных Apple приложений.

iOS 10 iOS 10

Разумеется, слева от первого домашнего экрана по-прежнему присутствует поиск Spotlight, к которому добавились ещё и виджеты. Теперь эти небольшие дополнения к программам доступны буквально отовсюду.

На домашнем экране и среди виджетов появились новые действия для 3D Touch: Apple основательно поработала над дальнейшим внедрением этой перспективной функции. 3D Touch теперь могут использовать и разработчики приложений, поэтому изменяемая сила нажатия на экран будет особенно востребованной в новой версии мобильной операционной системы.

Встроенные приложения

Сообщения

iOS 10 iOS 10

Приложение «Сообщения», точнее, его часть под названием iMessage — это, вероятно, главное нововведение iOS 10. Возможности общения посредством iMessage серьёзно расширились, некоторые идеи были позаимствованы у Apple Watch.

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

Подробный обзор iOS 10 Подробный обзор iOS 10

Однако перечисленное выше лишь малая часть нововведений. Так, отправку сообщений теперь можно сопровождать различными визуальными эффектами, а передавать информацию можно с помощью невидимых чернил.

Появился предпросмотр ссылок, шаринг треков из Apple Music (получатель тоже должен иметь рабочую подписку на сервис), есть даже поиск изображений, замещающий клавиатуру при наборе сообщения.

Кажется, что служба iMessage в iOS 10 вобрала в себя абсолютно все тренды сетевого общения. А ведь мы ещё не упомянули о возможностях изменять фон окна диалога, устанавливать дополнения для iMessage из App Store и даже оставлять реакции на входящие сообщения.

iOS 10 iOS 10

Телефон

Приложение изменилось незначительно: на клавишах набора номера появились русские буквы. Возможно, кому-то это пригодится.

В настройках iOS 10 теперь есть пункт, дающий возможность использовать приложения из App Store для блокировки номеров. Поэтому бороться с голосовым спамом станет легче.

Пользователи из Беларуси наверняка оценят проблему с набором плюса путём удержания нуля. На протяжении всего тестирования новой версии ОС баг не устранялся и плавно перекочевал в финальный релиз.

Часы

Вдохновляясь Apple Watch, разработчики решили изменить цветовую схему приложения «Часы» на тёмную. Также появился совершенно новый пункт меню под названием «Время ложиться». Эта функция предназначена для улучшения качества сна пользователя iOS 10. Вам нужно указать желаемое время пробуждения, нужное количество отдыха и ряд других деталей, а ваше устройство Apple уже само разберётся, когда отправить вас в кровать. Новые мелодии будильника прилагаются.

iOS 10 iOS 10

Фото

Буквально с каждым обновлением мобильной операционной системы Apple улучшает приложение «Фото». На сей раз добавлены возможности анализафотографий и распознавания лиц. Теперь можно попросить Siri показать снимки с автомобилями, и система безошибочно отыщет их в вашей фотоколлекции. Аналогично действует и распознавание лиц.

По-настоящему хорошо работает новая функция «Воспоминания». iOS 10 самостоятельно группирует события по дате и местоположению, создавая крутые визуальные презентации различных событий из имеющихся в вашей ленте фотографий. Всё это дело можно редактировать.

Кстати, редактирование изображений теперь также выведено на качественно новый уровень. Куцые системные возможности правки фотографий никуда не делись, но к ним Apple позволила добавлять инструменты из сторонних приложений. Так, вам даже не придётся отдельно запускать Pixelmator: все возможности будут уже под рукой при редактировании в приложении «Фото».

Заметки

Приложение было основательно переработано ещё в iOS 9. В «десятке» оно всего лишь получило возможность совместного редактирования заметок и предоставления прав на их просмотр другим пользователям. Таким образом, система ведения записей в iOS 10 позволяет практически полностью отказаться от альтернатив в виде сторонних сервисов.

iOS 10 iOS 10

Настройки

Системные настройки iOS 10 получили несколько изменений. В частности, настройки Siri вынесены в отдельный пункт меню. Также появилась возможность устанавливать в систему дополнительные словари, например толковый словарь русского языка. Он будет использован, чтобы давать определения выделенным словам.

Отныне можно ограничить использование памяти устройства приложением «Музыка». Если встроенная память закончится, то iOS 10 сама удалит те треки для офлайнового воспроизведения, которые вы давно не слушали.

Напоследок отметим одну новую картинку для использования в качестве обоев.

iOS 10 iOS 10

Siri

Виртуальный ассистент в iOS 10 поумнел и, главное, получил поддержку сторонних приложений. После того как разработчики обновят свои программы, вы сможете использовать в них Siri. Набрать сообщение в WhatsApp, не прикасаясь к смартфону, — скоро это станет возможно.

Обращает на себя внимание и обновлённый женский голос Siri. Звучит он гораздо приятнее. Более того, Apple предлагает установить мужской голос в качестве альтернативы. В общем, Siri в iOS 10 только радует.

Дом

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

Если приложение «Дом» для вас бесполезно, то теперь его хотя бы можно удалить.

iOS 10 iOS 10

App Store

В магазине приложений не так много изменений, но они нужные. Практически бесполезное меню «Просмотр» было удалено, а на его место пришёл список категорий App Store. Подобное изменение напрашивалось давно, поэтому здорово, что оно было реализовано.

Карты

Много внимания Apple уделила обновлению «Карт», точнее, их возможностей. Теперь сразу после запуска приложения можно указать цель маршрута, на выбор также доступны места, которые могут представлять интерес для пользователя. Можно просмотреть погоду в определённой точке на карте. Особого внимания заслуживает изменение интерфейса. Он наконец-то стал удобен для водителей благодаря крупным элементам. Обновились шрифты и анимация.

Контакты

Само приложение не претерпело изменений, зато серьёзно видоизменились карточки контактов. Теперь любой человек в вашей адресной книге представлен гораздо более удобно: сразу под фотографией и именем расположен набор кнопок для связи всеми доступными способами. Чуть ниже — уже привычный список номеров и другая информация.

iOS 10

Музыка

iOS 10 iOS 10

Приложение «Музыка», клиент сервиса Apple Music, серьёзно изменилось. На место перегруженного интерфейса пришли крупные, удобные для использования на ходу элементы. Вкладка «Медиатека» переехала в самое начало и доступна сразу после запуска — этого не хватало раньше. Более того, там же можно организовать различные категории для отображения музыки.

iOS 10 iOS 10

Изменился и сам плеер: больше на экране нет ничего лишнего. Все действия с треком, включая его загрузку на устройство и добавление в медиатеку, теперь можно совершать из контекстного меню. Работа с «Музыкой» стала проще и понятнее, плеер однозначно удобнее для использования в движении.

iOS 10 iOS 10

Здоровье

Приложение «Здоровье» предстало в iOS 10 практически без изменений. На слегка модифицированный дизайн обратят внимание лишь те, кто регулярно заглядывает в программу.

iOS 10

Apple Watch и «Активность»

Владельцы умных часов от Apple наверняка отметят улучшение приложения для управления часами со смартфона. Теперь отсюда можно всесторонне настраивать циферблаты. Был убран откровенно непонятный пункт меню с набором промороликов. Теперь всё стало значительно логичнее и удобнее для владельца часов, а не для их потенциального покупателя.

Для полноценной работы Apple Watch нужно обновить до watchOS 3.

iOS 10 iOS 10

В приложении «Активность» появились новые достижения, а также возможность поделиться своими успехами с друзьями, причём происходить это будет в автоматическом режиме.

Почта

Почтовый клиент в iOS 10 остался практически без изменений. Теперь можно просматривать цепочки сообщений, отфильтровывать непрочитанные письма. Почтовые ящики отображаются полным набором папок и подпапок.

Safari

Мобильный браузер Safari наконец-то обзавёлся простой, но полезной возможностью закрывать все вкладки одновременно. Также в браузере появилась поддержка Apple Pay, потому что платёжная система американской компании теперь будет представлена и в интернете.

Владельцы iPad будут рады возможности использовать двухоконный режим для запуска Safari. Таким образом можно просматривать сразу две страницы или переносить информацию с одной на другую. Это важный шаг для планшетов Apple в попытке заменить компьютеры.

iOS 10

Другие изменения и нововведения

Сразу после установки iOS 10 обращают на себя внимание два момента: изменённый звук блокировки устройства и обновлённое звучание клавиатуры. Новые звуки не кажутся чужеродными, они идеально соответствуют духу этой версии мобильной операционной системы Apple и уже через несколько минут перестают выделяться на общем фоне.

Если вы активно используете несколько гаджетов Apple, то оцените новый буфер обмена, работающий между устройствами. Скопировали фрагмент текста на iPhone и вставили его уже на Mac под управлением macOS Sierra. На этом взаимная интеграция не заканчивается: в приложении iCloud Drive на iOS 10 доступен рабочий стол и папка с документами вашего компьютера Mac. Нужно всего лишь активировать соответствующую настройку на последнем.

В связи с активным использованием iCloud Apple выкатила новый тарифный план, предлагающий целых 2 ТБ пространства в облаке. Стоит это удовольствие 1 490 рублей в месяц.

Об улучшении возможностей 3D Touch уже говорилось выше, но нельзя обойти вниманием симбиоз данной функции с простым фонариком. Теперь, если задержать палец на иконке включения фонарика, можно выбрать яркость.


Такой получилась iOS 10. Безусловно, Apple проделала большую работу и новая версия операционной системы — это большой шаг вперёд. В будущем нас наверняка ожидают промежуточные обновления с исправлениями, улучшениями и даже новыми функциями. В коде iOS 10 нашли следы тёмной темы оформления, поэтому нельзя исключать, что где-нибудь в iOS 10.1 мы сможем сменить тона операционной системы на менее светлые. Впереди ещё много интересного!

Обновление до iOS 10 доступно для загрузки и установки на все совместимые устройства уже сегодня. Также владельцы Apple Watch могут обновить свои умные часы до watchOS 3.

Автор Юрий Милош

вторник, 6 сентября 2016 г.

Apple случайно рассекретила iPhone 7 и iPhone 7 Plus за сутки до официальной презентации MacDigger | MacDigger.ru – новости из мира Apple

Apple случайно рассекретила iPhone 7 и iPhone 7 Plus за сутки до официальной презентации

В среду Apple представит свои очередные новинки. Главными из них будут новые смартфоны, которые в Сети называют iPhone 7 и iPhone 7 Plus. За день до официальной презентации на сайте компании обнаружили упоминание еще не представленных устройств компании.

iPhone-lng-2

Утечку допустили веб-разработчики Apple. На сайте apple.com в разделе аксессуаров были добавлены два новых смартфона компании в списке устройств, совместимых с фирменной гарнитурой «яблочного» бренда.

Первым на этот факт обратил внимание пользователь форума Reddit под ником Jaspergreenham. Это произошло явно по недосмотру сотрудников Apple. Ошибку быстро исправили, но скриншоты с названиями новых iPhone успели распространить пользователи в Сети.

По сообщению информированных источников, первая партия iPhone 7 уже была отправлена из Китая зарубежным заказчикам. В частности, 2 сентября из городского уезда Синьчжэн города Чжэнчжоу (административный центр провинции Хэнань, Центральный Китай) отгрузили 84 700 смартфонов нового поколения. К понедельнику зарубежным ритейлерам было отправлено в общей сложности уже около 371 000 iPhone 7 и iPhone 7 Plus. Основные заказчики находятся в Англии, Италии, Нидерландах и США.

iPhone-lng-1

Ключевыми изменениями в новых iPhone станет улучшенная камера, более производительный процессор A10, 32 ГБ в минимальной и 256 ГБ в максимальной комплектации, а также отказ от 3,5-мм разъема для наушников в пользу беспроводной гарнитуры AirPlay.



Отправлено с iPhone

пятница, 26 августа 2016 г.

12 скрытых возможностей Facebook, о которых вы даже не догадывались


12 скрытых возможностей Facebook, о которых вы даже не догадывались

 

Автор: Пол Бутин (Paul Boutin)

Перевод: Михаил Пономаренко 

Перевод статьи "12 Things You Didn't Know Facebook Could Do", NYTimes

Дизайнеры и программисты, занимающиеся разработкой Facebook, недовольны своим успехом. Над ними постоянно нависает угроза от специализированного ресурса по работе и выстраиванию карьеры LinkedIn, молодых выскочек, таких как приложение по обмену фотографиями Instagram, а сейчас еще и от быстроразвивающегося проекта Google+.

Попытка усовершенствовать основной дизайн Facebook увеличила число пользователей на десятки миллионов за первые несколько недель. Поэтому доминирующий пока на рынке Facebook добавляет возможности для улучшения возможностей социальной сети.

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

Редактирование названия и описания ссылки.

 

Если вы хотите опубликовать ссылку на своей странице Facebook, но вам не нравится название или описание, которое Facebook автоматически копирует со страницы, на которую вы ссылаетесь, есть возможность изменить их. Перед тем как вы нажмете «Поделиться» (Share), наведите курсор на название или описание и нажмите на кнопку мыши в редактируемом сообщении. Вы увидите рамки ввода, похожие на те, в которых вы переименовываете название файла на экране вашего компьютера. Когда вы закончите редактирование, нажмите клавишу «Ввод» (Enter), чтобы сохранить изменения.

Отмечайте друзей в ваших статусах и комментариях.

 

Если вы напечатаете имя вашего друга в Facebook, обновляя статус или оставляя комментарий, Facebook автоматически создаст ссылку на страницу друга. Фактически, появится список возможных автозаполнений имен собственных как, например Иван («John»).

Как только вы ввели имя, вы можете удалить фамилию во избежание формальности, или кликнуть на середину сообщения для редактирования имени, изменяя «Иван Петров» на «Иван» или «Петров». К сожалению, вы можете только сократить имя – изменить «Иван Петров» на «Дружище» не получится.

Публикуйте песни.

 

Если вы опубликуете ссылку, которая заканчивается на «.mp3», то Facebook автоматически создаст опцию проигрывателя в середине сообщения, позволяя другим пользователям прослушать музыку, не переходя по ссылке.

Создавайте фотографии профиля.

 

На каждой фотографии, на которой вас отметили в Facebook, в левом нижнем углу есть дополнительная ссылка голубого цвета на страницу под названием «Создать фотографию профиля» (Make Profile Picture). Нажмите на нее, и в Facebook появится страница редактирования, где вы сможете отредактировать фотографию и использовать ее в качестве фотографии вашего профиля.

Создайте опрос. 

 

Чуть выше рамки ввода статуса находится кнопка «Задать вопрос». Публикация вопроса выглядит точно также как публикация статуса. Исключение - для этого потребуется задать минимус 3 варианта ответов и разместить их в опросе, чтобы получить потенциальную площадку для развития обсуждения. Также вы можете добавить собственные варианты ответов в опрос или добавить больше вариантов в дополнение к предложенным трем.

Совместная работа над документом.

 

На странице группы нажмите на «Документы» (Docs) в верхней части страницы, а затем на «Создать документ» (Create a Doc) справа, для того чтобы каждый член группы мог редактировать его. Как только вы сохраните документ при помощи опции «Редактировать документ» (Edit) в правом верхнем углу, файл станет доступен всем пользователям, также как и статус. Для просмотра предыдущих изменений, кликните на «Предыдущие изменения» (Recent Changes).

Приглашайте на мероприятия друзей, у которых нет профиля в Facebook.

 

Когда вы создаете мероприятие в Facebook, в меню «Выбрать пользователей» (Select Guests) вы видите список своих друзей. Вы также можете ввести адрес электронной почты друга, у которых нет профиля в Facebook. Введите один или более адресов электронной почты, разделяя их запятыми в рамке «Пригласить по электронной почте» ( Invite by E-mail). Приглашенные вами друзья получат письмо с ссылкой на страницу мероприятия, которая, к сожалению, принуждает их создать профиль в Facebook перед просмотром страницы.

Избавьтесь от тиккера.

 

Недавно Facebook добавил постоянно обновляемое окно в правой части экрана, которое показывает обновления статусов ваших друзей по мере их поступления. Некоторым это нравится, остальных - раздражает. Вы не можете полностью отключить эту функцию, но вы можете уменьшить обновляемый тиккер (Ticker) на сколько это возможно. Используя курсор, перетащите полосу, которая отделяет тиккер от окна чата (Facebook Chat window). Перетаскивайте ее до тех пор, пока тиккер максимально не уменьшится – до размера двух статусов. Это будет вас меньше отвлекать и не мешать просмотру страницы, и в тоже время вы будете получать обновления.

Добавьте календарь на свою страницу.

 

Если вы предприниматель, тренер команды или актер, который хочет чтобы, друзья в Facebook знали о ваших предстоящих мероприятиях, то вас может утомить индивидуальное создание мероприятий в Facebook. В потоке мероприятий можно запутаться, что затрудняет поиск информации вашим друзьям, например - поиск вашей следующей игры. В качестве альтернативы используйте приложение Social Calendar, разработчиком которой Facebook не является.

Перейдите по ссылке https://www.facebook.com/SocialCalendar и нажмите на «Добавить на мою страницу» в левом нижнем углу. Появится всплывающее меню страниц, которые вы можете настроить. Нажмите «Добавить на страницу» (Add to My Page) в одном или нескольких окнах, а затем - «Закрыть».

В верхнем левом углу, под «Стеной», «Информацией» и «Фотографиями» находится ссылка на календарь. Приложение Social Calendar очень удобно – оно автоматически заполняет название мероприятия, которое вы создаете. Если вы введете адрес, то приложение покажет место на карте. Но для большей эффективности вам все равно стоит публиковать объявления о проводимых вами мероприятиях в статусе и разделе "События".

Измерьте популярность своей страницы.

 

На каждой вашей странице, будь то ваша бизнес-страница или местный танцевальный клуб, нажмите «Просмотреть статистику» (View Insights) в верхнем правом углу. Facebook покажет данные о пользователях, посещавших вашу страницу и их взаимодействие со страницей. На основе количества нажатий опции «Мне нравится» и комментариев, Facebook создаст график просмотра страницы и отзывов пользователей, а также схему интернет-трафика вашей страницы и демографические данные пользователей. Если вы хотите сделать собственные математические расчеты, вы можете перенести данные в Excel.

Как скрыть свою вечеринку в честь Дня рождения.

 

Хотите ли вы, чтобы все, за исключением одного-двух друзей, знали о ваших планах на день рождение? Обновите свой статус как обычно, но перед тем, как его опубликовать, нажмите на иконку замка под рамкой редактирования. Появится меню с опциями для установления конфиденциальности вашего статуса.

Если вам не удалось установить конфиденциальность, нажмите «Изменить» (Customize) в появившемся окне, введите одно или более имен в «Скрыть эту форму» (Hide This From). Также там есть кнопка, которая поможет вам сохранить эти настройки как стандартные, и вам не придется думать о случайной утечке информации.

Заблокируйте раздражающих комментаторов.

 

Есть ли у вас друг, который постоянно публикует нежелательные комментарии к вашим сообщениям, но которого вы не хотите удалять из друзей? В самом верхнем правом углу Facebook нажмите «Аккаунт» и выберите «Настройки конфиденциальности» (Privacy Settings). Внизу есть «Настройки конфиденциальности по умолчанию» (Choose Your Privacy Settings), в нижней части этого раздела перейдите к настройкам пользователя и выберите «Ограничить доступ к прошлым публикациям».

Эта опция работает как фильтр доступа к вашим статусам: нажмите «Настроить» и введите имена людей, которых вы хотите ограничить в возможности комментирования ваших статусов, во время просмотра. Возможно, они поймут намёк.

Ссылка на оригинал: http://www.nytimes.com/2011/12/01/technology/personaltech/12-things-you-didnt-know-facebook-could-do.html?_r=1&smid=fb-nytimes

четверг, 25 августа 2016 г.

Я заглянул в приложение Prisma, и вы не поверите, что я там нашёл / Хабрахабр


Разработка → Я заглянул в приложение Prisma, и вы не поверите, что я там нашёл tutorial

2016 год ещё не кончился, но продолжает радовать нас крутыми продуктами по обработке изображений. Сначала все болели FaceSwap, потом появился MSQRD, теперь у нас есть Prisma. Ещё больше радости/гордости, конечно, от того, что последние 2 продукта — наши, родные. MSQRD делают ребята из Беларусии, Prisma же вообще родом из Москвы. Логично, что у любого популярного продукта сразу начинают плодитьяся конкуренты. Призме в этом плане повезло больше всех — благодаря стечению некоторых обстоятельств, основным конкурентом призме стали Mail.ru Group, которые почти сразу выпустил аж 2 похожих продукта со схожими функциями: Vinci (от команды vk.com) и Artisto (от команды my.com).



А лично мне стало интересно посмотреть на эти «клоны» изнутри. Зачем мне всё это и к каким выводам я пришёл — об это я рассказал на roem.ru, повторяться не вижу смысла. На Хабре же я бы хотел поделиться техникой детального анализа приложений для iOS на примере Prisma.

Что нам предстоит? Во-первых, мы узнаем, что есть приложение для iOS и из чего оно состоит, какую информацию можно оттуда извлечь. Во-вторых, я расскажу как снифать траффик client-server приложений, даже если их авторы этого очень сильно не хотят. По факту я не расскажу вам ничего нового, я не придумал никакого ноу-хау, это просто вектор известных техник и умений на приложения. Но будет интересно. Погнали.

iOS-приложение, IPA-файл


iOS-приложение представляет собой .ipa-файл. По факту это zip-архив и может открываться любым архиватором (да да, mobilz обещал научить ломать приложения, а на самом деле покажет, как пользоваться архиватором). Сам .ipa-файл проще всего получить с помощью iTunes — в разделе «Программы» есть вкладка AppStore, которая является аналогом AppStore в iPhone. Соответственно, вам потребуется аккаунт (AppleID); загрузив приложение с помощью iTunes мы можем перейти в директорию к нему.




Далее .ipa-файл, как я уже говорил, открывается любым архиватором. Внутри мы найдём помимо прочего директорию Payload и файл iTunesMetadata.plist. В Payload находится наше приложение, а точнее директория с расширением .app, которую MacOS будет пытаться запустить, но нам достаточно просто открыть содержимое. iTunesMetadata содержит метаинформацию из AppStore. Какой аккаунт скачал приложение, в каком разделе приложение находится и т.д. и т. п. Ничего интересного в нём для нашего анализа нет, идём непосредственно к .app. Разберём сразу на конкретном приложении, Prisma 2.3 — Payload/Prisma.app.

В разных проектах мы можем увидеть разную структуру, но всегда точно будет Info.plist (Payload/Prisma.app/Info.plist). Это основные настройки приложения, такие как минимальная версия для запуска, поддерживаемые ориентации, поддержка iPad и прочее. Тут уже интереснее:

<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  <plist version="1.0">    <dict>      <key>UIRequiredDeviceCapabilities</key>      <array>        <string>armv7</string>      </array>      <key>DTCompiler</key>      <string>com.apple.compilers.llvm.clang.1_0</string>      <key>CFBundleInfoDictionaryVersion</key>      <string>6.0</string>      <key>DTPlatformVersion</key>      <string>9.3</string>      <key>DTSDKName</key>      <string>iphoneos9.3</string>      <key>CFBundleName</key>      <string>prisma</string>      <key>UIViewControllerBasedStatusBarAppearance</key>      <true/>      <key>CFBundleIcons</key>      <dict>        <key>CFBundlePrimaryIcon</key>        <dict>          <key>CFBundleIconFiles</key>          <array>            <string>AppIcon29x29</string>            <string>AppIcon40x40</string>            <string>AppIcon60x60</string>          </array>        </dict>      </dict>      <key>UIStatusBarStyle</key>      <string>UIStatusBarStyleLightContent</string>      <key>LSRequiresIPhoneOS</key>      <true/>      <key>CFBundleDisplayName</key>      <string>Prisma</string>      <key>LSApplicationQueriesSchemes</key>      <array>        <string>instagram</string>        <string>fb</string>        <string>fbauth2</string>        <string>fbshareextension</string>        <string>fbapi</string>        <string>fb-profile-expression-platform</string>        <string>vk</string>        <string>vk-share</string>        <string>vkauthorize</string>      </array>      <key>DTSDKBuild</key>      <string>13E230</string>      <key>CFBundleShortVersionString</key>      <string>2.3</string>      <key>CFBundleSupportedPlatforms</key>      <array>        <string>iPhoneOS</string>      </array>      <key>UISupportedInterfaceOrientations</key>      <array>        <string>UIInterfaceOrientationPortrait</string>      </array>      <key>Pushwoosh_APPID</key>      <string>46F12-BE2E4</string>      <key>BuildMachineOSBuild</key>      <string>15G31</string>      <key>DTPlatformBuild</key>      <string>13E230</string>      <key>CFBundlePackageType</key>      <string>APPL</string>      <key>MinimumOSVersion</key>      <string>8.0</string>      <key>CFBundleDevelopmentRegion</key>      <string>en</string>      <key>DTXcodeBuild</key>      <string>7D1014</string>      <key>CFBundleVersion</key>      <string>40</string>      <key>UIStatusBarHidden</key>      <true/>      <key>FacebookAppID</key>      <string>582433738573752</string>      <key>UILaunchStoryboardName</key>      <string>LaunchScreen</string>      <key>UIDeviceFamily</key>      <array>        <integer>1</integer>      </array>      <key>Fabric</key>      <dict>        <key>Kits</key>        <array>          <dict>            <key>KitName</key>            <string>Crashlytics</string>            <key>KitInfo</key>            <dict/>          </dict>        </array>        <key>APIKey</key>        <string>8e17945e7d29d1c775f321348caef29075f5ab9a</string>      </dict>      <key>FacebookDisplayName</key>      <string>Prisma.AI</string>      <key>CFBundleIdentifier</key>      <string>com.prisma-ai.app</string>      <key>DTXcode</key>      <string>0731</string>      <key>NSAppTransportSecurity</key>      <dict>        <key>NSExceptionDomains</key>        <dict>          <key>vk.com</key>          <dict>            <key>NSExceptionRequiresForwardSecrecy</key>            <false/>            <key>NSExceptionAllowsInsecureHTTPLoads</key>            <true/>            <key>NSIncludesSubdomains</key>            <true/>          </dict>          <key>cdninstagram.com</key>          <dict>            <key>NSExceptionAllowsInsecureHTTPLoads</key>            <true/>            <key>NSIncludesSubdomains</key>            <true/>          </dict>        </dict>      </dict>      <key>CFBundleExecutable</key>      <string>prisma</string>      <key>CFBundleSignature</key>      <string>????</string>      <key>DTPlatformName</key>      <string>iphoneos</string>      <key>CFBundleURLTypes</key>      <array>        <dict>          <key>CFBundleURLSchemes</key>          <array>            <string>fb582433738573752</string>          </array>        </dict>        <dict>          <key>CFBundleURLSchemes</key>          <array>            <string>vk5530956</string>          </array>        </dict>        <dict>          <key>CFBundleURLSchemes</key>          <array>            <string>prisma</string>          </array>        </dict>      </array>    </dict>  </plist>

Про ключи вы можете почитать подробнее в официальной документации, нас же интересуют лишь некоторые из них.

Во-первых, мы можем добыть API-ключи для сторонних продуктов (вроде crashlytics), идентификаторы групп/страниц в vk/facebook. Во-вторых, мы можем точно знать детальные настройки урлов, куда ходит приложение:

LSApplicationQueriesSchemes

<key>LSApplicationQueriesSchemes</key>  <array>    <string>instagram</string>    <string>fb</string>    <string>fbauth2</string>    <string>fbshareextension</string>    <string>fbapi</string>    <string>fb-profile-expression-platform</string>    <string>vk</string>    <string>vk-share</string>    <string>vkauthorize</string>  </array>

Видим, что приложение захочет работать с инстаграмом, фейсбуком и вконтактом. Эта информация никаким образом, конечно, не поможет «сломать» приложение, но даст нам дополнительную информацию.

NSAppTransportSecurity

<key>NSAppTransportSecurity</key>  <dict>    <key>NSExceptionDomains</key>    <dict>      <key>vk.com</key>      <dict>        <key>NSExceptionRequiresForwardSecrecy</key>        <false/>        <key>NSExceptionAllowsInsecureHTTPLoads</key>        <true/>        <key>NSIncludesSubdomains</key>        <true/>      </dict>      <key>cdninstagram.com</key>      <dict>        <key>NSExceptionAllowsInsecureHTTPLoads</key>        <true/>        <key>NSIncludesSubdomains</key>        <true/>      </dict>    </dict>  </dict>

Если не ошибаюсь, флаг появился с 9-ой версии iOS. Рассказывает нам, куда приложение будет ломиться по http-протоколу (https доступен любой домен). Т.е. при всём желании приложение не сможет обратиться на http, если не настроен NSAppTransportSecurity.

Ключ в целом тоже нам особо ничего не даёт, кроме как информации. Но курочка по зёрнышку. Видим, что приложение хочет ломиться по http на vk.com и cdninstagram.com. Ок.

CFBundleURLTypes

<key>CFBundleURLTypes</key>  <array>    <dict>      <key>CFBundleURLSchemes</key>      <array>        <string>fb582433738573752</string>      </array>    </dict>    <dict>      <key>CFBundleURLSchemes</key>      <array>        <string>vk5530956</string>      </array>    </dict>    <dict>      <key>CFBundleURLSchemes</key>      <array>        <string>prisma</string>      </array>    </dict>  </array>

Пожалуй, самый интересный из бесполезных ключей. Опять же, он нам ничего особо полезного не даёт, но рассказывает о зарегистрированных урлах на этом конкретном приложении. Например, если в мобильном сафари вы наберёте fb582433738573752:// вас перекинет в приложение (если оно установлено, конечно). Данную информацию, повторюсь, тоже можно отнести к условно-бесполезной. Но пару раз я натыкался на приложения, где помимо стандартных урлов соцсетей я находил урлы типа «app-admin» или «app-dev». При переходе на которые можно было получить скрытые настройки приложения. В одном приложении я получил редакторский доступ к одному изданию, в котором можно было публиковать статьи, пихать их на главную, удалять, менять местами итп.

Далее нас интересует директория Frameworks: Payload/Prisma.app/Frameworks

В ней мы найдём ещё немного бесполезной информации об используемых внешних фреймворках и SDK.


Подробнее я напишу чуть ниже про каждый фреймворк, но заранее могу сказать, что, например, отсюда можно тоже выцепить интересную информацию. Среди прочих фреймворков видим FLAnimatedImage, который работает с анимированными GIF — невольно напрашивается вывод, что Prisma всё же будет и с видео.

Также в метафайлах часто можно найти какой-то мусор, забытый разработчиками. Часто я нахожу README.md, .gitignore, лицензии и прочее. Опять же, Prisma хороший пример, т.к. с версии 2.3 в ней появилась просто забытая разработчиками фотка одного из друзей. Те, кто докопаются, прошу не выкладывать имя человека в комментах, он очень просил.

Также находим USERTrustRSAAddTrustCA.cer — уже интересней. Насколько я понял это запароленный сертификат, аналоговый брутфорс профита не дал.

Непосредственно в бинарнике часто находятся скрытые plist, которые могут быть интересными. Также, если приложение собрано на webview-технологиях (типа Cordova), мы найдём config.xml кордовы и, собственно, исходник приложения. Например, приложение Sworkit, которое помимо прочего предлагает пользователям оплатить дополнительные видеоуроки, уже имеет их в исходниках в удобном .mp4-формате. Хочешь удобно — плати. Хочешь неудобно, но бесплатно — читай на Хабре эту статью.

Пожалуй, это основное, что можно добыть из пакета с приложением. Точнее основное, что удалось добыть мне. Уверен, вы ребята умные и найдёте ещё больше полезного — пишите в комментарии и мы добавим это в статью. Но, опять же, всё индивидуально. В некоторых приложениях можно найти очень многое, в том числе и целиком исходники.

Ну и чуть подробнее о самом приложении. Призма (2.3) 17.6Мб. Нативный swift, поддержка русского и английского языка. Фреймворки:
Alamofire.framework — http-клиент
AlamofireImage.framework
AlamofireNetworkActivityIndicator.framework
Bolts.framework — вспомогательный набор инструментов для разработчика
FBSDKCoreKit.framework — facebook
FBSDKShareKit.framework — facebook
FLAnimatedImage.framework — библиотека для работы с видео
KeychainAccess.framework — враппер авторизации. Чаще всего используется для работы с touchid
Obfuscator.framework — обфускатор, тут, думаю, объяснять не нужно
PINCache.framework — key/value хранилище для больших объектов с поддержкой работы в разных потоках.
PINRemoteImage.framework — модуль picache
pop.framework — библиотека для работы с анимацией. Чаще всего используется для UI-анимации.
RHBOrientationObjC.framework — работа с акселерометром, точнее, с ориентацией устройства.
SDWebImage.framework — ещё один http_клиент/кешер для изображений
SwiftyJSON.framework — удобная работа с json
Swinject.framework — DI паттерн разработки
VK_ios_sdk.framework — vk.com

Что в итоге мы имеем? Мы собрали кучу информации о работе приложения и понимаем, чего от него ожидать. Мы нашли некий сертификат и сохранили его себе. Мы узнали, что нас скоро ждёт видео и нашли классную фотку друга основателя Prisma. Двигаемся дальше.

Сниффаем HTTP


Prisma и тут оказалась хорошим примером для статьи. Если те же Artisto и Vinci ходят по голому http и нет труда их сниффать, Prisma ходит по https с проверкой подлинности сертификата. И тут начинаются танцы с бубнами. Но давайте по порядку.

1. Для начала нам нужен http(s)-прокси. Я пользуюсь Charles, он достаточно простой и функциональный.
2. Нам нужно iOS-устройство. Эмуляторы не подойдут.
3. Нам нужна одна сеть между устройствами. Самое простое — Wi-Fi.

На своём терминале запускаем прокси, заодно включаем и https-прокси. На устройстве, соответственно, в настройках Wi-Fi-сети прописываем руками прокси (IP нашего терминала и порт):


Дальше чаще всего достаточно подсунуть в iOS свой сертификат. Как это сделать хорошо написано на том же сайте Charles. Но в случае с Prisma этого сделать не получилось — разработчики не лыком шиты и проверяют подлинность сертификата. Но делается это средствами устройства, а мы тоже хитрюги те ещё. Однако для того, чтобы заставить iOS не проверять сертификат на подлинность, нам потребуется jailbreak.

Действуйте можно было сделать до версии iOS 9.3.3, и то на свой страх и риск — как вариант, используйте тематические ресурсы и внимательно читайте комментарии. В частности, некоторый софт «типа для джаилбрейка» может попросить AppleID вместе с паролем, что чревато исчезновением данных и денег денег с привязанной карты. Все эти тонкости подробно описаны.

Я не буду описывать как делал это я, т.к. разлочка сильно отличается в зависимости от версий устройства и iOS. Единственное, зачем нам это надо в данном случае — https://github.com/nabla-c0d3/ssl-kill-switch2/releases — крайняя версия ssl kill switch. С помощью Cydia (опять же, всю информацию можно найти в сети) ставим любой просмоторщик файлов, например iFile. И с помощью него заливаем .deb-файл последнего релиза ssl kill switch. Работать ssl kill switch после перезагрузки телефона. Важно не забыть его выключить после всех манипуляций, т.к. в противном случае мы рискуем, ведь наше устройство больше не проверяет подлинность ssl.


Прокси включён, проверка сертификата выключена, погнали смотреть на приложение. Первый запуск — как видим, приложение сначала собирает настройки. Откуда же оно их берёт? Дёргается https://cdn.neuralprisma.com/config.json обычным GET`ом, там стандартные настройки, не интересно. Потом дёргается api3.neuralprisma.com/styles POST-ом с телом

{    "codes": ["public"]  }

На выходе список фильтров. Уже интересней, поигрался с массивом [«public»]. Пытаясь подставить туда что-то вроде «dev», «new» и прочего, профита я не получил, но может у кого из вас получится. Я рекомендую использовать для этого Postman.



Ладно, идём дальше. Следующий запрос при загрузке фото опять POST на урл api3.neuralprisma.com/upload/image



И всё было в моей жизни хорошо, пока я не увидел заголовок prisma-image-sign с base64 от бинарного md5. Жизнь боль. Все мои мечты о том, что я сейчас перехвачу траффик призмы и научусь делать то же самое, что и приложение, но просто по http… рухнули. Что это значит? Таким образом разработчики защищаются от таких как я. Посылая фотку по http, приложение также вычисляет какой-то хеш с какой-нибудь солью и добавляет этот хэш в заголовок. Как сгенерить хэш знает только приложение и сервер. Фотка отправляется на сервак, сервак генерит хеш от фотки по тому же алгоритму, сверяет хэши, если они отличаются — значит запрос подделан. Есть способ обойти это, если вы сильны в ассемблере. Дизассм бинарника + анализ его на тему генерации этого заголовка может дать нам алгоритм. Но учитывая, что там md5 (минимум) + base64, на это может уйти много времени. Ну и не забываем, что всё усложняется ещё и наличием фреймворка Obfuscator.framework. В общем, как я уже писал, жизнь боль.

Вся дальнейшая работа приложения достаточно простая. Картинка отправляется на сервак, в ответ получаем некое имя изображения. При выборе стиля шлются запросы с этим именем приложения + именем стиля, на выходе профит. А ведь победа была так близка.

Ну да ладно, давайте не будем отчаиваться и разберём возможность перехвата API на примере другого подобного приложения Vinci. Как уже говорил, там всё ходит по голому http, поэтому нам даже не придётся коверкать наше устройство. Просто прописываем прокси сервер и смотрим что куда ходит при работе с приложением. Все запросы можно эмулировать в Postman, о котором я уже писал, или реализовать на каком-нибудь серверном языке.



Всё достаточно просто. При запуске первым запросом Vinci собирает доступные стили, далее регистрирует девайс, нам это пофиг. Затем я загрузил фото, отправляется POST-запрос на /preload с фото, с любым фото, в ответ мы получаем некий хэш нашего фото:



Ну и далее, как видно, получаем уже готовое изображение, обращаясь по урлу http://vinci.camera/process/2_gNmHxDdthLsmPtuXGxRzQnKjbbspfO/21, где 2_gNmHxDdthLsmPtuXGxRzQnKjbbspfO хеш фото, а 21 — номер фильтра, которые можно добыть из http://vinci.camera/list



Вот и всё. Итого, чему мы научились сегодня? Мы научились собирать информацию о приложении по метафайлам самого приложения и научились сниффать трафик приложения, даже если всё API ходит по https с проверкой подлинности сертификата. Мы научились собирать информацию из API: что, куда, зачем, а также я показал некоторые «тупики».

За сим не буду отвлекать вас от увлекательных анализов приложений, если кто что интересное найдёт, скидывайте в комменты, вместе посмеёмся.

Кстати, интересный факт. Те же SQLinj. В вебе их сейчас уже сложно встретить, любой разработчик понимает всю опасность инъекций. Но вот мобильные разработчики, которые часто приходят в мобильную разработку не из веба (а даже когда из веба — доверяют своим API, типа «да кто его знает наше API-то, только наше приложение!») частенько забывают про веселье, что может их ждать при полном доступе к базе удалённым пользователем.