AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.13K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Mocking Star - это мощный инструмент для имитации запросов, предназначенный для упрощения мокирования http-запросов, отладки работы с сетьюи использования UI-тестов для ваших приложений.

Ключевые особенности:

• Мокирвоание запросов: легко подделывайте запросы и тестируйте различные случаи с помощью сценариев
• Модификация запросов: модифицируйте перехваченные запросы, чтобы протестировать различные граничные случаи, что позволит вам оценить производительность приложения в различных условиях
• Поддержка отладки: используйте Mocking Star для отладки сетевых запросов на вашем mac
• Тестирование пользовательского интерфейса: интегрируйте Mocking Star в тесты пользовательского интерфейса, создавая надежную и контролируемую среду тестирования для проверки функциональности вашего мобильного приложения
• Плагины: пишите собственные плагины и расширяйте функциональность
• Клиенты для iOS и Android приложений

Mocking Star на GitHub: https://github.com/Trendyol/mockingstar
Платформа: тестирование
⭐️: 157
Видео и подкасты за неделю на @AppFiles

(iOS Ru) Исследуем мир фото и видео редакторов
(iOS Ru) Найди и исправь ошибки в коде — Задачи с собеседования
(iOS Ru) Запускаем приложения на своем iOS-симуляторе
(iOS Ru) Осторожно, Combine!
(iOS Ru) Позаботимся о памяти при использовании value-типов
(iOS Ru) Swift – больше, чем язык для iOS
(iOS En) Videos from Swift Heroes 2024
(iOS En) Staggered Animated View Using SwiftUI
(iOS En) Advanced SwiftUI Animations - PhaseAnimator
(iOS En) A case for Custom Bindings in SwiftUI: Essential Tips and Tricks
(iOS En) VoiceMemos Waveform Audio Scrubber Using SwiftUI - Waveform Visualization
(And Ru) Почему вам стоит включить Gradle Configuration Cache
(And Ru) Интеграция GeckoView в Dynamic Feature
(And Ru) Последнее слово в Android-навигации
(And En) Introduction to the SDK Runtime
(And En) How to Refactor Legacy Android Code With a Clear Step-By-Step Approach
(And En) Applying the Observer Pattern in Kotlin
(And En) Validating the chaos of RSS feeds with JetBrains’ Junie & some domain modeling sorcery
(Crs Ru) Kotlin не для Android
(Crs Ru) Как мы делали суперапп «Дилер онлайн», и что из этого получилось
(Crs Ru) Совместная работа Kotlin/Native GC и ARC в iOS
(Dev Ru) Правовой статус кода

Что было год назад:

(Crs Ru) Flutter Dev Podcast #45: Собеседования на позицию Flutter-разработчика
(Dev Ru) Пишем рекомендательную систему музыки на Java
(Dev Ru) Задача из Моего Собеседования в Amazon
(Dev Ru) Ада Лавлейс и программирование
Осознанный подход к метрикам
Kotlin и Jetpack Compose: портируем DOOM на смарт-часы

Я взялся за этот проект для Android Wear просто потому, что это интересно, и не так много людей видели, как на часах работает полноценная 3D‑игра. Однако я также хочу, чтобы проект был доступен и для «стандартного» Android. Таким образом, читатели, у которых нет смарт‑часов, смогут наслаждаться тем же кодом на своих смартфонах.

Статья: https://habr.com/ru/companies/otus/articles/894514/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
AnimationSequence - это мощная, но интуитивно понятная библиотека Jetpack Compose (поддерживает Android, iOS, Desktop и Web), разработанная для упрощения последовательной анимации в ваших приложениях для Android. С минимальными усилиями создавайте элегантные, отзывчивые и иерархические анимации, улучшая пользовательский опыт и оживляя пользовательский интерфейс.

AnimationSequence на GitHub: https://github.com/pauloaapereira/AnimatedSequence
Платформа: Android
⭐️: 48
👍1
SwiftUI. Навигация по строке в разделяемом координаторе

Небольшие ухищрения позволяют существенно прокачать навигацию в приложении, и, что самое главное, облегчить себе жизнь. В особенности, если дизайнер отличается необузданной фантазией.

Статья: https://habr.com/ru/articles/894936/
Платформа: iOS
Как мы ускоряли Android-сборку «селлера»

Скорость сборки проекта напрямую влияет на time to market продукта и (внезапно) удовольствие от процесса разработки. Если каких-то 50 лет назад время компиляции могло доходить до нескольких дней, и это считалось нормальным, то сейчас даже лишняя пара минут сборки проекта в Android Studio может заставить понервничать. Чтобы сберечь здоровье себе и CI, скорости сборки проекта нужно уделять внимание.

Статья: https://habr.com/ru/companies/ozontech/articles/894364/
Платформа: Android
Dagger 2 и жизненный цикл

У нас было приложение‑монолит с главным ComponentManager, где строился весь граф зависимостей. Файл был немаленький. Также во всех фрагментах необходимо было вручную создавать DI‑компонент и следить за его чисткой, а разработчики то и дело забывали про это или чистили неправильно.

Потом началась кампания по выносу фичёвого кода в отдельные модули. С каждым новым модулем всё чаще выстреливала циклическая зависимость, и приходилось писать обвязку (прокси‑класс). Главный ComponentManager оставался связующим звеном между фичёвыми модулями, через которое происходил переброс зависимостей, так что он всё ещё был большим и сложным. Иногда рефакторинг, связанный с перемещением кода из одного модуля в другой, вызывал многочасовую борьбу за нахождение пути решения проблемы «почему сборка никак не соберётся?». Иногда, чтобы доставить зависимость из одного модуля в другой, нужно было строить сложные конструкции, как при игре в «Твистер».

Вся эта увлекательная и мучительная игра продолжалась довольно долго, пока на помощь, как бы странно это ни звучало, не пришёл новомодный Compose. Тогда мы только начинали его осваивать, и я решил сделать небольшой pet‑проект, состоящий из двух экранов, с применением Compose для его изучения. Естественно, в этот проект подключил всё самое современное из библиотек, включая Dagger 2. Как обычно, немного повозившись с настройкой DI, в голове всплыла вся та боль, которую мы испытываем в нашем проекте.

Статья: https://habr.com/ru/companies/sberbank/articles/893856/
Платформа: Android
👍2
Неожиданно легко допустить утечку памяти в вашем приложении, даже не осознавая этого. Если утечки памяти остаются без внимания, они могут увеличить объем занимаемой памяти вашего приложения, что приводит к более быстрому завершению работы приложения в фоновом режиме. В тяжелых случаях ваше приложение может быть завершено даже во время работы на переднем плане.

Но проблема не только в использовании памяти. Утечка объектов может привести к неожиданным и скрытым ошибкам, которые гораздо сложнее отследить.

DriftCheck - это легковесная библиотека, которая поможет вам обнаружить циклы удержания и забытые ссылки, привязав ваши объекты к четко определенному жизненному циклу представлений UIKit/SwiftUI.

DriftCheck на GitHub: https://github.com/chrsmys/DriftCheck
Платформа: iOS
⭐️: 22
1
Как правильно организовать проект c модульной архитектурой в iOS-разработке

Модульный подход не просто разделяет приложение на более управляемые части, но и закладывает возможность многократного использования кода в других проектах, позволяет организовать разработку и тестирование функциональных блоков независимо от основного приложения.

В этом материале я расскажу про ключевые моменты модульной архитектуры в iOS-приложениях, инструментах для ее внедрения и применения в наших проектах.

Статья: https://habr.com/ru/companies/ru_mts/articles/892444/
Платформа: iOS
👍1
Tack Android - это современное приложение-метроном для Android с красивым интерфейсом, которое имеет все функции, необходимые для отработки музыкального произведения. Также доступно отдельное приложение Wear OS с тактильными битами и множеством опций прямо на вашем запястье.

Tack Android на GitHub: https://github.com/patzly/tack-android
Платформа: Android
⭐️: 261
1
Трекер поездов и погоды с Raspberry Pi и E-Ink

Разработчик Сэм Бронер создал проект с использованием Raspberry Pi и E-Ink дисплея для отслеживания расписания поездов и прогноза погоды. Устройство отображает время прибытия ближайших поездов линий F и G нью-йоркского метро, а также текущую дату, время и погодные условия. Дисплей разделен на четыре секции: заголовок с датой и временем, трекер поездов, информация о погоде и "погодная шкала" на следующие 12 часов. ​

Аппаратная часть проекта включает 9,7-дюймовый E-Ink дисплей с разрешением 1200x825 пикселей, подключенный к Raspberry Pi 4b. Для программирования использовалась модульная архитектура, состоящая из движка отображения, системы компоновки, сервисов данных и контроллера приложения. Особое внимание уделено оптимизации обновления дисплея и обеспечения стабильности работы. ​

Подробные инструкции, список необходимых компонентов и исходный код доступны в репозитории на GitHub.

Статья: https://sambroner.com/posts/raspberry-pi-train
Платформа: разработка
1
Конкатенация против интерполяции текста в SwiftUI

можно сказать, что хотя конкатенация текста хорошо работает для простых сценариев стилизации, лучше всего всегда отдавать предпочтение интерполяции для локализованного текста, чтобы обеспечить грамматически правильный и естественный перевод. В реальных проектах также рекомендуется включать комментарии, особенно для строк с определителями формата, чтобы переводчики понимали, что представляет собой каждый заполнитель.

Статья: https://apptractor.ru/info/articles/konkatenatsiya-protiv-interpolyatsii-teksta-v-swiftui.html
Платформа: iOS
👍1
Документируем код с помощью DocC

В настоящее время Apple предоставляет нам компилятор документации под названием DocC. DocC преобразует текст на основе Markdown в расширенную документацию для фреймворков и пакетов Swift. Сегодня мы изучим основы DocC, что позволяет нам предоставлять надлежащую документацию для нашего кода.

Статья: https://apptractor.ru/info/articles/docc.html
Платформа: iOS
👍2
Профилирование и бенчмаркинг Android-сборок

Оптимизация времени сборки — важный аспект эффективной разработки. В статье на ProAndroidDev рассмотрены инструменты для анализа и улучшения производительности сборки Gradle.

• Build Analyzer в Android Studio показывает длительность выполнения задач и предлагает рекомендации по оптимизации.
• Профилирование Gradle (--profile) создаёт локальный HTML-отчет с детальным разбором всех процессов.
• Gradle Scan (--scan) формирует удаленный отчёт, где можно увидеть влияние кеширования, зависимостей и сетевых операций.
• Gradle Profiler позволяет тестировать разные сценарии сборки, оценивать влияние изменений кода, ресурсов и макетов.

Использование этих инструментов поможет ускорить процесс разработки и выявить узкие места в вашем проекте.

Статья: https://proandroiddev.com/profile-benchmark-android-builds-b572948c5be5
Платформа: Android

Обязательно поставьте 👍, если хотите эту статью на русском.
1
VDAnimation предоставляет мощный, декларативный способ создания сложных анимаций в SwiftUI с минимальным кодом. Создавайте анимации последовательно, параллельно, с настраиваемым временем и кривыми.

VDAnimation на GitHub: https://github.com/dankinsoid/VDAnimation
Платформа: iOS
⭐️: 20
Как мы сделали дизайн-систему для мобильных устройств и TV

Наша цель — показать концепцию дизайн-системы, поэтому в статье мы сознательно опустили некоторые технические нюансы, не влияющие на суть. Например, мы не затрагиваем оптимизацию рекомпозиций, а в примерах компонентов вы не найдете Modifier. Используйте представленный код как отправную точку для собственных решений, а не как финальную реализацию.

Статья: https://habr.com/ru/companies/vk/articles/896134/
Платформа: Android
BundledSQLiteDriver: новый взгляд на SQLite в Android и Kotlin Multiplatform

BundledSQLiteDriver из библиотеки androidx.sqlite — это специальная сборка встраиваемой СУБД SQLite от команды разработчиков Android Jetpack, предназначенная для использования в Kotlin Multiplatform проектах. В этой статье мы рассмотрим особенности её использования по сравнению со встроенным в Android вариантом SQLite.

Статья: https://habr.com/ru/articles/896794/
Платформа: Android
1
Вы уже знаете, как настроить Gradle для работы с мультипроектными/мультимодульными сборками с Kotlin DSL и Spring Dependency Management? Gradle, Kotlin, Spring Skeleton - пример, в котором автор абстрагировал самые важные логические компоненты и упаковал их в отдельные модули buildSrc. Это делает сборку очень модульной и также очень понятной.

Gradle, Kotlin, Spring Skeleton на GitHub: https://github.com/mrclrchtr/gradle-kotlin-spring
Платформа: Android
⭐️: 135
👍2
Google AI Studio: макеты Figma -> iOS приложение на Gemini 2.5 Experimental

Мне случайно попалось задание с собеседования 2-х годичной давности на позицию "iOS разработчик" , в котором требовалось создать iOS приложения для бронирования номера в Отеле на основе макетов экранов из Figma, в которых использовалась "карусель" из фото.

Я решила попробовать использовать ИИ для разработки такого iOS приложения по макетам из Figma. Прямо скажем, что текст на прототипах экранов не очень отчетливо виден, так что ИИ предстоит его сначала прочитать, а уже потом создать iOS приложение.

Статья: https://habr.com/ru/articles/896498/
Платформа: iOS
👍1
Как я писал проводник для Wear OS и что из этого вышло

Однажды настал момент, когда мне было необходимо поработать с файлами на своих часиках. Я просто хотел создать папку, накидать туда фоточек со шпорами... классика, не правда ли?

Открыв Google Play я ожидал увидеть обилие разнообразного программного обеспечения, которое позволит мне это сделать. Каково же было моё удивление, когда я увидел всего два приложения для управления файлами на часах...

Статья: https://habr.com/ru/articles/897170/
Платформа: Android