Рубрика «swift»

Я долго искал для Мака простой плеер в духе старого Winamp и не нашёл: современные либо разрослись до комбайнов со стримингами и медиатеками, либо написаны на Electron и грузят процессор впустую. Года три-четыре назад я начал писать такой плеер сам, но дальше первого экрана и базового проигрывания дело не дошло. Проект так и лежал, а когда я натыкался на эту папку, то вспоминал о нём и думал, что когда-нибудь доведу его до конца. С приходом нейросетей мне это наконец удалось.

Получился MacAmpЧитать полностью »

Вы задумывались, что такое модификатор .task {..} в SwiftUI?

Со стороны это просто особый Task {..} для вью. Он и выглядит как Task {..} с точкой спереди, и это сходство сбивает с толку. Я так к нему и относился: асинхронный блок, который SwiftUI запускает при появлении вью. Документация AppleЧитать полностью »

Знакомая ситуация: Mac начинает подтормаживать, открываешь монитор — свободно всего пара сотен мегабайт. Первая мысль: память кончилась, надо чистить. Многие ставят «чистилку», которая по таймеру запускает purge, и часто становится только хуже.

Проблема в том, что «свободная память» — не та цифра. Разберём, почему на macOS она почти ничего не говорит, что такое memory pressure, как его прочитать из Swift в пару строк — и почему в итоге я написал свой монитор с открытым кодом.

Почему мало свободной памяти — это нормально

Читать полностью »

Написал приложение, которое добавляет в macOS две функции:

  1. Открытие приложений сочетанием клавиш, например ⌥-1 для Chrome, ⌥-2 для Slack;

  2. Открытие проектов сочетанием клавиш, например ⌥-3 откроет Option1.xcodeproj в Xcode. Работает с любым приложением.

В статье покажу принцип работы и возможности macOS о которых вы могли не знать.

Текст и код подготовлены без использования технологий искусственного интеллекта.


Исходный код — https://github.com/Medvedev91/Option1

В чем проблема?

Читать полностью »

Если вы долго сидите за Mac в обычных наушниках — будь то студийные Beyerdynamic/Sennheiser, полноразмерные Sony/Bose или любимые проводные IEM — вы наверняка замечали усталость ушей через пару часов. Причина проста: обычное стерео изначально сводится для колонок в комнате, где левое ухо слышит и левый, и (с микрозадержкой и фильтрацией головой) правый монитор. В наушниках же каналы изолированы на 100%, из‑за чего сцена схлопывается прямо внутри черепной коробки (in‑head localization).

В macOS уже много лет встроен первоклассный аппаратно‑ускоренный бинауральный движок Apple HRTFHQ (kAudioUnitSubType_SpatialMixerЧитать полностью »

Я тащу файл в Finder, коротко нажимаю Shift, и под курсором раскрывается колесо с действиями: «в JPG», «сжать до 2 МБ», «распознать текст», «склеить в PDF». Бросаю файл на лепесток, и результат появляется рядом с оригиналом. Расскажу, как поймать такой жест без разрешения Accessibility, зачем пришлось собирать ffmpeg и девять кодеков из исходников, насколько VideoToolbox быстрее libx264 и как всё это писалось вместе с Claude от Anthropic.

Читать полностью »

Если у вас Mac и электронная подпись на Рутокене, вы наверняка знаете ритуал: чтобы войти на Госуслуги по ЭЦП, отчитаться в личном кабинете ФНС или подписать документ в Диадоке, нужно открыть Chrome. Госплагин, Контур.Плагин и КриптоПро ЭЦП Browser plug‑in официально работают только в Chromium‑браузерах и Firefox. У КриптоПро есть старое Safari App Extension, но в актуальных версиях Safari оно даже не появляется в настройках.

Читать полностью »

Мой рабочий компьютер — iMac 27″ 5 K 2 017 года: Intel Core i5, 32 ГБ памяти, SSD и macOS Sonoma. Он всё ещё справляется с повседневной работой. Менять его только ради того, чтобы утилиты снова считали его «современным Mac», мне не хотелось.

Зато хотелось понимать, чем заняты CPU, две видеокарты и память, почему греется машина и куда исчезло место на диске. Постепенно для этого набирается целая полка приложений: монитор в меню, управление вентиляторами, клинер, деинсталлятор. Одни требуют подписку, другие продаются отдельно, третьи меняют системные требования. И в какой‑то момент я решил собрать нужные мне вещи в одном нативном приложении.

Читать полностью »

На самом деле, к моменту написания статьи я уже собрал тулчейны Swift 6.3.3 и Swift 6.4.

Почему именно Swift? Потому что он опенсорсный, кроссплатформенный и не очень популярен за пределами яблочной экосистемы. А ещё мне нравится на нём писать.

Почему собрать из исходников? Потому что сборка и установка из исходников — одно из двух моих любимых компьютерных хобби. Второе — дистрохоппинг.

Почему именно под Linux? Потому что мне немного приелась macOS, и я хочу использовать это как входную точку для углубления своих знаний о Linux.

От слов к делу

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js