uk
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

Відкрити в Telegram

Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.

Показати більше
2 167
Підписники
+424 години
-27 днів
+730 день
Архів дописів
Actomaton - фреймворк для управления состоянием Actomaton — это фреймворк для управления состоянием с использованием асинхрон
Actomaton - фреймворк для управления состоянием Actomaton — это фреймворк для управления состоянием с использованием асинхронного подхода async/await и Actor на Swift, вдохновленный Elm и swift-composable-architecture. Actomaton обеспечивает предсказуемый и потокобезопасный подход к управлению состоянием приложения и побочными эффектами в приложениях Swift. Actomaton на GitHub: https://github.com/Actomaton/Actomaton Платформа: iOS ⭐️: 262 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Как DoorDash создал систему проверки кода на основе ИИ, к мнению которой инженеры действительно прислушиваются Многие инженер
Как DoorDash создал систему проверки кода на основе ИИ, к мнению которой инженеры действительно прислушиваются Многие инженерные организации пытались прикрутить AI-ревьюеров к своим пул-реквестам. Слишком часто такие ревьюеры просто игнорируются. Комментарии многочисленные, рекомендации — слишком общие, и инженеры привыкают пролистывать их. Мы хотели сделать что-то другое. Последние несколько месяцев мы постепенно разворачивали агента для code review внутри инженерной организации DoorDash. Ключевой проблемой в итоге оказалось внимание: помочь агенту сфокусироваться на тех частях изменений, которые действительно заслуживают пересмотра, и молчать, когда ему нечего полезного добавить. Планка, которую мы для себя установили, была не в духе «находить проблемы». Критические вопросы были такими: • Действительно ли инженеры меняют свой код, когда агент оставляет комментарий? • Сохраняет ли он достаточный уровень доверия, чтобы команды продолжали держать его включённым? Вот к чему мы пришли. Статья: https://apptractor.ru/info/articles/kak-doordash-sozdal-sistemu-proverki-koda-na-osnove-ii-k-mneniyu-kotoroy-inzhenery-deystvitelno-prislushivayutsya.html Платформа: разработка 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Как DoorDash создал систему проверки кода на основе ИИ, к мнению которой инженеры действительно прислушиваются Многие инженерные организации пытались прикрутить AI-ревьюеров к своим пул-реквестам. Слишком часто такие ревьюеры просто игнорируются. Комментарии многочисленные, рекомендации — слишком общие, и инженеры привыкают пролистывать их. Мы хотели сделать что-то другое. Последние несколько месяцев мы постепенно разворачивали агента для code review внутри инженерной организации DoorDash. Ключевой проблемой в итоге оказалось внимание: помочь агенту сфокусироваться на тех частях изменений, которые действительно заслуживают пересмотра, и молчать, когда ему нечего полезного добавить. Планка, которую мы для себя установили, была не в духе «находить проблемы». Задачи были такими: Действительно ли инженеры меняют свой код, когда агент оставляет комментарий? Сохраняет ли он достаточный уровень доверия, чтобы команды продолжали держать его включённым? Вот к чему мы пришли.

