Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
Media is too big
VIEW IN TELEGRAM
📹 Android notifications and Live Updates (EN, 13 мин)

В Android 16 добавили новый стиль уведомлений - ProgressStyle, а также рассказали про Live Update Notification (важно - не любое уведомление с ProgressStyle будет Live Update)

Особенности Live Update уведомлений
👉 Показывается в Always-On режиме дисплея
👉 Показывается в верху списка всех уведомлений
👉 В status bar вместо иконки уведомления будет показываться время/прогресс

Задать что уведомление является Live Updates нельзя. Система автоматические определяет уведомление в эту категорию, когда оно соответствуют требованиям:
👉 Должно быть определенного стиля: BigTextStyle, CallStyle, ProgressStyle или без стиля
👉 Должно быть ongoing
👉 Не допускается использования custom view в уведомлении
👉 Не может быть группировкой других уведомлений (notification group)
👉 Не задается важность или она должна быть выше чем IMPORTANCE_MIN
👉 Должно быть Colorized
👉 Должно быть заголовок (title)

В докладе подробно рассказывают про новый тим уведомлений и показываю пример реализации.

#android #android16 #googleio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3
Media is too big
VIEW IN TELEGRAM
📹 Finding The Perfect Gemini fit on Android (13 мин)

Рассказ про GenAI модели из Google ML Kit и как можно их использовать на устройствах без подключения к сети (список моделей - флагманы 2024-2025 года)

#android #mlkit #ai #gemini #googleio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍21
🏝 Stacktrace-decoroutinator поможет вам сделать стектрейс в вызовах корутин подробнее и понятным. Работает с JVM 1.8 и выше, а также на Android 14+

Самый простой способ подключения - через Gradle плагин

#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28
🚀 Ищем талантливого видеомонтажёра в команду Android Broadcast!

Привет! Команда @android_broadcast растёт, и нам нужен креативный, ответственный и инициативный монтажёр видео, который поможет нам создавать яркий и полезный технологический контент.

Что предстоит делать:
👉 Монтаж роликов для YouTube (технологические обзоры, туториалы, интервью, образовательный контент).
👉 Создание и интеграция графики и анимаций.
👉 Участие в обсуждении идей и улучшении качества контента вместе с командой.

Что важно для нас:
👉 Опыт работы с видеомонтажом от 1 года (обязательно наличие примеров работ).
👉 Умение создавать анимации, графические элементы и работать с текстовыми вставками.
👉 Ответственность, соблюдение сроков и умение работать в команде.

Будет большим плюсом, если у тебя есть:
👉 Если работаешь Final Cut Pro - это плюс, но не обязательно
👉 Знание и опыт работы с платформой Frame.io.
👉 Опыт монтажа образовательного или технологического контента.

Условия работы:
👉 Удалённая работа с гибким графиком.
👉 Возможность развиваться и повышать свои навыки вместе с опытной командой.
👉 Оплата обсуждается по результатам собеседования.

📩 Заинтересовало?
Пиши в Telegram @kirill_broadcast
При отклике сразу присылай резюме или описание своего опыта, а также ссылки на свои работы.

Ждём тебя в команде Android Broadcast!

#AndroidBroadcast #вакансия
🔥11👍5🤔2🤯2
В Jetpack делают KMP API для обработки системных жестов нажатия назад или Predictive Back

Новая библиотека Jetpack NavigationEvent содержит в себе API для обработки нажатия назад или для отслеживания прогресса жеста назад. API cхоже с Dispatcher которое было сделано для Back ранее. Поддерживаются KMP таргеты: Android, Desktop/JVM, iOS, JS, Linux, WASM, watchOS, tvOS, Ming

ComponentActivity реализует интерфейс NavigationEventDispatcherOwner:
interface NavigationEventDispatcherOwner {

val navigationEventDispatcher: NavigationEventDispatcher
}


NavigationEventDispatcher представляет собой класс, для передачи системны событий Назад:
class NavigationEventDispatcher(
private val fallbackOnBackPressed: (() -> Unit)?,
private val onHasEnabledCallbacksChanged: ((Boolean) -> Unit)?,
)
// Добавления callback чтобы слушать когда произйдет нажатие "Назад"
fun addCallback(
callback: NavigationEventCallback,
priority: NavigationEventPriority = NavigationEventPriority.Default
)

fun dispatchOnStarted(event: NavigationEvent)

fun dispatchOnProgressed(event: NavigationEvent)

fun dispatchOnCompleted()

fun dispatchOnCancelled()
}


В Android Activity можно подписаться на обработку события
class MyActivity : ComponentActivity() {

init {
navigationEventDispatcher.addCallback(
callback = object : NavigationEventCallback(
isEnabled = true,
priority = NavigationEventPriority.Default
) {
override fun onEventCompleted() {
// Back сделан
}
},
priority = NavigationEventPriority.Default
)
}
}


#android #jetpack #навигация #kmp #kotlin
25👍11🔥7🤔3
Media is too big
VIEW IN TELEGRAM
📹 Память в Android, утечки и OutOufMemory. Евгений Васильев. Mobius весна 2025

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

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

📃 Презентация
📹 Версия на VK Video

