Оригинал материала: https://3dnews.ru./821729

Обзор iOS 8: конец огораживания

Большие перемены

Мобильная ОС Apple в последние годы подвергалась справедливой критике за не вполне оправданный консерватизм. По мере того как в iOS одна за другой появлялись функции, которые пользователи Android испробовали месяцы и годы назад, список претензий сократился до минимума, но оставшиеся атавизмы Apple, казалось бы, уже не отменит никогда.

Чего именно недостает и что порой откровенно бесит сторонников зеленого робота в конкурирующей ОС? Допустим, отсутствие активных уведомлений, позволяющих выполнять быстрые действия с входящими письмами, сообщениями и пр. Еще ситуация с виджетами сторонних приложений (которых нет). В целом есть глобальная претензия насчет статуса сторонних приложений — в iOS их не пускают дальше парадного подъезда: ни тебе виджетов, ни места в контекстных меню для «расшаривания» и специфических действий над фото, документами и т.п. Многие привыкли к системам быстрого набора текста типа Swype. Тех, кто впервые прибыл в мир смартфонов, ставит в тупик отсутствие доступа к файловой системе. Концепция изолированных библиотек, ассоциированных с каждым приложением, несмотря на упорное внедрение в том числе через десктопную OS X, не встречает полного понимания в массах.

По этим направлениям Apple упиралась до последнего. И оттого тем более удивительно, что на последней конференции WWDC, где была представлена iOS 8 и OS X 10.10 Yosemite, все спорные позиции были сданы без оговорок.

Дизайн iOS практически не изменился, а вот содержимое — еще как

#And APIs for all

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

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

Во-вторых, возможность замены штатной клавиатуры чем-то более изощренным, например Swype. Теперь, к всеобщему удивлению, получено разрешение и на это. Apple всегда особо гордилась штатной клавиатурой iOS и отвергала потребность в альтернативах. Кроме того, клавиатуры стороннего происхождения несут в себе угрозу безопасности в силу того, что нажатия клавиш можно перехватить и отправить злоумышленнику. По этой причине iOS будет подменять нештатную клавиатуру встроенной при записи в защищенные поля (к примеру, поля паролей в веб-формах, заполняемые звездочками).

Фотографии, видео и все, что может быть «расшарено» через штатное контекстное меню, «расшаривается» не только посредством Facebook и немногих других сервисов, штатно поддерживаемых в iOS, но и любых прочих, если стороннее приложение предоставит так называемое расширение (App Extension). То же относится к списку действий над документами, который сторонние приложения смогут пополнить своими кнопками.

После длительной обкатки для всех желающих открыт интерфейс биометрического датчика iPhone 5S (и наверняка будущих устройств Apple) – TouchID API. Camera API даст сторонним приложениям более полный контроль над настройками фотокамеры. PhotoKit обеспечивает доступ к снимкам в памяти штатного менеджера фотографий. CloudKit – понятно, доступ к облачному хранилищу iCloud.

Более подробно стоит рассказать о HomeKit API, в основе которого лежит идея использовать iPhone или iPad как пульт управления бытовой электроникой. Существуют частные инициативы на этот счет, но Apple, конечно же, взялась за дело с большим размахом. HomeKit подразумевает участие замков, гаражных дверей, термостатов и прочего хозяйства в программе MFi (Made for iPhone/iPad/iPod) наряду с аксессуарами, которые уже сертифицируются таким образом. Устройства будут соединяться с гаджетом Apple по протоколам Wi-Fi и Bluetooth (некоторые источники сообщают о поддержке протокола ZigBee, но пока непонятно, каким образом), и затем ими можно будет управлять через единый графический интерфейс либо голосом, с помощью Siri. Допускается группировка устройств в отдельные «сцены». К примеру, стоит сказать Siri, что вы собираетесь спать, и iPhone проверит, закрыты ли двери, и выключит свет там, где он не требуется.

#Новые средства разработки

