Media is too big
VIEW IN TELEGRAM
Рассказ про основные принципы новой навигации от Google для Compose - Jetpack Navigation 3
0:00 Вступление
1:05 Что есть Навигация
2:08 Архитектура
4:40 Требования
5:26 Почему это так сложно
7:01 Задачи Navigation 3
9:02 Владение Backstack-ом
10:04 Будущее
#android #jetpack #compose #навигация
Please open Telegram to view this post
VIEW IN TELEGRAM
Разработчик решил оценить влияние логирования на работу приложения и описал в статье. Проблема только если создаете лишние объекты
#android #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled) {
Log.d(tag, messageBuilder())
}
}
но автор еще не учел проверку уровня логирования:
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, Log.DEBUG)) {
Log.d(tag, messageBuilder())
}
}
или прийти к более общей функции
inline fun log(tag: String, level: Int, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, level)) {
when (level) {
Log.VERBOSE -> Log.v(tag, messageBuilder())
Log.DEBUG -> Log.d(tag, messageBuilder())
Log.INFO -> Log.i(tag, messageBuilder())
Log.WARN -> Log.w(tag, messageBuilder())
Log.ERROR -> Log.e(tag, messageBuilder())
else -> Log.d(tag, messageBuilder()) // fallback
}
}
}
#android #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Еще одна рекомендация - используйте минификацию кода через R8/ProGuard чтобы удалить весь код логирования. Ничего лишнего не уйдёт в логи, а также повысите скорость работы
Добавьте в правила следующие инструкции
# Удаляем Log.v()
-assumenosideeffects class android.util.Log {
public static int v(...);
}
# Удаляем Log.d()
-assumenosideeffects class android.util.Log {
public static int d(...);
}
# Удаляем Log.i()
-assumenosideeffects class android.util.Log {
public static int i(...);
}
Подробнее про инструкцию
assumenosideeffects
читайте в документации#android #proguard #r8 #оптимизация
Please open Telegram to view this post
VIEW IN TELEGRAM
В Android 16 QRP1 появилась поддержка десктопного режима при подключении внешних дисплеях. Включается режим плавающих окон, а значит приложения смогут иметь произвольный размер, управление перейдет в мышку и клавиатуру (а смысл иначе от внешнего дисплея?)
Совсем уже не новинка в мире Android, но какому количеству людей это будет необходимо? Делитесь своим мнением в комментариях
#android #android16 #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Используете подход Documentation-as-Code ? (не про документация в коде)
Anonymous Poll
13%
Да
14%
Нет
59%
Что это?
7%
Не пишу документацию вокруг проекта
1%
Другой вариант
7%
Не участвую в опросе
В этот раз вас жду багфиксы: Room 2.7.2 и WorkManager 2.10.2, а также первая RC версия Benchmark Version 1.4.0
#android #androiddev #jetpack #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
Показали первую альфа версию Jetpack Test Uiautomator Shell - решения для выполнения команд в терминале. Фактически это backport UiAutomation.executeShellCommandRwe из API 34 (Android 14).
#android #androiddev #тестирование #автотесты
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Kotlin Multiplatform Broadcast
Все сессии можно найти в расписании. Пока только на сайте, но там встроен YouTube плеер, так что позже выпустят плейлист. В @kotlin_broadcast буду выкладывать доклады и рассказывать самое интересное
#kotlin #kotlinconf
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
В новом видео погружаюсь в особенности того как работает Context, а именно:
👉 какие типы Context бывают
👉 почему Application класс != Application Context
👉 как Android ОС создает экземпляр Context и передает его в компоненты приложения
👉 советы по работе с Context
Подписку на видео можно также оформить через Telegram
#AndroidBroadcast #android
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда разработчик использует NotificationCompat.Builder для создания уведомлений из Android приложения, может показаться, что прямого контроля на внешний вид нету 🤯 На самом деле формируется не визуальный компонент, а объект данных, который описывает что есть в уведомление.
Этот объект — это просто структура, сериализуемая через Parcelable. Он передаётся в системный процесс через Binder — механизм межпроцессного взаимодействия в Android. А вот принимать и интерпретировать этот объект будет специальное системное приложение — SystemUI.
Уведомления отображаются не Android сам по себе, а конкретное приложение, которое называется
com.android.systemui
. И это приложение полностью отвечает за то, как будет выглядеть уведомление. Оно решает, какие поля отобразить, где их разместить, какой стиль применить, как будет выглядеть кнопка, будут ли видны иконки — и многое другое. Часть из данных может игнорироваться.Вот почему одно и то же уведомление может выглядеть совершенно по-разному на разных устройствах и версиях ОС. Один и тот же вызов setContentTitle("Новость") может дать совершенно разный результат на Pixel с чистым Android и на Xiaomi с MIUI. Более того, даже RemoteViews, которые позволяют задавать кастомные layout’ы для уведомлений, могут игнорироваться или ограничиваться прошивками производителей.
Именно по этой причине я не люблю когда в уведомления вставляют Custom View, который выбивается из стиля и часто портит визуал системы и поведение. Мечтаю чтобы его поскорее запретили в Android. Пожалуйста, хотя бы в Android 17 🙏
Запомните
#android #androiddev
Please open Telegram to view this post
VIEW IN TELEGRAM
Что из перечисленного обязательно должно быть свойством чистой функции в функциональном программировании?
Anonymous Quiz
2%
Она может изменять глобальные переменные
93%
Она всегда возвращает один и тот же результат при одних и тех же входных данных
1%
Она может записывать данные в файл
4%
Она может вызывать другие функции с side эффектами
🏗 Функциональное программирование в Android. Знакомство с парадигмой (21м)
Первая статья из серии про как построить архитектуру Android приложения в функциональном стиле. Стек: Kotln; Jetpack Compose; одна из UDF-архитектур (Redux, TEA, MVI); ArrowKt; Coroutines + Flow.
В начале рассматривают функциональную парадигму и отличия ее от других подходов (императивный и декларативный)
#android #архитектура
Первая статья из серии про как построить архитектуру Android приложения в функциональном стиле. Стек: Kotln; Jetpack Compose; одна из UDF-архитектур (Redux, TEA, MVI); ArrowKt; Coroutines + Flow.
В начале рассматривают функциональную парадигму и отличия ее от других подходов (императивный и декларативный)
#android #архитектура
Forwarded from Kotlin Multiplatform Broadcast
Что нового в релизе языка:
👉 Превью context parametr
👉 Non-local break и continue теперь stable
👉 Kotlin/JVM: изменения в генерации метода по умолчанию
👉 Kotlin/Native: улучшения в управлением памятью
👉 Kotlin/Wasm: wasmJs таргет отделили от js таргета
👉 Base64 стало Stable
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поддерживается Android 7.0, а на Android 13 и выше используются AGSL шейдеры, что повышает производительность и добавляет блюр.
Автор библиотеки - подписчик канал и буде рад звезде на GitHub и вашему мнению по коду решения в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🎨 Ищу дизайнера для Android Broadcast
Для YouTube-канала и Telegram-проекта @android_broadcast ищу дизайнера на регулярное сотрудничество.
📌 Что нужно делать:
– Обложки к видео (YouTube, Boosty)
– Графика для постов в Telegram
– Разные визуалы под контент и интеграции
💡 Важно:
– Опыт в создании графики и обложек для digital-контента
– Оперативность: выполнение задач в течение 4 часов
– Доступность в течение дня для связи
– Креативность и готовность пробовать новое
– Бонус: навыки рисования принтов
💰 Оплата: сдельная, с перспективой перехода на фиксированную оплату
📬 Как откликнуться:
Присылайте портфолио и краткое резюме в Telegram @ab_manager
Обязательно выполнение тестового задания.
#вакансия
Для YouTube-канала и Telegram-проекта @android_broadcast ищу дизайнера на регулярное сотрудничество.
📌 Что нужно делать:
– Обложки к видео (YouTube, Boosty)
– Графика для постов в Telegram
– Разные визуалы под контент и интеграции
💡 Важно:
– Опыт в создании графики и обложек для digital-контента
– Оперативность: выполнение задач в течение 4 часов
– Доступность в течение дня для связи
– Креативность и готовность пробовать новое
– Бонус: навыки рисования принтов
💰 Оплата: сдельная, с перспективой перехода на фиксированную оплату
📬 Как откликнуться:
Присылайте портфолио и краткое резюме в Telegram @ab_manager
Обязательно выполнение тестового задания.
#вакансия
Разработчик решил реализовать простую затею - обрезать видео на основе выбранного отрезка текста из расшифровки дорожки. Использовал Jetpack Media3 и EventLabs API. ПО итогу вышло приложение
🔗 Альтернативная ссылка тут
#android #androidjetpack #media3 #opensource #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from iOS Broadcast (Андрей Зонов)
Внутри сообщества официально собирается рабочая группа по созданию Android приложений на Swift. Основная цель - добавить и поддерживать Android как официальную платформу для Swift
Задачи рабочей группы:
Общение через Форум Swift для Android и в рабочей группе на форумах Swift. Членство в рабочей группе открыто для всех желающих.
Новость интригующая, хотя в моменте ничего и не даст:
Please open Telegram to view this post
VIEW IN TELEGRAM