Статьи

Готовим ваше приложение для iOS 8

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

Пользователи Apple всегда быстро адаптировались к новым версиям операционной системы по сравнению с другими платформами . Веб- сайт Apple показывает, что 92% устройств работают под управлением iOS 7. При таком высоком уровне принятия вы можете быть уверены, что значительная часть пользователей вашего приложения будет использовать последнюю версию ОС вскоре после ее выпуска 17 сентября. Таким образом, вы должны использовать преимущества новых функций, которые он предлагает, для создания лучших приложений, чтобы дать им преимущество среди конкурентов.

IPhone 6 и iPhone 6 Plus предоставляют разработчикам еще один фактор для рассмотрения: еще один размер экрана (фактически два).

Объявление iPhone 5 представило подобное изменение, которое разработчики должны были принять во внимание. С большим экраном разработчикам приходилось разрабатывать приложения, которые будут работать на предыдущих 3,5 и новых 4,0 экранах. Вскоре после этого выпуска Apple начала отдавать предпочтение приложениям, которые соответствовали новому размеру экрана. Недостатком было не обновлять свои приложения, поскольку это означало потерю экспозиции в App Store.

Через несколько месяцев после выхода Apple перестала принимать приложения, которые не поддерживают новый размер экрана . Аналогичное условие было введено в действие через несколько месяцев после выпуска iOS 7, когда Apple указала, что представленные новые приложения должны создаваться с помощью iOS 7 SDK . Из этой истории становится ясно, что обновление вашего приложения выгодно для вас и иногда необходимо. Это особенно верно, если изменения версии настолько радикальны, что старые приложения не могут работать должным образом на новых устройствах.

Но это не совсем так с iPhone 6 и iPhone 6 Plus. С выпуском iPhone 5 приложения, разработанные для меньших 3,5-дюймовых экранов, не работали хорошо с большим 4,0-дюймовым экраном, поэтому обновление было обязательным. Но с новыми телефонами этого года и их экранами 4,7 ‘и 5,5’ разработчикам не нужно обновлять свои приложения, чтобы они могли работать с новыми телефонами. Как сказал в ходе мероприятия Фил Шиллер из Apple, приложения в магазине, которые не были обновлены для работы с новыми технологиями iOS 8, «просто будут работать» на больших экранах. Он продолжил, чтобы далее объяснить это:

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

Несмотря на то, что ваши старые приложения будут работать на новых телефонах, Apple по-прежнему рекомендует разработчикам обновлять и создавать новые размеры экрана с использованием новых технологий. Большой темой конференции WWDC этого года было создание адаптивности. Это не только гарантирует, что ваши приложения будут хорошо работать на всех поддерживаемых iPhone, но также позволит вам создавать приложения для iPhone и iPad с одинаковой базой кода и файлами раскадровки.

Выпуск iOS 8 был признан «самым большим выпуском с момента запуска App Store» на конференции WWDC . Говорят, что у него более 4000 новых API для разработчиков.

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

Мы также рассмотрим, как изменения в Xcode, App Store и iTunes Connect могут помочь улучшить рабочий процесс и повысить эффективность разработки и распространения приложений.

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

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

UI

Адаптивный интерфейс

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

Унифицированные раскадровки для универсальных приложений

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

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

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

Например, iPad как в горизонтальной, так и в вертикальной ориентации будет иметь класс обычного размера. В то время как iPhone в портретной ориентации будет иметь компактный класс горизонтального размера и обычный класс вертикального размера, а когда он находится в альбомной ориентации, он будет компактным как в классах вертикального, так и горизонтального размера.

Один класс размеров не обязательно соответствует одному устройству в одной ориентации. Например, в макете iPad у вас может быть представление с макетом в стиле iPhone (т. Е. Класс компактного горизонтального размера и класс обычного вертикального размера), когда это уместно, в небольших пространствах на iPad.

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

Адаптивные контроллеры представления

С помощью адаптивных контроллеров просмотра вы можете иметь один и тот же код в своих представлениях для iPhone и iPad без проведения проверок устройства.

