Telegram Web
👩‍💻 Turbine — это небольшая библиотека для тестирования потоков (Flow) в Kotlin с использованием библиотеки kotlinx.coroutines!

🌟 Она предоставляет упрощённый API для проверки поведения потоков, таких как ожидание элементов, завершения или ошибок. Библиотека также позволяет разработчикам писать тесты для потоков данных, используя методы вроде awaitItem(), awaitComplete() и awaitError(), а также обеспечивает автоматическое завершение тестов с проверкой, что все события были обработаны.

🔐 Лицензия: Apache-2.0

🖥 Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
👩‍💻 Mutator — это Kotlin библиотека, предназначенная для управления состоянием пользовательского интерфейса с использованием потоков!

💡 Она обеспечивает взаимное исключение при изменении состояния UI, предотвращая конфликты и обеспечивая согласованность данных. Mutator позволяет управлять состоянием UI асинхронно и реактивно, что особенно полезно при разработке приложений с динамическим интерфейсом.

🔐 Лицензия: Apache-2.0

🖥 Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
2
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Swipe — это библиотека для Jetpack Compose, которая добавляет поддержку жестов свайпа для выполнения действий!

🌟 В отличие от стандартного SwipeToDismiss, она предназначена для раскрытия действий при свайпе влево или вправо, не удаляя сам элемент.

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

🔐 Лицензия: Apache-2.0

🖥 Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Forwarded from Machinelearning
✔️ Google представила Gemma 3n — лёгкую и быструю AI-модель для работы на девайсах

Google выпустила Gemma 3n — это новая версия модели, которая запускается локально на мобильных устройствах.

Gemma 3n может работа локально на устройстве с 2 ГБ оперативной памяти!

➡️ Особенности:

• Работает в 1.5 раза быстрее, чем предыдущая Gemma 3 4B
• Поддерживает работу без интернета — всё локально и безопасно
• Умеет понимать текст, речь и изображения
• Можно использовать даже на устройствах с 2–3 ГБ RAM
• Поддерживает мгожетсво языков,

💡 Gemma 3n использует гибкую архитектуру (MatFormer), которая может "переключаться" между лёгким и полным режимом (2B и 4B параметров) — модель подстраивается под задачу, не перегружая устройство.

🔧 Как начать пользоваться:

• Через Google AI Studio — работает прямо в браузере
• Или через SDK Google AI Edge — интеграция на Android, Chromebook и другие устройства

📊 Где это применимо:

• Голосовые ассистенты
• Приложения с ИИ, которые работают без интернета
• Переводчики, чат-боты, анализ изображений на телефоне

➡️Релиз: https://developers.googleblog.com/en/introducing-gemma-3n/
➡️ Документация: https://ai.google.dev/gemma/docs/gemma-3n#parameters

#Gemma #Google #mobile #МультимодальныйИИ #МобильныйИИ #edgedevices
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍1👎1
📚 Mihon — читалка манги и вебтунов с открытым исходным кодом. Этот проект предлагает чистый Android-клиент с поддержкой локального чтения и синхронизацией с трекерами вроде MyAnimeList.

Проект является форком известного Tachiyomi, продолжающий его традиции после прекращения разработки оригинала. Здесь есть всё, от настраиваемого режима чтения до автоматического обновления глав по расписанию.

🤖 GitHub

@androidits
🖥 TrustedTime — новый API, разработанный для обеспечения точного и надежного времени в Android-приложениях! TrustedTime API использует инфраструктуру Google для предоставления доверенного временного штампа, независимого от локальных настроек времени устройства, которые могут быть изменены пользователем.

🌟 TrustedTime периодически синхронизирует свои часы с серверами Google, обладающими высокоточным источником времени, что устраняет необходимость в каждом запросе к серверу для получения текущего сетевого времени. Кроме того, интегрирована модель, вычисляющая дрейф часов устройства, информируя разработчиков о возможных отклонениях между синхронизациями. Это особенно важно для приложений, зависящих от точного времени, таких как финансовые приложения, системы безопасности, планировщики событий и другие, где манипуляции с локальным временем устройства могут привести к проблемам с безопасностью, несогласованности данных и ненадежному расписанию.

