Статьи

Xcode 5 Essentials

Xcode 5 является важным шагом вперед для экосистемы Apple, предоставляя разработчикам больше возможностей, возможностей и инструментов, чем когда-либо прежде. С версией 5 Xcode превратился в чрезвычайно мощную среду разработки. Прочтите эту статью, чтобы узнать, что нового!

Xcode 5 полон улучшений и дополнений, больших и маленьких. Все эти изменения оказывают огромную помощь разработчикам. Начинаются изменения в интерфейсе, где обновленный стиль внешнего вида был изменен в соответствии с новой экосистемой iOS 7. Просто осмотрев себя, вы заметите ряд стилистических изменений, начиная с экрана приветствия.

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

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

  • Автоматическая настройка
  • Улучшения контроля версий
  • Улучшения Интерфейсного Разработчика и Интерфейса
  • Каталог активов
  • Улучшения отладчика
  • Отладочные датчики
  • Тестирование и Боты
  • Улучшения компилятора

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

Xcode 5 избавляет разработчиков от необходимости делать все вышеперечисленное благодаря функции автоматической настройки . При автоматической настройке единственным требованием для разработчиков является их Apple ID (связанный с программой разработчика). Затем XCode автоматически включает и настраивает любые сервисы, которые хотят разработчики, связывая платформы, управляя разрешениями и делая все остальное, необходимое для работы сервиса. Разработчикам действительно не нужно ничего делать, кроме выбора сервисов, которые они хотели бы видеть в своих приложениях. Даже профили обеспечения могут быть дополнительно созданы автоматически с соответствующими настройками. Это потрясающая функция для разработчиков!

Давайте более подробно рассмотрим автоматическую настройку.

Это просто, чтобы назначить свой Apple ID в XCode. Просто откройте меню Xcode> Настройки …> Аккаунты . Вкладка учетных записей является новой функцией в Xcode 5.

gt8_1_accounts

В левом нижнем углу окна «Настройки» расположены три кнопки: знак плюс, знак минус и знак шестерни. Нажмите на знак плюс> Добавить Apple ID … вариант. В появившейся форме введите свой Apple ID и пароль и нажмите « Добавить» .

gt8_2_add_apple_id

Если все идет по плану, добавленный вами Apple ID должен отображаться в левой части окна. Справа, если вы выберете свой идентификатор и нажмете кнопку View Details , на экране появится другое окно.

gt8_3_view_details

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

gt8_4_provisioning

Чтобы удалить Apple ID, просто выберите соответствующий ID из списка в Аккаунтах и ​​нажмите кнопку «Меню» в левом нижнем углу.

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

gt8_5_capabilities

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

  1. ICloud
  2. Игровой центр
  3. депозитная книжка
  4. Покупки в приложении
  5. Карты
  6. Фоновые режимы
  7. Брелок для ключей
  8. Интер-приложение Аудио
  9. Защита данных

Если вы развернете какой-либо из них, появится описание выбранного сервиса и информация о действиях. Например, если вы развернете сервис Game Center, появится следующий рисунок, сообщающий, что право «Game Center» было добавлено к идентификатору приложения, ключ «GameKit» был добавлен в файл информационного списка, а инфраструктура GameKit была связана с ваш проект. Это действия и шаги, которые вы можете выполнить вручную, но теперь XCode может делать это автоматически от вашего имени! Если вы захотите, вы можете продолжать делать это самостоятельно, но XCode экономит ваше время.

gt8_6_game_center

На вкладке « Общие » (расположенной слева от вкладки «Возможности») в разделе « Идентичность » находится раскрывающееся меню « Команда» . Если вы успешно добавили свой Apple ID в Xcode, щелкните по нему, чтобы выбрать команду разработчиков в точности так, как она отображается в iTunes Connect. Для разработчиков, играющих в одиночку, их полное имя только появляется. Если вы хотите, чтобы автоматическая настройка работала для вас должным образом, я рекомендую выбрать вашу команду (или название) перед включением какой-либо службы на вкладке «Возможности». Если вы оставите значение «Команда» на « Нет» , то при попытке включить службу Xcode попросит вас выбрать команду.

gt8_7_general_team

