AppFiles - Mobile Development
前往频道在 Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
显示更多2 165
订阅者
-324 小时
-27 天
+430 天
帖子存档
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
Распутываем навигацию SwiftUI
Если бы SwiftUI был парком развлечений, навигация была бы домом с привидениями — сначала захватывающе, но быстро понимаешь, что не знаешь, как из него выбраться.
Apple подарила нам NavigationView, а затем деликатно похлопала по плечу, выпустив новенький блестящий NavigationStack. Добавьте NavigationPath, onOpenURL и всеми любимый загадочный ящик — диплинкинг — и теперь даже опытные iOS-разработчики выглядят как тот мем с парнем, вокруг которого парят математические уравнения.
Но не волнуйтесь. Создаёте ли вы простое приложение с несколькими экранами или проектируете динамический поток с URL-адресами и кастомными типами данных, SwiftUI действительно может сделать простую навигацию. Как только вы разберётесь с инструментами (и будете знать, когда с ними не стоит бороться), всё станет на свои места.
Статья: https://apptractor.ru/info/articles/rasputyvaem-navigatsiyu-swiftui.html
Платформа: iOS
Игра в SPM
На Хабре уже немало статей об опыте перехода на Swift Package Manager — успешных и не очень. В моем случае переезд прошел удачно, но на каждом шагу возникали проблемы, которые было сложно нагуглить или вообще найти решения. Поэтому я решил собрать все накопленные знания и поделиться ими в этой статье, надеясь, что другие разработчики сэкономят кучу времени.
Статья: https://habr.com/ru/articles/857364/
Платформа: iOS
Swipe to Pay, или Как мы переписали слайдер оплаты на Compose
Помните компонент
MotionLayout? С его помощью можно просто реализовывать сложные анимации, в том числе и основанные на жестах.
У нас в Дринките был компонент, сделанный на MotionLayout — слайдер быстрой оплаты в меню. Он появляется, когда пользователь добавляет продукты в корзину.
С помощью этого компонента можно быстро оплатить свой заказ или перейти в корзину, тапнув по нему. Для того, чтобы анимировать его, MotionLayout подходил отлично.
Но шло время, баги копились, поддерживать элемент становилось всё сложнее, да и слайдер нуждался в новом функционале.
Статья: https://habr.com/ru/companies/dododev/articles/933278/
Платформа: Android
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
