WebDesignMagazine.ru – Журнал о веб-дизайне

Вступительное слово разработчика операционной системы iOS 9

0

Каждый год на Всемирной конференции разработчиков компьютерных и мобильных технологий (WWDC), Apple выпускает новую версию операционной системы iOS. После заявления о выходе версии iOS 2, производители фреймворка Cocoa Touch поняли, что пора изучить документацию, просмотреть образец кода и подготовить этот код к новому интерфейсу программирования приложений (APIs).

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

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

Фреймворк UIKit

Фреймворк UIKit используется в каждой iOS системе и управляет пользовательским интерфейсом. С прошивкой iOS, Apple основательно изменил методы, которые разработчики использовали, создавая макеты при помощи новых элементов управления Stack View в пользовательском интерфейсе.

Элемент управления UI Stack View

Новый элемент управления настолько важен, что Apple посоветовал вам начать строить свой собственный пользовательский интерфейс, используя элементы управления Stack views и перестать пользоваться ими, когда интерфейсы становятся слишком усложненными или имеют много настроек. Элементы управления Stack views отнимают много времени на работу с ними, создавая ограничения независимо от разработчика. Вы вставляете элементы в Stack view, а фреймворк UIKit автоматически вводит ограничения на время выполнения.

Существуют нсколько способов работы со Stack view в самом устройстве интерфейса. Вы можете выбрать горизонтальный или вертикальный элемент управления из библиотеки или использовать специальную кнопку в нижней части X code:

Ст2кар 1

Использовать их в виде кода легко. Чтобы воспользоваться Stack view, вам необходимо указать три основных парамера:

  • на какой оси расположен stack view
  • как он должен расположить подэлементы
  • как эти подэлементы должны быть распределены

Единственное, что может ввести в заблуждение изначально, так это то, как удалить элемент настройки из иерархии видов. Это двухступенчатый процесс. Вам нужно удалить подэлемент из состава stack view  arrangeSubviews и нажать кнопку вызова removeFromSuperview(_:) из примера подэлемента. Весь процесс выглядить примерно таким образом:

Фреймворк UIKit Dynamics

Всегда популярный и “веселый” Фреймворк UIKit Dynamics API также подвергся изменениям. Вдобавок к имеющимся непрямоугольным границам соприкосновения (т.е. контурам), появился новый функциональный класс для новых типов крепления, а именно, UIAttachmentBehavior. Новая функция UIFieldBehavior, позволяет разработчикам смоделировать области векторного воздействия. Apple также предоставил внятный образец кода, чтобы продемонстрировать как его использовать здесь. Его стоит загрузить, чтобы увидеть в действии, стоит также посмотреть примеры кода, показывающие как его реализовать.

Усовершенствование класса UICollectionView

Класс Collection views стал излюбленным средством управления и упорядочивания данных для фреймворка Cocoa Touch, с тех пор как он был введен в операционной ситеме iOS 6. Они имеют свои преимущества над табличной версией, но самое большое преимущество – это способность определить пользовательский макет. В версии iOS 9, Collection views стали еще более совершенными и понятными на подсознательном уровне. Новое логическое свойство   sectionHeadersPinToVisibleBounds, заставляет схему потока работать еще больше, как работала табличная версия до этого. Заголовки разделов теперь располагаются в верхней части экрана во время прокрутки. Они также могут быть легко переставлены, если вы используете UICollectionViewController, установите installsStandardGestureForInteractiveMoment. При помощи одной линейки, пользователи теперь могут менять порядок элементов, которые они хотят видеть в своем пользовательском интерфейсе.

Усовершенствование класса UIPickerView

Разработчики во всем мире потратили много сил, чтобы классифицировать класс Picker views как следует. На данный момент класс Picker view имеет встроенную поддержку для изменения размеров и адаптивности. В предыдущих версиях iOS, и опция Выбор даты и вид данной опции принимают размер по умолчанию даже если вы попытаетесь изменить их. Ширина по умолчанию обоих элементов управления на данный момент около 320 единиц. Ранее, это было бы устройство, ширина которого представлена на iPhone. Мало, кто упомянул недавно добавленные функции activateConstraints(_:) к NSLayoutConstraint. Она была добавлена на версию с прошивкой iOS 8, и активирует набор ограничений с помощью одного вызова.

Контакты API

Слишком долго разработчики были вынуждены полагаться на интерфейс программирования приложений (API), построенном на C, чтобы использовать контактную информацию в своих приложениях. Наконец, Apple дала нам полностью предметно-ориентированную API с помощью двух новых фреймворков: Контакты и Контакты интерфейса. Они заменили и фреймворк Адресную книгу и Адресную книгу интрфейса.

Использование нового API гораздо менее болезненно, чем использование старого:

Многофункциональность

Для пользователей, это будет самое лучшее предстоящее усовершенствование, хотя в настоящее время оно еще не доступно всем устройствам. Самая лучшая часть (или худшая, зависит от кодовой базы пользователя), это то, что приложение может работать с этой функцией даже без защиты. Взять например, Twitter:

Ст2 кар2

Эту функцию можно поддержать, используя iOS автомакет AutoLayout и функцию управления размерами Size Classes. Если кодовая база уже широко использует ее, тогда здесь и делать нечего.

По сути, iOS будет управлять Size Classes во время его работы, когда пользователь перетаскивает их пальцем, чтобы установить многофункциональность системы. Если экран разделен на две части и каждое приложение занимает половину экрана, они оба могут быть стандартной ширины и высоты. Если одно приложение занимает две трети экрана и приложение разработчика занимает всего четверть (как на картинке выше), то оно будет более компактной (сжатой) ширины и стандартной высоты. Пора перестать избегать AutoLayout и Size Classes!

Поиск

