SWIFTER | Блог про Swift
272 subscribers
4 photos
30 links
Swift для каждого на простом и понятном языке. Уроки программирования с интересными кейсами из реальных проектов, без воды и сложных терминов.
Download Telegram
Как декодировать property list используя Decodable?

Property list
, обычно сокращенно plist, представляет собой XML-файл, содержащий данные в формате "ключ-значение". Вы можете использовать его в своих приложениях для iOS в качестве простого хранилища данных. Эта функция-утилита позволит вам задекодить данные в нужный удобный вам тип, используя Decodable.

Source
#handyExtensions #plist #basic
Как использовать String в качестве ошибок?

Обычно, чтобы сообщать о том, что операция завершилась с ошибкой, в Swift используется протокол Error. Когда мы проектируем чистое API, обычной практикой для выполнения данной цели является создание собственного error enum, в котором прописываются нужные варианты ошибок под конкретный функционал.

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

Тогда можно реализовать LocalizedError для String и использовать строку в качестве ошибки. Такой вариант идеально подойдет для возвращение простых, user-facing ошибок.

Source
#handyExtensions #error #basic
Как удалить десятичную дробь из числа с плавающей запятой, если она равна 0?

Это простое расширение убирает десятичную дробь из числа с плавающей запятой, если она равна 0. Это пригодится в тех случаях, когда нам нужно сделать красивый вывод числа где-то в пользовательском интерфейсе. Мы используем truncatingRemainder (тот же %), чтобы найти остаток от деления. Если оно равно нулю, то убираем плавающую точку, форматируя строку в виде "%.0f", в противном же случае просто конвертируем Double в String без каких-либо изменений.

Source
#handyExtensions #double #basic
Как создать UIImage со сплошной заливкой и заданным размером?

В сегодняшнем посте из серии #handyExtensions я покажу, как, используя UIGraphicsRendererContext, можно создать изображения со сплошной заливкой определенного размера.

Логика очень простая:

1. Создаем контекст с помощью UIGraphicsBeginImageContextWithOptions. Это своего рода полотно, где мы можем рисовать.
2. Устанавливаем цвет для заливки.
3. Делаем заливку нужного нам размера.
4. Рендерим в изображения.

После того, как мы зарендерим изображения, нужно очистить контекст, используя UIGraphicsEndImageContext.

Source
#handyExtensions #images #basic
Как сделать аббревиатуру для числа?

Когда нужно отобразить огромное число в пользовательском интерфейсе (скажем, количество лайков или подписчиков), зачастую показывать число полностью не имеет смысла. Гораздо удобнее использовать агрегированное представление в виде "12M" или "1.5K".

Данное расширение позволяет получить в виде аббревиатуры числа вплоть до квадриллиона. Если кратко, то логика такая:

1. Есть список аббревиатур "KMBTQ". Проходимся по нему с конца, потому что представление должно быть как можно компактнее.
2. Для каждой аббревиатуры определяем фактор. Для тысяч это ЧИСЛО/10^3 (10 в степени 3).
3. Если фактор меньше нуля, число слишком маленькое для этой аббревиатуры, поэтому двигаемся дальше.
4. Если фактор больше нуля, значит к фактору добавляем нужную аббревиатуру и получаем результат.

Source
#handyExtensions #int #intermediate