Вместе с iOS 8 анонсированы инструменты, которые должны ускорить разработку и упростить жизнь стартаперам, решившим урвать свой доллар за копию приложения в App Store. В основном речь идет об играх. Среда SpriteKit предоставляет готовый движок для рендеринга 2D-графики силами GPU. SceneKit играет ту же роль для казуальных 3D-игр, содержит логику для физических расчетов и частиц.

API под названием Metal преследует прямо противоположную цель, представляя собой низкоуровневый интерфейс графического процессора – то же самое, чем является Mantle для GPU AMD. Среди достоинств Metal, как и в случае с Mantle, фигурирует ускоренная обработка Draw Calls по сравнению с OpenGL. Несмотря на колоссальную разницу в масштабе производительности между десктопными и ультрамобильными системами, в последних также существует проблема CPU как бутылочного горлышка при рендеринге сложных сцен, изобилующих отдельными моделями.

Но что, пожалуй, даже более важно, Metal впервые предоставляет сторонним приложениям полноценную возможность выполнения неграфических (GPGPU) вычислений. Ранее чуть ли не единственным обходным способом привлечь GPU к расчетам было использование вершинных шейдеров в OpenGL ES.

Демо Zen Garden на базе Unreal Engine 4

iOS 8 будет поддерживать новый язык программирования Swift, которым Apple намерена заменить Objective-C, до сих пор бывший основным языком для приложений под API Cocoa и Cocoa Touch. По сравнению с Objective-C на Swift будет легче писать код благодаря более простому синтаксису, автоматическому управлению памятью и пр. Существует такая функция, как Playgrounds, позволяющая исполнять участок кода непосредственно из редактора без необходимости компилировать весь проект. Пока, правда, Playgrounds работают без «песочницы», что вызывает понятные вопросы относительно безопасности.

В совокупности инициативы Apple на фронте разработки приложений должны стимулировать дальнейшее пополнение App Store, но одновременно они способствуют привязке разработчиков к iOS. Сомнительно, что программы, написанные на Swfit, будет легко портировать в нативный код или Java для Android. Нечего и говорить про приложения для SpriteKit и SceneKit, которые создаются на еще более высоком уровне на манер конструктора. Вероятно, последние останутся уделом совсем казуальных игр без особых амбиций.

Будущее Metal как API для графически насыщенных игр консольного уровня также видится туманным. Далеко не факт, что преимущества в производительности перевесят для разработчиков привычку к OpenGL и трудозатраты на создание дополнительного рендерера под Metal либо отказ от параллельной разработки под Android. Впрочем, интерес к Metal уже проявили Epic, Electronic Arts и Crytek – держатели прав на три наиболее известных графических движка: Unreal Engine, Frostbite и CryEngine соответственно. Не исключено, что Metal скорее будет признан как интерфейс для GPGPU, коль скоро направление это перспективное, а полноценных альтернатив iOS не предоставляет.

#iCloud Drive: полноценная файловая система

Со времен первого iPhone Apple хранила верность концепции отдельных библиотек в каждом приложении iOS, которая прямо противостоит идее открытой для пользователя файловой системы как общего хранилища, независимого от приложений. Каждая программа в iOS изначально хранит все созданные в ней документы «в себе», а обмен документами осуществляется путем экспорта из приложения и импорта в следующее приложение. С появлением iCloud приложение может держать свои документы в облачной библиотеке, также доступной родственным программам в десктопной OS X. К примеру, версии текстового процессора Pages на iPhone и Mac «видят» созданные друг другом документы. Но, опять-таки, каждое приложение имеет доступ в iCloud только к своим документам, а передача документов между приложениями возможна по-прежнему только путем экспорта и импорта.