Создание адаптивных макетов в Jetpack Compose Большинство приложений для Android изначально разрабатывались с учетом одного р
Создание адаптивных макетов в Jetpack Compose Большинство приложений для Android изначально разрабатывались с учетом одного размера экрана: телефона в портретном режиме. Это хорошо для первой версии, но со временем нужно большее. Ваше приложение может работать на телефонах, планшетах, складных устройствах, ChromeOS, в режиме разделенного экрана и с изменяемым размером окон. Размер одного и того же устройства может меняться во время работы приложения. Складное устройство может открыться. Приложение для планшета может перейти в режим разделенного экрана. Телефон может повернуться. Статья: https://apptractor.ru/info/articles/sozdanie-adaptivnyh-maketov-v-jetpack-compose.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Switchboard - типобезопасные флаги функций Switchboard — это готовый к использованию, типобезопасный механизм управления флаг
Switchboard - типобезопасные флаги функций Switchboard — это готовый к использованию, типобезопасный механизм управления флагами функций для Android. Он использует Kotlin Symbol Processing (KSP) для преобразования простых объявлений свойств в мощную систему конфигурации, дополненную реактивным отладочным интерфейсом и сетевой диагностикой. Фичи: • Сквозная типобезопасность: флаги определяются один раз как свойства Kotlin. Доступ к ним возможен в любом месте с полной поддержкой компилятора — никаких «магических строк», никакого ручного приведения типов. • Дашборд отладки в реальном времени: автоматически генерируемый интерфейс Jetpack Compose для проверки источника каждого флага (удаленный, локальное переопределение или значение по умолчанию) и переключения переопределений на лету. • Готовые к использованию бэкенды: первоклассная поддержка Firebase Remote Config с реактивными потоками обновления. • Производительность без рефлексии: KSP генерирует весь код реестра во время компиляции для максимальной эффективности во время выполнения. • Диагностика сети: Встроенный перехватчик OkHttp, который соотносит каждый сетевой запрос с конкретными флагами функций, управляющими логикой приложения. • Встряхивание для отладки: Интегрированный жест встряхивания для мгновенного доступа к консоли отладки в непроизводственных сборках. Switchboard на GitHub: https://github.com/megh-lath-1012/switchboard Платформа: Android ⭐️: 6 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

12 приёмов SwiftUI, которые ежедневно используют Senior iOS-разработчики Junior и Senior разработчики используют один и тот ж
12 приёмов SwiftUI, которые ежедневно используют Senior iOS-разработчики Junior и Senior разработчики используют один и тот же язык, один и тот же фреймворк, но их код выглядит совершенно по-разному. Дело не в опыте. Дело в специфических методах, которые опытные разработчики накопили за годы работы над созданием и внедрением приложений в продашен. После 4 лет разработки приложений на SwiftUI для клиентов я собрал 12 приемов, которые использую каждый день. Некоторые из них — это малоизвестные функции API. Некоторые — это архитектурные шаблоны. Но все они значительно упростят ваш код. Статья: https://apptractor.ru/info/articles/12-priyomov-swiftui-kotorye-ezhednevno-ispolzuyut-senior-ios-razrabotchiki.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Swagger-генерация на Android. Часть 1. Каких проблем нам подкинул бекенд и Android проект Почти любое мобильное приложение об
Swagger-генерация на Android. Часть 1. Каких проблем нам подкинул бекенд и Android проект Почти любое мобильное приложение общается с бэкендом, а значит живёт по контракту — чаще всего в виде OpenAPI-схемы. Смотреть на неё удобнее всего в Swagger. Пока проект маленький, изменения в API можно отслеживать вручную. Но по мере роста схемы и команды ручная проверка становится дорогой и начинает регулярно ломаться. Автогенерация из OpenAPI решает проблему, но в многомодульном Android-проекте всплывают нюансы: где хранить код, как не тянуть лишнее, как вписать сгенерённый код в архитектуру. Статья: https://habr.com/ru/companies/dododev/articles/974248/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Foundation Models в iOS 26: разбор фреймворка для on-device LLM Речь пойдёт о Foundation Models Framework: что это, как устро
Foundation Models в iOS 26: разбор фреймворка для on-device LLM Речь пойдёт о Foundation Models Framework: что это, как устроено внутри, как с этим работать в реальном приложении и где у этого фреймворка границы применимости. Я постарался не пересказывать документацию Apple, а сосредоточиться на тех моментах, которые не очевидны при первом знакомстве и о которых я бы хотел узнать раньше, чем начал писать первый прототип. Статья: https://habr.com/ru/articles/1035022/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Live Activities: как мы сделали обновление без разрешения пользователя Если вы iOS‑разработчик и планируете внедрять Live Act
Live Activities: как мы сделали обновление без разрешения пользователя Если вы iOS‑разработчик и планируете внедрять Live Activities в своё приложение — эта статья для вас. Особенно если обновления LA инициируются событиями на сервере, а не действиями пользователя в приложении. Когда пользователь нажимает кнопку или запускает таймер — приложение само знает об этом и может обновить LA напрямую из кода. Но когда банк одобряет кредит или меняется статус заказа — это происходит на бэкенде, и только сервер знает о событии. В таких случаях без пушей не обойтись. Мы наступили на несколько граблей, нашли неочевидное решение и хотим сохранить вам пару недель отладки. Статья: https://habr.com/ru/companies/banki/articles/1026866/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Conduit - единый Swift SDK для LLM инференса Conduit — это типобезопасный фреймворк Swift для работы с облачными и локальными
Conduit - единый Swift SDK для LLM инференса Conduit — это типобезопасный фреймворк Swift для работы с облачными и локальными языковыми моделями через единый API. Что это вам даёт: • Быстрый локальный инференс: оптимизирован для Apple Silicon с первоклассной поддержкой MLX • Типобезопасный структурированный вывод: макросы Swift 6 проверяют сгенерированные формы во время компиляции • Одна поверхность для нескольких поставщиков: переключение между моделями Claude, GPT-4o и локальными моделями осуществляется с помощью небольшого изменения конфигурации • Провайдеры на основе акторов: модель параллельного выполнения остаётся явной и потокобезопасной Conduit на GitHubhttps://github.com/christopherkarani/Conduit Платформа: iOS ⭐️: 96 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Mission Impossible: как добиться 0 рекомпозиций в сложном кастомном UI Сотня рекомпозиций в секунду при скролле — это пригово
Mission Impossible: как добиться 0 рекомпозиций в сложном кастомном UI Сотня рекомпозиций в секунду при скролле — это приговор. Приговор батарее устройства, плавности анимаций и вашей репутации как инженера. Мы привыкли мыслить высокоуровневыми абстракциями: закинуть LazyColumn, добавить пару Modifier.padding и отправить в продакшен. Но что делать, когда стандартные компоненты начинают "захлебываться", а Layout Inspector горит красным от избыточных отрисовок? Статья: https://habr.com/ru/articles/1035388/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

📺 Видео и подкасты за неделю • (iOS Ru) SwiftUI: Scroll, Text и немного магии • (iOS Ru) Когда структуры в Swift — не твои б
📺 Видео и подкасты за неделю(iOS Ru) SwiftUI: Scroll, Text и немного магии(iOS Ru) Когда структуры в Swift — не твои бро(iOS En) KeyFramed OnBoarding Setup Animation Using SwiftUI(iOS En) How to Build an Infinite Scroll List Without Sacrificing Performance(iOS En) X App's New Slide Out Menu Using SwiftUI(And En) The Android Show | I/O Edition 2026(And En) Android Developers Office Hours - Offline First Architecture(And En) Why AI could make native app development great again(And En) 5 Tricks for Agentic Android Development (Make your agent output what you want!)(And En) Beyond LLMs: Kotlin Game AI(And En) Your Code is Eating Recompositions - Optimize it with THIS Trick(Crs Ru) Кастомим пейнтер через CustomPainter(Crs Ru) Мы пилили монолит. Много нас, а он один(Crs Ru) Проблемы геймификации мобильного приложения(Dev Ru) Новая эра мобильной разработки: запускаем LLM локально на телефоне(Dev Ru) От личной продуктивности к командной: сила шаблонизации в IDE(Dev Ru) Живая картинка: анимации и эффекты в кроссплатформенном BDUI-движке(Dev Ru) Камера в KasperskyOS Mobile(Dev Ru) Релокация разработчика в Австралию — Визы, поиск работы в IT, эмиграция(Mrk Ru) Структура пейвола, плейсменты и цены — полный разбор Прошлогодние видео: • (iOS Ru) Учим Metal и image processing лишь бы не верстать на iOS(iOS Ru) Race Condition: проблема гонки потоков — что это и как избежать?(iOS Ru) Под капотом iOS-крешей(iOS Ru) TextField с автодополнением(iOS Ru) SwiftUI-навигация: просто, нативно и декларативно(iOS Ru) Удивительный мир внутри .ipa(iOS Ru) Core Motion framework в финансовых приложениях(And Ru) Тестирование Compose по-новому: простота, надежность, гибкость(And Ru) Путешествие к центру Композиции(And Ru) Scout: новый фреймворк для ускоренного и безболезненного управления зависимостями(And Ru) Компиляторные плагины: модификация и анализ Сompose(And Ru) Как я code coverage внедрял да Gradle plugin для baseline писал

RvSystem Monitor - мониторинг ресурсов на Jetpack Compose и Rust RvSystem Monitor — это высокопроизводительное приложение для
RvSystem Monitor - мониторинг ресурсов на Jetpack Compose и Rust RvSystem Monitor — это высокопроизводительное приложение для мониторинга Android-системы, сочетающее в себе выразительные возможности Jetpack Compose с исключительной эффективностью Rust. Оно предоставляет информацию об низкоуровневом аппаратном обеспечении, сохраняя при этом современный и невероятно плавный пользовательский интерфейс. RvSystem Monitor устраняет разрыв между высокоуровневыми фреймворками пользовательского интерфейса и низкоуровневыми системными API. Используя бэкенд на основе Rust, он минимизирует накладные расходы на производительность, обычно связанные с частым опросом файлов ядра, таких как /proc и /sys. Этот гибридный подход позволяет осуществлять мониторинг частоты ЦП, драйверов графического процессора, состояния батареи и использования памяти в реальном времени без ущерба для быстродействия устройства. Созданное с использованием Material 3 Expressive, приложение предлагает визуально насыщенный интерфейс с адаптивными макетами и сложными переходами, что делает системную диагностику одновременно мощной и красивой. Стек: • Языки: Kotlin 2.3.21, Rust (Edition 2024), C (via libc) • Фреймворки: Jetpack Compose (BOM 2026.05.00), Material 3 Expressive, Hilt DI • Бридж: JNI via jni-rs, cargo-ndk • Инфраструктура: Gradle Kotlin DSL, Android NDK 30.0, Fastlane • Библиотеки: Retrofit 3.0, OkHttp 5.3, Coil 3.4, Jetpack DataStore RvSystem Monitor на GitHub: https://github.com/Rve27/RvSystem-Monitor Платформа: Android ⭐️: 23 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

10 фич Jetpack Compose, которые изменят ваш подход к разработке Android-приложений Вы всё ещё копируете и вставляете один и т
10 фич Jetpack Compose, которые изменят ваш подход к разработке Android-приложений Вы всё ещё копируете и вставляете один и тот же шаблонный код Compose, который использовали два года назад? Тогда вы разрабатываете медленнее, чем могли бы. В Jetpack Compose незаметно появлялись всё новые и новые фичи, которые снова делают разработку Android UI увлекательной. И знание этих возможностей превращает хорошее приложение в отличное. Статья: https://apptractor.ru/info/articles/10-jetpack-compose-features.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Советы и хитрости Xcode 16: скрытые возможности, которые экономят часы работы Средний iOS-разработчик, скорее всего, использу
Советы и хитрости Xcode 16: скрытые возможности, которые экономят часы работы Средний iOS-разработчик, скорее всего, использует лишь 30% того, что на самом деле умеет Xcode 16. А остальные 70%? Они прямо перед глазами — и ждут, чтобы сэкономить вам часы работы. Если вы обновились до Xcode 16 и подумали: «Да ничего не изменилось», — пристегнитесь. Этот материал для вас. Статья: https://apptractor.ru/info/articles/sovety-i-hitrosti-xcode-16.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Опенсорсим yx_navigation — декларативную навигацию для Flutter Навигация во Flutter — это постоянные компромиссы. Сначала каж
Опенсорсим yx_navigation — декларативную навигацию для Flutter Навигация во Flutter — это постоянные компромиссы. Сначала кажется всё просто: push и pop. А потом проект растёт, появляются табы, вложенные модули, диплинки — и выясняется, что каждый следующий экран открывается по‑разному, а pop() в одном месте ведёт себя не так, как в другом.  Статья: https://habr.com/ru/companies/yandex/articles/1032600/ Платформа: кроссплатформа/Flutter 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Xcode Instruments Trace Analyzer (MCP) - ИИ-анализатор для Instruments С помощью Xcode Instruments Trace Analyzer вы можете п
Xcode Instruments Trace Analyzer (MCP) - ИИ-анализатор для Instruments С помощью Xcode Instruments Trace Analyzer вы можете попросить Claude записать и проанализировать трассировки Xcode Instruments, выявить регрессии Time Profiler и получить практические рекомендации по оптимизации через локальный MCP-сервер. Фичи: • Автоматическое обнаружение узких мест — находит медленные функции, рассчитывает их влияние • Автоматическая запись — подключитесь к запущенному приложению, запишите трассировку, откройте ее в Instruments.app по умолчанию и проанализируйте за один вызов MCP • Многоинструментальный анализ — автоматически определяет данные о памяти, сети, энергии, распределении ресурсов и утечках • Рабочий процесс, ориентированный на зависания — фиксирует события зависания, ограничивает последующий анализ окном зависания и определяет код, его вызвавший • Регрессионный анализ — сравнивает сборки для выявления проблем с производительностью • Интеллектуальные рекомендации — предложения на основе шаблонов с примерами кода Swift • Интерфейс на естественном языке — просто спросите Claude на простом английском языке • Честная диагностика — сообщает о статусе поддержки, попытках экспорта и неэкспортируемых данных • Безопасная очистка трассировки — предварительный просмотр или удаление пакетов .trace после того, как пользователь закончит их проверку Этот проект является дополнением к Instruments, а не полной заменой Instruments.app. Он автоматизирует части, которые Apple предоставляет через xcrun xctrace: запись, экспорт TOC/XML/HAR, символизация, парсинг, отчеты, проверки на регрессию и безопасная очистка трассировки. Инструменты записи по умолчанию открывают сохраненный файл .trace в Instruments.app, поэтому области, отсутствующие в трассировке или недоступные для экспорта, можно проверить в графическом интерфейсе. Если шаблон или представление Instruments недоступны для экспорта, сервер сообщает об этом ограничении, вместо того чтобы создавать собственные данные. Xcode Instruments Trace Analyzer (MCP) на GitHub: https://github.com/jamesrochabrun/XcodeTraceMCP Платформа: iOS ⭐️: 14 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Типобезопасный EventBus на Swift В крупных iOS-приложениях обмен данными между различными компонентами часто становится более
Типобезопасный EventBus на Swift В крупных iOS-приложениях обмен данными между различными компонентами часто становится более сложной задачей, чем разработка самих компонентов. Когда один сервис завершает операцию, другой должен на нее отреагировать, нескольким экранам может потребоваться обновление данных, и передача всех зависимостей через всю навигационную структуру быстро превращается в излишнюю сложность. EventBus предоставляет дополнительный инструмент для слабосвязанных уведомлений, когда прямое владение добавило бы ненужную сложность. Цель этого компонента проста: позволить одной части приложения опубликовать событие, а другим частям приложения — подписаться на события определенного типа. Статья 🇺🇸: https://livsycode.com/best-practices/a-type-safe-eventbus-in-swift/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Литералы коллекций в Kotlin В Kotlin появилась долгожданная возможность использовать литералы коллекций, аналогично Python и
Литералы коллекций в Kotlin В Kotlin появилась долгожданная возможность использовать литералы коллекций, аналогично Python и JavaScript. Теперь можно создавать списки, множества и пользовательские коллекции с помощью квадратных скобок, что значительно упрощает синтаксис. Например, val numbers = [1, 2, 3, 4, 5] создает список, а val names: Set = ["Alice", "Bob", "Charlie"] – множество. Статья 🇺🇸: https://kt.academy/article/collection-literals Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Литералы коллекций в Kotlin В Kotlin появилась долгожданная возможность использовать литералы коллекций, аналогично Python и JavaScript. Теперь можно создавать списки, множества и пользовательские коллекции с помощью квадратных скобок, что значительно упрощает синтаксис. Например, val numbers = [1, 2, 3, 4, 5] создает список, а val names: Set = ["Alice", "Bob", "Charlie"] – множество. Статья 🇺🇸: https://kt.academy/article/collection-literals Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность