#полезное
😘 Простой виджет движения для разблокировки на Kotlin
🟠 полностью векторный, никаких .png
🟠 поддерживаются разные анимации
🟠 легко интегрируется (просто строка компиляции gradle)
🟠 подстраивается под тему приложения
🟠 можно использовать из коробки, всё будет работать
Гитхаб
👉 Новости 👉 База вопросов
dependencies {
implementation "com.ncorti:slidetoact:0.11.0"
}Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
👋 Советы по сканированию DataMatrix
🟠 Google ML Kit оказался производительнее ZXing по нашим замерам. Осталась проблема с тем, что ML Kit не распознаёт белые DM на чёрном фоне.
🟠 Самое простое решение оказалось самым эффективным: для сканирования инвертированных DataMatrix нужно инвертировать Bitmap. Однако всё не так просто.
🟠 Самый эффективный способ инвертировать Bitmap — использовать ColorMatrix и нарисовать Bitmap на Canvas. Пример оставлю в комментариях.
🟠 Другая проблема заключалась в том, что CameraX отдаёт изображение в формате YUV, и стандартный метод конвертации ImageProxy в Bitmap может упасть с ошибкой UnsupportedOperationException. Тут два пути решения: написать свой конвертер или выставить в настройках камеры OutputImageFormat в формат RGBA.
🟠 А чтобы одновременно работать с обычными и инвертированными DM, лучше не использовать один ImageProxy, а сделать разные анализаторы и раскидывать кадры между ними по очереди, объединив их с помощью паттерна «Компоновщик».
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Stack Overflow
Converting YUV_420_888 to JPEG and saving file results distorted image
I've used the ImageUtil class provided in https://stackoverflow.com/a/40152147/2949966 within my git repo: https://github.com/ahasbini/cameraview/tree/camera_preview_imp (note the implementation is...
#полезное
❤️🔥 Reaktive — кроссплатформенная реализация Reactive Extensions для Kotlin. Проект позволяет использовать реактивные потоки данных на всех поддерживаемых платформах Kotlin Multiplatform, включая iOS, JS и Native.
Инструмент имеет глубокую интеграцию с корутинами и RxJava, что делает переход между разными парадигмами асинхронного кода практически seamless. Поддержка нового memory model в Kotlin/Native открывает возможности для настоящего многопоточного программирования.
Гитхаб
👉 Новости 👉 База вопросов
Инструмент имеет глубокую интеграцию с корутинами и RxJava, что делает переход между разными парадигмами асинхронного кода практически seamless. Поддержка нового memory model в Kotlin/Native открывает возможности для настоящего многопоточного программирования.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #android
🤔 В чём отличие регистрации BroadcastReceiver в манифесте и в коде (runtime-регистрация)?
При объявлении в манифесте приёмник работает даже если приложение не запущено (до Android 8.0, с ограничениями в 0+), а runtime-регистрация (
👉 Новости 👉 База вопросов
При объявлении в манифесте приёмник работает даже если приложение не запущено (до Android 8.0, с ограничениями в 0+), а runtime-регистрация (
registerReceiver ) действует только пока жив активный компонент (Activity/Service) и служит для динамических фильтров. Manifest-регистрация удобна для системных событий, runtime - для событий в пределах экрана.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 The Kotlin Flow Operator Cheat Sheet
В догонку ещё один материал про Kotlin Flow – свежая шпаргалка по операторам, с примерами кода.
🔵
🔵
🔵
🔵
🔵
🔵
🔵
🔵
Читать
👉 Новости 👉 База вопросов
В догонку ещё один материал про Kotlin Flow – свежая шпаргалка по операторам, с примерами кода.
map, filter, take(n)reduce, fold, runningReduce/scan, transformFlatMapConcat, FlatMapMerge, FlatMapLatestflowOn, buffer, conflate, collectLatestzip, combine, mergecatch, onCompletion, retryWhenonEach, debounce(timeoutMillis), distinctUntilChangedЧитать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😊 FileKit — библиотека Kotlin, которая позволяет вам выбирать и сохранять файлы простым способом
Позволяет выбирать отдельные файлы, или целые папки, позволяет учитывать нужный формат (скажем, только
Для каждой платформы FileKit использует собственный API для выбора файлов, чтобы обеспечить корректную работу.
GitHub
Затестить, как это работает
👉 Новости 👉 База вопросов
Позволяет выбирать отдельные файлы, или целые папки, позволяет учитывать нужный формат (скажем, только
.png)Для каждой платформы FileKit использует собственный API для выбора файлов, чтобы обеспечить корректную работу.
GitHub
Затестить, как это работает
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 http4k — набор функциональных инструментов для HTTP-приложений
http4k — это легкий, но полнофункциональный набор инструментов для работы с HTTP, написанный на чистом Kotlin.
http4k позволяет писать приложения как простые функции Kotlin. Например, так выглядит простой эхо-сервер:
GitHub
Доки
👉 Новости 👉 База вопросов
http4k — это легкий, но полнофункциональный набор инструментов для работы с HTTP, написанный на чистом Kotlin.
http4k позволяет писать приложения как простые функции Kotlin. Например, так выглядит простой эхо-сервер:
val app: HttpHandler = { request: Request -> Response(OK).body(request.body) }
val server = app.asServer(SunHttp(8000)).start()GitHub
Доки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #android
🤔 Нужно обмениваться broadcast-сообщениями только между своими приложениями, запрещая внешним их принимать. Как это реализовать?
При отправке читайте разрешение через
👉 Новости 👉 База вопросов
При отправке читайте разрешение через
sendBroadcast (intent, YOUR_PERMISSION) и регистрируйте BroadcastReceiver С тем же правом: в манифесте укажите android: permission="YOUR_PERMISSION" . Тогда только приложения, у которых есть это разрешение, смогут отправлять или принимать ваш Broadcast.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 Android Lab - это комплексная платформа для разработки и оценки агентов Android.
Интегрируя контролируемую среду и стандартизированные тесты, а также используя набор данных Android Instruct, инструмент повышает производительность мл-моделей и агентов с открытым исходным кодом.
Внутри два режима выполнения: AVD на Mac (arm64) и Docker на Linux (x86_64). Вы можете свободно добавлять или изменять новые задачи или образы для Android приложений в соответствии с нашей платформой. Android Lab содержит полную систему оценки, которая может быть использована для оценки производительности различных агентов Android.
Тест AndroidLab включает в себя готовые виртуальные устройства Android и 138 задач в девяти приложениях, созданных на этих устройствах.
Гитхаб
👉 Новости 👉 База вопросов
Интегрируя контролируемую среду и стандартизированные тесты, а также используя набор данных Android Instruct, инструмент повышает производительность мл-моделей и агентов с открытым исходным кодом.
Внутри два режима выполнения: AVD на Mac (arm64) и Docker на Linux (x86_64). Вы можете свободно добавлять или изменять новые задачи или образы для Android приложений в соответствии с нашей платформой. Android Lab содержит полную систему оценки, которая может быть использована для оценки производительности различных агентов Android.
Тест AndroidLab включает в себя готовые виртуальные устройства Android и 138 задач в девяти приложениях, созданных на этих устройствах.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥱 Timefold Solver — библиотека на Java/Kotlin для решения сложных задач оптимизации: от составления расписаний до маршрутизации транспорта. Разработана бывшей командой OptaPlanner, проект помогает автоматизировать процессы, которые обычно требуют ручного планирования и множества итераций.
Разработчики предлагают две версии: бесплатную Community Edition с открытым исходным кодом и коммерческую Enterprise Edition с поддержкой многопоточной оптимизации и приоритетным доступом к помощи разработчиков. Для старта достаточно клонировать репозиторий с примерами или подключить Maven-зависимость.
GitHub
👉 Новости 👉 База вопросов
Разработчики предлагают две версии: бесплатную Community Edition с открытым исходным кодом и коммерческую Enterprise Edition с поддержкой многопоточной оптимизации и приоритетным доступом к помощи разработчиков. Для старта достаточно клонировать репозиторий с примерами или подключить Maven-зависимость.
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Jackson Module Kotlin — решение для удобной работы Jackson с Kotlin-классами. Раньше для десериализации JSON в Kotlin-классы требовался конструктор по умолчанию, но этот модуль устраняет это ограничение. Он автоматически поддерживает классы с одним конструктором, а также позволяет работать с фабричными методами и вторичными конструкторами.
Модуль интегрируется с ObjectMapper и сохраняет информацию о типах Kotlin, включая generics. Особенно удобен для data-классов, sealed-классов и встроенных Kotlin-типов вроде Pair или Range. Поддержка Android и конфигурация через Gradle/Maven делают его универсальным инструментом.
GitHub
👉 Новости 👉 База вопросов
Модуль интегрируется с ObjectMapper и сохраняет информацию о типах Kotlin, включая generics. Особенно удобен для data-классов, sealed-классов и встроенных Kotlin-типов вроде Pair или Range. Поддержка Android и конфигурация через Gradle/Maven делают его универсальным инструментом.
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #android
🤔 Сколько времени может работать фоновый Service?
Начиная с Android 8.0, обычный фоновой сервис может работать только несколько секунд после ухода приложения в фон, иначе система убьёт его. Для долгой фоновой работы нужно использовать Foreground Service с уведомлением, тогда он работает бесконечно, пока пользователь его не остановит, но за ним следят ограничения по энергопотреблению.
👉 Новости 👉 База вопросов
Начиная с Android 8.0, обычный фоновой сервис может работать только несколько секунд после ухода приложения в фон, иначе система убьёт его. Для долгой фоновой работы нужно использовать Foreground Service с уведомлением, тогда он работает бесконечно, пока пользователь его не остановит, но за ним следят ограничения по энергопотреблению.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🥄 Calendar — гибкая библиотека Kotlin для создания и работы с календарями
Calendar — это гибко настраиваемая библиотека календаря для Android, опирающаяся на
🟠 GitHub
🟠 Пример кода готового календаря
🟠 Скачать демо-apk
👉 Новости 👉 База вопросов
Calendar — это гибко настраиваемая библиотека календаря для Android, опирающаяся на
RecyclerView для просмотра и LazyRow/LazyColumn для создания календаря.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#полезное
🤯 Kotlin-Result — функциональный подход к обработке ошибок. Библиотека предлагает монаду Result для Kotlin, вдохновлённую решениями из Rust и Haskell. Позволяет явно разделять успешный результат (
Проект имеет zero-overhead реализацию через inline-классы и поддержку корутин. Подходит для проектов, где важна предсказуемость и читаемость кода обработки ошибок.
Гитхаб
👉 Новости 👉 База вопросов
Ok) и ошибку (Err), избегая исключений и null-значений. Проект имеет zero-overhead реализацию через inline-классы и поддержку корутин. Подходит для проектов, где важна предсказуемость и читаемость кода обработки ошибок.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
😱 Создание кастомного тултипа Jetpack Compose
Пошаговый гайд по созданию гибкой и удобной системы тултипов в Jetpack Compose, с помощью модифайеров и специального оборачивающего блока.
Читать
👉 Новости 👉 База вопросов
Пошаговый гайд по созданию гибкой и удобной системы тултипов в Jetpack Compose, с помощью модифайеров и специального оборачивающего блока.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1