Зачем нужен .gitignore и как им пользоваться

.gitignore - это указание Git-у, какие файлы нужно пропустить, игнорировать и не добавлять в репозиторий. Скрытый файл добавляется в директорию с проектом, в которой создается git-репозиторий. Это нужно, например, чтобы не таскать в проекте сторонние библиотеки, которые могут часто обновляться, личные файлы и другие документы, которые не хочется палить. В Xcode такими могут быть директории xcuserdata, xcshareddata, а также Pods, где хранятся поды. При скачивании вашего проекта другим пользователем понадобится загрузить необходимые поды, для этого в проекте остаётся Podfile.

Простой индикатор загрузки (Activity Indicator)

Ещё один простой кусочек кода, на этот раз для UI-элемента, сообщающего нам об ожидании.

Полезности для macOS

Сохраняю скорее для себя, на случай, если когда-нибудь что-то понадобится

Открыть запароленный zip архив на MacOS

С помощью стандартного терминала:

unzip -P password путь/к/файлу

Научиться использовать Automator и быть счастливым:

Подробный гид (может сделать из этого отдельный пост?) (хотя он может быть менее актуален с появлением и развитием Shortcuts)

Разархивировать файл, состоящий из нескольких частей

Есть несколько частей архива: archive.tgz.part1, archive.tgz.part2, archive.tgz.part3. Переходим в директорию с файлами и выполняем следующее:

cat archive.tgz.part* > archive.tgz

День рождения блога

Ура! Этому блогу ровно год!

Вызов функции из другого класса (Паттерн Наблюдатель) Swift 5

Одна из частых задач при написании приложения на Swift - передача данных из одного VC в другой. На этот раз мне нужно было вызвать функцию и остановить воспроизведение аудиопотока из нового VC.

Отметка о потоковом аудио Swift 5

Стандартный набор метаданных аудиоплеера в iOS включает в себя название и длительность, а блок в контрольной панели - кнопки play/pause, переключатель и громкость. Если речь идёт о потоковом аудио, следует поменять блок длительность на пометку "Live". Сделать это очень просто:

Слайдер громкости Swift 5

Чтобы не мучаться со стандартным слайдером для управления громкостью, я использую MPVolumeView, который прекрасно работает для аудиоплеер. Единственный его минус - он не виден ни в симуляторе, и проверить его работу можно только на устройстве.

MIDI контроллер на Arduino

Гораздо раньше, чем я приобрёл старую версию Raspberry Pi, я купил небольшую плату на базе Arduino Uno. Поигравшись в электронику и схемотехнику, я отложил микроконтроллер на долгое время, не найдя ему практического применения. Ещё тогда я собрал на его основе контроллер, управляющий музыкальным софтом с помощью MIDI, но дальше 4 потенциометров дело не дошло.