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

Пользовательские шрифты

Когда вы пишете label.font = UIFont(name: "foo", size: 12)! каждый раз, когда хотите использовать шрифт, вы сталкиваетесь с опечатками и тратите больше времени на редактирование кода, если шрифт изменился. Вместо этого вы можете использовать функцию расширения.

Расширение:

Пример использования: label.font = UIFont.foo(size: 12)

Цвета

Установка значений цвета RGB каждый раз, когда вам нужно его использовать, приведет к некоторым трудностям, аналогичным тем, которые возникают при использовании пользовательских шрифтов. Опять же, мы можем использовать расширения!

Расширение:

Пример использования: label.color = UIColor.foo и готово!

Имена центра уведомлений

Чтобы избежать ошибок опечатки при использовании имени уведомления, вы можете создать расширение, которое будет содержать все имена в вашем проекте:

Расширение:

Пример использования: NotificationCenter.default.post(name: .foo, object: nil)

Просмотр имен контроллеров

Когда вы перемещаетесь между представлениями программно, обычно вам понадобится имя целевого контроллера представления. Снова! чтобы избежать опечаток и избежать дублирования кода, мы используем расширения.

Расширение:

Пример использования: self.window?rootViewController = UIStoryboard.main.foo

Струны

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

Расширение:

Пример использования:

let urlString = "https://medium.com"
urlString.openURL()

Оповещения

Оповещения можно использовать по-разному и для разных нужд. Следующий класс поможет вам создавать и представлять предупреждения с помощью двух строк кода.

Класс:

Пример использования:

let alert = Alert.createWithAction(title: "title", msg: "message", actionTitle: "confirm") { print("confirm button tapped") }
self.present(alert, animated: true, completion: nil)

Сетевой уровень

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

После установки необходимых библиотек мы создадим общий класс, который будет обрабатывать необходимые типы запросов API (для eaxmple: GET, POST, PUT и DELETE).

Класс:

Пример использования: каждый раз, когда вам нужно использовать API, вам просто нужно вызвать один из предыдущих статических методов, передав необходимые аргументы: Service.getService(url: "https://baseURL.com/foo") { (response) in print(response) }

Надеюсь, вы уже знаете, как использовать расширения и пользовательские классы. Отсюда вы можете использовать предыдущие блоки кода и изменять их или создавать новые в соответствии со своими потребностями 😉.

Надеюсь, это поможет!