Я разрабатываю HomeDeck for HomeKit — полноэкранный дашборд для существующего дома Apple Home на iPad и Apple TV. В этой статье разберу не витрину приложения, а инженерную часть: как представить неоднородный граф HomeKit единым снимком, разделить системный слой и UI, синхронизировать пользовательскую конфигурацию и не превратить общий SwiftUI-код в лес платформенных условий.
Рубрика «swiftUI»
Один HomeKit-дашборд для iPadOS и tvOS: архитектура HomeDeck for HomeKit и ограничения двух платформ
2026-08-03 в 12:44, admin, рубрики: apple tv, HomeDeck, Homekit, ipad, iPadOS, swiftUI, tvos, умный домКак не‑программист собрал нативный дашборд для Mac руками Claude и доказал, что баг с CPU в скролле ему померещился
2026-07-27 в 9:41, admin, рубрики: appkit, claude, cpu, MacOS, swiftUI, ии-агенты, оптимизация, производительность, профилирование, разработка без Xcode
Сразу скажу: я не программист
Как я в одиночку сделал мобильную игру на iOS — LootShrine
2026-07-13 в 16:03, admin, рубрики: indiedev, roguelite, spritekit, swift, swiftUI, игры для iphone, мобильная разработкаВсем привет! Хочу поделиться своим первым опытом в разработке мобильной игры для iOS — в жанре roguelite. Это pet‑проект, который неожиданно для меня самого дорос до релиза в App Store, так что расскажу и про идею, и про технические идеи. Надеюсь, будет интересно почитать:)
С чего всё началось
Я проходил курс по разработке под iOS и решил, что лучший способ реально закрепить материал — сделать несколько реальных проектов. Одним из таких проектов стал LootShrine — ссылка на игру в App Store.
Opaque types vs Existential Types vs Generics
2026-06-25 в 11:56, admin, рубрики: existencial container, iOS, mobile development, opaque, swift, swiftUI, xcodeПривет! Сегодня хочу поделиться, как мне кажется, очень полезной информацией о такой важной теме, как 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Читать полностью »
Я перестал доверять стримингам. Поэтому написал свой iOS-плеер — с CarPlay и без вранья про звук
2026-06-04 в 13:42, admin, рубрики: avfoundation, CarPlay, dsp, hi-res, iOS, ShazamKit, swift, swiftUI, инди-разработкаЯ перестал верить стримингам. Не философски, а практически. Половина любимых альбомов либо ушла из каталогов, либо вернулась пересведенной так, что слушать тошно. Концертные записи, винил‑рипы, региональные релизы — их там и не было. А моя коллекция в FLAC просто лежит на диске и никуда не девается.
Для своей коллекции я написал плеер. Для себя. Через полгода это превратилось в нишевое приложение для iOS на 11 языках: с собственным DSP, распознаванием музыки и CarPlay.
Что в итоге внутри и где было не очевидно. Места, в которых документация молчит, а ты сидишь и гадаешь, почему оно вообще так себя ведет.
Читать полностью »
Год разработки iOS-игры, 266 тысяч показов и $33: как я делал Vault и почти ничего не заработал
2026-05-25 в 9:13, admin, рубрики: App Store, Gamedev, indie development, iOS, monetization, swiftUIЯ сделал мобильную настольную игру Vault: the board game.
Это игра для компании: апокалипсис уже случился, есть бункер, мест на всех не хватает, а игрокам нужно спорить, убеждать друг друга, блефовать и голосовать, кто заслуживает спасения.
Я люблю такие игры. В них половина удовольствия не в правилах, а в людях за столом: кто-то доказывает, что его персонаж обязательно нужен человечеству, кто-то притворяется полезнее, чем есть на самом деле, кто-то просто красиво разваливает чужую аргументацию.
Как я делал ping и traceroute на iOS без entitlements — и почему это оказалось проще, чем UMP-консент для AdMob
2026-05-22 в 12:13, admin, рубрики: admob, BGP, icmp, iOS, network, swift, swiftUI, tracerouteЯ выпустил небольшое iOS-приложение — NetDiag+. Это набор сетевых утилит: ping, traceroute, DNS lookup, whois, LAN-сканер, port scanner, проверка SSL-сертификатов, BGP/ASN lookup, Wi-Fi info и фоновый мониторинг хостов с пушами при падении. Я начинал его как пет-проект для собственных нужд, потому что на iOS приходилось переключаться между четырьмя разными приложениями для базовой диагностики, и в трёх из четырёх была реклама.
Хочу поделиться тем, что мне самому хотелось бы прочитать в начале — почему некоторые вещи на iOS работают не так, как ожидаешь от Unix-фона, и где грабли лежат не там, где кажется.
Как я написал лучшее приложение для изучения иностранных языков с помощью SFSpeechRecognizer (нет)
2026-04-28 в 14:15, admin, рубрики: SFSpeechRecognizer, speech framework, swiftUI, аудирование, изучение языков, распознавание речи, сегментация аудио, субтитры, чанкингВообще-то, я бэкендер последние лет 20, но недавно остался без работы (и AI тут не причём), решил «замутить» свой «стартап», пока ищу новую работу Java-программиста. А заодно подтянуть новые технологии, поглубже изучить немецкий и английский и немного развеяться…
AI в iOS-разработке: что у меня реально закрепилось в 2026, а что я выкинул
2026-04-24 в 8:15, admin, рубрики: ai-агенты, claude code, cursor, iOS, llm, MCP, swift, swiftUI, workflow, xcodeЗа последние полгода я перетряс свой рабочий стек полностью: Cursor, Claude Code, Codex, локальные Qwen-модели для ревью, несколько итераций своего AGENTS.md, Xcode MCP, mobile-mcp, Conductor для параллельных сессий. Что-то прижилось, что-то я удалил через неделю, а какие-то практики, которые ещё весной казались обязательными, сейчас выглядят странно.
Ниже — мои личные заметки по итогам этих полугода, а не обзор индустрии. Многое я подсмотрел у коллег и в чатах, не всё придумал сам.
1. Минимализм в AGENTS.md
Если у вас CLAUDE.md (или AGENTS.mdЧитать полностью »
Я превратил вырез в экране MacBook в динамический элемент пользовательского интерфейса (DynamicNotch для macOS)
2026-04-19 в 18:15, admin, рубрики: appkit, dynamic island, MacOS, swift, swift разработка, swiftUI, utilitiesКогда Apple добавила вырез (notch) в MacBook, реакция у многих была примерно одинаковая:
он есть — и с ним приходится просто мириться.
В отличие от iPhone, где появился Dynamic Island и вырез стал частью интерфейса, на macOS он до сих пор остаётся пассивным элементом. Он не несёт функциональной нагрузки и никак не взаимодействует с пользователем.
У меня возник простой вопрос:
а что если сделать вырез частью UI, а не ограничением?
Так появился проект DynamicNotch.