#android #mobius
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍11
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍12🤯7🤔1
Розыгрыш книги "Коtlin в действии" 2-е издание с автографом одного из авторов - Романа Елизарова 🤯 Совместно с Yandex For Mobile делаем для вас розыгрыш 2 книг по Kotlin от создателей языка и его экосистемы!

Условия розыгрыша просты
1. Подписать на @kotlin_broadcast
2. Подписаться на @yandexformobile

Итоги подведем 12 июня в @kotlin_broadcast

#розыгрыш
🔥49🤔32
📹 Самое важное с Google I/O 2025 для Android и KMP разработки (24 мин)

Посмотрел Keynote, разобрал анонсы, посмотрел доклады и рассказал все самое интересное на что стоит обратить ваше внимание!

Видно также доступно на 📹 VK Video

P.S. Новости как формат вернулись на канал

#AndroidBroadcast #googleio #android #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥173
Серия статей с разборами лучших практик для Jetpack Compose:
1️⃣ 5 Core Optimizations Every Developer Should Know (EN, 5м, альт. ссылка)
2️⃣ 5 Advanced Techniques for Ultra-Smooth Apps (EN, 8м, альт. ссылка)
3️⃣ The Expert’s Toolkit (EN, 8м, альт. ссылка)
4️⃣ Runtime Mastery & Fine-Tuning (EN, 8м, альт. ссылка)

#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥444🤔4
🔨 Вышла первая RC версия Android Studio Narwhal

Самое интересное в обновлении
⭐️ Поддержка добавления файлов из проекта и любых картинок в чате с Gemini
🔥 в Android Device Streaming появились партнерские лаборатории с устройствами
💾 Тестирование бэкапа и восстановления данных приложения
⚙️ Генерация превью для Composable
👉 Compose Preview Screenshot Testing tool

Подробности что нового читайте тут

#androidstudio #gemini #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
👍185🤔1
Forwarded from In AsyncTask We Trust
а всё уже
74🔥31🤯20🤔8👍1
Media is too big
VIEW IN TELEGRAM
📹 Mastering text input in Compose (EN, 18м)

Google выпустили шикарное видео, где показали лучшие практики работы с текстовыми полями в Compose — с примерами, API и лайфхаками.

В ролике разработчики на примере рассказывают:
👉 как использовать state-based TextField — новый подход к управлению вводом;
👉 зачем нужен SecureTextField и как задать требования к паролю;
👉 как работает Autofill API (да, теперь можно сохранять логины и OTP);
👉 как кастомизировать поле ввода OTP с помощью BasicTextField и decorator;
👉 как принимать GIF и изображения через drag & drop с новым contentReceiver;
👉 как использовать input/output трансформации для автоподстановки скобок и тире в номерах;

#android #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3212
⚙️ Все View виджеты Material 3 Expessive отложены

Выпустили Material Component Android 1.13.0 Alpha 14 из которой убрали все наработки по Material 3 Expressive. Они отложены в следующую версию - 1.14.0, первая альфа которой уже доступна

#android #materia3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯24👍6🤔62
🎉 Вышла Cursor IDE 1.0 - редактор кода на основе AI

#ide #ai
🤯27🤔147🔥2
🎉🚀 Новая Jetpack Библиотека - Photo Picker

Новая библиотека Jetpack Photo Picker позволит перенести встраиваемый Photo Picker из Android 16 на более ранние версии Android. Благодаря Mainline системе встраиваемый Photo Picker будет доступен на Android 14 и выше как часть ОС, а вот на других версиях будет помогать библиотека Jetpack Photo Picker, работающая скорее всего на основе Google Play Services.

Важно - сразу сделали версию для View и Compose

#android #jetpack #android16 #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥48👍93
🤯 Весь код, сгенерированный при помощи Cursor AI, вам не принадлежит

Это следует из лицензионного соглашения Cursor (пункт 6.2)
Notwithstanding the foregoing, you acknowledge that Suggestions are generated automatically by machine learning technology and may be similar to or the same as Suggestions provided to other customers, and no rights to any Suggestions generated, provided, or returned by the Service for or to other customers are granted to you under these Terms

Примерный перевод на русский
Несмотря на вышеизложенное, вы признаете, что Предложения генерируются автоматически с помощью технологии машинного обучения и могут быть похожими или идентичными Предложениям, предоставляемым другим клиентам, и никакие права на какие-либо Предложения, созданные, предоставленные или возвращенные Сервисом для других клиентов или другим клиентам, не предоставляются вам в соответствии с настоящими Условиями.

Это значит, все, что вы сгенерили с помощью тула, вам не принадлежит. Копирайт не ваш… чей – не уточняется, но не ваш. Вы теряете контроль, и власть и право на обладание вашим продуктом может быть у вас отобрано, и в общем-то на достаточно простом основании – часть кода в вашем продукте не ваша.

В результате, у вас классическая "дилемма заключенного": Не используете AI – можете проиграть, используете – рискуете проиграть и потерять все, потому что ваши конкуренты его используют.

Узнал это из статьи на Хабре. Теперь при использовании любого AI в проде обязательно отдайте вначале юристы на изучения условия использования и получите одобрение от юристов, безопасников и руководства.

Делитесь своим мнение в комментариях касательно защиты прав того что ушло в прод с помощью AI

#ai
🤯71🤔18👍153🔥3
🐱 Библиотека 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
🤔22🔥62