Один класс контроллера представления, который изменился больше всего, является UISplitViewController Ранее это использовалось при написании версий вашего приложения для iPad, когда вы писали другой код View Controller для вашей версии iPhone.

В iOS 8 Split View Controller теперь доступен на обеих платформах, поэтому вы можете написать одну иерархию контроллеров представления, которая работает на iPhone и iPad. На iPad и в альбомном режиме iPhone контроллер разделенного представления представит параллельное двухколоночное представление, а в портретном режиме iPhone — двухстраничное изображение с одним столбцом.

Адаптивные презентации

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

Вы можете написать код без каких-либо проверок устройства, который представит полноэкранный модальный режим на iPhone и получит что-то более подходящее, например, форму для iPad.

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

Теперь это можно сделать для предупреждений, всплывающих окон и просмотров.

Адаптивный текст и таблицы

Динамический текст был представлен в iOS 7, что позволило пользователям изменять размер текста в приложениях. Функция, добавленная в iOS 8, везде динамическая.

Табличные представления также изменились, чтобы ответить на изменения в размере текста. Теперь вы можете создавать таблицы, которые реагируют на изменения со строками динамического типа, не реализуя метод делегата tableView:heightForRow AtIndexPath:

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

Уведомления и виджеты

Интерактивные уведомления

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

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

Уведомления на основе местоположения

Теперь вы можете создавать уведомления с указанием местоположения, которые, например, появляются, когда пользователь входит или покидает определенную область.

Виджеты

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

интеграция

Здесь мы рассмотрим новые API, которые позволяют разработчикам расширять iOS, добавляя функциональность в системные и сторонние приложения.

Передать

Handoff позволяет пользователю запускать действие на одном устройстве и легко переносить его на другое, которым может быть Mac, iPhone или iPad.

Чтобы включить эту функцию, вы создаете действие для отслеживания действий пользователя на устройстве, например, открытие веб-страницы. Когда контекст меняется, вы обновляете это действие. ОС заботится о рекламе активности на всех ваших устройствах, которые находятся рядом. Это обновление содержит только метаданные действия, такие как URL или позиция прокрутки, вам нужно будет найти свои собственные методы передачи фактических данных на другие устройства.

расширения

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

iOS поддерживает расширения приложений для следующих областей, которые называются точками расширения:

  • Действие : Выполните простую задачу с выбранным содержимым.
  • Поделиться : Делитесь контентом с социальными сайтами или другими организациями.
  • Редактирование фотографий . Редактируйте фотографию или видео в приложении «Фотографии».
  • Сегодня : включите быстрое задание или обновление в представлении «Сегодня» Центра уведомлений.
  • Поставщик хранилища : укажите место для хранения документов, к которому могут обращаться другие приложения.
  • Пользовательская клавиатура . Предоставьте пользовательскую клавиатуру, которую пользователь может выбрать вместо системной клавиатуры для всех приложений на устройстве.

Каждая точка расширения определяет соответствующие API для своих целей.

HealthKit

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

HomeKit

Инфраструктура HomeKit позволяет пользователям взаимодействовать с поддерживаемыми устройствами в своих домах и управлять ими с помощью устройств iOS. Это достигается путем выдачи команд с использованием Siri. Если вы создаете приложения для домашней автоматизации, вам определенно стоит взглянуть на потенциальные возможности HomeKit.

CloudKit

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

Локальная аутентификация

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

PhotoKit и новые API для камер

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

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

Класс выбора контроллера View Controller представлен в iOS 8. Вам больше не нужно писать полностью собственный код, чтобы предоставить пользователям возможность выбора документа. Теперь вы можете встроить средство выбора документов в свое приложение, которое имеет доступ к документам в локальной области и в области дисковода iCloud. Если какое-либо другое приложение предоставляет расширение поставщика документов для ОС, эти документы также появятся в средстве выбора документов.

Комбинированные настройки

Новая панель настроек объединяет настройки вашего приложения с настройками системы в одном месте. Это дает вашим пользователям быстрый способ доступа и изменения настроек, не выходя из приложения.

Игры

Переадресация контроллера

На прошлогодней конференции WWDC Apple представила игровые контроллеры. Это контроллеры, которые вы можете привязать к своему устройству для управления играми, в которые играют на этом устройстве. В этом году Apple объявила о переадресации контроллера, новой функции, которая позволяет пользователям подключать устройство iOS к игровому контроллеру и использовать кнопки контроллера, сенсорный экран устройства и управление движением для управления играми, запущенными на iPad или Mac. Разработчики, создающие игры для этих платформ, должны учитывать эти новые параметры управления при разработке приложений, поддерживающих контроллеры.

SpriteKit

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

Были внедрены следующие технологии моделирования: физическая окклюзия на пиксель, физическое поле, универсальная кинематика и ограничения. Эти усовершенствования позволят разработчикам улучшить внешний вид своих игр и улучшить взаимодействие с пользователем.

SceneKit

SceneKit — это средство визуализации трехмерных сцен, которое ранее было доступно только на Mac, было представлено в iOS 8. Оно имеет встроенный физический движок, системы частиц и поддержку действий по сценарию. SceneKit может быть интегрирован со SpriteKit для включения 3D-объектов в ваши 2D-игры.

металл

Metal обеспечивает высокую производительность при рендеринге графики и вычислительных задачах благодаря низкому доступу к графическим процессорам A7 и A8.

Ранее разработчики использовали OpenGL для доступа к графическому процессору для создания оптимизированного рендеринга графики. Металл улучшает это, уменьшая накладные расходы производительности и узкие места, которые ранее присутствовали. С Metal вы теперь можете получить максимальную производительность от чипов устройств A7 и A8, чтобы создать богатую графику и впечатления в ваших играх, которые будут радовать ваших пользователей.

Разработка, тестирование и распространение

Интерактивные игровые площадки

С появлением Swift появились игровые площадки. Игровые площадки позволяют писать и тестировать код в интерактивном режиме. Когда вы создадите документ Playground, вы увидите окно с двумя панелями, в котором вы напишите свой код на левой боковой панели и получите результаты в реальном времени на правой боковой панели. С помощью этой новой функции вы можете тестировать код, не запуская ваше приложение на симуляторе или устройстве. Это ускорит ваш рабочий процесс программирования.

Игровая площадка для документов

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

Изменения в Интерфейсном Разработчике

Просмотреть отладку

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

До Xcode 6 Interface Builder мог показывать только двухмерный плоский вид вашего интерфейса. Это было не очень полезно при отладке многоуровневого пользовательского интерфейса, и разработчики обычно обращались к сторонним приложениям, таким как Reveal, чтобы помочь им отладить свои взгляды.

С Xcode 6 у вас есть живой интерактивный метод для отладки ваших пользовательских интерфейсов. Вы можете посмотреть, как элементы пользовательского интерфейса складываются в вашем виде, используя 3D-визуализацию. Вы можете удалить слои из вида для лучшего доступа к слоям внизу.

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

Изменения в интерфейсе Builder Canvas

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

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

Симулятор изменяемого размера

Xcode 6 поставляется с возможностью выбора симулятора iPhone с изменяемым размером и симулятора iPad с изменяемым размером. Вы можете использовать их для ввода пользовательских значений для аппаратного размера iPad или iPhone и проверки адаптивности вашего кода на лету.

Пользовательские настройки симулятора

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

Использование документов Interface Builder для запуска изображений

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

тестирование

Асинхронное тестирование

В прошлом все тесты проходили синхронно. Это может быть ограничительным, так как вы можете использовать большое количество асинхронных API. В XCTest были добавлены новые API, которые позволяют создавать асинхронный поток управления, который управляет асинхронными действиями. Это достигается с помощью объектов ожидания (XCTestExpectation), которые описывают ожидаемые события. XCTestCase имеет новый API, который ожидает выполнения и устанавливает тайм-аут.

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

Тестирование производительности

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

Интеграция инструментов

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

Пакеты приложений

