Рубрика «swiftUI»

Я разрабатываю HomeDeck for HomeKit — полноэкранный дашборд для существующего дома Apple Home на iPad и Apple TV. В этой статье разберу не витрину приложения, а инженерную часть: как представить неоднородный граф HomeKit единым снимком, разделить системный слой и UI, синхронизировать пользовательскую конфигурацию и не превратить общий SwiftUI-код в лес платформенных условий.

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

Вкладка Overview: сводка по CPU, памяти, swap, диску и батарее

Вкладка Overview: сводка по CPU, памяти, swap, диску и батарее

Сразу скажу: я не программист

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

Всем привет! Хочу поделиться своим первым опытом в разработке мобильной игры для iOS — в жанре roguelite. Это pet‑проект, который неожиданно для меня самого дорос до релиза в App Store, так что расскажу и про идею, и про технические идеи. Надеюсь, будет интересно почитать:)

С чего всё началось

Я проходил курс по разработке под iOS и решил, что лучший способ реально закрепить материал — сделать несколько реальных проектов. Одним из таких проектов стал LootShrine — ссылка на игру в App Store.

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

Привет! Сегодня хочу поделиться, как мне кажется, очень полезной информацией о такой важной теме, как Opaque types vs Existensial Types vs Generics — что это такое, в чём разница и что выбрать. Я действительно считаю эту тему важной, поскольку это мощнейшие инструменты, которые нам даёт swift, чтобы сделать код более гибким, поддерживаемым, универсальным и без лишнего дублирования. Погнали. 

Opaque types

Заглянем в официальную документацию:

Hide implementation details about a value’s type.

Скрыть детали реализации типа значения.

A function or method that returns an opaque type hides its return value’s type information. Instead of providing a concrete typeЧитать полностью »

Я перестал верить стримингам. Не философски, а практически. Половина любимых альбомов либо ушла из каталогов, либо вернулась пересведенной так, что слушать тошно. Концертные записи, винил‑рипы, региональные релизы — их там и не было. А моя коллекция в FLAC просто лежит на диске и никуда не девается.

Для своей коллекции я написал плеер. Для себя. Через полгода это превратилось в нишевое приложение для iOS на 11 языках: с собственным DSP, распознаванием музыки и CarPlay.

Что в итоге внутри и где было не очевидно. Места, в которых документация молчит, а ты сидишь и гадаешь, почему оно вообще так себя ведет.

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

Я сделал мобильную настольную игру Vault: the board game.

Это игра для компании: апокалипсис уже случился, есть бункер, мест на всех не хватает, а игрокам нужно спорить, убеждать друг друга, блефовать и голосовать, кто заслуживает спасения.

Я люблю такие игры. В них половина удовольствия не в правилах, а в людях за столом: кто-то доказывает, что его персонаж обязательно нужен человечеству, кто-то притворяется полезнее, чем есть на самом деле, кто-то просто красиво разваливает чужую аргументацию.

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

Я выпустил небольшое iOS-приложение — NetDiag+. Это набор сетевых утилит: ping, traceroute, DNS lookup, whois, LAN-сканер, port scanner, проверка SSL-сертификатов, BGP/ASN lookup, Wi-Fi info и фоновый мониторинг хостов с пушами при падении. Я начинал его как пет-проект для собственных нужд, потому что на iOS приходилось переключаться между четырьмя разными приложениями для базовой диагностики, и в трёх из четырёх была реклама.

Хочу поделиться тем, что мне самому хотелось бы прочитать в начале — почему некоторые вещи на iOS работают не так, как ожидаешь от Unix-фона, и где грабли лежат не там, где кажется.

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

Вообще-то, я бэкендер последние лет 20, но недавно остался без работы (и AI тут не причём), решил «замутить» свой «стартап», пока ищу новую работу Java-программиста. А заодно подтянуть новые технологии, поглубже изучить немецкий и английский и немного развеяться…

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

За последние полгода я перетряс свой рабочий стек полностью: Cursor, Claude Code, Codex, локальные Qwen-модели для ревью, несколько итераций своего AGENTS.md, Xcode MCP, mobile-mcp, Conductor для параллельных сессий. Что-то прижилось, что-то я удалил через неделю, а какие-то практики, которые ещё весной казались обязательными, сейчас выглядят странно.

Ниже — мои личные заметки по итогам этих полугода, а не обзор индустрии. Многое я подсмотрел у коллег и в чатах, не всё придумал сам.

1. Минимализм в AGENTS.md

Если у вас CLAUDE.md (или AGENTS.mdЧитать полностью »

Когда Apple добавила вырез (notch) в MacBook, реакция у многих была примерно одинаковая:

он есть — и с ним приходится просто мириться.

В отличие от iPhone, где появился Dynamic Island и вырез стал частью интерфейса, на macOS он до сих пор остаётся пассивным элементом. Он не несёт функциональной нагрузки и никак не взаимодействует с пользователем.

У меня возник простой вопрос:

а что если сделать вырез частью UI, а не ограничением?

Так появился проект DynamicNotch.

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

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