3 Extension и кайфуем
iOSDeviantСейчас покажу 3 варианта как грамотно использовать extension'ы в своем коде. На самом деле таких вариантов гораздо больше, чем 3.
Это так, чисто навести на мысль, что можно и нужно упрощать в своем любимом коде.

1) Дыши, контролёр
Все в этом мире происходит, чтобы облегчить ViewController'ы. Не будь в стороне, пусть твой код поучаствует в этом!
Давай вспомним любой рандомный Controller, который содержит в себе либо TableView, либо CollectionView. Ну и километры кода, связанного с Delegate и DataSource.
Так вот, эти километры кода можно и нужно закидывать в отдельный Extension!
Не, ну только представь как ты открываешь проект своего коллеги с фамилией Рукожопов и видишь 1500 строк кода, где все функции идут в логичном членоголовом порядке: сначала viewDidLoad, потом heightForHeaderInSection, потом вообще 3 переменные, затем viewWillAppear и т.д.
После третьей сигареты, ты, конечно, найдешь где в этой помойке генерируются ячейки, но оно тебе надо? Я думаю нет.
Поэтому сам всегда выноси Delegate и DataSource в отдельный Extension, чтоб все было на своих местах и визуально ясно-понятно.
Ну и конечно, отправляй эту статью своему коллеге Рукожопову, который очевидно, работает стоя.

2) Облегчаем конструктор.
Не для кого не секрет, что когда пишешь структуру, в которой свойств, больше, чем у тебя самого, то ее инициализация превращается в заполнение шаблонных анкеток.
Пример структуры:

Пример инициализации:

Рассмотрен пример, когда только начинается разработка.
Этап, когда еще нет багов и молитв, а все работает за счет слаженной деятельности говна и палок.
Так вот, это не круто, товарищ и товарищка. Круто, когда заполняешь только необходимые свойства (напр. в данном случае необходимы лишь первые 2).
И еще круто, когда структуру не меняешь, а чисто расширяешь. Сейчас структура MyApp выглядит как красивая, аккуратненькая девушка со своими тараканами в голове.
Так пусть и остается такой же.
А потому делаем init в extension'е и получаем такой код:

3) Ресурсы приложения.
Не спорю, ты конечно, можешь захардкодить все цвета в разных частях приложения, а потом сиять пламенными хвостами из своего ануса, когда нужно будет сделать легкий редизайн.
Но раз уж ты читаешь этот божественный текст, то познай еще один способ работы с ресурсами.
Сделать extension, например для цветов.
Так просто? Да, так просто, смотри пример:

Надеюсь, в твоей голове зародились несколько идей, как еще можно использовать Extension. Свои идеи пиши в комментарии, когда я их включу.
А пока, желаю приятного саморазвития, процветания, здоровья и не болей коронавирусом.