На основе идентификатора Apple ID на вкладке «Учетные записи» настроек XCode, настроек идентификатора подписи и настроек «Возможности» XCode может создавать новые профили обеспечения для вас, используя надлежащие настройки, вместо того, чтобы делать это вручную. Также исправления применяются к существующим профилям обеспечения с проблемами.

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


Системы контроля версий и версий всегда полезны, и они обязательны для проектов, которые имеют тенденцию становиться большими и разрабатываются командой программистов. Даже разработчики-одиночки должны принять привычку использовать систему контроля версий, потому что это отличный инструмент, особенно когда дело доходит до отслеживания изменений кода. Система контроля версий позволяет отслеживать изменения кода и возвращаться к более стабильной версии, когда это необходимо. Для групповой разработки это здорово, потому что позволяет каждому разработчику создать часть проекта, просто создав его копию (ветвь) и не вмешиваясь в код других разработчиков. Когда различные части проекта готовы, они могут быть объединены (объединены) в одну рабочую версию кода. Кроме того, в случаях, когда появляется слишком много ошибок, разработчики могут вернуться к более стабильной версии и отследить изменения кода, просто сравнив две версии одного и того же файла. Git — такая система контроля версий.

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

gt8_8_source_control

Как видно на рисунке, в этом меню вы можете непосредственно увидеть текущий проект, над которым вы работаете, и получить доступ к определенным операциям, таким как Commit , Push , New Branch , Switch to branch , Merge from branch и многие другие. Это действительно легко и быстро получить доступ к системе контроля версий и сохранить любые изменения, которые вы хотите в своих репозиториях.

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

gt8_9_repositories

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

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

gt8_10_blame

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

Как и многие другие аспекты Xcode, управление исходным кодом также настраивается. Перейдите в Xcode> Preferences …> Source Control, чтобы получить доступ к его настройкам. Если вы хотите, вы можете полностью отключить контроль исходного кода для вашего проекта (но это не рекомендуется). Установите параметры в соответствии с вашими предпочтениями и работайте в своей индивидуальной среде.

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

Интерфейсный Разработчик интерфейса, дизайнер графического интерфейса XCode, кажется, не имеет много очевидных изменений, за исключением отсутствующей сетки и общего эстетического обновления. Тем не менее, одной из основных функций, которая была добавлена ​​в этой версии Xcode, является возможность предварительного просмотра настроек интерфейса для версий iOS, равных или более ранних, чем 6.1. Все графические элементы (подпредставления) были переработаны, и разработчики должны знать, работает ли позиция, размер или компоновка подпредставлений как для iOS 7, так и для предыдущих версий iOS.

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

gt8_11_assistant_editor

Если Xcode автоматически показывает какой-либо файл, содержащий код, в Assistant Editor, найдите и откройте файл .xib или раскадровку, которую вы хотите предварительно просмотреть вручную, как показано на следующем рисунке.

gt8_12_locate_xib

Когда вы откроете файл графического интерфейса в редакторе Standard и Assistant, нажмите кнопку Связанные файлы> Preview> Your File of the Assistant Editor.

gt8_13_related_button

Обратите внимание на рамку в правом нижнем углу экрана, где написано iOS 7.0 и более поздние версии. Нажмите на нее, выберите опцию iOS 6.1 и более ранние версии, и у вас будет готов предварительный просмотр.

gt8_14_ib_preview

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

Давайте поговорим о функции Autolayout сейчас. Autolayout не является чем-то новым в iOS 7, но в Xcode 5 он был переработан с нуля, предоставляя разработчикам полную свободу устанавливать и изменять ограничения. Это означает, что вы можете устанавливать любые ограничения по своему усмотрению (даже удалять их) без автоматического вмешательства со стороны Xcode. Он предупредит вас, если будут какие-либо пропущенные или не соответствующие ограничения, но позволит вам делать все, что вы хотите без ограничений.

В отличие от предыдущих версий XCode, в Версии 5 новое подпредставление было добавлено к представлению, которое не включает никаких ограничений. Это позволяет разработчикам решать, какие ограничения им нужны. Кроме того, новые параметры для установки ограничений доступны в правом нижнем фрейме Interface Builder (альтернативно, в меню редактора ), который можно использовать для установки пользовательских значений и определенных ограничений или для того, чтобы Xcode автоматически настраивал макет для вы.