Разработчики могут объединять свои приложения, чтобы предоставить пользователям возможность купить два или более своих приложений со скидкой. Пакеты могут содержать до 10 приложений, и Apple устанавливает некоторые условия, такие как:

  • Вы можете иметь только до десяти пакетов приложений, доступных в любой момент времени.
  • Отдельное приложение может быть включено в три набора приложений.
  • Комплект приложений доступен во всех странах, где доступно каждое отдельно включенное приложение.
  • Приложения, содержащиеся в комплекте, также должны быть доступны для продажи самостоятельно.
  • Пакеты приложений поддерживают Complete My Bundle. Complete My Bundle предоставляет клиентам, которые ранее приобрели одно или несколько приложений, включенных в комплект, дополнительную скидку на стоимость комплекта приложений.

Превью приложений

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

Изменения в iTunes Connect

TestFlight Бета-тестирование

Бета-тестирование TestFlight позволяет разработчикам приглашать пользователей для бета-тестирования предварительных версий своих приложений и предоставлять обратную связь перед выпуском приложений в App Store. Вы можете пригласить до 1000 бета-тестеров (пользователей, а не устройств) для тестирования вашего приложения.

аналитика

iTunes Connect теперь предоставляет разработчикам аналитику для своих приложений, которая дает представление о просмотрах, загрузках, взаимодействии и сохранении в App Store. Ранее такую ​​информацию можно было получить через сторонние SDK, но теперь разработчики могут получить ее напрямую.

SDK Модернизация

Многие платформы в iOS были изменены, чтобы использовать преимущества современного синтаксиса Objective C:

  • Назначенные инициализаторы были NS_DESIGNATED_INITIALIZER
  • Методы получения и установки заменяются свойствами в большинстве классов. Код, использующий существующие методы получения и установки, должен продолжать работать с этим изменением.
  • Все возвращаемые типы для инициализаторов были изменены с idinstancetype

В большинстве случаев эти изменения не требуют дополнительной работы, но вы можете реализовать изменения в своем коде Objective-C, особенно для модернизации кода при взаимодействии с кодом Swift.

Другие заметные упоминания

Ниже я перечисляю другие технологии, которые Apple представила на конференции WWDC и недавнем событии 9.9.2014, которые примечательны.

стриж

На WWDC Apple удивила и / или обрадовала разработчиков, представив новый язык программирования для Cocoa и Cocoa Touch. Свифт, по-видимому, готовился в течение четырех лет и, как говорят, очень быстро.

Он основан на лучшем из C и Objective-C, без ограничений совместимости с C. Хорошая вещь о Swift заключается в том, что он работает с кодом Objective-C. Эта совместимость выгодна для разработчиков, поскольку, когда вы начинаете обновлять свои приложения до этого нового языка, вам не нужно выбрасывать предыдущий код и библиотеки.

IOS Dev Center теперь предлагает семена Xcode 6 GM, которые вы можете загрузить и начать готовить свои приложения к публичному выпуску iOS 8. С семенем GM Xcode 6 и iOS 8 Swift теперь окончательно, и вы можете представить свою iOS приложения, написанные с помощью Swift, в App Store.

Apple Watch

На своем недавнем мероприятии Apple представила свои ожидаемые и ожидаемые умные часы Apple Watch . Часы начнут продаваться в начале 2015 года, и хорошая новость для разработчиков заключается в том, что они также будут запускать сторонние приложения.

Каркас WatchKit, дополнение к iOS 8, позволит разработчикам создавать приложения для Apple Watch.

Apple Pay

Apple Pay — это новый сервис, который Apple представила на своем недавнем мероприятии 9 сентября. Сервис предлагает пользователям простой, безопасный и приватный способ осуществления платежей без физических денег или кредитных карт. Apple Pay будет работать с iPhone 6, iPhone 6 Plus и Apple Watch. Apple Pay запустит в США бесплатное обновление для iOS 8 в октябре этого года.

Apple планирует выпустить API Apple Pay, которые позволят разработчикам создавать приложения, использующие этот вариант мобильных платежей.

Вывод

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

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

Какие функции вам больше всего нравятся в разработке или использовании?