AzoftБлогiOS 7: новые возможности и изменения в интерфейсе

iOS 7: новые возможности и изменения в интерфейсе

Виктор Котов Сентябрь 25, 2013

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

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

Редизайн

Мы уже приводили примеры того, как изменение парадигмы дизайна пользовательского интерфейса в iOS 7 влияет на проекты. Вот еще один пример:

                              iOS 6                                                                                iOS 7

Исчезли метки—ссылки слева от кнопки.

Общий баг для всех экранов: информация вверху приложения перекрыта информацией, выводимой в строке состояния устройства.

iOS 6: фокус установлен на текстовом поле, в которое будет вводиться информация.

iOS 7: это текстовое поле не видно.

Все ок.

Все ок.

Практически ни для одного существующего проекта не получится обеспечить поддержку iOS 7 без дополнительной доработки, зачастую очень объемной по затратам времени и ресурсов.

Дополнительные новшества iOS 7 по части пользовательского интерфейса:

Dynamic Behaviors for Views

Отказавшись от реалистичности элементов управления в визуальном плане, Apple, тем не менее, сделала значительный шаг в сторону повышения реалистичности «физического» взаимодействия объектов на экране: на них может оказывать влияние сила тяжести, они могут перемещаться по экрану под воздействием приложенной силы, могут притягиваться друг к другу и отталкиваться от встреченных препятствий.

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

Text Kit

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

64-Bit Support

Начиная с iPhone 5S (процессор A7), iOS 7 будет поддерживать и 32-битные, и 64-битные приложения. При этом системные фреймворки, которые используют приложения будут также 32 и 64-битные — они будут загружаться системой в память при необходимости. это означает, что, если все установленные/запускаемые приложения будут 64-битные (что, на мой взгляд, маловероятно в ближайшей перспективе, да и в течение года—полутора лет тоже), то будут загружаться только 64-битные библиотеки. А если пользователь запустит 32-битное приложение — то и те и другие, а это значит — меньше доступной памяти для приложений на устройстве.

В новой версии Xcode приложение будет собираться сразу в двух вариантах: 32 и 64-битное, а значит, увеличится размер дистрибутива. Конечно, увеличение будет не в два раза, так как ресурсы (картинки и прочее) будут одинаковые, дублироваться будут лишь исполняемые файлы, а их размер может варьироваться в зависимости от приложения.

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

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

New Frameworks in short

iOS 7 включает в себя следующие новые фреймворки:

  • Game Controller — предоставляет интерфейс для взаимодействия с игровыми контроллерами.
  • Sprite Kit — обеспечивает поддержку sprite-анимации и рендеринга.
  • Multipeer Connectivity — обменами данными между устройствам напрямую.
  • JavaScript Core — предоставляет Objective-C классы для работы JavaScript объектами. При помощи данного фреймворка можно исполнять JavaScript код и обрабатывать данные в формате JSON.
  • Media Accessibility — управление представлением текстовой информации, содержащейся в медиафайлах (например, субтитры). Пользователю также будут доступны новые опции в общих настройках устройства.
  • Safari Services — поддержка функционала по добавлению ссылок на веб-страницы в Safari reading list.

Далее об этих и других нововведениях более подробно.

Multitasking Enhancements

Однозначно полезное улучшение получила многозадачность в iOS.

Основные изменения:

  • приложения, которые периодически получают какой—либо контент из сети, теперь могут быть автоматически запущены в фоновом режиме; так они смогут произвести скачивание и обработку данных, не требуя ручного запуска и, вообще, не появляясь на экране устройства.
  • фоновое обновление данных может быть инициировано при помощи push notifications. Извещения также могут быть «скрытыми», то есть не показываться пользователю.

Запуск обновлений может быть также привязан к определенному состоянию системы: например, уверенный сигнал беспроводного соединения с интернетом, или то, что система уже не находится в «спящем» режиме.

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

Games

Sprite Kit Framework

Очень значимое добавление для всех, кто занимается разработкой игр. С iOS 7 Apple предоставляет собственную платформу для создания 2D- и 2.5D-игрушек. Популярным аналогом является фреймворк cocos2D.

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

