Улучшения Функции Автозавершения в Xcode 14

11 января 2023

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


Xcode — это интегрированная среда разработки Apple (IDE), инструмент, используемый для разработки приложений бренда. Xcode 14 был анонсирован на Всемирной Конференции Разработчиков 2022 в июне и выпущен в сентябре. С тех пор у меня было некоторое время, чтобы изучить его, и я хотел бы поделиться своим мнением о функции автозавершения, которая теперь значительно улучшена.

 

Новинки функции автозавершения


Инициализатор в Struct

Давайте рассмотрим следующий сценарий: вы реализуете структуру для своего приложения и объявляете ее элементы. Однако затем вы хотите изменить некоторые фрагменты. В прошлом Xcode не мог подстраиваться под изменения без вашего вмешательства. Например, если вы хотели, добавить некоторые логические тесты или объединить значения, вам нужно было создать init, заполнить его, а затем изменить вручную. Теперь это не так: 14-я версия IDE заполняет init за вас.

Вот пример простой структуры Contact:


 

Cоответствие Codable

Раньше, если разработчики хотели добавить coding keys или init из метода декодирования и кодирования, нам приходилось самим добавлять шаблонный код. Теперь это делает Xcode — вы можете начать вводить coding keys, нажать клавишу ввода, и код заполнится. Это решение аналогично работает с инициализацией из декодера. Когда у вас есть инициализация по элементам или вы используете метод кодирования, автозаполнение предлагает подходящий шаблонный код.

Взгляните на протокол Codable на практике:



Параметры со значением по умолчанию

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

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

Давайте посмотрим на следующие различия в параметрах со значением по умолчанию:


 

Предложения Map

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

Просто для примера. Допустим, мы хотим получить все имена, создавая тип firstNames для контактов. Xcode предложит map {$0.firstName}. Вы можете наблюдать, что Xcode видит ключевое слово names, а затем смотрит, есть ли у нас массив с элементом с единственным именем в нашем случае. Контакт состоит из firstName, lastName и fullName, поэтому он не знает, какой из них использовать. Он принимает первый элемент, который соответствует ключевому слову.

Вот как работают эти предложения:

 

List и forEach

По моему опыту, следующая ситуация может быть довольно распространенной: у вас есть массив сущностей и вам нужно показать некоторые данные в строках. Скорее всего, вы бы использовали List или ForEach для его представления. В средах SwiftUI вам пришлось бы написать несколько букв функции и имя переменной. С последним обновлением Xcode это больше не так: IDE Apple теперь автозаполняет код за вас.

Взгляните, как это было автоматизировано:

 

Предложение Frame

При создании вью в SwiftUI вы часто настраиваете их размер с помощью функции, написанной рядом с переменной. Чтобы изменить размер переменной, вам нужно 
было ввести всю функцию, например, .frame(width: 1), чтобы увидеть результат. В Xcode вы можете просто ввести .width или любые другие параметры функций frame, чтобы увидеть результат.

Вот предложения frame в действии:

 

Автовыравнивание

Дни, когда для выравнивания кода нужно было нажимать Ctrl и L, ушли в прошлое! Наконец-то, обернутые блоки кода выравниваются автоматически.

Ниже вы можете увидеть пример этой новой функции:


Label без аргумента

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

Посмотрите, как работает присваивание меток после обновления:


Xcode 14 как эффективный ускоритель для написания кода

Xcode постоянно корректировался и улучшался с момента его запуска в 2003 году. Теперь разработчики могут воспользоваться улучшенными инициализаторами структур и автовыравниванием, которые сводят к минимуму ручную работу. Другие обновленные функции, такие как параметры со значениями по умолчанию или предложения frame, максимально повышают производительность IDE. В Xcode 14 завершения, включая соответствие codable и предложения map, срабатывают быстрее и теперь более предсказуемы, тем самым повышают надежность инструмента. Все эти функции автозавершения помогают разработчикам писать код более эффективно и еще больше преуспеть в работе с программным обеспечением для платформ Apple.
 

Содержание