3 Extension и кайфуем

3 Extension и кайфуем

iOSDeviant

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

1) Дыши, контролёр

Все в этом мире происходит, чтобы облегчить ViewController'ы. Не будь в стороне, пусть твой код поучаствует в этом!

Давай вспомним любой рандомный Controller, который содержит в себе либо TableView, либо CollectionView. Ну и километры кода, связанного с Delegate и DataSource.
Так вот, эти километры кода можно и нужно закидывать в отдельный Extension!

Не, ну только представь как ты открываешь проект своего коллеги с фамилией Рукожопов и видишь 1500 строк кода, где все функции идут в логичном членоголовом порядке: сначала viewDidLoad, потом heightForHeaderInSection, потом вообще 3 переменные, затем viewWillAppear и т.д.
После третьей сигареты, ты, конечно, найдешь где в этой помойке генерируются ячейки, но оно тебе надо? Я думаю нет.

Поэтому сам всегда выноси Delegate и DataSource в отдельный Extension, чтоб все было на своих местах и визуально ясно-понятно.

Ну и конечно, отправляй эту статью своему коллеге Рукожопову, который очевидно, работает стоя.

Пример выноса Delegate и DataSource в отдельный Extension

2) Облегчаем конструктор.

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

Пример структуры:

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

Рассмотрен пример, когда только начинается разработка.
Этап, когда еще нет багов и молитв, а все работает за счет слаженной деятельности говна и палок.

Так вот, это не круто, товарищ и товарищка. Круто, когда заполняешь только необходимые свойства (напр. в данном случае необходимы лишь первые 2).

И еще круто, когда структуру не меняешь, а чисто расширяешь. Сейчас структура MyApp выглядит как красивая, аккуратненькая девушка со своими тараканами в голове.
Так пусть и остается такой же.

А потому делаем init в extension'е и получаем такой код:

3) Ресурсы приложения.

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

Но раз уж ты читаешь этот божественный текст, то познай еще один способ работы с ресурсами.

Сделать extension, например для цветов.
Так просто? Да, так просто, смотри пример:


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

А пока, желаю приятного саморазвития, процветания, здоровья и не болей коронавирусом.

Report Page