В основе концепции раздельных «библиотек» лежит, в общем-то, здравая логика, следующая за поведением не особо грамотных в компьютерном отношении пользователей. Программо-центричный подход – это то, к чему немедленно приходит человек, недавно освоивший компьютер, например ваша бабушка. Новичок мыслит предельно инструментально: «Вот значок «для Интернета», вот значок Word, и в нем, в «Ворде», я сохраняю документы». Концепция файловой системы не то чтобы слишком сложна для понимания, но человек, использующий компьютер сугубо для казуальных задач или пусть рабочей, но предсказуемой и повторяющейся активности, по-своему совершенно прав, если не желает ничего знать о каких-то файлах. Ему достаточно последовательности действий для получения нужного результата – точно так же, как для того, чтобы постирать белье в стиральной машине или разогреть еду в микроволновке.

Бесфайловый подход вполне оправдал себя в простейших ситуациях, когда документ создается в одном приложении на одном устройстве и остается там же. Скажем, приложение фотокамеры на смартфоне и клиент Facebook – это все, что вам нужно, чтобы делать казуальные фотографии и поступать с ними по назначению. Или Instagram, который делает и то и другое вместе.

Покуда мобильные гаджеты были в основном развлекательными устройствами – как в силу позиционирования, так и просто-напросто аппаратных ограничений, проблема стояла не столь остро. Закрытая файловая система iOS досаждала в основном пользователям Windows, которые были вынуждены мириться с iTunes как единственным средством синхронизации с ПК. Будучи хорошим плеером в OS X, «Тунец» в Windows – программа и явно чужеродная, и неизменно тормозная.

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

Доступ к файлам iCloud из OS X в текущем виде

Изолированные библиотеки весьма неудобны сразу по нескольким причинам. Во-первых, пресловутый экспорт-импорт, плодящий ненужные копии документа (подчас на разных стадиях работы) и затрудняющий работу над одним проектом в нескольких приложениях. Во-вторых, коммуникация с десктопным компьютером, на котором, как ни крути, подавляющее большинство выполняет основную работу и хранит личные данные. А на десктопе по-прежнему царит традиционный, пусть и несущий застарелые травмы «компьютера для программистов», подход к файловой системе. В работе люди неизбежно обмениваются файлами, а импорт и экспорт из библиотек или соответствующих загончиков приложений в iCloud мало того что неудобен, но еще и ограничен немногим числом поддерживаемых типов. Можно ли сохранить на iOS файл, прибывший письмом в виде вложения, если нет программы, способной открыть его прямо сейчас?.. Увы-увы. Добавим к этому отсутствие полноценной иерархии документов в iCloud – нет возможности создавать папки глубже первого уровня вложения.

В итоге крестовый поход Apple против файловой системы вступил в явный конфликт со здравым смыслом. Неспроста в iOS широко используется Dropbox и подобные сервисы если не в качестве полной замены доступной файловой системы, то для импорта в приложения документов, синхронизированных с десктопом.

Хорошо, что у Apple нашлись силы трезво оценить ситуацию и вернуться на правильный путь. В iOS 8 вместо отдельных библиотек, синхронизируемых через iCloud, представлен единый iCloud Drive – самое обычное файлохранилище с папками, в котором различные приложения могут иметь доступ к одним и тем же документам (и, кстати, в некоторых пределах влиять на настройки друг друга, если между приложениями заранее есть такая «договоренность»). Честное слово, ситуация напоминает анекдот про раввина и еврея, хотевшего наложить на себя руки от невыносимой жизни. Ребе последовательно советовал человеку ввести в дом козла, овцу и прочую скотину, а затем разрешил всех вывести обратно. Тут-то и наступило счастье. Спасибо Apple, что наконец разрешила вывести козла.

В грядущей версии OS X Yosemite iCloud Drive выглядит как папка наподобие Dropbox, содержимое которой автоматически синхронизируется с облаком (даже не верится – настолько простое и прозрачное решение после бега в мешке все эти годы). Нечто подобное, хотя исключительно для OS X, существовало в виде ныне почившего сервиса iDrive. Будет и поддержка Windows. В доступной для тестирования бета-версии iOS 8 нет какого-либо файлового менеджера как отдельного приложения, хотя он может появиться на момент релиза или быть написан сторонними разработчиками.