🌟 TrustedTime API доступен на всех устройствах с Google Play Services, работающих под управлением Android 5 (Lollipop) и выше. Для его использования необходимо добавить зависимость com.google.android.gms:play-services-time:16.0.1 или выше в проект. API не требует дополнительных разрешений, однако для предоставления временных меток устройству необходимо подключение к интернету после запуска. Если устройство не подключалось к интернету с момента загрузки, TrustedTime API не сможет вернуть временные метки.

🔗 Подробнее: *клик*

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🖥 Shizuku — это инструмент, позволяющий обычным Android-приложениям напрямую использовать системные API с привилегиями ADB или root!

🌟 Он работает путем запуска Java-процесса с помощью app_process, что позволяет приложениям взаимодействовать с системными сервисами без необходимости в полном рут-доступе.

🔐 Лицензия: Apache-2.0

🖥 Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
3
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Compose Sonner — это компонент toast-уведомлений для Compose Multiplatform, основанный на Sonner! Он поддерживает различные типы уведомлений, анимации, кастомизацию и не зависит от Material Design.

🔐 Лицензия: Apache-2.0

🖥 Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥91
📜 springdoc-openapi — библиотека, превращающая ваши Spring Boot 3.x приложения в самоописываемые API, она генерирует OpenAPI 3.0 спецификацию и интерактивный Swagger UI на ходу.

В отличие от ручного описания эндпоинтов, она анализирует контроллеры, модели и аннотации вроде @Operation или @SecurityScheme, создавая актуальную документацию без boilerplate-кода. Проект поддерживает не только классические MVC, но и WebFlux, включая функциональные эндпоинты.

🤖 GitHub

@androidits
2
📥 Seal — open-source приложение, предлагающее простое решение для скачивания контента — загрузку медиа через yt-dlp с поддержкой 1000+ сайтов. Проект выделяется чистым Material Design 3 интерфейсом и неожиданными фишками вроде встроенного aria2c для ускорения загрузок и автоматического добавления метаданных в аудиофайлы.

Приложение полностью написано на Kotlin с использованием современных подходовю, а его разработчик принципиально запрещает коммерческое использование названия Seal в форках.

🤖 GitHub

@androidits
🔥73
⚡️ Ktorm — минималистичный ORM для Kotlin-разработчиков. Этот фреймворк предлагает принципиально иной подход к работе с базами данных: вместо сложных конфигураций и магии аннотаций здесь чистый Kotlin-код с типизированным SQL DSL.

При этом фреймворк не абстрагируется от SQL, а аккуратно его дополняет: вы всегда видите, какой запрос будет выполнен, но пишете его на понятном Kotlin. Встроенная поддержка пагинации, агрегаций и транзакций делает Ktorm готовым к использованию в production.

🤖 GitHub

@androidits
6👍2
👩‍💻 Redwood — библиотека для создания пользовательских интерфейсов на Android, iOS и в веб-приложениях с использованием Kotlin и Jetpack Compose!

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

🌟 Redwood интегрирует систему дизайна и компонуемые функции (composables), что позволяет разрабатывать UI, которые адаптируются к особенностям каждой платформы. Это решение нацелено на повышение продуктивности и унификацию интерфейсов без необходимости писать отдельный код для каждой платформы.

🔐 Лицензия: Apache-2.0

🖥 Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Компания "Открытая мобильная платформа" представила инструментарий, позволяющий использовать в ОС Аврора технологию KMP (Kotlin Multiplatform). KMP позволяет создавать многоплатформенный код на языке Kotlin, вынося общую бизнес-логику в библиотеку, адаптированную для платформ Аврора, Android, iOS, Web или Linux.