Maps

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

  • разработчики смогут устанавливать параметры камеры 3D-режима карт, устанавливая оптимальный угол обзора.
  • дополнительные слои с информацией могут быть размещены на разной «высоте», что должно помочь облегчить пользователями восприятие данных.
  • новый класс MKDirections позволяет получить информацию о маршруте между двумя локациями и отобразить ее в дополнительном слое (правда, уже не в «автоматическом» режиме).
  • специальный класс позволяет рисовать линии, повторяющие изгиб поверхности Земли.
  • исходные «кусочки» карты могут быть заменены на кастомные.

AirDrop

Функциональность, появившаяся у старшего брата iOS — Mac OS X с версии Lion, теперь приходит и на мобильные девайсы. Эта технология позволяет значительно упростить обмен данными между пользователями различных устройств. Делается это напрямую, без использования электронной почты, файлообменных и других сервисов.

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

Inter-App Audio

Фреймворк Audio Unit также получил расширение возможностей: теперь приложения могут обмениваться MIDI-командами и аудиопотоками. Нововведение будет актуальным для приложений определенной категории, таких как программ—«музыкальные инструменты» и аудиоредакторов, но возможно найдет и иное прикладное применение.

Peer-to-Peer Connectivity

Помимо добавленного AirDrop, iOS 7 также предлагает дополнительный фреймворк для обмена данными и сообщениями между устройствами под управлением iOS: Multipeer Connectivity. Связь осуществляется непосредственно между устройствами через Wi-Fi, peer-to-peer Wi-Fi или Bluetooth.

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

UIKit Framework

Ключевые изменения:

Все стандартные элементы управления имеют обновленный дизайн.

UIViewController—упрощена кастомизация перехода от одного контроллера к другому.

Каждый контроллер теперь может иметь собственные настройки для отображения строки состояния.

Графические ресурсы можно группировать в «альбомы» на стадии разработки и в дальнейшем обращаться к ним при вызове метода imageNamed. Это позволяет упростить работу с изображениями, рассчитанными на разные разрешения или сгруппированные по другому критерию.

UIScreenEdgePanGestureRecognizer—новый жест, распознающий панорамирование рядом с углами экрана.

Начиная с iOS 6, устройство можно вручную в настройках перевести в специальный режим Guided Access, когда пользователь ограничивается в возможностях выйти из приложения или даже использовать какие—то элементы интерфейса внутри приложения — с iOS 7 это можно сделать программно.

Была усовершенствована возможность сохранения и восстановления состояния приложения между запусками и закрытиями.

Store Kit Framework

Store Kit — теперь использует новую систему проверки платежей In-App Purchases, которая упрощает

Фреймоврк Pass Kit получил дальнейшее развитие, и теперь становится возможным группировать «билеты», задавать текст и ссылки на обороте билета, а также хранить дополнительные данные, которые не будут доступны пользователю.

OpenGL ES

iOS 7 включает поддержку OpenGL ES 3.0, что несомненно скажется на мультимедийных приложениях (в первую очередь играх). Также и поддержка OpenGL ES 2.0 была расширена новыми возможностями.

Message UI Framework

Добавлена поддержка добавления файлов к сообщению в стандартный интерфес редактирования сообщения.

iAd Framework

Обновление фреймворка позволяет включать рекламные блоки перед началом воспроизведения видео или даже просто перед выводом содержания какого—либо контроллера на экран.

Core Motion Framework

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

Core Location Framework

Фреймворк Core Location расширяет возможности по мониторингу местоположения устройства, ориентируясь на Bluetooth-устройства (iBeacons). Такое позиционирование позволяет обеспечивать более высокую точность, например, расставлять и определять «метки» возле каждой картины в галерее.

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

AV Foundation Framework

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

Deprecated APIs

Как и с любым другим обновлением, iOS 7, кроме новой функциональности, API и фреймворков, имеет ряд методов, которые объявлены как нежелательные, и в будущем поддерживаться не будут. Основные и критические изменения мы упоминали в предыдущей заметке: запрет на использование UDID и MAC—адреса устройства.

Заключение

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

Комментарии

комментарии



Content created by Victor Kotov