Viktor G.

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

Value & Reference types in Swift

There are two categories a type in Swift can fall into:

  • Value Type
  • Reference Type

An instance of a Value type makes and keeps a unique copy of an original element. When the original element changes, the change does not affect the created copy. An instance of a Reference type, however, creates a reference, and it shares a single copy with the original element. This way, when the original element changes, it affects all the existing references.


UIKit-проект без Storyboard

Создание UIKit-проекта без использования Storyboard в первый раз кажется чем-то сложным, на самом же деле основные проблемы при попытке запустить проект без сторибордов могут появиться при неправильном установке, удалении ненужных файлов и зависимостей.


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, но этот класс так же можно встраивать и при программной вёрстке.