SA0601 — Проверка ваших инструментов разработки
Содержание страницы
Вам не терпится погрузиться в эту книгу и создать свое первое приложение для iOS. Если вы никогда раньше не использовали Xcode, потратьте некоторое время на изучение этой главы. Вы хотите быть уверены, что ваши инструменты работают, и научиться эффективно их использовать.
Приступая к работе
Для разработки приложений для iOS вам понадобится компьютер Mac с установленным Xcode. Если вы хотите запускать свои приложения на устройстве iOS, вам понадобится идентификатор Apple ID. И если у вас есть учетная запись на GitHub или аналогичная, вы сможете подключиться к ней из Xcode.
macOS
Чтобы использовать SwiftUI canvas, вам нужен компьютер Mac под управлением Catalina (версии 10.15) или более поздней. Чтобы установить Xcode, ваша учетная запись пользователя должна иметь статус администратора.
Xcode
Для установки Xcode вам потребуется 29 ГБ свободного места на диске вашего Mac.
➤ Откройте приложение App Store, затем выполните поиск и ПОЛУЧИТЕ Xcode. Это большая загрузка, поэтому она занимает некоторое время. Уйма времени, чтобы приготовить себе что-нибудь перекусить, пока вы ждете. Или, чтобы оставаться в курсе событий, просмотрите главу 12 “Экосистема разработки приложений Apple”.
➤ После завершения установки ОТКРОЙТЕ его на странице App Store.:

Примечание: Вероятно, у вас есть свой любимый способ открытия приложения для Mac, и он также будет работать с Xcode. Дважды щелкните по нему в Приложениях. Или ищите его в Spotlight. Или дважды щелкните файл .xcodeproj проекта.
При первом открытии Xcode после установки вы увидите следующее окно: Установить дополнительные необходимые компоненты?:

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

Если вы не хотите видеть это окно каждый раз, когда открываете Xcode, снимите флажок “Показывать это окно при запуске Xcode”. Вы можете вручную открыть это окно из окна меню Xcode ▸ Добро пожаловать в Xcode или нажмите Shift-Command-1. И есть пункт меню Xcode для выполнения каждого из действий, перечисленных в этом окне.
Создание нового проекта Xcode
Вы создадите новый проект Xcode только для этой главы. В следующей главе представлен начальный проект, на основе которого вы будете развивать оставшуюся часть раздела 1.
➤ Нажмите Создать новый проект Xcode. Или, если вы хотите сделать это без окна приветствия, нажмите Shift-Command-N или выберите Файл ▸ Новый ▸ Проект … из меню.
Появляется большой набор вариантов:

➤ Выберите iOS ▸ Приложение и нажмите Далее. Теперь вы можете назвать свой проект:

- В качестве названия продукта введите FirstApp.
- Пропустить команду на данный момент.
- Для идентификатора организации введите обратный DNS вашего доменного имени. Если у вас нет доменного имени, просто введите что-то, что следует этому шаблону, например org.audrey. Выделенный серым цветом идентификатор пакета изменяется на ваш-org-id.Первое приложение. Когда вы отправляете свое приложение в App Store, этот идентификатор пакета однозначно идентифицирует ваше приложение.
- Для интерфейса выберите SwiftUI.
- Для определения жизненного цикла выберите приложение SwiftUI.
- В качестве языка выберите Swift.
- Снимите флажки.
➤ Нажмите кнопку Далее. Здесь вы решаете, где сохранить свой новый проект.

Примечание: Если вы забыли, где сохранили проект, вы можете найти его, выбрав Файл ▸ Показать в Finder в меню Xcode.
➤ Если вы сохраняете этот проект в папку, которая в данный момент не находится под управлением версиями, установите флажок «Управление версиями«, чтобы создать локальный репозиторий Git. Позже в этой главе вы узнаете, как подключить это к удаленному репозиторию.
➤ Нажмите кнопку Создать. Появится ваш новый проект, отображающий contentView.swift на панели редактора.

Похоже, там много чего происходит! Не волнуйтесь, большинство разработчиков iOS знают достаточно о Xcode, чтобы выполнять свою работу, но почти никто не знает, как использовать все это. Плюс Apple меняется и дополняет его каждый год. Лучший (и единственный) способ изучить это — начать использовать его.
Приготовиться, установить, прыгать!
Краткий обзор Xcode
Большую часть времени вы будете работать с файлом .swift:

Окно Xcode состоит из трех основных панелей: Навигатор, Редактор и Инспекторы. Когда вы просматриваете файл представления SwiftUI в редакторе, вы можете просматривать холст предварительного просмотра параллельно с кодом. Когда приложение запущено, под редактором открывается область отладки.
Вы можете скрыть или отобразить навигатор с помощью кнопки панели инструментов прямо над ним, и то же самое для инспекторов. В области отладки есть кнопка скрыть на собственной панели инструментов. Вы также можете скрыть любую из этих трех панелей, перетащив ее границу к краю окна Xcode.
И у всех трех есть сочетания клавиш:
- Скрыть/показать навигатор: Команда-0
- Скрыть/показать инспекторов: Опция-Команда-0
- Скрыть / показать область отладки: Shift-Command-Y
Примечание: В папке assets для этой главы есть удобная таблица сочетаний клавиш Xcode. Не полный список, только те, которые используют многие люди.
Навигатор
Навигатор имеет девять вкладок. Когда панель навигатора скрыта, вы можете открыть ее непосредственно на одной из ее вкладок, нажав Command-1 — Command-9:
- Проект: добавление, удаление или группирование файлов. Откройте файл в редакторе.
- Управление версиями: просмотр рабочих копий репозитория Git, ветвей, коммитов, тегов, удаленных файлов и сохраненных изменений.
- Символ: Иерархическое или плоское представление именованных объектов и методов.
- Найти: Инструмент поиска.
- Проблема: ошибки и предупреждения во время сборки и выполнения.
- Тестирование: Создание, управление и запуск модульных тестов и тестов пользовательского интерфейса.
- Отладка: информация об использовании процессора, памяти, диска и сети во время работы вашего приложения.
- Точка останова: добавление, удаление, редактирование и управление точками останова.
- Отчет: Просмотр или экспорт отчетов и журналов, созданных при создании и запуске проекта.
Поле фильтра внизу отличается для каждой вкладки. Например, фильтр проекта позволяет отображать только файлы, над которыми вы недавно работали. Это очень удобно для проектов с большим количеством файлов в глубоко вложенной иерархии.
Редактор
Когда вы работаете с файлом кода, редактор показывает код и миникарту. Миникарта полезна для файлов с длинным кодом со многими свойствами и методами. Вы можете навести курсор на миникарту, чтобы найти конкретное свойство, а затем щелкнуть, чтобы перейти непосредственно к нему. Вам это не нужно для приложений в этой книге, поэтому вы можете скрыть его с помощью кнопки в правом верхнем углу редактора.
Когда вы работаете с файлом SwiftUI, Option-Command-Return показывает или скрывает холст предварительного просмотра.
Редактор имеет функции браузера, такие как вкладка и переход назад / вперед. Сочетания клавиш для вкладок такие же, как и для веб-браузеров: Command-T для открытия новой вкладки, Shift-Command- [ или ] для перехода на предыдущую или следующую вкладку, Command-W для закрытия вкладки и щелчок по кнопке закрытия вкладки, чтобы закрыть все остальные вкладки. Кнопка назад / вперед показывает список предыдущих / следующих файлов, но сочетания клавиш — это Управление-Команда-стрелка вправо или стрелка влево.
Инспекторы
Панель Инспекторов имеет три или четыре вкладки, в зависимости от того, что выбрано в навигаторе проекта. Когда эта панель скрыта, вы можете открыть ее непосредственно на одной из ее вкладок, нажав Option-Command-1 на Option-Command-4:
- Файл: Имя, Полный путь, Целевое членство.
- История: журнал управления версиями.
- Быстрая справка: Краткая форма документации разработчика при выборе символа в редакторе.
- Атрибуты: Свойства символа, который вы выбираете в редакторе.
Четвертая вкладка появляется при выборе файла в навигаторе проекта. Если вы выберете папку, вы получите только первые три вкладки.
Этот краткий обзор лишь поверхностно показывает, что вы можете сделать в Xcode. Затем вы будете использовать некоторые из его инструментов во время изучения вашего нового проекта.
Настройки навигации
В этой книге вы будете использовать сочетания клавиш для изучения и структурирования своего кода. В отличие от фиксированных сочетаний клавиш для открытия вкладок навигатора или инспекторов, вы можете задать настройки для того, какой ярлык что делает. Чтобы избежать путаницы при работе с этой книгой, вы установите свои настройки в соответствии с инструкциями, которые увидите.
➤ Нажмите Command-, чтобы открыть Настройки. На вкладке «Навигация» установите:
- Команда -щелкните по коду, чтобы выбрать структуру кода
- Опция -нажмите на код, чтобы отобразить быструю справку
- Стиль навигации на ваш выбор: Открыть во вкладках или Открыть на месте.

