Viktor G.

Уютное место для моих идей

Navigation history stack (iOS 14)

Одно из незначительных, но полезных нововведений - "история" в навигации. Чтобы вернуться на начальный экран Navigation Controller раньше приходился нажимать "назад" столько раз, сколько потребуется, но в iOS 14 есть возможность выбрать определённый экран в цепочке, по которой мы пришли к текущему, а также вернуться на первоначальный экран одним движением.

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


Нонконформизм в современной iOS-разработке (a.k.a. Я решил познакомиться с Objective-C)

TL;DR: Я написал простое приложение не Objective-C, чтобы узнать его поближе и лучше понимать примеры, написанные на нём. Оказалось, Swift позаимствовал много терминов, из-за чего Obj-C гораздо понятнее, чем кажется.


Список контактов устройства

Задача: взять контакты пользователя из устройства и вывести их в виде таблицы. Оказалось, это довольно просто, достаточно вставить одну встроенную в Foundation библиотеку и написать один метод.


Панель над клавиатурой UIKit

Очень простое и понятное расширение для UITextField и UITextView, с которым можно легко добавить панель над клавиатурой:


Форматирование номера телефона (Swift)

Простая, но полезная с точки зрения UX штука - автоматическое форматирование телефонного номера в более читаемый формат. Задача простая: форматирование (в живом режиме) номера телефона из формата "XXXXXXXXXXX" в более красивый "+X (XXX) XXX-XXX".


UIButton Radio button

Моя имплементация радио кнопки на основе UIButton, почему-то этого нет в UIKit, хотя может понадобиться. Мой текущий проект использует Storyboard, так что она работает для встраивания в XIB, но этот класс так же можно встраивать и при программной вёрстке.


Условный тип в модели JSON-ответа (Swift 5)

Недавно я работал с API запросом, ответом от которого был JSON, в котором одно из значений могло быть либо Bool, либо String.


Декодирование JSON в Swift 5

Простой способ декодирования JSON в структуру в Swift без использования сторонних библиотек (регистрации и смс).