Статьи

Что нового в Xcode 9?

Конечный продукт
Что вы будете создавать

В этом году объявления WWDC были посвящены новым замечательным SDK, таким как ARKit, и изменениям в iOS 11. Однако Apple также внесла значительные улучшения в Xcode с помощью Xcode 9 . Чтобы не отставать от других анонсов, новая версия Xcode — это шаг вперед для программистов. Разработчики обязательно будут счастливы!

Включено в улучшения этого года:

  • обновлена ​​поддержка Swift 4, включая параллельную поддержку Swift 4.0 и 3.2
  • улучшенное быстродействие в Xcode Project Navigator и Editor, от индексирования до инструментов рефакторинга
  • полностью перестроенный компонент управления исходным кодом (SCM) с бесшовной интеграцией Git и GitHub
  • возможность запуска нескольких одновременных симуляторов, а также отладки по беспроводному соединению на физических устройствах, таких как iPhone и Apple TV
  • новый инструмент проверки основного потока для обеспечения соответствия потоков UIKit и AppKit
  • улучшенный интерфейс Builder рендеринга компонентов пользовательского интерфейса

Конечно, это очень интересный список изменений, поэтому давайте рассмотрим их по очереди, начиная с Swift 4.

Swift постоянно развивается год за годом, и в этом году Xcode поддерживает последний крупный выпуск Swift , Swift 4 . Хотя последняя итерация с открытым исходным кодом не так велика, как предыдущие версии, Xcode 9 сделал этот процесс еще более удобным.

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

Picking a Swift language version

Компилятор Xcode 9 понимает обе версии, и с помощью Xcode Migration Assistant теперь попросит пользователей выбрать, какие цели перейти на версию 4.0.

Фактически, Xcode 9 оценивает ваш код и предоставляет информацию о состоянии соответствия модернизации вашего проекта и лучших практиках, используя опцию меню Editor> Validate .

Selecting targets to convert

Далее, Xcode 9 получает некоторые необходимые улучшения самой IDE, в частности, компонентов Project Navigator и Source Editor, начиная с более быстрого механизма индексации, который расширяет ваши возможности поиска и быстрее возвращает результаты.

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

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

Xcodes new intelligent highlighting engine

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

Refactoring preview

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

Другие незначительные улучшения включают встроенную поддержку файлов Markdown (отображаемых с помощью стилей Markdown) в редакторе. Это улучшение имеет смысл, учитывая более глубокую интеграцию XCode с GitHub, и полезно иметь возможность более визуального доступа к файлам README.md в редакторе.

Markdown editor

Xcode 9 также предоставляет новые шаблоны iOS Playground, которые вы можете протестировать не только в Xcode, но и на Swift Playgrounds для iPad!

Swift playgrounds

Кроме того, это небольшое улучшение, но редактор теперь позволяет пользователям увеличивать или уменьшать размер шрифта редактора, используя macOS-совместимый + или ярлыки.

Font size shortcuts

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

Наконец, улучшения в каталоге активов Xcode добавляют поддержку нового открытого стандарта изображений HEIF, который является частью iOS 11.

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

SCM integration

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

Чтобы подробнее ознакомиться с новыми функциями SCM в Xcode 9, ознакомьтесь с нашей статьей « Что нового с поддержкой Git в Xcode 9» .

  • Xcode
    Что нового с поддержкой Git в Xcode 9

Чтобы не остаться в стороне, отладка привлекла большое внимание и в Xcode 9. Мы начнем с изучения того, что нового в Xcode Simulator.

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

Это изменилось в Xcode 9. Разработчики могут впервые запускать несколько симуляторов одновременно, с инструментами автоматизированного тестирования, которые теперь могут выполнять тесты параллельно.

Running multiple Simulators

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

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

И последнее, но не менее важное: разработчикам, заканчивающим Simulator и тестирующим на реальных устройствах, больше не нужно физически подключать свои устройства. Apple теперь позволяет разработчикам обрезать шнур и отлаживать устройства iOS и Apple TV без проводов с помощью функции «Сетевая отладка».

Новая автономная утилита отладки, которую Apple представила вместе с Xcode 9, Main Thread Checker способна обнаруживать несоответствующее использование известных SDK, таких как AppKit и UIKit, из фонового потока. Например, разработчики могут использовать действия UITableView в фоновом потоке, которые могут привести к странным визуальным эффектам и ошибочным обновлениям. Проверка основного потока включена по умолчанию и настраивается с помощью редактора схем.

Xcode 9 теперь имеет встроенные и стандартные боты Xcode Server, что избавляет разработчиков от необходимости устанавливать macOS Server. Это означает, что разработчики могут запускать ботов Xcode Server на любом компьютере и использовать передовые методы непрерывной интеграции.

Разработчики наблюдали постепенные изменения и улучшения в Интерфейсном Разработчике (IB) в течение многих лет с постоянными улучшениями в рендеринге экранов. Xcode 9 продолжает совершенствовать IB путем более точной визуализации компонентов пользовательского интерфейса на холсте. Улучшенные компоненты включают в себя навигацию, вкладку и панели инструментов.

Еще одна новая особенность заключается в том, что Xcode и IB теперь будут предупреждать разработчиков, когда ограничения на просмотр могут вызвать проблемы с локализацией. Например, вы будете предупреждены, когда изменение представления может привести к усечению или обрезанию слов на другом языке, например на немецком. Это, безусловно, сэкономит много времени для разработчиков, которые поддерживают несколько языков.

Говоря о макетах, Interface Builder теперь также поддерживает направляющие безопасной области Auto Layout, которые помогают разработчикам упорядочивать элементы пользовательского интерфейса. Это осуждает верхнюю и нижнюю направляющие макета в предыдущих версиях XCode.

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

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

В то время как iOS 11 воодушевляет сообщество разработчиков благодаря своим новым потрясающим функциям SDK, Xcode 9 предоставляет идеальный инструмент разработки для предоставления инноваций своим пользователям. Следите за практическими уроками по использованию новых SDK для iOS. И посмотрите другие наши посты о разработке приложений для iOS!

  • iOS SDK
    Передача данных между контроллерами в Swift
    Франческо Франкини
  • Мобильная разработка
    Как отправить приложение iOS в App Store
    Вардхан Агравал
  • Мобильная разработка
    Поместите свои контроллеры представления в диету с MVVM
    Барт Джейкобс
  • стриж
    Что нового в Swift 4
    Патрик Балестра
  • Xcode
    Что нового с поддержкой Git в Xcode 9