iCloud как обычная папка в OS X Yosemite

В порядке абстрактного отступления заметим, что iCloud Drive, да и Dropbox и прочие облачные хранилища, работающие по принципу непрерывно синхронизируемого каталога на диске, с точки зрения usability представляют не возвращение доступа к файловой системе, а скорее старт идеи с чистого листа. Иерархическая файловая система – удобная концепция, ничуть не более сложная для понимания, чем библиотечная картотека или ящик для инструментов (да просто-напросто бумажные папки с файлами-пакетиками). Сложность происходит от того, что пользователю десктопной ОС, будь то Windows или OS X, в общем-то, не вполне понятно, а где его личный угол для хранения файлов, зачем нужен корень диска, что вокруг делают папки и файлы, которые компьютер создает для собственных нужд. Вот флешка с чистым корнем – это очень понятно! Как и папка iCloud Drive, которой, по логике, следует вообще заменить домашний каталог пользователя, и пусть он организует содержимое, как вздумается.

#Интеграция с OS X: унифицированные коммуникации, перенос контекста

В iOS 8 появилась давно ожидаемая возможность обмениваться файлами с «Маком» посредством AirDrop, для чего, правда, требуется проапгрейдить OS X до версии Yosemite. Есть и более интересные функции. Например, если iPhone находится в той же сети Wi-Fi, то входящий звонок можно принять на iPad или на «Маке» (а еще и, кстати, отправлять с него SMS и MMS). Можно звонить по телефонному номеру через Wi-Fi в условиях плохого приема сотовой сети, если это позволяет оператор.

А вот вклад в другое большое и важное дело – перенос контекста между приложениями на разных устройствах. Ранее задел был создан в виде синхронизации закладок в Safari (iCloud Tabs). В iOS 8 и OS X Yosemite подобный принцип распространяется на почтовый клиент и прочие встроенные программы OS X, а также пакет iWork. К примеру, можно начать письмо или открыть документ на «Маке», а затем продолжить с того же места в iOS. Передача эстафеты происходит через иконку, которая возникает на рабочем столе iOS или в доке OS X. API для этой функции (Handoff) предоставляется и сторонним приложениям.

Интерфейс, приложения. Выводы

#Активные оповещения, прочие изменения в интерфейсе

От глобальных изменений перейдем к отдельным приложениям и деталям интерфейса. Активные оповещения – явно не самая крупная новость среди всего списка, но, считай, единственное бросающееся в глаза изменение самого облика ОС, который в прочих отношениях отличается от интерфейса iOS 7 лишь деталями.

Как ни крути, возможность отреагировать на событие прямо из всплывающего оповещения или «центра уведомлений» – это именно то, чего не хватало после того, как в iOS появился сам «центр уведомлений». Можно только справедливо возмутиться: «Почему это не было сделано раньше?»

Другая деталь: в режиме обзора запущенных приложений отображаются фотографии контактов из «Избранного», с которыми можно немедленно вступить в диалог. Поисковая строка Spotlight может выдавать результаты из «Википедии», App Store, карт и прочих дополнительных источников.

#Клавиатура: предиктивный ввод

Хотя Apple предоставила интерфейс для разработки «неродных» клавиатур, штатное приложение составит достойную альтернативу скоростным методам печати благодаря предикативному вводу. В дополнение к автокоррекции, знакомой по предыдущим версиям iOS, клавиатура не только достраивает слово по первым буквам, но и предсказывает следующие слова в зависимости от контекста сообщения. Учитывается содержание диалога, имя получателя и пр. Кроме того, со временем приложение отслеживает манеру письма пользователя в различных программах с тем, чтобы предлагаемые выражения различались в деловой переписке и в SMS. Жаль только, что русский язык не поддерживается и вряд ли когда-либо будет.

#Health

