fa
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

رفتن به کانال در Telegram

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

نمایش بیشتر
2 167
مشترکین
+424 ساعت
-27 روز
+730 روز
آرشیو پست ها
Этот проект создан для настройки и демонстрации анимаций Jetpack Compose на реальном устройстве Android, используя Compose HotSwan для  редактирования в реальном времени. Анимации физические: коэффициент затухания 0,6 против 0,8, сглаживание FastOutSlowIn против EaseOutBack, гравитация частиц 1100 против 1800. Ни один из этих параметров не отображается на экране. Вы ощущаете их на устройстве, и единственный способ найти правильное значение — это постоянно менять его и смотреть на результат. Jetpack Compose Animations - коллекция анимаций и лучших практик Каждый пример здесь представляет собой один composable файл с настраиваемыми значениями, указанными как vals в начале функции: длительность, сглаживание, жесткость, цветовые палитры, количество частиц. Вы меняете число, сохраняете файл, и запущенное приложение подхватывает новое значение в течение миллисекунд, без перестройки проекта или потери вашего места в стеке навигации. Идея этого цикла и то, как он меняет способ создания анимаций, описана в статье «Compose Animation: Hot Reload». Вы также можете запустить это приложение как обычный проект Compose без Compose HotSwan, но примеры построены вокруг цикла настройки параметров. В этом репозитории вы найдете множество самодостаточных примеров, охватывающих основные API анимации (animate*AsState, AnimatedContent, AnimatedVisibility, Animatable, rememberInfiniteTransition, updateTransition, SharedTransitionLayout), движение, управляемое жестами, симуляцию Canvas и физические эффекты. Jetpack Compose Animations на GitHub: https://github.com/skydoves/compose-animations Платформа: Android ⭐️: 195 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

10 оптимизаций Swift, которые улучшат производительность приложения Оптимизация производительности в Swift — это не про напис
10 оптимизаций Swift, которые улучшат производительность приложения Оптимизация производительности в Swift — это не про написание «умного» кода. Это про уменьшение лишней работы, контроль потока выполнения, про аккуратное управление памятью, повышение эффективности рендера и понимание того, что реально чувствует пользователь. Статья: https://apptractor.ru/info/articles/10-optimizatsiy-swift-kotorye-uluchshat-proizvoditelnost-prilozheniya.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

DiffableKit - декларативная обертка для Diffable Data Source DiffableKit - декларативная обертка над UITableViewDiffableDataS
DiffableKit - декларативная обертка для Diffable Data Source DiffableKit - декларативная обертка над UITableViewDiffableDataSource и UICollectionViewDiffableDataSource. Описывает разделы и элементы, вызывает метод set() — сравнение, анимация и обновление ячеек обрабатываются автоматически. Пример использования:
class SettingsController: DiffableTableController {

    override func viewDidLoad() {
        super.viewDidLoad()
        configureDiffable(
            sections: [
                DiffableSection(
                    id: "general",
                    header: DiffableTextHeaderFooter(text: "General"),
                    items: [
                        DiffableTableRow(text: "Theme", detail: "System", accessoryType: .disclosureIndicator)
                    ]
                )
            ],
            cellProviders: DiffableTableDataSource.CellProvider.default
        )
    }
}
DiffableKit на GitHub: https://github.com/sparrowcode/DiffableKit Платформа: iOS ⭐️: 132 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

📺 Видео и подкасты за неделю(iOS Ru) Фильтры для лица под капотом: Vision, сегментация и шейдеры в бою(iOS Ru) Один code style для всех: как укротить SwiftLint в масштабах компании(iOS Ru) Онлайн-определитель номеров: секреты реализации Live Caller ID для iOS(iOS En) Apple Wallet Card Animation Using SwiftUI(iOS En) SwiftUI macOS Toasts(iOS En) Building a Scalable Design System in SwiftUI: From Tokens to Components(iOS En) Production SwiftUI: Scalable Networking Architecture with Async Await(iOS En) iPod Style CoverFlow Carousel Using SwiftUI(iOS En) Border Beam Effect Using SwiftUI(And Ru) Как я искал и нашел работу в LinkedIn в 2026 году. Android(And Ru) Kotlin Flow и реальные задачи SberDevices: решение callback hell и backpressure(And Ru) Kotlin Flow через призму реальных задач в SberDevices: Игра Потоков(And Ru) Rich Errors: Checked Exceptions в Kotlin(And Ru) Подменяем зависимости не оставляя следов(And Ru) (Не)очевидные связи: визуализация бизнес-логики через код(And Ru) /e/OS: Android без слежки это реально?(And En) Android Got a New CLI Tool! (Game Changer For AI-First Setups!)(And En) Exposed 1.0 and Beyond(And En) How to supercharge android game development: vulcan, 16kb pages, & more(And En) How Google made their Android app start faster(And En) The 2026 Junior Developer Trap(And En) How to Handle Exceptions in Kotlin Flows(Crs Ru) KMP в X5 Tech: переход бигтеха на новые технологии(Crs En) AI-Driven APG 9 Migration using Android Skills - KMP Project(Dev Ru) Какие инструменты дизайн-системы помогут каждому(Dev Ru) Django — Python, web, framework(Dev Ru) AI Dev Podcast #2: Александр Поломодов, Сергей Баранов - Архитектура в эпоху ИИ(Dev En) Gemini CLI Essentials – Full Course(Dev En) Beginner's Guide to Mobile App System Design (+ Tips for Interviews!)(Mrk Ru) Вайбкодинг приложения: как выбрать нишу и дойти до стора

