Каждый выпуск Xcode предоставляет разработчикам улучшенные инструменты, помогающие создавать их приложения. В этом году Xcode 6 представляет разработчикам новые способы разработки и создания своего программного обеспечения. В этом уроке я опишу новые и улучшенные функции в Xcode 6 и посмотрю, как их можно использовать.
1. Детские площадки
Во время WWDC этого года Apple представила Swift, новый язык программирования для разработки программного обеспечения для своих устройств. В соответствии с этим, Xcode 6 поставляется с новой функцией под названием Playgrounds, которая предоставляет интерактивную рабочую область, где разработчики могут писать код Swift и получать отзывы в реальном времени без необходимости запуска кода на устройстве или симуляторе. Это хорошее дополнение к Xcode, так как теперь вы можете экспериментировать с кодом и получать быстрые результаты в реальном времени, прежде чем включать его в основную базу кода.
2. Интерфейсный Разработчик
Главной темой WWDC этого года было создание адаптивных приложений. Вместо того чтобы создавать приложения, предназначенные для экранов определенного размера, разработчикам рекомендуется разрабатывать приложения, которые адаптируются к устройству, на котором они работают, независимо от его размера.
Это движение, которое началось с нескольких выпусков назад с появлением Auto Layout в iOS 6, позволяя разработчикам создавать приложения, которые работают на экранах 3,5 «и 4,0». Теперь он еще более усовершенствован, чтобы позволить разработчикам iOS создавать приложения, которые работают на всех поддерживаемых iPhone, включая новые 4,7 «iPhone 6 и 5,5» iPhone 6 Plus и iPad, использующие ту же самую кодовую базу.
Интерфейсный конструктор претерпел серьезные изменения, которые позволяют разрабатывать такие адаптивные приложения. Также были добавлены новые функции, которые улучшают процесс проектирования пользовательского интерфейса. Мы рассмотрим эти новые изменения в следующем.
Классы размера
Классы размера определяют размер холста, используемого в макетах. Они позволяют вам указать, как изменяется пользовательский интерфейс приложения при изменении доступного размера вашего контроллера представления. Это позволяет создать единую раскадровку при создании универсального приложения. Ранее вам приходилось проектировать две отдельные раскадровки, одну для iPad и одну для iPhone.
Класс размера определяет относительный объем пространства отображения для высоты (вертикальное измерение) и ширины (горизонтальное измерение). В настоящее время существует два класса размеров, компактный и обычный . Например, портретный iPhone будет иметь компактную ширину и обычную высоту. IPad будет иметь одинаковую ширину и высоту как в портретной, так и в альбомной ориентации.
Но вы должны заметить, что класс размера не обязательно соответствует одному устройству в одной ориентации. Например, iPad может иметь представление с макетом в стиле iPhone (компактный класс по горизонтали и обычный размер по вертикали) при представлении на меньшем пространстве на устройстве, и макет в стиле iPad (обычный класс по горизонтали и вертикальный размер) ) когда доступное пространство больше.
Вы изменяете классы размеров с помощью элемента управления «Размерные классы» рядом с панелью инструментов макета в нижней части холста Interface Builder. Интерфейсный Разработчик запускает вас в любом классе ширины и размера высоты, где вы можете расположить общие компоненты пользовательского интерфейса и ограничения для разных размеров экрана и ориентаций. Затем вы обновляете детали, которые должны изменяться при изменении доступного размера экрана, внося изменения в пользовательский интерфейс в разных классах размеров.
Адаптивные типы Segue
В Xcode 6 представлены адаптивные типы переходов, которые больше подходят для новых адаптивных макетов, поскольку они представляют представления по-разному в зависимости от среды, в которой они запущены. Например, использование « Показать детали с разделенным видом на iPad» заменит «Детали», но на iPhone собирается отодвинуть эту деталь в сторону мастера. Некоторые старые сегменты, такие как push и modal, теперь устарели.
Рендеринг в реальном времени
Холст Interface Builder стал более интерактивным, чем когда-либо. Ранее вам приходилось запускать приложение, чтобы увидеть изменения, связанные с пользовательскими объектами, пользовательскими шрифтами и локализацией. Теперь вы можете выбрать пользовательские шрифты из средства выбора шрифтов Interface Builder и отобразить их на холсте Interface Builder.
Вы даже можете создавать собственные объекты и отображать их на холсте Interface Builder. Вы делаете это, создавая пользовательский каркас, добавляя собственный класс к этой цели и помечая этот класс флагом IB_DESIGNABLE
( IB_DESIGNABLE
в Objective-C). Это позволяет Интерфейсному Разработчику знать, что класс может отображать пользовательский контент на своем холсте.
Помимо возможности просмотра пользовательских объектов в Интерфейсном Разработчике, вы также можете пометить свойства флагом @IBInspectable
и сделать так, чтобы они появлялись в меню инспектора Интерфейсного @IBInspectable
, в котором их можно редактировать так же, как и любые другие свойства в ваших представлениях. Класс не должен быть помечен как проектируемый, чтобы иметь проверяемые свойства.
Вы также можете указать только время разработки кода. Это можно использовать, например, для предварительного заполнения представления примерами данных, чтобы получить более точное представление об интерфейсе. Вы делаете это путем переопределения метода prepareForInterfaceBuilder
. Кроме этого, вы можете использовать #if TARGET_INTERFACE_BUILDER
чтобы отключить или не запускать код в финальном рендеринге Интерфейсного Разработчика.
Редактор предварительного просмотра
Редактор предварительного просмотра теперь позволяет просматривать несколько предварительных просмотров различных имитируемых устройств рядом. Вы можете не только увидеть, как ваше приложение выглядит на разных устройствах, но вы также можете установить для каждого из устройств режим портретной или альбомной ориентации. Это обеспечивает быстрый способ предварительного просмотра пользовательского интерфейса вашего приложения на разных устройствах и в разных ориентациях без предварительного его запуска.
3. Разработка игр
Apple добавила новые игровые технологии в Xcode 6 и iOS 8, а именно SceneKit и Metal. SceneKit, который ранее был доступен в OS X, является средством визуализации 3D-сцен. Metal — это фреймворк, который можно использовать для создания высокооптимизированной графики и вычислительных задач благодаря низкому доступу к графическим процессорам A7 и A8.
SpriteKit также был улучшен за счет пиксельной окклюзии физики, физических полей, универсальной кинематики и ограничений, шейдеров, источников света и теней.
Еще одной важной новой функцией в SpriteKit является редактор уровней SpriteKit, который позволяет визуально собирать сцены. Точно так же, как вы можете создавать свой пользовательский интерфейс в Интерфейсном Разработчике без написания какого-либо кода, вы можете делать то же самое, когда играете в SpriteKit с помощью редактора уровней SpriteKit.
4. Разработка OS X
Раскадровка
Раскадровки были теперь представлены к разработке OS X. Как и в iOS-разработке, они позволяют вам настраивать макеты представлений и представления проводов вместе с различными анимациями перехода. На момент написания некоторые функции, включая раскадровки, все еще отключены в Xcode (6.0.1) для разработки под OS X до выпуска OS X Yosemite.
Распознаватели жестов
Распознаватели жестов теперь доступны в AppKit. Они используются почти так же, как и в разработке для iOS. Вы можете просмотреть доступные жесты в Библиотеке объектов в Интерфейсном Разработчике.
5. Локализация
Локализация в Xcode 6 выполняется иначе, чем раньше. Теперь вы можете экспортировать весь свой локализуемый контент в XLIFF, который является отраслевым стандартом, который понимают многие переводческие службы. Когда вы получите переводы обратно, вы импортируете их, и XCode объединит новый контент в ваш проект. У вас должен быть один файл XLIFF для каждого языка, который вы поддерживаете в своем приложении.
Теперь вы можете просматривать локализованный контент без изменения локали вашего устройства или симулятора в настройках . Для этого выберите « Продукт»> «Схема»> «Редактировать схему» , затем выберите « Выполнить» и перейдите на вкладку « Параметры ». Вы можете выбрать нужный язык в меню « Язык приложений» . Xcode поставляется с псевдоязыком двойной длины, который вы можете проверить, если вы еще не добавили другой язык. Когда вы запустите приложение, вы должны увидеть локализованный контент.
Вы также можете просматривать локализованный контент без запуска вашего приложения. Для этого вы используете редактор предварительного просмотра для переключения между различными языками, которые поддерживает ваше приложение. Язык по умолчанию будет отображаться в правом нижнем углу редактора, и при нажатии на него вы увидите список доступных языков. Чтобы проверить это без добавления языка, вы можете использовать псевдоязык двойной длины.
6. iOS Симулятор
Названные устройства
Xcode 6 теперь представляет именованные симуляторы, которые соответствуют определенным устройствам, таким как iPhone 5s, вместо предыдущих общих имен, таких как 64-разрядная iPhone Retina.
Симулятор изменяемого размера
Среди устройств, которые вы можете выбрать, — изменяемый размер iPhone и изменяемый размер iPad. Это позволяет вам указать ширину, высоту и классы размеров симулятора. Благодаря этому вы можете проверить адаптивность вашего приложения на всех существующих устройствах Apple, а также на любых будущих устройствах, не загружая симулятор для каждого устройства.
Пользовательские настройки симулятора
С новым симулятором iOS вы можете сохранить данные и настройки конфигурации сгруппированными вместе. Запустите одну конфигурацию для одной версии приложения с собственными данными и другую конфигурацию для другой версии приложения. Это означает, что вы можете смоделировать наличие нескольких пользователей на вашем компьютере. У каждого пользователя будут свои данные и конфигурации.
7. HomeKit Аксессуар Симулятор
Среда HomeKit позволяет вашему приложению взаимодействовать и контролировать подключенные аксессуары в доме пользователя. В бета-версиях Xcode 6, HomeKit Accessory Simulator был частью Xcode, но теперь он является частью Hardware I / O Tools для Xcode. Вы можете скачать его в iOS Dev Center .
8. Отладка
Просмотреть отладку
Xcode 6 значительно упрощает отладку пользовательского интерфейса вашего приложения благодаря функции отладки в режиме реального времени. Теперь вы можете приостанавливать работу запущенного приложения и анализировать приостановленный пользовательский интерфейс в 3D-виде. Отладчик представлений показывает вашу иерархию представлений и ограничения Auto Layout. Если вы выбираете представление, вы можете проверить его свойства в инспекторе или перейти к соответствующему коду в помощнике редактора. При этом вы можете проверять такие проблемы, как конфликты автоматической компоновки, видеть, почему представление скрыто или обрезано, и т. Д.
Чтобы запустить отладчик в режиме реального времени, запустите приложение и нажмите кнопку « Отладить иерархию представлений» на панели инструментов отладки.
Ваше приложение приостановится, и вы получите трехмерную визуализацию своего пользовательского интерфейса. Вы можете перетащить в любое место на холсте, чтобы повернуть вид.
Вы можете переключаться между различными состояниями просмотра с помощью кнопок под холстом.
Слева направо:
- Показать обрезанное содержимое: этот параметр скрывает или показывает содержимое, обрезанное в выбранном представлении.
- Показать ограничения: показывает ограничения автоматического размещения выбранного представления.
- Сбросить область просмотра. Сбрасывает холст в состояние по умолчанию.
- Настроить режим просмотра: этот режим позволяет вам выбрать способ просмотра. Есть возможность просмотреть его в виде каркаса, содержимого представления или обоих.
- Уменьшение , фактический размер , увеличение: позволяет установить масштаб изображения.
Беглый взгляд
Quick Look был представлен в Xcode 5 и позволяет просматривать содержимое объекта при отладке. Quick Look поддерживает общие объекты, такие как изображения, пути Безье, местоположения на карте и т. Д.
В Xcode 6 это было улучшено для поддержки двух новых типов объектов, представлений ( UIView
и NSView
) и пользовательских объектов. Чтобы включить Quick Look для пользовательских объектов, вы реализуете метод debugQuickLookObject
в пользовательском классе.
Улучшенная отладка очереди
Навигатор отладки записывает и отображает недавно выполненные блоки, а также блоки в очереди. Вы можете использовать его, чтобы увидеть, где находятся ваши блокированные очереди, и изучить детали того, что было настроено для выполнения. Вы можете включить отладку блоков, выбрав пункт меню « Отладка»> «Рабочий процесс отладки»> «Всегда показывать блоки в очереди» .
Отладочные датчики
Датчики отладки предоставляют информацию об использовании ресурсов вашего приложения во время отладки. Xcode 6 имеет обновленные датчики, которые включают профилирование графиков для новой платформы Metal и поддержку iCloud для документов в функциях Cloud и CloudKit.
Помимо этих улучшений, Xcode 6 представляет два новых индикатора отладки — сетевую и дисковую активность.
Сетевая активность показывает, сколько данных ваше приложение отправляет и получает, а также список открытых соединений. Вы можете просмотреть хронологию, чтобы отслеживать использование сети, помогая вам определить, когда и почему произошли всплески использования сети или сбои сети.
Дисковая активность показывает в реальном времени информацию о чтениях и записи вашего приложения на диск. Он также дает информацию обо всех открытых файлах. Для отслеживания активности дискового ввода-вывода существует хронология.
9. Каталог активов
Каталоги активов теперь поддерживают классы размеров. Это означает, что теперь вы можете легко адаптировать свой пользовательский интерфейс для компактной и обычной высоты или ширины, предоставляя различные изображения для каждого класса размеров.
Ранее каталоги ресурсов поддерживали только изображения PNG, но в Xcode 6 была добавлена поддержка векторных изображений JPEG и PDF.
10. Запустите изображения
Вы можете использовать XIB или раскадровку в качестве образа запуска вашего приложения. Операционная система генерирует необходимые образы запуска для вашего приложения. При этом вам не нужно предоставлять отдельные ресурсы для стартовых образов, и вы можете создать их в Интерфейсном Разработчике.
Чтобы установить XIB или раскадровку в качестве образа запуска вашего приложения, выберите проект в Навигаторе проектов и выберите цель из списка целей. На вкладке « Общие » найдите раздел « Значки приложений и Запустите изображения» и выберите нужный файл в меню « Файл экрана запуска» .
11. Тестирование
Асинхронное тестирование
В платформу XCTest были добавлены новые API, которые позволяют тестировать асинхронный код. Это делается с помощью объектов ожидания XCTestExpectation
, которые описывают ожидаемые события. XCTestCase
имеет новый API, который ожидает выполнения ожидания и устанавливает для него тайм-аут. Обработчик завершения вызывается либо тогда, когда все события выполнены, либо когда истекло время ожидания. Может ожидаться несколько асинхронных событий одновременно. Теперь вы можете легко проверить системные взаимодействия, которые выполняются асинхронно, такие как файловый ввод-вывод, сетевые запросы и т. Д.
Измерение производительности
Усовершенствованная платформа XCTest теперь может количественно оценить производительность каждой части приложения. Xcode запускает ваши тесты производительности и позволяет вам определить базовый показатель производительности. Каждый последующий тестовый прогон сравнивает производительность, отображает изменения во времени и, выделяя проблемную область, предупреждает вас о внезапных регрессиях, которые может вызвать принятие кода. Если показатель средней производительности значительно отклоняется от базовой линии, тест не пройден. Это отличный способ обнаружить снижение производительности в вашем приложении.
Тестовое профилирование
С введением тестирования производительности появляется возможность профилировать тесты в приборах. Вы можете выбрать тест или набор тестов для профилирования и провести дальнейшие исследования и анализ в приборах, чтобы выяснить, почему тест не удался, и найти причину регрессии.
12. Инструменты
Инструменты имеет обновленный пользовательский интерфейс. С помощью нового шаблона выбора вы можете выбрать свое устройство и цель, а также отправную точку для сеанса профилирования.
Существует новый шаблон счетчиков , который был объединен с событиями, чтобы обеспечить мощное представление отдельных событий процессора. Вы даже можете указать формулы для измерения агрегатов событий, коэффициентов и многого другого.
В Xcode 6 Instruments также поставляется с поддержкой Swift, и вы также можете использовать его для профилирования расширений приложения. Также есть поддержка конфигураций симулятора. Конфигурации симулятора обрабатываются инструментами как устройства, что облегчает запуск или присоединение к процессам в симуляторе.
Вывод
Apple продолжает совершенствовать свои инструменты для разработчиков, и это видно в каждом основном выпуске Xcode. Xcode 6 улучшает свои предшественники, предоставляя разработчикам инструменты, которые улучшат их рабочий процесс и значительно улучшат весь процесс разработки.