Проработав разработчиком 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) }
Надеюсь, вы уже знаете, как использовать расширения и пользовательские классы. Отсюда вы можете использовать предыдущие блоки кода и изменять их или создавать новые в соответствии со своими потребностями 😉.
Надеюсь, это поможет!