Приложение «Здоровье» представляет собой пункт сбора информации от приложений, поддерживающих API HealthKit: расход калорий, пульс и прочая статистика доступна пользователю на одном экране. Соответственно, приложения также могут пользоваться информацией, переданной через HealthKit. Есть поддержка различных фитнес-гаджетов. На случай, если пользователю внезапно поплохеет, можно заполнить краткую медицинскую карту, которая отображается на заблокированном экране смартфона. Ведется работа над автоматической отправкой информации доктору, но это уже явно не для нашей страны.

#Сообщения

Комбинированный «мессенджер» для обмена SMS и iMessage-посланиями получил новые функции. Через iMessage стала возможной отправка коротких голосовых сообщений, причем для прослушивания достаточно поднести телефон к уху, и таким же образом можно начать запись ответной реплики. Прямо из приложения возможна запись и отправка видео со встроенной камеры. Можно сообщить собеседникам свое положение на карте и отслеживать, где находятся они. Расширено управление групповыми диалогами: беседе можно дать имя, изменить состав участников, выключить уведомления о получении дальнейших сообщений.

#Family Sharing

Еще одна функция, ориентированная по большей части на семейных американцев. В iTunes и App Store появится контент, который можно будет купить сразу на нескольких человек. При покупке по одной кредитке владелец карты может удаленно подтверждать покупки для своих детишек (а то и жены). Местонахождение домочадцев отображается на карте. Также на семью можно завести общий календарь и фотоальбом.

#Улучшенная камера, полноценное облако для фотографий

Масса изменений произошла с приложением камеры и штатной «смотрелкой» фотографий. Как фотоаппарат iPhone приобрел новые черты полноценной мыльницы – таймер «спуска затвора» и раздельную регулировку точки фокуса и экспозиции. Удерживая палец на объекте, пользователь фиксирует фокус и экспозицию. После краткого касания экрана происходит фокусировка, и одновременно появляется слайдер для изменения экспозиции. Появился режим timelapse – длительная съемка видео из кадров с большим интервалом. iPad наконец обзавелся поддержкой панорамных снимков.

В текущих версиях iOS и OS X есть выделенный облачный сервис для фотографий – Photo Stream. Замена его на iCloud Photo Library с виду ничего не меняет на стороне гаджета, но в то же время устраняет неявные огрехи предшественника. Собственно, Photo Stream синхронизирует снимки между i-устройствами и приложением iPhoto под OS X. Подвох в том, что оригиналы в высоком разрешении содержатся только на том устройстве, где были сделаны, а еще – в iPhoto. Остальные подключенные устройства получают уменьшенные копии. Как следствие, если стереть содержимое фотогалереи iPhone, понадеявшись на последующее восстановление из Photo Stream, то оригиналы потеряются навсегда, о чем вы поначалу даже не узнаете. Во-вторых, альбомы, созданные в iPhoto, не синхронизируются с iOS. Наконец, файлы, отредактированные в iPhoto, можно распространить только в виде дубликата. Вот эти три недостатка и отправит в прошлое iCloud Photo Library.

Штатный просмотрщик iOS обзавелся базовыми возможностями ретуши изображений, которые, как сказано выше, сторонние разработчики смогут дополнить своими инструментами.

Среди мелких изменений можно отметить функцию поиска в просмотрщике по локации, времени съемки и имени альбома.

#Почтовый клиент

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

Интерфейс почтовика позаимствовал у вкладок мобильного Safari многослойный вид а-ля картотека — он задействуется при написании нового сообщения, от которого таким образом можно легко перейти к содержимому ящика.

В содержимом письма выделяются упоминания мероприятий и контакты персон, которые можно немедленно добавить в календарь и адресную книгу. Появился ряд функций для корпоративной среды: поддержка шифрования и электронной подписи по стандарту S/MIME, для пользователей Exchange – активация автоматического ответа на письма со стороны сервера.

#Safari

Имеется ряд мелких изменений в интерфейсе и функциях штатного веб-браузера. В версии Safari для iPad появились вкладки в виде картотеки и боковая панель как в десктопной ОС, режим приватности на отдельных вкладках.