Просмотр содержимого.swift
Сердце вашего нового проекта находится в contentView.swift, где открылся ваш новый проект. Здесь вы разместите начальный вид вашего приложения.
➤ Если contentView.swift отсутствует в редакторе, выберите его в навигаторе проекта.
Первые несколько строк — это комментарии, которые идентифицируют файл и вас, создателя.
импорт
Первая строка кода — это import
оператор:
import SwiftUI
Это работает так же, как и в большинстве языков программирования. Это позволяет вашему коду получить доступ ко всему во встроенном модуле SwiftUI. Посмотрите, что произойдет, если он отсутствует.
➤ Щелкните по import
инструкции, затем нажмите Command-/.

Вы закомментировали import
инструкцию, поэтому появляются ошибки компилятора с жалобами на View
и PreviewProvider
.
➤ Нажмите Command-Z для отмены.
Ниже import
заявления приведены два struct
определения. Структура — это именованный тип данных, который инкапсулирует свойства и методы.
структура contentView
Имя первой структуры совпадает с именем файла. Ничего плохого не произойдет, если они будут разными, но большинство разработчиков следуют и ожидают этого соглашения.
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.padding()
}
}
Глядя на ContentView: View
это, вы можете подумать, что ContentView
наследуется от View
, но структуры Swift не имеют наследования. View
является протоколом и ContentView
соответствует этому протоколу.
Обязательным компонентом View
протокола является body
вычисляемое свойство, которое возвращает a View
. В этом случае он возвращает Text
представление, в котором отображается обычный текст “Привет, мир!”.
Совет Swift: если есть только один оператор code, вам не нужно явно использовать
return
ключевое слово.
Text
Представление имеет padding
модификатор — метод экземпляра View
— который добавляет пространство вокруг текста. Вы можете увидеть это на этом скриншоте:

Это также показывает инспектор быстрой справки для Text
. Если вы не хотите использовать экранную область для этого инспектора, щелкните правой кнопкой мыши Text
в редакторе кода, чтобы увидеть ту же информацию во всплывающем окне. Нажатие кнопки Открыть в документации разработчика открывает окно с дополнительной информацией.
➤ Выберите Text
представление либо в редакторе кода, либо на холсте, затем выберите инспектор атрибутов. Нажмите в поле Добавить модификатор и подождите некоторое время, пока не появится меню модификаторов:

Прокрутка этого списка продолжается, продолжается и продолжается.
Этот инспектор полезен, когда вы хотите добавить несколько модификаторов к a View
. Если вам просто нужно добавить один модификатор, щелкните элемент управления-Параметр-вид, чтобы открыть всплывающее окно инспектора атрибутов.
структура ContentView_Previews
Ниже ContentView
ContentView_Previews
приведена структура.
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
ContentView_Previews
Структура — это то, что отображается на холсте справа от редактора кода. Опять же, посмотрите, что произойдет, если он отсутствует.
➤ Выберите пять строк ContentView_Previews
и нажмите Command-/.

Снаружи ContentView_Previews
на холсте ничего нет.
➤ Нажмите Command-Z, чтобы отменить или, если пять строк все еще выбраны, нажмите Command-/, чтобы раскомментировать их.
Для большинства приложений contentView.swift — это только отправная точка. Часто ContentView
просто определяет организацию приложения, организуя несколько вложенных представлений. И обычно вы определяете эти подвиды в отдельных файлах.
Создание нового файла представления SwiftUI
Все , что вы видите в приложении SwiftUI , — это View
. Apple рекомендует вам создавать столько вложенных представлений, сколько вам нужно, чтобы избежать избыточности («СУХО» или «Не повторяйтесь») и организовать свой код так, чтобы им можно было управлять. Компилятор заботится о создании эффективного машинного кода, поэтому производительность вашего приложения не пострадает.
➤ В навигаторе проекта выберите contentView.swift и введите Command-N. Кроме того, щелкните правой кнопкой мыши contentView.swift, затем выберите в меню «Новый файл…«.

Совет по Xcode: новый файл появится в навигаторе проекта под текущим выбранным файлом. Если это не то место, где вы хотите, перетащите его туда, где вы хотите, чтобы он отображался в навигаторе проекта.
В окне нового файла отображается множество опций! Тот, который вам нужен, — это iOS ▸ Пользовательский интерфейс ▸ Просмотр SwiftUI. В главе 5, “Организация данных вашего приложения”, вы получите возможность создать файл Swift.

Присвоение имени новому представлению SwiftUI
➤ Выберите SwiftUI View, затем нажмите Далее. В следующем окне вы можете указать имя файла. По умолчанию имя нового представления будет совпадать с именем файла. Вы будете определять ByeView
в этом файле, поэтому замените SwiftUIView на ByeView .

Совет по Swift: соглашение Swift заключается в том, чтобы называть типы (например
struct
) с помощью UpperCamelCase, а свойства и методы — с помощью lowerCamelCase.
В этом окне также можно указать, где (в проекте) создать новый файл. Расположение по умолчанию обычно правильное: в этом проекте, в этой группе (папке) и в этом целевом объекте.
➤ Нажмите кнопку Создать, чтобы завершить создание нового файла.
Код шаблона для представления SwiftUI выглядит почти так же, как код ContentView
нового проекта.
import SwiftUI
struct ByeView: View {
var body: some View {
Text("Hello, world!")
}
}
struct ByeView_Previews: PreviewProvider {
static var previews: some View {
ByeView()
}
}
НапримерContentView
, тело представления содержитText("Hello, world!")
, но нет заполнения.
Использование вашего нового представления SwiftUI
Затем отредактируйте Text
строку представления вашего нового представления, чтобы она выглядела следующим образом:
Text("Bye bye, World!")
Теперь в contentView.swift в редакторе кода удалите Text
представление, затем введите bye . Xcode предлагает некоторые автозаполнения:

Обратите внимание, что вам не нужно вводить правильную заглавную ByeView
букву .
Совет по Xcode: описательные имена для ваших типов, свойств и методов — хорошая практика программирования, а автозаполнение — один из способов, которым Xcode помогает вам делать правильные вещи. Вы также можете включить проверку орфографии из меню Xcode: Edit ▸ Format ▸ Орфография и грамматика ▸ Проверяйте орфографию во время ввода.
Выберите ByeView из списка, затем добавьте круглые скобки, чтобы строка выглядела следующим образом:
ByeView()
Вы вызываете инициализатор ByeView
для создания экземпляра представления.
➤ Нажмите кнопку Возобновить или нажмите Option-Command-P, чтобы обновить предварительный просмотр:

Вы создадите много новых файлов просмотра SwiftUI и файлов Swift для разработки приложений, описанных в этой книге.
Что еще есть в вашем проекте?
Навигатор проекта содержит список нескольких файлов и папок.
- FirstAppApp.swift: этот файл содержит код для точки входа вашего приложения. Это то, что на самом деле запускает ваше приложение.
@main
struct FirstAppApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
@main
Атрибут помечается FirstAppApp
как точка входа приложения. Возможно, вы привыкли писать main()
метод для фактического запуска приложения. App
Протокол позаботится об этом.
App
Протокол требует только вычисляемого свойства с именем body
, которое возвращает a Scene
. А a Scene
— это контейнер для корневого представления иерархии представлений.
Для приложения iOS настройкой по умолчанию является WindowGroup
сцена, содержащая ContentView()
в качестве корневого представления. Распространенной настройкой является установка различных корневых представлений в зависимости от того, вошел ли пользователь в систему.
В приложении для iOS иерархия представлений заполняет весь экран. В приложении macOS или WindowGroup
iPadOS можно управлять несколькими окнами.
- Assets.xcassets: здесь хранятся изображения и цвета вашего приложения. AppIcon — это специальный набор изображений для всех различных размеров и разрешений значка вашего приложения.

- Info.plist: Этот список свойств конфигурации содержит информацию, необходимую для запуска вашего приложения. Многие имена являются переменными среды, производными от параметров, которые вы задали при создании проекта. Здесь вы можете найти такие вещи, как название приложения и номер версии.

- Предварительный просмотр содержимого: Если во время разработки приложения вашим представлениям требуется дополнительный код и образцы данных или ресурсов, сохраните их здесь. Они не будут включены в окончательную сборку дистрибутива вашего приложения.
- Продукты: Здесь Xcode хранит ваше приложение после сборки и запуска проекта. Проект может содержать другие продукты, например приложение для просмотра или фреймворк.
В этом списке последние два элемента являются группами. Группы в навигаторе проектов выглядят как папки, но они не обязательно совпадают с папками в Finder. В частности, в вашем проекте в Finder нет папки Products.
➤ В навигаторе проектов выберите Продукты ▸ FirstApp.app, затем покажите инспектор файлов:

FirstApp.app нигде не находится рядом с файлами вашего проекта! Он находится в папке скрытой библиотеки вашего домашнего каталога.
Примечание: Не переименовывайте и не удаляйте ни один из этих файлов или групп. Xcode сохраняет их имена путей в настройках сборки проекта и будет отмечать ошибки, если не сможет их найти.
Вы узнаете, как использовать эти файлы, в остальной части этой книги.
Настройки Xcode
Xcode имеет огромное количество настроек, которые вы можете настроить, чтобы сделать ваше время в Xcode более продуктивным.
Темы
Вы будете тратить много времени на работу в редакторе кода, поэтому вы хотите, чтобы он выглядел хорошо, а также помогал вам различать различные компоненты вашего кода. Xcode предоставляет несколько предварительно настроенных шрифтов и цветовых тем, которые вы можете выбрать или изменить.
➤ Нажмите Command-, чтобы открыть Настройки, затем выберите вкладку Темы:

Продолжайте и исследуйте их. Вы можете настроить их или создать свои собственные. Я подожду здесь. ;]
Совпадающие разделители
Код SwiftUI использует много вложенных замыканий. Действительно легко перепутать фигурные скобки и круглые скобки. Xcode помогает вам находить любые несоответствия и пытается предотвратить возникновение этих ошибок.
➤ В настройках выберите Редактирование текста ▸ Редактирование:

Большинство элементов завершения кода очень полезны. Хотя вы можете копировать и вставлять код из этой книги, вы должны стараться вводить код как можно чаще, чтобы узнать, как работают эти вспомогательные средства.
Вот большой намек на то, что что-то не так или вы печатаете не в том месте: вы ожидаете, что Xcode предложит дополнения во время ввода, но ничего (полезного) не появляется. Когда это происходит, это обычно потому, что вы находитесь за пределами закрытия, в котором вам нужно быть.
➤ Теперь выберите вкладку Редактирование текста ▸ Отображение. Проверьте код складывания ленты и, если хотите их видеть, номера строк:

Так что же такое кодовая складная лента? Между номерами строк и кодом вы видите более темные серые вертикальные полосы. Наведите курсор на один, и он выделит начальную и конечную фигурные скобки этого замыкания:

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

Это может быть невероятно полезно, когда вы пытаетесь найти свой путь вокруг какого-то сложного глубоко вложенного кода.
➤ Щелкните ленту, чтобы развернуть код.
Добавление учетных записей
Вы можете получить доступ к некоторым функциям Xcode, добавив регистрационные данные для своих учетных записей Apple ID и source control.
➤ В настройках выберите Учетные записи:

➤ Добавьте свой Apple ID. Если у вас есть отдельная платная учетная запись разработчика Apple, добавьте и ее.
Чтобы запустить ваше приложение на устройстве, вам нужно будет выбрать команду. Если вы не являетесь участником программы Apple для разработчиков, вы можете использовать свою учетную запись Apple ID для установки на свое устройство до трех приложений из Xcode. Приложение работает в течение семи дней после его установки.
Чтобы добавить в приложение такие возможности, как push-уведомления или Apple Pay, вам необходимо настроить для Team учетную запись программы разработчика.
Подробнее о программе для разработчиков читайте в главе 12 “Экосистема разработки приложений Apple”.
- Если у вас есть учетная запись в Bitbucket, GitHub или GitLab, добавьте ее сюда, если вы хотите перенести локальный репозиторий git вашего проекта в удаленный репозиторий.

Для учетных записей Bitbucket, GitHub и GitLab требуется персональный токен доступа. Нажмите на ссылку, чтобы открыть страницу создания токена сайта.
➤ Чтобы настроить удаленный репозиторий, откройте навигатор управления версиями (Command-2), затем нажмите кнопку настройки и выберите Новый “FirstApp” Remote …:

➤ Выберите нужные параметры, затем нажмите Создать:

И вот оно здесь:

Запуск вашего проекта
До сих пор вы полагались на предварительный просмотр, чтобы увидеть, как выглядит ваше приложение. В следующей главе вы будете использовать Live Preview для взаимодействия с вашим приложением. Но некоторые функции не работают в режиме Live Preview, поэтому вам нужно создать и запустить приложение на симуляторе. И некоторые вещи будут работать только на устройстве iOS. Кроме того, приятно иметь на своем iPhone что-то, что ты создал сам!
Панель инструментов Xcode
Во-первых, краткий обзор панели инструментов:

Совет по Xcode: Нажмите Option-Command-T, чтобы отобразить или скрыть панель инструментов. Если это сочетание клавиш конфликтует с другим приложением, выберите команду в меню просмотра Xcode.
До сих пор вы использовали только кнопки на обоих концах панели инструментов, чтобы показать или скрыть панели навигатора или инспектора.
Работа слева направо после кнопки панели навигации:
- Кнопка запуска: создайте и запустите (Command-R) проект.
- Кнопка остановки: Остановить (Command-.) запущенный проект.
- Меню схемы: метка этой кнопки — это название приложения. Выбирайте, редактируйте схемы или управляйте ими. У каждого изделия есть своя схема. У FirstApp есть только один продукт, поэтому у него есть только одна схема.
- Запустить меню назначения: в этом меню по умолчанию используется последний пункт, в настоящее время iPod touch. Выберите подключенное устройство или имитируемое устройство для запуска проекта.
- Вид деятельности: широкое серое поле, в котором отображаются название проекта, сообщения о состоянии и индикаторы предупреждений или ошибок.
- Кнопка библиотеки: Метка — это знак +. Открывает библиотеку представлений, модификаторов, фрагментов кода, медиафайлов и цветов, хранящихся в ресурсах. Опция -нажмите эту кнопку, чтобы сохранить библиотеку открытой.
- Кнопка проверки кода: Если у этого проекта есть локальный репозиторий git, эта кнопка показывает
diff
текущую версию текущего файла и самую последнюю зафиксированную версию. Вы можете выбрать более ранние зафиксированные версии из меню.
Теперь, когда вы знаете, где находятся элементы управления, пришло время использовать некоторые из них.
Выбор пункта назначения запуска
Apple продает множество различных моделей iPhone, а также iPad и даже iPod Touch. Все они разного размера, а на некоторых есть насечка. Как узнать, хорошо ли выглядит ваше приложение на любом размере экрана?
Вам не нужна полная коллекция устройств iOS. В Xcode есть несколько инструментов для разработчиков, и один из них — симулятор. Меню назначения запуска позволяет вам выбирать из списка моделируемых устройств.
➤ Нажмите кнопку выполнить пункт назначения и выберите iPhone 12 Pro.

➤ Обновить предварительный просмотр ContentView
илиByeView
:

Предварительный просмотр по умолчанию использует устройство назначения запуска. Вы можете создать более одного предварительного просмотра и настроить каждое из них на другое устройство с previewDevice
помощью модификатора.
Например:
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
Group {
ContentView()
ContentView()
.previewDevice("iPhone SE (2nd generation)")
}
}
}

Предварительный просмотр обычно выглядит так же, как ваше приложение, запущенное на моделируемом или реальном устройстве, но не всегда. Если вы чувствуете, что предварительный просмотр не соответствует тому, что содержит ваш код, попробуйте запустить его на симуляторе.
Примечание: Чтобы увеличить или уменьшить масштаб холста предварительного просмотра, используйте кнопки + или — на панели инструментов холста.
Сборка и запуск
➤ Нажмите кнопку выполнить или нажмите Command-R.
При первом запуске проекта на моделируемом устройстве он запускается из состояния “выключено”, поэтому вы увидите индикатор загрузки. Пока вы не выйдете из приложения симулятора, это конкретное моделируемое устройство теперь “неактивно”, поэтому вы не получите задержки запуска, даже если вы запустите на нем другой проект.
После запуска моделируемого устройства появится экран запуска приложения. Для FirstApp это просто пустой экран. Вы узнаете, как настроить свой собственный экран запуска в главе 16 “Добавление ресурсов в ваше приложение”.
И вот, ваше приложение запущено!

В этом приложении мало что происходит, но панель инструментов отладки появляется под окном редактора. На этом снимке экрана я показал область отладки, выбрал вкладку Debug на панели навигатора, затем выбрал элемент CPU.
Не останавливаясь
Вот трюк, который немного облегчит вашу жизнь в Xcode.
➤ Не нажимайте кнопку «Стоп». Да, он включен. Но поверь мне, тебе это понравится. :]
➤ В ByeView.swift замените “До свидания” на “Еще раз здравствуйте”.:
Text("Hello again, World!")
➤ Нажмите кнопку Выполнить или нажмите Command-R.
Выскакивает это сообщение:

➤ Не нажимайте кнопку Остановить, хотя это сработает: текущий запущенный процесс остановится, и будет запущен новый процесс. И это будет происходить каждый раз, когда вы забудете остановить приложение. Это занимает всего мгновение, но это немного напрягает. Каждый раз. И от этого легко избавиться.
➤ Установите флажок Больше не показывать это сообщение, затем нажмите кнопку Остановить.
Приложение загружается вместе с вашими новыми изменениями. Но это не то, что я хочу вам показать.
➤ Еще раз: Нажмите кнопку «Выполнить» или нажмите Command-R.
Никаких раздражающих сообщений, никаких “doh!” момент, никогда больше! Всегда пожалуйста. ;]
Запуск ваших приложений на устройстве iOS
Иногда ваше приложение выглядит или ведет себя не совсем правильно на моделируемом устройстве. Последнее слово остается за запуском на реальном устройстве: оно может выглядеть так, как вы ожидаете, или оно может согласиться с предварительным просмотром и симулятором, что вам предстоит еще поработать.
Кроме того, есть такие функции, как движение и камера, которые вы не можете протестировать в симуляторе. Для этого вы должны установить свое приложение на реальное устройство.
Apple делает все возможное, чтобы защитить своих пользователей от вредоносных приложений. Частью этой защиты является обеспечение того, чтобы Apple знала, кто несет ответственность за каждое приложение на вашем устройстве. Прежде чем вы сможете установить приложение из Xcode на свое устройство, вам необходимо выбрать команду (ваш Apple ID), чтобы получить сертификат подписи от Apple.
➤ На странице проекта выберите цель. На вкладке Подписание и возможности установите флажок Автоматически управлять подписанием, затем выберите свою учетную запись в меню Команды:

После выполнения некоторых действий вы увидите профиль подготовки и сертификат подписи. Xcode создал их и сохранил сертификат в связке ключей вашего Mac.
Примечание: Идентификатор пакета вашего проекта использует название вашей организации, поскольку вы создали его как новый проект. Другие приложения в этой книге имеют начальные проекты с com.raywenderlich в качестве организации. Если вы хотите запускать эти приложения на устройстве iOS, вам необходимо изменить название организации в идентификаторе пакета на что-то, что уникально для вас. Это потому, что один из авторов уже подписал приложение с оригинальным идентификатором пакета, а вы не являетесь членом нашей команды.
Чтобы запускать приложения этой книги на вашем устройстве iOS, на нем должна быть установлена iOS 14. Если это не самое последнее обновление, выберите проект, затем установите его цель развертывания iOS в соответствии с вашим устройством.

➤ Подключите устройство к компьютеру Mac с помощью кабеля. Используйте кабель Apple, поскольку кабели других марок могут не подойти для этой цели.
Примечание: Если ваша учетная запись является платной учетной записью разработчика Apple, вам не нужно будет выполнять следующие несколько шагов. Запуск вашего приложения на вашем устройстве будет просто работать.
При первом подключении устройства к компьютеру Mac устройство спросит, доверяете ли вы этому компьютеру?

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

➤ Разблокируйте свое устройство, затем создайте и запустите свой проект. Держите экран вашего устройства активным, пока приложение не запустится на вашем устройстве.
Это первый раз, когда вы запускаете приложение на устройстве, поэтому Apple заставляет вас выполнять несколько дополнительных шагов, в основном пытаясь убедиться, что на вашем устройстве не установлено ничего неприятного.
➤ Во-первых, вам нужно разрешить codesign доступ к сертификату, который Xcode хранит в вашей связке ключей:

➤ Введите свой пароль, затем нажмите Всегда разрешать.
Затем на экране вашего устройства появится значок приложения FirstApp, но на вашем компьютере Mac появится это сообщение об ошибке:

Из трех возможных причин, это последняя, которая задерживает ситуацию: его профилю явно не доверяет пользователь. Apple действительно не хочет, чтобы кто-то устанавливал потенциально вредоносные приложения на ваше устройство. Ты должен сказать, что все в порядке. Проблема в том, что здесь не так много, чтобы сказать вам, что делать.
➤ Значок приложения находится на экране вашего устройства, так почему бы не нажать на него, чтобы посмотреть, что произойдет?

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

➤ Коснитесь Общие. Прокрутите вниз до «Управление устройствами» — вы можете просто увидеть начало имени вашего сертификата. Коснитесь этого элемента.
➤ Коснитесь Apple Development …, затем коснитесь Trust “Разработка Apple … и, наконец, коснитесь Trust.
Вам не нужно будет делать это снова, если вы не удалите все свои приложения с этого устройства.
➤ Теперь закройте Настройки и коснитесь значка первого приложения:

Не впечатляет? Да, ну, это мысль, которая имеет значение. ;]
Важно то, что теперь у вас все готово для запуска собственных проектов на этом устройстве. Если вы действительно хотите запустить что-то прямо сейчас, вам не придется останавливаться и заниматься каким-либо трастовым бизнесом.
В следующих главах вы создадите гораздо более интересное приложение.
Ключевые моменты
- Окно Xcode имеет панели навигатора, редактора и инспекторов, панель инструментов и область отладки, а также огромное количество настроек.
- Вы можете установить некоторые сочетания клавиш навигации в настройках, чтобы они соответствовали инструкциям в этой книге.
- Проект шаблона определяет
App
объект, который запускается сContentView
помощью , который отображает “Привет, мир!” вText
представлении. - Вы можете просмотреть документацию быстрой справки в инспекторе или с помощью сочетания клавиш. Или вы можете открыть окно Документации разработчика.
- Когда вы создаете новый файл представления SwiftUI, дайте ему то же имя,
View
что и файл, который вы создадите в нем. - Автоматическое завершение Xcode, сопоставление разделителей, сворачивание кода и проверка орфографии помогут вам избежать ошибок.
- Вы можете выбрать одну из шрифтов и цветовых тем Xcode, изменить ее или создать свою собственную.
- Вы можете запустить свое приложение на моделируемом устройстве или создать предварительные просмотры конкретных устройств.
- Вы должны добавить учетную запись Apple ID в настройках Xcode, чтобы запустить свое приложение на устройстве iOS.
- При первом запуске проекта на устройстве iOS Apple требует, чтобы вы выполнили несколько шагов “Доверия”.