Найти тему

1. Настройка iOS приложения для разработки без Storyboard'ов

Цель данного блога - записывать и сохранять всё, что я узнаю нового. Если для кого-то это будет также полезно, как и для меня, я буду только рад. На момент написания данной статьи, я работаю разработчиком всего 2 месяца, поступает очень много информации, записывать её на бумаге крайне неудобно. Поэтому я решил фиксировать все новые знания здесь.

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

В нашей команде использование Storyboard'a не приветствуется, из-за конфликтов при слиянии веток. Поэтому начну я с настройки приложения для его разработки без использования Storyboard'ов, вёрстка будет кодом, либо xib'ами.


1. Первым делом создаю Single View App и удаляю все ненужные мне файлы: SceneDelegate.swift и Main.storyboard.
2. Затем необходимо в General настройках проекта очистить поле Main Interface:

Просто удаляем всё содержимое и нажимаем Enter
Просто удаляем всё содержимое и нажимаем Enter

3. Следующим шагом редактируем файл info.plist. Нам нужно из него удалить полностью весь блок Application Scene Manifest. Сделать это можно, кликнув по "минусу", как на изображении ниже.

Проект называется VK, так как я хочу создать собственный клиент для социальной сети ВКонтакте сугубо в учебных целях.
Проект называется VK, так как я хочу создать собственный клиент для социальной сети ВКонтакте сугубо в учебных целях.

4. И наконец, готовим файл AppDelegate.swift. В нём нам необходимо удалить всё, что связано со Scene, создать переменную window типа UIWindow и инициализировать её в методе didFinishLaunchingWithOptions, у window вызвать метод makeKeyAndVisible и указать для неё rootViewController. В итоге, наш файл должен выглядеть следующим образом:

-3

Для проверки, в методе viewDidLoad нашего контроллера сменим фоновый цвет на синий:

-4

Осталось запустить проект на симуляторе и проверить результат.

-5

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