Kore - дизайн-система для Compose Multiplatform Kore — это система дизайна Compose Multiplatform, которая предоставляет краси
Kore - дизайн-система для Compose Multiplatform Kore — это система дизайна Compose Multiplatform, которая предоставляет красиво оформленные компоненты, помогающие создавать масштабируемые и согласованные дизайн-системы. Одно из главных преимуществ Kore заключается в том, что каждый компонент находится в своём собственном изолированном файле, что делает его очень простым для понимания, изменения и расширения. Если вы хотите полностью контролировать компонент, вы можете просто скопировать его и переименовать несколько элементов. Фичи: • Красивые предварительно оформленные компоненты пользовательского интерфейса • Простая настройка и расширяемость • Поддержка тем • Изолированная компонентная архитектура • Доступность (в основном еще в разработке) • Приложение-конструктор тем оформления Kore на GitHub: https://github.com/dev778g-me/Kore Платформа: Android/кроссплатформа ⭐️: 34 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

«У нас было 230 тысяч строк легаси-кода». Как мы изменяли приложение «Настройки» Спойлер: было жестко, но все закончилось хор
«У нас было 230 тысяч строк легаси-кода». Как мы изменяли приложение «Настройки» Спойлер: было жестко, но все закончилось хорошо. Теперь у нас есть все основания утверждать, что работа над «внутренностями» Android — это высшая лига. Статья: https://habr.com/ru/companies/yadro/articles/1031314/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Масштабирование навигации в Jetpack Compose: от простых приложений до реальной архитектуры Речь идёт не об изучении API. Речь
Масштабирование навигации в Jetpack Compose: от простых приложений до реальной архитектуры Речь идёт не об изучении API. Речь идёт о том, как структурировать навигацию таким образом, чтобы она не разваливалась по мере роста вашего приложения. Статья: https://apptractor.ru/info/articles/masshtabirovanie-navigatsii-v-jetpack-compose-ot-prostyh-prilozheniy-do-realnoy-arhitektury.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Compose AI Tools - помощь агентам c Compose Compose AI Tools рендерит элементы @Preview в формате PNG вне Android Studio, что
Compose AI Tools - помощь агентам c Compose Compose AI Tools рендерит элементы @Preview в формате PNG вне Android Studio, чтобы агенты ИИ могли видеть, что они изменяют. Работает с Jetpack Compose (Android, через Robolectric) и Compose Multiplatform Desktop (через ImageComposeScene). Отображение включает захват анимации с паузой (GIF или один кадр) и проверку доступности ATF с аннотированными наложениями. Также отображает ресурсы Android XML — векторные изображения, адаптивные иконки лаунчера, анимированные векторные изображения — и индексирует атрибуты иконок в AndroidManifest.xml, чтобы инструменты могли связывать строки манифеста с одним и тем же отрендеренным PNG. Для модулей, в которых отсутствуют подходящие ресурсы, функциональность автоматически отключается (no-op), поэтому интеграция плагина не требует дополнительных действий. Compose AI Tools на GitHub: https://github.com/yschimke/compose-ai-tools Платформа: Android ⭐️: 72 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Настройка анимаций Compose без пересборки: горячая перезагрузка для динамичного дизайна Статья показывает, как можно кардинально ускорить работу с анимациями в Jetpack Compose с помощью hot reload. Вместо привычного цикла «изменил параметр → пересобрал приложение → заново дошёл до нужного экрана», разработчик просто сохраняет изменения и сразу видит результат на устройстве. Это особенно важно для анимаций, где ключевую роль играет субъективное восприятие: длительность, плавность и отклик проще подбирать в реальном времени, чем угадывать через десятки перезапусков. Главная ценность подхода — возможность мгновенно экспериментировать: менять параметры spring, длительность, размеры или даже поведение кастомных Canvas-анимаций и сразу видеть эффект без потери состояния экрана. В некоторых случаях изменения применяются вообще без пересборки благодаря literal patching — значения обновляются прямо в памяти приложения за доли секунды. В итоге разработка становится более интерактивной, а сами анимации — заметно качественнее, потому что их действительно «нащупывают», а не подбирают вслепую. Статья 🇺🇸: https://blog.kulman.sk/running-local-llm-coding-server/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Прокачиваем локальный поиск на Dart и Flutter Иногда нужно реализовать поиск по данным без участия бэкенда. Самый простой вар
Прокачиваем локальный поиск на Dart и Flutter Иногда нужно реализовать поиск по данным без участия бэкенда. Самый простой вариант — обычное вхождение строки — не прощает опечаток. Одна лишняя буква, и поиск выдает пустоту. В статье разберем, как усовершенствовать этот процесс: научим поиск обрабатывать ошибки и сортировать результаты по степени совпадения. Статья: https://habr.com/ru/articles/1031212/ Платформа: кроссплатформа/Flutter 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