Apple объявил, что они хотят сделать iOS 9 более разумным и способным отвечать требованиям пользователя. Программа Siri теперь постарается лучше угадывать, какую информацию пользователь пытается найти, как выглядит повседневная жизнь пользователя и т.д. Это позволит разработчикам усовершенствовать функцию Поиск в iOS 9.

Используя  функцию Search API, разработчики могут обеспечить пользователей прямым доступом к необходимой информации. На рисунке ниже,   пользователь искал Маui, а популярное приложение для путешествий, Kayak, показало наличие рейса с текущего местоположения пользователя в Maui:

Ст2кар3

Хотя я не смог найти источник этой цитаты, я прочитал, что пользователи тратят ошеломляющие 86% своего времени в приложениях при использовании iOS. Это важно, что мы сделали приложение легким на сколько это возможно, чтобы пользователи могли заканчивать работу в пределах наших собственных приложений.

С поиска, вы можете добиться этого путем отображения информации о вашем приложении тремя основными API:

NSUserActivity: Ранее рассмотренное содержание приложения.

– Веб-разметка: содержание приложения, которое также поддерживается в Интернете.

CoreSpotlight: Это, вероятно, будет наиболее распространенным методом, любая часть приложения может быть отображена при помощи интерфейса API.

Библиотека CloudKit JS

Кто бы мог подумать, что одно из самых больших нововведений на конференции WWDC  будет связано с javascript? CloudKit теперь может похвастаться обогащенной JavaScript API, что очень важно, потому что большинство “связанных с ним” приложений обычно требуют хоть какого-то сетевого присутствия. CloudKit JS предоставляет веб-интерфейс для работы в унисон с приложением IOS.

CloudKit JS будет иметь доступ к тому же содержанию, что и его «коллега» iOS. Это означает, что все данные можно свободно обменивать между двумя устройствами. Apple, выставил фреймворк из собственного контента CDN, если вдруг разработчики не захотят ввести его сами:

Оттуда, включите веб-сервис для содержимого приложения с панели CloudKit. API построена с использованием основы RESTFUL и поэтому данные могут быть извлечены и размещены с помощью JSON. Например, конечная точка для изменения существующей записи выглядит следующим образом:

Так как цены на CloudKit конкурентоспособны, это может быть недостающим звеном, которое помогает ему конкурировать с сервисами наподобие Parse.

Функция App Thinning

Это большая победа для разработчиков. Самое страшное, что может случиться на нами разработчиками – это «пролет» на продажах потому что пользователь не был подключен к WIFI, чтобы загрузить наше приложение. Теперь же, Apple помогает устранить такого рода проблемы, используя концепцию, которую они называют  “App Thinning”.

С концепцией App Thinning, пользователи будут загружать только те части, которые имеют отношение к нему. Например, если пользователь имеет iPhone 6+, программа загрузки не скачает @1x или @2x изображения, так как они не будут использоваться, а загрузит только @3x изображения.

У концепции App Thinning есть три главных компонента:

App нарезки: это процесс загрузки только того, что необходимо пользователю.

функция «по требованию» (ODR): ресурсы размещенные в App маркете, которые могут быть использованы только после того, как пользователь скачал приложение. Например, новые уровни в игре через покупку в приложении.

битовый код: позволяет Apple вновь оптимизировать двоичное приложение в будущем без разработки новой версии.

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

Использовать в приложении можно тег ресурсы с ключевыми словами. Затем, эти ресурсы могут быть загружены в более позднее время при помощи этих тегов. А еще лучше то, что их можно наладить в X коде. Используя новый NSBundleResourceRequest класс, звоните beginAccessingResourcesWithCompletionHandler(_:) для доступа к запрошенным ресурсам.

Класс SFSafariViewController

Появление этого класса назревало уже давно. Просмотр веб-контента на iPhone уже давно является повседневным процессом, и я бы не преувеличил, если бы сказал, что iOS практически первым ввел понятие о мобильном браузере. Долгое время, разработчики пользовались UIWebView. Можно было бы сказать, что работа сделана, но он стал известен из-за утечки памяти, не имея доступа к устройству браузера nitro javascript, и не имея доступа к паролю устройства, к отметкам браузера (или cookies) и т.д.

Все складывалось не намного лучше и с выпуском WebKit, который представил улучшенную версию WKWebView. Эта версия обеспечила доступ к устройству браузера nitro javascript, обеспечив прокрутку в 60 единиц за секунду, встроенные жесты и многое другое.   Разработчики, которые все еще должны создать привычный пользовательский интерфейс, не имеют доступа к функции автозаполнения AutoFill, режиму чтения или истории просмотра.

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

И что самое лучшее, так это то, что в пользовании они очень просты.

Это приведет к следующему результату (обратите внимание на кнопку  Готово, которая возвращает пользователей непосредственно назад в приложение)

Ст2кар4

Вывод

Я рад, что IOS 9 «пришелся к столу» как для разработчиков, так и для пользователей. Дополнения к опыту пользователя, такие как многофункциональность и картинка в картинке, заинтересует активных пользователей и привлечет новых. Что касается разработчиков, то нам дали инструменты, чтобы помочь оправдать эти новые ожидания в наших собственных приложениях с API, такие как stack view. Публичная бета-версия прошивки 9 вышла в свет, и настало время развиваться вместе с ней.

Это список некоторых моих любимых API, в версии iOS 9 и кроме этих, есть еще тысячи. Помимо интерфейсов API, Interface Builder была значительно улучшена (теперь она может показать размытый и прозрачный вид). Я даже не говорю уже о SpriteKit, которая была улучшена с новыми фреймворками. Для исчерпывающего перечня всех изменений в iOS 9, обязательно посетите документацию Apple.

Перевод статьи

Поделиться: