Android Broadcast
14.2K subscribers
3.53K photos
347 videos
11 files
5.92K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab
加入频道
Demeter - open source библиотека от разработчиков из Яндекс для замера производительности работы Android приложения во время работы, чтобы после анализировать проблемы

Библиотека предназначена для использования в дебажных сборках приложения. Добавление в прод на свой страх и риск!

#android #производительность #opensource
👍36
Статья с рассказом истории написания файлового менеджера для WearOS

🛒 Приложение в Google Play
🐱 Исходный код на GitHub

#android #wearos #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
🤖 История написания приложения Lissen (17м) - красивый плеер для аудиокниг с Audiobookshelf.

Исходный код не доступен, но автор осветил архитектуру приложения, модуляризацию, публикацию, решение проблем, локализацию

🛒 Скачать приложение из Google Play
🐱 Исходники на GitHub

#opensource #media3 #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Как найти неиспользуемые зависимости в Dagger Component (EN,11м)

С помощью Dagger SPI автор написал анализатор графа Dagger c целью поиска неиспользуемых зависимостей и описал подход в статье. Также подход можно использовать для визуализации графа зависимостей, считать разные метрики графа и пр.

🐱 Исходный код на GitHub
🔗 Альтернативная ссылка

#dagger #di #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍25
Escape Launcher - минималистичный опен сорс лаунчер для Android 8.1+

#android #opensource #пример
👍37
🤖 Demeter — инструмент для анализа производительности Android приложений

🔧 В опенсорс выложили инструмент для сбора метрик работы Android приложений - Demeter. Решение было разработано в рамках задач по улучшению скорости запуска и работы приложений. Команде не хватало информации, которую собирают готовые решения, поэтому ребята сделали свой инструмент.

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

Инструмент имеет плагинную архитектуру и открытый исходный код, что позволяет вам сделать собственные расширения. Из коробки доступны плагины:
• Замер времени выполнения методов и добавление большей информации для профайлера
• Подсчет количества рекомпозиций в Composable функциях
• Время инициализации зависимостей из Dagger графа
(предлагайте в комментариях, какие замеры было бы полезно сделать в ваших приложениях, а я буду делиться своими)

Demeter может работать через плагин Kotlin компилятора (только с исходным кодом в вашем проекте) и/или через модификацию байткода, где уже можно следить за кодом в подключённых библиотеках без исходного кода. Подробнее можно ознакомиться в статье.

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

❗️ ВАЖНО! Demeter можно интегрировать в продакшен билд, но НЕ НАДО этого делать. Весь замер должен производиться на тестовых сборках с включением опций профилирования через AndroidManifest.

Задавайте свои вопросы по библиотеке, и ещё сделаем отдельное интервью про производительность приложений и тем как за ней постоянно следить, выдерживая заданную планку качества работы.

#android #производительность #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28
AstraCrypt — это бесплатное опенсорс приложение с шифрованием данных в нем

Tech Stack
- Architecture: многомодульная Clean Architecture. Presentation Pattern - MVVM.
- Build: Gradle + Convention Plugin.
- Security: Google Tink.
- Database: AndroidX Room & Paging.
- Background: Kotlin Coroutines, AndroidX Work.
- Multimedia: Coil, Exif-Interface, AndroidX DocumentFile.
- UI Framework: Jetpack Compose & Metrics.
- Navigation: AndroidX Navigation-Compose.
- Unit Tests: Junit v4, Mockk, Robolectric, KotlinX Coroutines Test.
- Persistent Data: AndroidX DataStore, KotlinX Serialization, Kotlin Parcelize.
- DI: Dagger Hilt.
- Miscellaneous: Haptic Feedback.

🛒 Скачать на Google Play

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

#android #opensource #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🤔4
🐱 Библиотека Navigation - навигационная библиотека для Compose под Android, построенная вокруг состояния. Open source решение от подписчика канала (задавате вопросы в комментариях и поддержите Звездой на 🐱 GitHub)

// Создаем NavigationManager и передаем в него начальное состояние
val navigationManager = rememberNavigationManager(
NavigationState(
NavigationHost(
hostName = "Main",
initialDestination = FirstSampleDestination(),
)
)
)

@Parcelize
class FirstSampleDestination : ComposeDestination {

@IgnoredOnParcel
override val composable: @Composable (Destination) -> Unit = {
FirstSamplePane()
}
}

// инициализируем навигацию в Compose
Navigation(
navigationManager = navigationManager
) {
Pane(rememberNavigationHost("Main"))
}

// Пример перехода
navigationManager.execute(
ForwardCommand(SecondSampleDestination(text))
)

@Parcelize
data class SecondSampleDestination(val text: String) : ComposeDestination {

@IgnoredOnParcel
override val composable: @Composable (Destination) -> Unit = { destination ->
SecondSamplePane((destination as SecondSampleDestination).text)
}
}


Делитесь в комментариях как вам решение и я тоже пошел обсуждать

#compose #навигация #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔21🔥62
🚀 Пример Jetpack Media 3 Transformer API для создания приложения с обрезкой видео (EN,3м)

Разработчик решил реализовать простую затею - обрезать видео на основе выбранного отрезка текста из расшифровки дорожки. Использовал Jetpack Media3 и EventLabs API. ПО итогу вышло приложение 🐱 QuickTrim

🔗 Альтернативная ссылка тут

#android #androidjetpack #media3 #opensource #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥121🤯1
Forwarded from Compose Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
LazyTimetable - open source Jetpack Compose библиотека для реализация lazy расписания мероприятия или в школе/универе. Работает только на Android

#compose #android #opensource
🔥32👍3
🐱 MBCompass - open source приложение-компас на основе датчиков устройства. UI на Compose

#opensource #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍11
🐱 Deepr - это open source нативное Android приложение для организации и тестирования deeplink

Стек: Kotlin, Compose, Navigation3, Arch Components, MVVM, SQLDelight, Koin, Coroutines, Fastlane

#opensource #android #deeplink #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍332
🎉 Новый инструмент управления состоянием для Flutter - yx_state

Команда Городских сервисов Яндекса разработала и выложила в опенсорс новый state management для Flutter. Около года назад они выпустили yx_scope — фреймворк для Dependency Injection.

yx_state — это набор библиотек для управления состоянием в Dart‑ и Flutter‑приложениях, созданный с фокусом на простоту использования и гибкость настройки. В наборе три библиотеки:
👉 yx_state — библиотека для управления состоянием
👉 yx_state_flutter — набор виджетов для интеграции с Flutter
👉 yx_state_transformers — набор трансформеров для управления стратегиями выполнения операций.

Ключевые особенности:
👉 Простота. Методы вместо событий — никаких дополнительных классов и маппингов.
👉 Последовательность выполнения. Если вы несколько раз подряд вызовете методы, использующие handle, то каждая новая операция будет ждать завершения предыдущей, образуя очередь.
👉 Удобство. Можно дождаться выполнения операции привычным способом через await.
👉 Гибкие стратегии. По умолчанию все операции выполняются последовательно, но можно изменить поведение на другое, например, параллельное выполнение.
👉 Глобальные переопределения. Можно настроить поведение всех StateManager в приложении в одном месте, не изменяя код каждого отдельного StateManager.
👉 Обработка ошибок. У StateManager есть встроенный механизм для обработки исключений. Если вы не перехватываете исключения, они будут автоматически перехвачены и обработаны.
👉 Интеграция с Flutter. StateBuilder для перестройки UI при изменении состояния, StateListener — виджет для выполнения сайд‑эффектов без перестройки UI и другие.

В Яндекс Про этот инструмент уже использовался для создания сотен разных фич, теперь с ним может ознакомиться каждый — исходный код уже лежит на 🐱 GitHub.

❗️Примеры и подробный обзор в статье на Хабре.

#flutter #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔22🔥53👍2