За два месяца вместо года: как мы переписали 97 тысяч строк кода с Objective-C на Swift Миграция большого iOS-проекта с Objec
За два месяца вместо года: как мы переписали 97 тысяч строк кода с Objective-C на Swift Миграция большого iOS-проекта с Objective-C на Swift кажется понятной задачей ровно до тех пор, пока не начинаешь считать объём. В нашем случае это были 10 тысяч файлов, сотни тысяч строк кода и постоянная необходимость не останавливать развитие продукта. Ручной подход работал слишком медленно, поэтому мы начали автоматизировать миграцию с помощью LLM — и в итоге превратили её из бесконечного техдолга в воспроизводимый процесс. Статья: https://habr.com/ru/companies/yandex/articles/1028494/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Sherlock - документация Apple в виде навыка для ИИ Sherlock - документация для разработчиков Apple для Claude Code. Sherlock
Sherlock - документация Apple в виде навыка для ИИ Sherlock - документация для разработчиков Apple для Claude Code. Sherlock отвечает на вопросы о фреймворках Apple в Claude Code, используя только локальный индекс. Claude постоянно галлюцинирует про API Apple. Выдуманные названия методов, неправильные метки параметров, устаревшие символы, представленные как актуальные. Решение проблемы — стабилизация: дать ИИ локальную, доступную для поиска копию developer.apple.com и навык, который подскажет, когда именно нужно искать информацию. Sherlock индексирует около 70 000 символов из Swift, SwiftUI, UIKit, Foundation, Combine, Core Data, SwiftData, Core ML, MapKit, AVFoundation и других фреймворков в базу данных SQLite FTS5, а затем предоставляет их ИИ в качестве MCP-инструмента. Назван в честь оригинального приложения поиска Apple для macOS (и связанной с ним мифологии разработчиков). Sherlock на GitHub: https://github.com/hotfix-jobs/sherlock Платформа: iOS ⭐️: 8 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Понимаем indirect в Swift Swift — это язык, который ценит ясность и безопасность. В большинстве случаев его возможности стано
Понимаем indirect в Swift Swift — это язык, который ценит ясность и безопасность. В большинстве случаев его возможности становятся очевидными, как только вы увидите их в действии. Ключевое слово indirect не относится к таким возможностям. На первый взгляд, оно кажется малопонятным. Вы редко встречаете его в повседневной разработке приложений. Но когда оно вам действительно нужно, ничто другое его не заменит. Статья: https://apptractor.ru/info/articles/indirect.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Почему я написал Paginator вместо Paging 3 Это статья от автора библиотеки, поэтому нейтральным разбор не будет. Но это и не
Почему я написал Paginator вместо Paging 3 Это статья от автора библиотеки, поэтому нейтральным разбор не будет. Но это и не рассказ про конкретный проект — а разбор задач, на которых, на мой взгляд, Paging 3 начинает буксовать, и того, как Paginator устроен, чтобы эти задачи закрывать. KMP-библиотека пагинации для Android, iOS, JVM и Desktop. Ниже — почему она появилась именно как отдельная библиотека, а не как fork или обёртка над Paging 3. Статья: https://habr.com/ru/articles/1030294/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Xcode Simulator — Ускоряем прогон тестов на CI + Fastlane Речь пойдет про наш любимый fastlane, если вы являетесь специалисто
Xcode Simulator — Ускоряем прогон тестов на CI + Fastlane Речь пойдет про наш любимый fastlane, если вы являетесь специалистом по Maraphon или Emcee, то, возможно, мои советы для вас окажутся больше вредными / нелепыми / и порой даже забывными - не обессудьте. Статья: https://habr.com/ru/articles/1030150/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

ParticleEmitter - эффекты частиц для Android на базе Jetpack Compose ParticleEmitter - библиотека рендеринга частиц Jetpack Compose для Android. Создавайте красивые анимации частиц на основе физических принципов с помощью двух подходов, оптимизированных для различных сценариев использования. Фичи: • два движка рендеринга: ParticlesEmitter — основан на layout-системе Jetpack Compose, поддерживает кастомные частицы через @Composable (текст, изображения, фигуры); CanvasParticleEmitter — рендеринг через Canvas, высокая производительность (1000+ частиц) • физическая симуляция: направленная гравитация, силы, угол, вращение • настраиваемая гравитация: можно управлять силой и направлением, чтобы создавать эффекты падающего конфетти, дождя, всплывающих пузырей, ветра и т.д. • гибкие формы частиц: круги, изображения с tint’ом, текст, кастомные path’ы • поведение на границах: частицы могут отскакивать, прилипать или «зацикливаться» при достижении границ экрана • режимы смешивания (blend modes): additive, screen и другие эффекты для свечения частиц • оркестрация нескольких эмиттеров: последовательный или параллельный запуск через MultiEmitter • формы источников эмиссии: точка, овал, прямоугольник, вертикальные/горизонтальные линии ParticleEmitter на GitHub: https://github.com/PiotrPrus/ParticleEmitter Платформа: Android ⭐️: 51 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Подсветка синтаксиса на Android — интеграция движка Shiki в Compose Однажды на выходных я задумался, как бы выглядела подсвет
Подсветка синтаксиса на Android — интеграция движка Shiki в Compose Однажды на выходных я задумался, как бы выглядела подсветка синтаксиса в Jetpack Compose, если бы я создал её с нуля сегодня — без WebView, без HTML-шаблонов. В 2020 году я использовал подход WebView + PrismJS/highlight.js, и он работал, но всегда казалось немного неудобным встраивать браузерный движок только для отображения цветного текста. Теперь, когда Compose стал стандартом для создания пользовательского интерфейса, мне хотелось чего-то, что органично вписывалось бы в общую концепцию. Это любопытство привело меня к исследованию Shiki, ограничений WebAssembly, Cloudflare Workers, к созданию небольшого микросервиса и, в конечном итоге, ко второму подходу с использованием грамматик TextMate, работающих полностью на устройстве. Вот как в итоге заработали оба варианта. Статья: https://apptractor.ru/info/articles/podsvetka-sintaksisa-na-android-integratsiya-dvizhka-shiki-v-compose.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

ScanNow - быстрый и простой сканер для iOS ScanNow - быстрое и простое приложение для сканирования документов на iOS. Фичи: •
ScanNow - быстрый и простой сканер для iOS ScanNow - быстрое и простое приложение для сканирования документов на iOS. Фичи: • Быстро и легко сканируйте документы • Настраивайте параметры сканирования по мере необходимости, включая имя файла и формат отправляемого документа • Отправляйте отсканированные документы в любое удобное для вас место ScanNow на GitHub: https://github.com/WezSieTato/ScanNow Платформа: iOS ⭐️: 60 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

ScanNow - быстрый и простой сканер для iOS

Практики Swift, которые помогут вам выглядеть Senior разработчиком В этой статье мы обсудим, как писать код на Swift, который
Практики Swift, которые помогут вам выглядеть Senior разработчиком В этой статье мы обсудим, как писать код на Swift, который будет выглядеть так, как будто его написал опытный Senior разработчик. 1. Отдавайте предпочтение value-типам вместо reference-типов 2. Грамотно работайте с Optional 3. Используйте расширения, чтобы поддерживать чистоту кода 4. Отдавайте предпочтение let вместо var 5. Документируйте код 6. Делайте функции короткими и сфокусированными 7. Пишите декларативный код 8. Заменяйте цепочки if на switch Статья: https://apptractor.ru/info/articles/praktiki-swift-kotorye-pomogut-vam-vyglyadet-senior-razrabotchikom.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность