AppFiles - Mobile Development
الذهاب إلى القناة على Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
إظهار المزيد2 163
المشتركون
-124 ساعات
لا توجد بيانات7 أيام
+130 أيام
أرشيف المشاركات
Создание тепловой карты пульса на маршруте с помощью SwiftUI + HealthKit
Большинство беговых приложений показывают среднюю частоту пульса. «Молодец, пульс был 148 ударов в минуту». Отлично. Но где во время пробежки у вас начались проблемы? Где ваше тело было перегружено?
Вот о чём этот пост: как превратить плоскую статистику в полноцветное повествование. Мы создаём тепловую карту на базе MapKit, используя данные пульса HealthKit, и синхронизируем их с вашим GPS-маршрутом, чтобы точно показать, где вы отдыхали (синий), а где были на грани потери сознания (красным).
Статья: https://apptractor.ru/info/articles/sozdanie-teplovoy-karty-pulsa-na-marshrute-s-pomoschyu-swiftui-healthkit.html
Платформа: iOS
Снепшот-тестирование в iOS: полное руководство для UIKit и SwiftUI
В мире iOS-разработки визуальные ошибки могут легко проскользнуть мимо обычных unit-тестов, особенно если проект поддерживает как UIKit, так и SwiftUI. Snapshot-тестирование — это мощный инструмент, который автоматически фиксирует и сравнивает внешний вид ваших компонентов во всех состояниях и на всех устройствах. Такой подход помогает мгновенно выявлять регрессии — например, «исчезнувшую» кнопку на iPad или некорректное отображение текста в тёмной теме — ещё на стадии CI/CD, прежде чем баги попадут к пользователям.
Грамотно организованные snapshot-тесты позволяют проверять UI-компоненты с разными параметрами и средами, а интеграция с инструментами, вроде ViewInspector в SwiftUI, делает проверку более гибкой и надёжной. Благодаря автоматическим тестам и удобному хранению эталонных изображений команда может оперативно реагировать на изменения, согласовывать внешний вид с дизайнерами и поддерживать качество приложения на высоте. В 2025 году snapshot-тестирование становится стандартом для визуального контроля и причиной, по которой пользователи видят только корректно работающий, красивый интерфейс.
Статья: https://swift-pal.com/ios-snapshot-testing-complete-guide-for-uikit-and-swiftui-apps-817af4136896 (как читать ©)
Платформа: iOS
BroadcastReceiver уходит. Что ждёт нас в 2025 году?
BroadcastReceiver долгое время был неотъемлемой частью Android для обработки событий и фоновых задач, но сегодня становится всё менее актуальным. Современные ограничения Android — режим Doze, новые требования к безопасности и оптимизация батареи — делают BroadcastReceiver ненадёжным инструментом для обычных фоновых задач: события перестают приходить, синхронизация срабатывает не у всех пользователей, а поддержку приходится постоянно дорабатывать после каждого обновления ОС.
Вместо «уставшего» BroadcastReceiver стоит использовать WorkManager для надежных, периодических фоновых операций — он устойчив к Doze, оптимизирует заряд, не теряет задачи после перезагрузки и работает на всех актуальных версиях Android. Для долговременных, заметных пользователю процессов лучше подойдет ForegroundService, для внутренних событий — SharedFlow или EventBus, а для push-уведомлений — FCM. Новая эпоха Android требует выбирать инструмент под задачу, а не надеяться на универсальность старых решений.
Статья: https://medium.com/@vaibhav.shakya786/broadcastreceiver-is-tired-heres-what-s-next-in-2025-0f047589aeb5
Платформа: Android
Scrcpy-GUI - графический интерфейс для Scrcpy
Scrcpy-GUI — это понятный графический пользовательский интерфейс, созданный на основе .NET MAUI, для взаимодействия со scrcpy. Scrcpy — это утилита командной строки, позволяющая транслировать и управлять Android-устройством на ПК.
С Scrcpy-GUI вы можете:
• Легко генерировать сложные аргументы командной строки scrcpy, не тратя время на изучение официальной документации.
• Получить полный контроль над виртуальными дисплеями, включая возможность запускать приложения.
• Сохранять и управлять сочетаниями клавиш для ваших любимых команд с возможностью локальной загрузки их на ПК.
• Подключаться устройства по беспроводной сети одним щелчком мыши — без лишних хлопот.
• Транслировать видео с нескольких устройств Android одновременно без лишних усилий.
Scrcpy-GUI на GitHub: https://github.com/GeorgeEnglezos/Scrcpy-GUI
Платформа: Android
⭐️: 156
Лучший способ создания компонентов SwiftUI: @ViewConfigurable
SwiftUI делает настройку представлений лёгкой — пока вы не создадите собственные повторно используемые компоненты. Мы создали макрос для решения этой проблемы.
Статья: https://apptractor.ru/info/articles/viewconfigurable.html
Платформа: iOS
Proxy-паттерн в Android
Как Android-разработчики, мы постоянно сталкиваемся со сложными в обработке объектами. Представьте себе загрузку огромного изображения высокого разрешения — это медленно и потребляет много памяти. Или как насчёт функции, которая должна быть доступна только премиум-пользователям? Вам нужен способ проверки прав доступа перед запуском кода.
В таких ситуациях вам нужно добавить уровень косвенности. Вам нужен заменитель, суррогат, который будет управлять реальным объектом за вас. Именно это и обеспечивает шаблон проектирования Proxy.
Статья: https://trricho.medium.com/the-proxy-pattern-in-kotlin-androids-smart-placeholder-b94b7d22b27f (как читать ©)
Платформа: Android
React Native + RxDB: как сделать Local-First приложение, которое не сдохнет без связи
Представьте: вы создали приложение, которое работает ровно тогда, когда у пользователя есть интернет. Нет интернета? Поздравляю, у вас мёртвое приложение и куча недовольных пользователей. Ну или курьер, который стоит как дурак и не может выполнять свою работу, потому что приложение зависло. Бизнес стоит, а вы сидите и ждёте, что всё само решится (нет).
Если хотите перестать выглядеть полными профанами и дать юзерам что-то, что не падает при первом же обрыве связи — welcome to local-first apps. Здесь всё про то, чтобы сделать локальную базу, а синхронизация — это такая себе приятная бонусная функция, а не священный грааль.
Статья: https://habr.com/ru/articles/935798/
Платформа: кроссплатформа
Избегайте ошибок SwiftUI с ViewModel
Когда я впервые перешёл с UIKit на SwiftUI, одной из самых неприятных ошибок, с которыми я столкнулся, была следующая:
Моя ViewModel постоянно неожиданно ресетилась.
Казалось, это происходит случайно, пока я не понял разницу между
@StateObject и @ObservedObject.
Статья: https://apptractor.ru/info/articles/izbegayte-oshibok-swiftui-s-viewmodel.html
Платформа: iOSRepost from Mobile Development by AppTractor
🚙 Как Flutter работает в автомобильной электронике и IoT-устройствах?
➡️ Присоединяйтесь к открытому вебинару «Flutter в Automotive & Embedded: создаём приложение для автомобиля» 12 августа в 20:00 МСК. На уроке разберем:
— Создание Yocto-сборок с Flutter для embedded Linux и ARM.
— Запуск Flutter без X11, прямо в framebuffer, для минимальных ресурсов.
— Разработку multi-display интерфейсов для автомобилей: кластер, HUD, мультимедиа.
— Интеграцию с CAN-шиной для работы с реальными данными автомобиля.
❗️ Этот урок — отличный тест-драйв курса «Flutter Mobile Developer» от OTUS.
🔴 Записаться на вебинар → https://otus.pw/zdJ3/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
PotentCodables - мощный набор реализаций и расширений для Codable
PotentCodables предоставляет стандартные энкодеры и декодеры для фреймворка Swift
Codable. Кроме того, все кодировщики и декодировщики предоставляют расширенные возможности для упрощения и повышения эффективности работы с форматами данных.
Фреймворк призван решить четыре основные проблемы, связанные с системой Swift Codable:
• Разрешить декодирование и/или кодирование значений неизвестной структуры (например, любого закодированного значения)
• Поддержка кодирования/декодирования полиморфных типов с сохранением возможности реализации Codable в Swift
• Снижение сложности и объёма кода, необходимого для реализации и тестирования новых форматов сериализации
• Предоставить библиотеку полнофункциональных реализаций популярных форматов сериализации
PotentCodables на GitHub: https://github.com/outfoxx/PotentCodables
Платформа: iOS
⭐️: 77Я сделал $100K на iOS-приложении. Apple забрала 30%. Остальное ушло на исправление ошибок и выгорание.
100 тысяч долларов дохода от приложения — это звучит заманчиво в твите.
Но в реальной жизни это означает бессонные ночи, постоянную поддержку и непредвиденные расходы. Это означает баланс между ростом и психологическим здоровьем и умением говорить «нет» — даже собственным идеям новых функций.
Я рад, что сделал это. Но я бы не назвал это лёгкими деньгами.
Если вы планируете запустить что-то самостоятельно, убедитесь, что вы готовы не только разрабатывать, но и поддерживать, чинить, общаться с пользователями и улучшать.
Вот это и есть настоящая работа. И вот где настоящие затраты.
Статья: https://apptractor.ru/info/articles/ya-sdelal-100k-na-ios-prilozhenii-apple-zabrala-30-ostalnoe-ushlo-na-ispravlenie-oshibok-i-vygoranie.html
Платформа: инди-разработка
Kick: Kotlin Inspection & Control Kit — единый модульный инструмент отладки прямо в приложении
При разработке и тестировании приложений порой требуется заглянуть под капот - проанализировать HTTP-трафик или проверить кэш данных в базе данных. Ранее для этих целей мы использовали Inspektify и Delight SQL Viewer. Но в какой-то момент нам понадобился еще и удобный доступ к логам приложения и тащить ещё одно отдельное решение не хотелось. Был нужен один инструмент, который объединит всё самое необходимое в одном месте. Так появился Kick — расширяемый модульный набор инструментов, позволяющий разработчикам и тестировщикам легко инспектировать приложение.
Статья: https://habr.com/ru/articles/932992/
Платформа: разработка
Androidx Splashscreen Compose - эта библиотека позволяет создавать потрясающие анимированные экраны-заставки (спелешскрины) с помощью Compose без лишних хлопот. С ней вы получаете анимации Compose, плавные переходы, полный контроль над временем и анимацией, работу с AndroidX SplashScreen.
Androidx Splashscreen Compose на GitHub: https://github.com/kibotu/androidx-splashscreen-compose
Платформа: Android
⭐️: 9
Androidx Splashscreen Compose - эта библиотека позволяет создавать потрясающие анимированные экраны-заставки (спелешскрины) с помощью Compose без лишних хлопот. С ней вы получаете анимации Compose, плавные переходы, полный контроль над временем и анимацией, работу с AndroidX SplashScreen.
Androidx Splashscreen Compose на GitHub: https://github.com/kibotu/androidx-splashscreen-compose
Платформа: Android
⭐️: 9
📺 Видео и подкасты за неделю на @AppFiles
•
(iOS En) How to support iOS 26 without breaking glass
• (iOS En) What's New in Xcode 26
• (iOS En) iOS 26 Concentric Rectangle
• (And En) Multimodal Gemini in Android Studio: AI-powered UI development
• (And En) Now in Android: 120 – Android Canaries, Agentic AI, 16 KB page size requirements, and more
• (And En) Consume a Runtime-Enabled SDK
• (And En) Getting your Gradle setup right, at the right time
• (And En) Context-sensitive resolution in Kotlin 2.2
• (And En) Code like a Senior Dev with Firebender – Android Studio AI Plugin
• (And En) Gradle Tutorial - Shared Build Logic
• (Crs En) Swift Export - A Peek Under the Hood
• (Dev Ru) Кэширование для мобильных приложений: кому, зачем, когда?
• (Dev Ru) Локализация приложения глазами переводчика
• (Dev Ru) AI меняет всё: инсайды от Яндекса и Дзена
• (Dev Ru) Математика в основе ИИ — матрицы, тензоры, deep learning
• (Dev En) How to Build Scalable AI Agents with Kotlin, Ktor & Koog
• (Dev En) Google Cloud Associate Cloud Engineer Course [2025]
Прошлогодние видео:
• (iOS Ru) Combine с нуля — реактивщина это просто
• (Dev Ru) Тулкиты кодогенерации Android vs iOS
• (Dev Ru) Ускоряем карьерный рост в FAANG
• (Dev Ru) Алгоритмы — самый провальный этап собеседований (+ все собеседования)Open SwiftUI Animations - библиотека готовых эффектов и анимаций для SwiftUI. Этот репозиторий вдохновит вас на добавление полезных и выразительных анимаций SwiftU в ваг проект. В нем есть анимации загрузки/прогресса, циклические, анимации включения/выключения, входа/выхода, затухания, вращения и фоновые анимации, а кроме того потрясающие пружинные анимации.
Open SwiftUI Animations на GitHub: https://github.com/amosgyamfi/open-swiftui-animations?tab=readme-ov-file
Платформа: iOS
⭐️: 38
Карточка с частичным размытием в SwiftUI
В последнее время я часто вижу, как дизайнеры создают карточки товаров, в которых часть карточки, чаще всего нижняя, размыта, чтобы текст и описание было легче читать.
Статья: https://apptractor.ru/info/articles/kartochka-s-chastichnym-razmytiem-v-swiftui.html
Платформа: iOS
День, когда моё Android-приложение чуть не убило телефоны пользователей (и как я это исправил)
Было 2 часа ночи, когда мой телефон начал безостановочно вибрировать. Slack, почта и несколько взволнованных звонков от продакт-менеджера. Наше новостное приложение, которое месяцами работало стабильно, внезапно начало крашиться на тысячах устройств по всему миру.
В одном из отзывов пользователи писали: «Приложение съедает всю память телефона. Телефон стал совершенно нерабочим».
За ту ночь я узнал об управлении памятью в Android больше, чем за годы чтения учебников.
Статья: https://apptractor.ru/info/articles/den-kogda-moyo-android-prilozhenie-chut-ne-ubilo-telefony-polzovateley-i-kak-ya-eto-ispravil.html
Платформа: Android
Как я сделал универсальный Skeleton‑View с shimmer‑эффектом в SwiftUI
Я — iOS‑разработчик, и недавно в своём приложении столкнулся с задачей: нужно было красиво показывать placeholder‑загрузку интерфейса. Думал использовать стандартный .redacted — но он неудобен: нет анимации, мало кастомизации. Либо подгружать тяжелую библиотеку вроде SwiftUI‑Shimmer. Решил: сделаю свой легковесный и гибкий подход — и расскажу вам, как это получилось.
Статья: https://habr.com/ru/articles/934756/
Платформа: iOS
FloatingTabBar - плавающая панель вкладок на Jetpack Compose, претворяющаяся "жидким стеклом" из iOS 26.
Фичи: развёрнутое и свернутое состояния, настраиваемое поведение при прокрутке, можно добавлять кастомные аксессуары (например, медиаплеер), настраиваемые цвета, формы и размеры.
FloatingTabBar на GitHub: https://github.com/elyesmansour/compose-floating-tab-bar
Платформа: Android
⭐️: 624
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
