AppFiles - Mobile Development
رفتن به کانال در Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
نمایش بیشتر2 178
مشترکین
-124 ساعت
اطلاعاتی وجود ندارد7 روز
+230 روز
آرشیو پست ها
Swift на Android: путь к сингулярности. От анонса SwiftJava до полноценного приложения
Сегодня мы с вами обсудим наработки от Apple. Какую технологию они представили еще в 2025 году, что изменилось со времени, как Apple выпустили официальный релиз Swift SDK для Android. А также мы посмотрим, как написать настоящее приложение, где вся бизнес-логика живёт на Swift, а UI на Compose.
Статья в двух частях: первая и вторая
Платформа: кроссплатформа
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Mac.apk - запуск Android-приложений нативно на Apple Silicon
Mac.apk запускает Android-приложения непосредственно на Apple Silicon. Приложения стартуют как обычные процессы macOS, отрисовывают графику через GPU Mac и выполняются на CPU с нативной скоростью. Они появляются в Dock, получают собственные окна с кнопкой «Назад» рядом со стандартными кнопками управления окном, могут менять размер и ориентацию как обычные окна macOS и автоматически переключаются между светлой и тёмной темой вместе с Mac. Android TV-приложениями можно управлять с клавиатуры, а игровые лаунчеры способны запускать другие установленные приложения.
Здесь нет ни эмулятора, ни виртуальной машины. В фоне не загружается Android, под системой не работает ядро Linux, а инструкции не интерпретируются одна за другой. Mac.apk напрямую реализует среду выполнения Android-приложений поверх macOS.
Mac.apk на GitHub: https://github.com/kksimp/Mac.apk
Платформа: Android
⭐️: 901
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Как я проектирую SwiftUI-приложения с Swift Concurrency, чтобы компилятор не выдавал предупреждений
Структурирование SwiftUI-приложения для меня всегда сводилось к одним и тем же целям: хорошо организованный код, компоненты, каждый из которых выполняет одну задачу, и приложение, которое остаётся поддерживаемым по мере роста. Я хочу быстро находить нужные вещи, менять одну функцию, не ломая остальные, и использовать превью без зависимости от сервера.
Swift concurrency добавила ко всему этому ещё одну проблему, и довольно болезненную. Как только появляются сеть, кэширование или аутентификация, компилятор начинает жаловаться. Ошибки
Sendable, ошибки изоляции main actor, предупреждения о гонках данных. Добавляешь где-нибудь @MainActor, и новая ошибка появляется уже в другом месте. В какой-то момент начинаешь задаваться вопросом: Swift concurrency вообще нормально работает со SwiftUI? И если да, то как нужно структурировать приложение, чтобы они не конфликтовали друг с другом?
Работает. В этой статье я покажу, как структурирую свои SwiftUI-приложения, чтобы они оставались организованными и удобными в поддержке, а SwiftUI и Swift concurrency работали вместе, а не друг против друга.
Статья: https://apptractor.ru/info/articles/kak-ya-proektiruyu-swiftui-prilozheniya-s-swift-concurrency.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительностьBlueprint - генерация отладочных иконок
Blueprint - небольшая CLI-утилита для iOS/macOS-разработки, которая автоматически превращает обычную иконку приложения в blueprint-версию для Debug-сборок, примерно в стиле иконки Xcode. Главная идея: чтобы тестовую/отладочную сборку на устройстве было сразу видно и не перепутать с продакшеном.
Она умеет работать как с новыми файлами Icon Composer
.icon, так и с обычными AppIcon.appiconset. На выходе она создаёт отдельную иконку вроде AppIconDebug.icon или AppIconDebug.appiconset, после чего её можно назначить для Debug-конфигурации через ASSETCATALOG_COMPILER_APPICON_NAME. Исходную иконку библиотека не перезаписывает.
Blueprint на GitHub: https://github.com/MustafaNatur/blueprint
Платформа: iOS
⭐️: 114
👨🦯➡️ AppFiles: код, инструменты, практики, производительностьКак фронтенд‑команде сделать мобильное приложение без нативных разработчиков
Нашей команде поставили задачу разработать мобильное приложение для iOS и Android. Нативных разработчиков на Swift и Kotlin в команде нет, зато половина хорошо знает Vue. Поэтому я как лид выбрал Vue и Capacitor — фреймворк, который упаковывает обычное веб‑приложение в нативную оболочку и даёт доступ к функциям телефона через JavaScript‑плагины.
Статья: https://habr.com/ru/articles/1094782/
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
📺 Видео и подкасты за неделю
•
(iOS Ru) Анатомия LazyVStack. Проблемы, скрытые возможности, оптимизации
• (iOS Ru) Влияние температурного режима на UX в iOS-приложениях
• (iOS En) iPhone Duo Group Lab + iPhone Duo Group Lab
• (iOS En) Top 6 Swift Concurrency Interview Questions Explained
• (iOS En) Animated Launch Screen With OnBoarding View Using SwiftU
• (iOS En) AI is now really good at building iOS apps
• (iOS En) iPhone Duo Is Here - What Happens to Your Existing iOS
• (iOS En) SwiftUI Animated App Theme Switcher
• (And Ru) 1 байт вместо 32: анатомия ScatterMap
• (And Ru) 15 лет Kotlin: ретроспектива
• (And Ru) А вы можете сказать, что все-таки такое «корутина» в Kotlin?
• (And En) From Android to QuakeCon: What 90s Game Engines Teach Us About Extreme Optimization
• (Crs Ru) Как превратить абстрактную задачу в оптимизационную на примере KMP-движка коллажей
• (Crs Ru) Swift для Android и кроссплатформы. Разбираем на практике
• (Crs Ru) CMP на ОС Аврора: с нуля до альфы
• (Crs Ru) Пробуем Сompose-alpha для ОС Аврора
• (Crs Ru) Под капотом изолятов и Garbage Collector Dart VM
• (Crs Ru) KMP Contest Winners | KotlinConfersations 2026
• (Dev Ru) Метрики плавности мобильных приложений
• (Dev Ru) Первый бескомпромиссный SDUI
• (Dev Ru) Разработчик вышел из кода
• (Dev Ru) Вуз в эпоху ИИ — развод на 4 года?
• (Dev Ru) Koog — твой друг: специализированный агент на Kotlin
• (Dev En) Line-by-line review of AI code is a mistake
• (Dev En) I didn't know I needed this new AI model so badly
• (Dev En) Design Software Systems Like a Senior Engineer – Complete Course
Прошлогодние видео:
• (And Ru) Семантический Gradle: публикуем артефакты со спокойствием и уверенностью
• (Dev Ru) Собеседование DS инженера в Авито: ML system design (все собеседования)
👨🦯➡️ AppFiles: код, инструменты, практики, производительностьИзмеряя незримое: что и как измерять в мобильной разработке (часть 2)
В прошлой статье мы рассмотрели несколько базовых метрик. В этой части поговорим о менее очевидных, но не менее полезных критериях и способах измерения различных аспектов мобильной разработки. Тема не новая, однако получила новый импульс благодаря развитию и широкому внедрению искусственного интеллекта (ИИ).
Статья: https://habr.com/ru/companies/domclick/articles/1090382/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Dari — инспектор взаимодействия WebView bridge для Android
Dari — это библиотека-инспектор для отладки взаимодействия через Android WebView bridge, вдохновлённая Chucker. Она перехватывает и отображает все сообщения WebView ↔️ App bridge в постоянном уведомлении и во встроенном интерфейсе приложения, не требуя изменений существующей логики бриджа.
Возможности:
• Перехват в реальном времени сообщений Web→App и App→Web
• Отслеживание трёх состояний: IN_PROGRESS, SUCCESS, ERROR
• Поддержка тёмной темы
• Жест встряхивания для открытия инспектора
• Фильтр по статусу, чтобы сосредоточиться на ошибках или незавершённых вызовах
• Экспорт перехваченных сообщений в JSON
• Опциональная инспекция Protocol Buffers с декодером, предоставляемым приложением
• No-op модуль (dari-noop) для release-сборок без дополнительных затрат во время выполнения
• Поддержка вызовов fire-and-forget для одностороннего взаимодействия через бридж
• Одинаковый публичный API для debug- и release-артефактов
Dari на GitHub: https://github.com/easyhooon/dari
Платформа: Android
⭐️: 35
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
AsoBeast - self-hosted ASO-инструмент для отслеживания ключевых слов в App Store и Google Play
AsoBeast — это инструмент для App Store Optimization (ASO) и отслеживания позиций по ключевым словам в Apple App Store и Google Play. Он импортирует страницу приложения, ежедневно отслеживает позиции по ключевым словам до 200-го места, следит за конкурентами, отзывами и метаданными, а затем превращает накопленную историю в приоритетную очередь задач по ASO. Этот репозиторий содержит бесплатную версию с открытым исходным кодом, которую можно запустить на собственном сервере.
Каждый запрос к магазину выполняется непосредственно на машине, где размещён AsoBeast, как обычный публичный поисковый запрос или запрос страницы, поэтому Apple и Google видят каждую отслеживаемую фразу так же, как любой другой поисковый запрос. Вам не нужно регистрироваться у стороннего ASO-провайдера, покупать API-ключ или передавать стороннему ASO-сервису информацию о том, какие ключевые слова вы отслеживаете. За исключением этих запросов к магазинам, ваши данные остаются внутри вашего развёртывания, если только вы явно не включите внешнюю интеграцию, например webhook-уведомления, электронную почту, помощь OpenAI, данные о популярности запросов из Apple Ads или обновления статуса магазинов.
AsoBeast на GitHub: https://github.com/AsoBeast/asobeast
Платформа: ASO
⭐️: 53
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Куда девается место на диске: Xcode, рабочие деревья и ИИ-агенты
Несколько недель назад мои сборки начали странным образом падать. Сначала сломался этап линковки. Потом
lipo. Затем кэш модулей начал жаловаться, что файл «был изменён после того, как был собран module file». Чистые сборки не помогали.
Оказалось, диск был заполнен. И ни одна из этих ошибок прямо об этом не говорила.
Такое начинает происходить гораздо чаще, когда в рабочем процессе появляются ИИ-агенты. Я запускаю по два-три агента одновременно, каждый в своём git worktree, каждый собирает приложение и запускает тесты. Каждое рабочее дерево также получает собственные копии симуляторов. Если агенты используют один и тот же симулятор, они начинают устанавливать свои сборки поверх чужих и нажимать кнопки на чужих экранах. Каждая сборка, каждый прогон тестов и каждая копия симулятора оставляют после себя гигабайты данных, и ничего из этого автоматически не очищается.
Статья: https://apptractor.ru/info/articles/kuda-devaetsya-mesto-na-diske-xcode-rabochie-derevya-i-ii-agenty.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительностьКак эффективно отлаживать код, когда вы перестали его понимать
С развитием AI-кодинга возникает новая проблема: нейросети способны писать тысячи строк кода за день, но кто будет разбираться во всём этом, когда что-то сломается? Инженер Синди Шридхаран поделилась опытом отладки сложных систем с помощью Claude Code. В основе статьи — три реальные проблемы: рост задержек, утечка памяти и зависание сервиса.
Главная мысль: для эффективной отладки больше не обязательно понимать каждую строку кода. Важнее уметь проверять гипотезы ИИ.
Автор предлагает несколько принципов:
• Факты важнее объяснений. Логи, метрики, трассировки и результаты экспериментов надёжнее, чем убедительная история, которую рассказывает AI-агент.
• Разделяйте факты и гипотезы. Модель может предложить правдоподобную причину ошибки, но это ещё не доказательство.
• Сравнивайте работающую и сломанную системы. Иногда одно различие в поведении даёт больше информации, чем изучение тысяч строк исходников.
• Заставляйте ИИ опровергать собственные выводы. Хорошая гипотеза должна объяснять все наблюдаемые факты, а не только часть симптомов.
• Меняйте роль разработчика. Вместо ручного анализа каждой функции — проектирование проверок, сбор данных и контроль достоверности выводов AI-агентов.
Самый интересный вывод: программирование постепенно превращается из процесса написания и понимания кода в процесс управления его созданием и проверки корректности. И, возможно, главным навыком разработчика будущего станет не умение читать чужой код, а умение доказать, что он работает правильно.
Статья: https://copyconstruct.medium.com/how-to-effectively-debug-when-you-no-longer-understand-the-code-bd3dcb2c5f7b 🇺🇸
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
CodexKit - SDK для создания агентов
CodexKit — это SDK на Swift для встраивания агентов в стиле Codex в приложения для iOS 17+ и macOS 14+. Он предоставляет вход через ChatGPT, сохраняемые диалоги, потоковую генерацию ответов, инструменты, определяемые самим приложением, и опциональную локальную память.
Возможности:
• Текстовый и графический ввод, потоковые ответы и типизированный вывод по ходам с предварительными событиями и финальным подтверждённым результатом.
• Возобновляемые треды с сохранением в SQLite или Realm и сжатием контекста.
• Инструменты, определяемые приложением, с этапами подтверждения, ограничениями политик для навыков и ограниченным опциональным параллельным выполнением.
• Персоны, навыки и локальная память для поведения, специфичного для конкретного приложения.
• Идентификаторы GPT-6.1 Sol, GPT-6 Sol/Luna/Astra, обнаружение доступных моделей аккаунта и отображение лимитов использования.
• Прогресс провайдера, фазы сообщений, добавление ввода в активные ходы и прерывание выполнения.
• OAuth через браузер, вход по device code и доступ только для чтения к локальным сессиям Codex на macOS.
CodexKit на GitHub: https://github.com/timazed/CodexKit
Платформа: iOS
⭐️: 32
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Куда делись все вакансии для Android-разработчиков?
Я всё думаю о том, насколько иначе рынок ощущался несколько лет назад. Создание мобильного приложения было приоритетом почти для любого бизнеса. Стартапы запускали продукты, компании расширяли инженерные команды, а мобильная разработка выглядела как надёжный карьерный путь.
Сегодня разработчики задают уже совсем другой вопрос: если мобильные приложения всё ещё нужны всем, почему работы для тех, кто их создаёт, не становится больше?
Статья: https://apptractor.ru/info/articles/kuda-delis-vse-vakansii-dlya-android-razrabotchikov.html
Платформа: работа
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Мы научили агента писать тесты так, как их пишет наша команда
Каждому iOS-разработчику знакома ситуация: задача уже готова, кажется, что самое сложное уже позади. Но затем наступает этап написания unit-тестов. Мы пробовали поручить это ChatLLM, но модель генерировала код, который не компилировался: придумывала несуществующие Mock-объекты, игнорировала архитектурные соглашения проекта и использовала не те тестовые утилиты.
Проблема оказалась не в модели, а в отсутствии контекста. Вместо очередного набора промптов мы создали систему правил на базе AGENTS.md и SKILL.md. Это превратило генерацию тестов из разового запроса в воспроизводимый инженерный процесс.
В статье расскажу, как мы организовали работу AI-агента, какие проблемы встретили и почему хорошие правила сегодня важнее выбора «самой умной» модели.
Статья: https://habr.com/ru/companies/tbank/articles/1091898/
Платформа: тестирование
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
+1
Pixelate - размытие контента в Compose
Pixelates преобразует контент Compose Multiplatform в мозаику из сплошных блоков. Сам контент сохраняет свои фактические данные и реальный размер, поэтому элементы макета не смещаются.
Pixelates на GitHub: https://github.com/hitherejoe/Pixelate
Платформа: Android/кроссплатформа
⭐️: 15
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Swift AI Agent Demo - интеллектуальное рассуждение ИИ-агента
Swift AI Agent Demo — это нативное приложение для iOS, демонстрирующее паттерн ИИ-агента ReAct (Reasoning + Acting — «рассуждение + действие») с использованием SwiftUI. Приложение позволяет пользователям наблюдать, как ИИ-агент рассуждает, выполняет действия и шаг за шагом решает задачи. Для демонстрации взаимодействия в реальном времени и интеллектуальных ответов приложение использует GPT-модели OpenAI.
Проект служит отличным учебным инструментом для разработчиков, интересующихся искусственным интеллектом, автоматизацией и мобильной разработкой. С акцентом на Swift и SwiftUI этот демо-проект наглядно показывает, как интегрировать возможности ИИ в приложения для iOS.
Swift AI Agent Demo на GitHub: https://github.com/rodrigo1987mza/swift-ai-agent-demo
Платформа: iOS
⭐️: 12
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Как использование нейросетей изменило игровую индустрию и homebrew-cцену
Игровая индустрия прошла максимально сложный путь развития: от чего-то максимально локального до мейнстрима у всех возрастов, по пути успев чуть не умереть в 1983 году и возродиться руками одной компании. И всегда этот путь сопровождался эволюцией средств разработки.
В наше время максимально часто поднимается вопрос этичности в вопросах использования ИИ для создания игр, кое-где на этой почве вспыхивают скандалы. В последние месяцы с помощью вайбкодинга и немного ручного труда создаются какие-то совсем невероятные вещи.
Сегодня мы поговорим о том, как ИИ ускоряет разработку игр, чем это чревато для индустрии, а также посмотрим не только на то, как люди делают проекты мечты с помощью словесного описания, но и как современные LLM, кажется, перевернули сцену homebrew с ног на голову.
Статья: https://habr.com/ru/companies/timeweb/articles/1090896/
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
📺 Видео и подкасты за неделю
•
(iOS En) Pinterest Context Menu Using SwiftUI
• (iOS En) Compact Notification OnBoarding Animation Using SwiftUI
• (iOS En) SwiftUI iOS 27 - Smarter Toolbars, Overflow & Tab Bars
• (And En) Android CLI and skills to improve your development
• (And En) Beginner's Guide to Spec-Driven Development (SDD) With OpenSpec
• (Crs En) Shopify is smart
• (Dev Ru) Time-to-Market по закону: риски использования AI-агентов в мобильной разработке
• (Dev Ru) Как AI убил аутсорс — Заказная разработка, аутстафф, студии разработки
• (Dev En) Kotlin Course For Beginners – Full Tutorial
• (Dev En) Mobile System Design: Push Notifications Architecture
Прошлогодние видео:
• (iOS Ru) Неуловимый iOS-ботовод. Задетекти меня, если сможешь: автореги, боты, спамеры
• (iOS Ru) Разработка под Apple Vision Pro: исследуем возможности гарнитуры
• (And Ru) Автообновление Android: когда можно не бояться санкций сторов
• (And Ru) Доверяй, но проверяй: про корневые сертификаты в Android и не только
• (And Ru) Как правильно написать фичу. Часть 1
• (And Ru) Что ждёт Android-разработчика на собесе в Wildberries (+ все собеседования)
• (Crs Ru) Миграция больших приложений на KMP: проблемы, подводные камни, решения
👨🦯➡️ AppFiles: код, инструменты, практики, производительностьSpock ADB - отладка Android-приложений без выхода из IDE
Анализируйте, управляйте и отлаживайте Android-приложения и устройства прямо из Android Studio или IntelliJ IDEA — без необходимости постоянно переключаться на терминал, Device Manager, настройки или внешние инструменты.
Spock ADB интегрирует рабочие процессы ADB в среду разработки и сохраняет выбранное устройство и приложение в качестве активной цели во всех разделах: Home, Storage, Work, Shell, Logcat, Debug Timeline, Diagnose и UI Inspector. Кроме того, плагин включает встроенный MCP-сервер, предоставляющий 69 строго типизированных инструментов Android для Claude Code, Claude Desktop, Cursor и других AI-клиентов.
Одна IDE · Одно целевое устройство · Меньше команд ADB
Spock ADB на GitHub: https://github.com/WahdanZ/SpockAdb
Платформа: Android
⭐️: 116
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Игра на Kotlin, Jetpack Compose и Filament: что сработало, а что нет
Начиналось всё как небольшая игра в стиле приложения — почти без графики, скорее как текстовая игра. Потом мне захотелось видеть, как герои перемещаются по миру. Затем появились деревья, здания, изометрическая карта, погода и цикл дня и ночи. В какой-то момент я понял, что по сути построил небольшой игровой движок.
Статья: https://apptractor.ru/info/articles/igra-na-kotlin-jetpack-compose-i-filament-chto-srabotalo-a-chto-net.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