В ОС Аврора, как и в iOS, нет JVM, но благодаря поддержке в Kotlin нативной компиляции (Kotlin/Native), код KMP можно собрать в форме статической или динамической библиотеки, которую можно переносить на любые системы, поддерживающие использование Си-библиотек. При этом низкоуровневые С-библиотеки, генерируемые KMP, напрямую использовать неудобно. В ОС Аврора эта проблема решена с помощью плагина QtBinding, который создаёт прослойку между низкоуровневым C и Qt. Поэтому писать приложения для ОС Аврора стало не сложнее, чем для iOS.

Инструментарий пока находится на начальной стадии развития, его ещё предстоит их упростить и оптимизировать. Тем не менее, даже текущее состояние проекта позволяет повторно использовать существующий код Kotlin в ОС Аврора. Код инструментария открыт под лицензией Apache 2.0, приветствуются предложения по доработке, замечания и передача изменений и улучшений.

https://kotlinlang.org/docs/multiplatform.html


@android_its
👍4🔥3
🚀 Ktorfit — retrofit для Kotlin Multiplatform на базе Ktor

Когда нужно реализовать сетевые запросы в Kotlin-приложении, Ktorfit предлагает знакомый по Retrofit DSL инструмент, но с поддержкой Ktor-клиентов под капотом.

Проект использует Kotlin Symbol Processing для генерации кода во время компиляции — это даёт возможность использовать нативные suspend-функции и Flow для Kotlin Coroutines, поддержку всех платформ, где работает Ktor, а также лёгковесную альтернативу без рефлексии

🤖 GitHub

@androidits
👍4😁31🔥1🥰1
👩‍💻 Ultron — это фреймворк, облегчающий создание UI-тестов для Android и Compose Multiplatform! Он построен поверх Espresso, UI Automator и Compose UI, предлагая упрощённый и выразительный синтаксис для тестирования пользовательского интерфейса.

🔐 Лицензия: Apache-2.0

🖥 Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🌐 Gitnuro — кроссплатформенный Git-клиент без подписок и слежки. Этот полностью открытый клиент на Kotlin предлагает альтернативу тяжеловесным решениям вроде GitKraken или SourceTree.

В отличие от веб-ориентированных аналогов, он работает нативно на Linux, Windows и macOS, при этом не требуя активаций или подписок. Особенность проекта в поддержке сложных операций через минималистичный интерфейс.

🤖 GitHub

@androidits
3🔥2👍1
📱 Kotlin/Android-задача: почему `Context` утечёт в этом коде?


class MyManager(context: Context) {

private val prefs = context.getSharedPreferences("app", Context.MODE_PRIVATE)

fun doSomething() {
// ...
}

companion object {
var instance: MyManager? = null

fun init(context: Context) {
instance = MyManager(context)
}
}
}


Вопрос: что здесь не так и к чему это приведёт?

🔍 Варианты:
• a) Всё работает корректно
• b) Приложение вылетит
• c) Произойдёт утечка памяти
• d) SharedPreferences будет работать некорректно

💡 Разбор:

Если ты передаёшь Activity как context в init(context), то:

- MyManager сохранится в companion object (по сути, глобально)
- а значит, Activity не сможет быть сборщиком мусора (GC) удалена
- это и есть memory leakActivity остаётся в памяти навсегда

Особенно опасно при:
• частых пересозданиях Activity (например, при смене ориентации)
• использовании этого синглтона в фоне

Правильный ответ: c) Произойдёт утечка памяти

🛠️ Решение: всегда передавай `applicationContext`, если сохраняешь ссылку надолго:


fun init(context: Context) {
instance = MyManager(context.applicationContext)
}


📌 applicationContext живёт столько же, сколько и приложение, и не зависит от жизненного цикла Activity.

🧠 Вывод: при создании синглтонов и долгоживущих объектов всегда думай, какой Context ты передаёшь. Это частая ошибка даже среди опытных Android‑разработчиков.
👍53🔥3
2025/10/12 19:09:36
Back to Top
HTML Embed Code: