Media is too big
VIEW IN TELEGRAM
В 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
Forwarded from Kotlin Multiplatform Broadcast
Самый простой способ подключения - через 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 #вакансия
Привет! Команда @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 реализует интерфейс
В Android Activity можно подписаться на обработку события
#android #jetpack #навигация #kmp #kotlin
Новая библиотека 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 #mobius
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍11
Forwarded from Kotlin Multiplatform Broadcast
Розыгрыш книги "Коtlin в действии" 2-е издание с автографом одного из авторов - Романа Елизарова 🤯 Совместно с Yandex For Mobile делаем для вас розыгрыш 2 книг по Kotlin от создателей языка и его экосистемы!
Условия розыгрыша просты
1. Подписать на @kotlin_broadcast
2. Подписаться на @yandexformobile
Итоги подведем 12 июня в @kotlin_broadcast
#розыгрыш
Условия розыгрыша просты
1. Подписать на @kotlin_broadcast
2. Подписаться на @yandexformobile
Итоги подведем 12 июня в @kotlin_broadcast
#розыгрыш
🔥49🤔3❤2
Посмотрел Keynote, разобрал анонсы, посмотрел доклады и рассказал все самое интересное на что стоит обратить ваше внимание!
Видно также доступно на
P.S. Новости как формат вернулись на канал
#AndroidBroadcast #googleio #android #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥17❤3
На какой ОС вы разрабатываете под Android?
Anonymous Poll
30%
Windows
60%
macOS
7%
Linux
1%
Другой Linux дистрибутив
0%
Другая ОС (пиши в комментариях)
1%
Не пишу код
2%
Не участвую в опросе
🤔20👍13❤4🤯3
Серия статей с разборами лучших практик для 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
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44❤4🤔4
Самое интересное в обновлении
💾 Тестирование бэкапа и восстановления данных приложения
👉 Compose Preview Screenshot Testing tool
Подробности что нового читайте тут
#androidstudio #gemini #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🤔1
Media is too big
VIEW IN TELEGRAM
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
👍32❤12
Выпустили 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🤔6❤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
Новая библиотека 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👍9❤3
🤯 Весь код, сгенерированный при помощи Cursor AI, вам не принадлежит
Это следует из лицензионного соглашения Cursor (пункт 6.2)
Примерный перевод на русский
Это значит, все, что вы сгенерили с помощью тула, вам не принадлежит. Копирайт не ваш… чей – не уточняется, но не ваш. Вы теряете контроль, и власть и право на обладание вашим продуктом может быть у вас отобрано, и в общем-то на достаточно простом основании – часть кода в вашем продукте не ваша.
В результате, у вас классическая "дилемма заключенного": Не используете AI – можете проиграть, используете – рискуете проиграть и потерять все, потому что ваши конкуренты его используют.
Узнал это из статьи на Хабре. Теперь при использовании любого AI в проде обязательно отдайте вначале юристы на изучения условия использования и получите одобрение от юристов, безопасников и руководства.
Делитесь своим мнение в комментариях касательно защиты прав того что ушло в прод с помощью AI
#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👍15❤3🔥3
// Создаем 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🔥6❤2