gt8_15_autolayout_options

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

gt8_16_red_lines

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

gt8_17_outline_warning
gt8_18_autolayout_suggestions

В качестве совета я рекомендую, чтобы при использовании параметров « Обновить ограничения» , « Добавить отсутствующие ограничения» или « Сбросить до рекомендуемых ограничений» Xcode автоматически установил все ограничения, к которым вам не нужно прикасаться вручную. Эти параметры можно найти либо в меню « Редактор»> «Устранить проблемы с автоматической компоновкой», либо в соответствующей кнопке, которая появляется в правой нижней части области рисования Interface Builder.

gt8_19_autolayout_buttons

Каталог активов — еще одна новая функция Xcode 5 с двойным назначением:

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

С Каталогом активов вы не должны помнить правила, которые применяются к значкам приложений или именам запускаемых изображений. Активы с такими изображениями теперь могут иметь любое имя. Xcode принимает все и автоматически дает им правильное имя. Кроме того, Каталог активов состоит из лучшего места для объединения ваших изображений и доступа ко всем из них одновременно, когда это необходимо.

Каталог активов представлен в виде группы с синим значком папки среди списка ваших групп и файлов в Project Navigator.

gt8_20_asset_catalog

Примечание: Если вы создаете новый проект приложения iOS 7 на XCode, Каталог активов на своем месте. Однако, если вы переместите существующий проект на iOS 7, вам необходимо создать каталог активов самостоятельно. Это легко сделать. На вкладке « Общие » вашего проекта в разделе « Значки приложений » есть кнопка с заголовком « Использовать каталог активов» . Нажмите на нее и каталог формы.

Если щелкнуть значок каталога активов в Project Navigator, вы увидите серию пустых слотов, ожидающих принятия значков приложения. Функция каталога активов отображает слоты для всех целевых устройств, которые вы установили в своем проекте. Чтобы добавить значок приложения, вы можете просто перетащить его из каталога на вашем компьютере в соответствующий слот. То же правило применимо и к образам запуска, где есть пустые слоты для всех устройств и поддерживаемая ориентация, указанная в параметрах проекта. Еще раз напомню, что значки приложений и запуска могут иметь любое имя; XCode устанавливает соответствующие автоматически.

gt8_21_slots

Любые другие изображения, которые вы хотите добавить в приложение, можно легко поместить в каталог активов, просто перетащив их туда. Если в вашем проекте уже есть изображения, вот самый быстрый способ переместить их из Навигатора проектов в Каталог активов:

  1. Нажмите кнопку « Плюс», которая находится в левом нижнем углу левой панели Каталога активов.
  2. Нажмите на опцию Импортировать из проекта …
  3. Выберите нужные изображения в открывшемся окне (если они еще не выбраны), а затем нажмите кнопку « Импорт» .

После того, как изображения импортированы или добавлены непосредственно с вашего компьютера, вы заметите, что в Каталоге активов есть одна запись для каждого изображения. Если вы нажмете на любой из них, вы увидите, что с ним связаны два слота. Первый принимает изображение с нормальным разрешением (1x), а второй принимает изображение с разрешением экрана сетчатки (2x).


Отладка в Xcode 5 предлагает новый опыт для разработчиков, поскольку новые функции были добавлены в отладчик. Отслеживать значения переменных проще. Предварительный просмотр изображений, документов и других объектов теперь выполняется одним щелчком мыши, и при работе с точками останова обеспечивается большая гибкость. Отладчик на Xcode 5 основан на движке LLDB , который полностью заменил движок gdb . LLDB более мощный и лежит в основе всех новых функций отладки. Итак, давайте посмотрим на улучшения.

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

gt8_22_simple_datatip

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

gt8_23_image_datatip

Рядом с каждым объектом, который вы можете просмотреть, как на предыдущем изображении, отображаются глаз и информационные кнопки. Вы можете просмотреть (функциональность Quick Look) выбранный объект, нажав на кнопку глаза. Также вы можете увидеть подробную информацию, нажав на кнопку информации.

gt8_24_datatip_buttons

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

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

  • AppleScript
  • Захват кадров OpenGL ES
  • Команда отладчика
  • Сообщение журнала
  • Shell Shell
  • Звук

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

gt8_25_breakpoint

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


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

Именно здесь Debug Gauges дебютируют, выступая в качестве вспомогательных инструментов отладки, которые позволяют разработчикам отслеживать нежелательное использование системных ресурсов. Фактически, Debug Gauges состоят из облегченной версии некоторых инструментов Instruments , они встроены в Xcode (не нужно открывать в новом окне, как Instruments), и, прежде всего, они могут работать все время вместе с приложением во время отладки. Датчики позволяют наблюдать следующие ресурсы:

  • Процессор
  • Память
  • энергии
  • ICloud
  • OpenGL ES

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

gt8_26_debug_navigator

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

gt8_27_gauge

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


Тестирование является важной частью процесса разработки, и ему всегда следует уделять особое внимание. К счастью, с Xcode 5 тестирование приложений стало намного проще. Особенно с новым тестовым навигатором . Test Navigator можно найти на панели навигатора, и в нем перечислены все созданные вами тесты.

gt8_28_test_navigator

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

Новая платформа модульного тестирования была представлена ​​в Xcode 5, XCTest , который существует параллельно с предыдущей платформой, OCUnit . Тем не менее, первый будет доминировать в будущем. Поэтому рекомендуется использовать XCTest в ваших проектах. По умолчанию новые проекты используют эту платформу. Кроме того, в Xcode 5 проверенный код и сам тест могут быть размещены рядом с помощью помощника редактора. Таким образом, вы можете наблюдать как код, так и подробности теста во время его работы.

Боты — это совершенно новая функция в Xcode 5. Бот — это служба, которая неоднократно выполняет ряд задач, таких как создание, тестирование, анализ, архивирование и подписание приложения (задачи, которые традиционно выполнялись бы вручную разработчиками). Эти серии задач называются процессом интеграции . С ботами процесс интеграции происходит автоматически и может продолжаться столько времени, сколько необходимо.

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

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

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


До сих пор все новые функции Xcode 5 были представлены одна за другой, но это руководство не было бы полным, если бы не было упоминаний об улучшениях под поверхностью. Итак, давайте кратко рассмотрим основные изменения и дополнения, внесенные в компилятор .

Прежде всего, до версии 4.6 Xcode поддерживал два компилятора: Apple LLVM и LLVM-GCC 4.2 . В Xcode 5 последнее исчезло, и остается только Apple LLVM, наделенная новыми функциями, которые делают его еще более полезным.

Компилятор LLVM представляет логику модулей . Но прежде чем объяснить, что такое модуль, давайте вкратце рассмотрим проблему его контратаки. Когда компилятор анализирует файл, он не анализирует только код, существующий в этом файле, но он также делает это для всех файлов заголовков, которые импортируются (с помощью команды #import) в файл. Этот процесс работает рекурсивно, и все импортированные файлы, наконец, анализируются до последней строки кода. Это означает, что вместо анализа только строк кода, существующих в исходном файле, необходимо проанализировать еще тысячи строк из-за продолжающегося импорта. Это не новая проблема, и модули пришли, чтобы обеспечить решение. Модуль представляет собой простую оптимизированную базу данных, в которой хранится проанализированный код одного системного заголовочного файла (например, UIKit.h, Webkit.h и т. Д.). Компилятор создает набор таких модулей, и когда приходит время разбирать наш собственный файл, ему больше не нужно анализировать заголовочные файлы. Принимая во внимание, что одни и те же файлы импортируются снова и снова несколько раз, становится очевидным, что модули дают высокую производительность при компиляции. Более того, сам Xcode использует модули для достижения некоторых из своих расширенных функций, таких как синтаксис, выделение и автозаполнение.

Еще одна новая особенность компилятора — Auto-vectorizer , который был добавлен явно из соображений производительности. Его работа состоит в том, чтобы анализировать код и находить сегменты, в которых две или более операций (до 32) могут выполняться одновременно. Это потому, что новые современные процессоры предлагают отличные векторные функции для виртуальной многопоточности, и Autovectorizer использует это преимущество. В приложениях, где требуются интенсивные вычисления, эта функция может действительно повысить производительность в зависимости от типа вычислений.

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

gt8_29_comments

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


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