Другая связанная с вебом новость: сторонние приложения получат доступ к движку Nitro в составе WebKit, который занимается компиляцией на лету JavaScript-кода и дает Safari преимущество в производительности веб-приложений перед сторонними браузерами. Ну а теперь, стало быть, все браузеры под iOS будут равноценными копиями Safari в разных оболочках, ведь использование других движков, помимо встроенного WebKit, для ренедринга веб-контента в iOS не дозволено.

#Выводы

Ну вот, все меньше остается поводов ненавидеть Apple, все больше поводов любить. Раньше можно было в споре сказать яблочнику: «А у вас в iOS негров линчуют не дают доступа к файловой системе», и в ответ собеседник начинал неуклюже оправдываться, мол мне и так удобно. Теперь апологет Apple может невозмутимо сообщить, что такая информация устарела: доступ к файлам есть. Жаль только, что все эти годы людей зря мучили экспортом/импортом между библиотеками отдельных приложений с полной уверенностью, что вот оно – будущее без файловой системы. Эту страницу истории iOS мы перевернем со вздохом облегчения.

Рядом со столь массивным нововведением стоит масса мелких, но чрезвычайно востребованных функций, с большим запозданием позаимствованных у Android. По-хорошему, активным оповещениям и виджетам сторонних приложений следовало появиться еще как минимум в iOS 7, но опять-таки и на том спасибо.

Массовое раскрытие всевозможных API – еще один крупный шаг вперед, к свободе и большей кастомизации интерфейса ОС, которая, благодаря строгим design guidelines Apple, его не изуродует. Среди всех возможностей, отныне доступных сторонним приложениям особо выделяется доступ к биометрическому датчику TouchID и замена шатной клавиатуры чем-нибудь Swype-образным.

Это что касается неоплаченных долгов, накопившихся у iOS. Но помимо этого, есть направления, в которых iOS (наконец-то!) снова занимает не догоняющую, а лидирующую позицию. Apple затеяла большое и важное дело, связанное с прозрачным переносом рабочего контекста между мобильной и десктопной средами. Сама потребность в этом пока осознается смутно и выражается по большей части в виде разрозненных инициатив наподобие синхронизации вкладок в браузерах. С другой стороны, бум конвертируемых устройств – ноутбуков-перевертышей и нелепых смартфонов-планшетов системы «Кощеева смерть» (яйцо в утке, утка в зайце), если вдуматься, является альтернативным решением той же задачи переноса контекста, которое сводится к тому, что переносить его как бы и не требуется.

Подход Apple в исполнении более сложный, но и вместе с тем многообещающий и концептуально верный. Начать работу над документом в OS X и продолжить на iPad с того же места – это именно то, что нужно. Да, перенос контекста ограничен ОС «Мака», ну а что вы хотели? Пусть Microsoft решит проблему хотя бы на уровне взаимодействия между рабочим столом и touch-интерфейсом в одной и той же ОС. А показать пример последовательного и качественного воплощения идеи переноса контекста, помимо Apple, пожалуй, больше и некому.

Еще одна далеко идущая и важная инициатива, поддержанная Apple в совокупном анонсе iOS 8 и OS X Yosemite, – унифицированные коммуникации, хотя здесь большая часть работы сделана на стороне десктопной OS X. Принимать звонки и отправлять SMS с компьютера – ввиду отсутствия других полностью интегрированных, работающих из коробки решений, несмотря на полную техническую готовность к ним — даже в голову не приходило, что кто-то может это взять и сделать.

В итоге восьмая итерация мобильной ОС Apple – не менее значима, чем седьмая, и несет большие перемены к лучшему. В прошлый раз изменился интерфейс, сейчас произошел пересмотр правил коммуникации с внешними устройствами и между приложениями. iOS избавляется от косности и груза неверных решений прошлого и вместе с тем предлагает пользователю нечто совершенно новое. Не с этого ли начинал iPhone семь лет тому назад?



Оригинал материала: https://3dnews.ru./821729