Android Broadcast @android_broadcast Channel on Telegram

Android Broadcast

@android_broadcast


Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

Android Broadcast (Russian)

Android Broadcast – это канал, который предназначен для Android разработчиков и всех, кто интересуется мобильными технологиями. Здесь вы найдете подборку актуальных новостей и статей, которые помогут вам быть в курсе последних тенденций в мире Android.

Кроме того, на канале проводятся обсуждения в специальном чате @android_broadcast_talks, где можно делиться опытом, задавать вопросы и обсуждать интересные темы. Для тех, кто хочет быть в курсе всех новостей, предлагается подписаться на медиа-канал https://taplink.cc/android_broadcast.

Если у вас есть вопросы или предложения, вы всегда можете связаться с автором канала через @android_broadcast_bot. Также возможно размещение рекламы на канале, для этого обращайтесь туда же – к @android_broadcast_bot. Присоединяйтесь к Android Broadcast и будьте в курсе самых свежих новостей и статей для разработчиков Android!

Android Broadcast

19 Feb, 08:00


🤖 Новая защита от Intent Redirect в Android 16

Начиная с Android 16, система получила усиленную защиту от атак с редиректом Intent – механизма, с помощью которого злоумышленники могли подменять содержимое Intent для запуска приватных компонентов. Благодаря обновлению:

🔒 Защита по умолчанию:
Система автоматически проверяет входящие Intent, снижая риск выполнения недоверенных операций.

🛠 Минимальные изменения для разработчиков:
Большинство приложений, использующих стандартный механизм Intent, продолжат работать без проблем, однако рекомендуется протестировать проекты в новых условиях.

💡 Повышенная безопасность:
Новые меры помогают предотвратить несанкционированный доступ к данным и выполнение привилегированных действий.

#android #android16 #безопасность

Android Broadcast

19 Feb, 07:46


🤖 Шаринг ключей из Android Keystore с другими приложениями

В Android 16 KeyStoreManager получил возможность поделиться ключами с другими приложениями на устройстве пользователя

fun generateAndShareKey(targetUid: Int) {
// Генерация нового ключа в Android Keystore
val keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore")
val keyGenSpec = KeyGenParameterSpec.Builder(
KEY_ALIAS,
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
)
.setBlockModes(KeyProperties.BLOCK_MODE_GCM)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
.build()
keyGenerator.init(keyGenSpec)
val secretKey: SecretKey = keyGenerator.generateKey()

// Предоставление доступа к ключу приложению с заданным UID
val keyStoreManager = KeyStoreManager.getInstance()
val granted = keyStoreManager.grant(KEY_ALIAS, targetUid)
if (granted) {
Log.d(TAG, "Доступ предоставлен UID: $targetUid")
} else {
Log.e(TAG, "Не удалось предоставить доступ UID: $targetUid")
}
}


Пример отзыва доступа к ключу
fun revokeKeyAccess(targetUid: Int) {
// Отзыв доступа к ключу для приложения с заданным UID
val keyStoreManager = KeyStoreManager.getInstance()
val revoked = keyStoreManager.revoke(KEY_ALIAS, targetUid)
if (revoked) {
Log.d(TAG, "Доступ отозван для UID: $targetUid")
} else {
Log.e(TAG, "Не удалось отозвать доступ для UID: $targetUid")
}
}

#android #android16 #безопасность

Android Broadcast

19 Feb, 06:48


🤖 Форматируйте дату и время на основе настроек пользователя

В большинстве приложений приходится выводить время и дату, но в каком формате сделать это правильнее всего? Логично использовать формат, который применяется для локали пользователя, но в настройках системы пользователь может указывать формат времени и даты для отображения, а значит, ему хотелось бы видеть такой формат везде. Используйте класс android.text.format.DateFormat (ВАЖНО не путать с одноименным классом из пакета java.text)
// Получаем текущую дату и время
val currentDate: Date = ...

// Получаем форматтер для даты, который учитывает региональные настройки пользователя
val dateFormatter: java.text.DateFormat = android.text.format.DateFormat.getDateFormat(context)
// Форматируем дату
val formattedDate = dateFormatter.format(currentDate)


// Получаем форматтер для времени, который учитывает настройку 12/24-часового формата
val timeFormatter = android.text.format.DateFormat.getTimeFormat(context)
// Форматируем время
val formattedTime = timeFormatter.format(currentDate)


// Получение порядка дня, месяца, года, который определил пользователь
// Например ['d', 'M', 'y']
val char[] = android.text.format.DateFormat.getDateFormatOrder(context)


val is24Hour = android.text.format.DateFormat.is24HourFormat(context)
// Выбираем шаблон форматирования времени
val pattern = if (is24Hour) "HH:mm" else "hh:mm a"
// Форматируем время согласно выбранному шаблону
val formattedTime = DateFormat.format(pattern, currentDate)


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

Если вы не хотите работать со старым Date API, которое есть с самых первый версий Java, то можно получить шаблон для форматирования времени на основе настроек пользователя с помощью android.text.format.DateFormat.getBestDateTimePattern()
// Получаем шаблон форматирования для времени. В данном случае шаблон "hm" используется для получения
// подходящего шаблона, который учитывает настройки пользователя (12/24-часовой формат).
val locale = Locale.getDefault()
val pattern: String = android.text.format.DateFormat.getBestDateTimePattern(locale, "hm")

// Создаем DateTimeFormatter из Java 9 Date Time API
val dateTimeFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern(pattern, locale)

// Пример форматирования текущего времени с использованием DateTimeFormatter
val formattedTime: String = LocalTime.now().format(dateTimeFormatter)
println("Отформатированное время: $formattedTime")


#android #совет

Android Broadcast

19 Feb, 06:10


История(12м) как в Альфа-Банке сокращали размер JSON файла, который передается на устройство для работы SDUI. Решением стала шаблонизация для отказа от одинаковых блоков UI с разными данными

#оптимизация #json

Android Broadcast

19 Feb, 06:00


🔴 Мок-собеседование Android-разработчика 🤖

📅 Сегодня в 19:00 (GMT+3)

Тех. собеседование в прямом эфире:
⚡️ Проектирование, кодинг и блиц по Android.
👨‍💻 Эксперт: Евгений Мельцайкин - старший инженер-программист.
👨‍🏫 Кандидат: Android-разработчик с 2 годами опыта.

🔗 Присоединяйтесь! → посмотреть прямую трансляцию можно только на YouTube 📹

Если не успеете на прямой эфир, запись будет доступна через пару дней на YouTube 📹 и VK Video 📹

#Android #Собеседование #Kotlin

Android Broadcast

18 Feb, 07:58


Emerge's Build Distribution - замена App Center

Emerge's Build Distribution сделали бесплатным с ограничениями:
5 тысяч загруженных сборок в месяц
Без ограничений на кол-во пользователей
Интеграция SSO включена
SDK для автообновлений

Поддерживается 🤖 Android и iOS

#andorid #ios #инструменты

Android Broadcast

18 Feb, 07:51


31 марта 2025 закрывается App Center

Многие знают App Center как удобный способ распространения сборок Android и iOS приложений

#android #ios #microsoft

Android Broadcast

15 Feb, 08:34


🛒 Представили Play Service TrustedTime API

Для тех приложений, которым важно получать настоящее время, а не то, что установлено на устройстве пользователем, всегда приходилось решать вопрос, откуда его взять. Теперь же появилось стандартизированное API.

// Создаем клиента для работы с Trusted Time API
val initializeTrustedTimeClientTask: Task =
TrustedTime.createClient(activity)

val trustedTimeClient: TrustedTimeClient =
initializeTrustedTimeClientTask.await()

val curTime: Long? = trustedTimeClient.computeCurrentUnixEpochMillis()
// Используем системное время, если нет возможности получить из TrustedTime API
// Может не подойти в вашем случае
?: System.currentTimeMillis()


Поддерживается Android 5.0 и выше (SDK 21+)

#google #gms #android

Android Broadcast

14 Feb, 18:12


🏝 9 лет назад вышла первая версия Kotlin 🎉🎉🎉

Кажется, я совсем недавно еще работал с бета-версиями первой версии Kotlin, писал приложения с расписанием для университета, где учился, чтобы попробовать эту технологию. Тогда была только поддержка JVM и проводились эксперименты с JS.

Сегодня Kotlin - это уже целая экосистема💪, которая позволяет писать приложения для нескольких платформ, имеет огромное сообщество разработчиков, а также официальную поддержку от команды 🤖 Android в Google. А как хорош Compose Multiplatform ❤️❤️❤️

Уже появилось поколение разработчиков, которые начали свой путь именно с Kotlin для разработки под Android 🤯🤯🤯

Поделитесь в комментариях под постом в @kotlin_broadcast своей историей знакомства с этим языком и тем, что вас привлекло в нем.

#kotlin

Android Broadcast

14 Feb, 10:44


Секреты JVM: что происходит с ошибками под капотом (4м)

Статья с примерами кода, как JVM обрабатывает исключения на низком уровне, что такое таблица исключений и какие сценарии используются для вариантов try-catch и try-finally.

#jvm

Android Broadcast

14 Feb, 10:22


Вышел багфикс Android Studio Ladybug Feature Drop (сейчас в стабильном релизе)

#androidstudio

Android Broadcast

14 Feb, 05:56


Пример кода как работать с разными метрическими системами в коде

val lengthInMeters = 10.0 // Базовое значение в метрах
textView.text = getLocalizedLength(this, lengthInMeters)

fun getLocalizedLength(
context: Context,
meters: Double,
locale: Locale = Locale.getDefault(),
): String {
if (isMetric(context)) {
return "%.2f m".format(locale, meters)
} else {
val feet = meters * 3.28084
return "%.2f ft".format(locale, feet)
}
}

fun isMetric(context: Context): Boolean {
// Получаем текущий регион
val locale = context.resources.configuration.locales[0]
return when (locale.country) {
// США, Либерия, Мьянма используют имперскую систему
"US", "LR", "MM" -> false
else -> true // Остальные — метрическую
}
}


#android #android16

Android Broadcast

14 Feb, 05:55


В региональных настройках Android 16 пользователь сможет менять метрическую систему

Теперь разработчикам в зависимости от настроек рекомендуется форматировать размеры в приложениях, но вот API из коробки для того не дали.

#android #android16

Android Broadcast

14 Feb, 05:42


🤖 Режим совместимости работы приложения для работы с 16KB размером страницы памяти (для всех приложений)

В Android 15 была добавлена поддержка 16 KB страниц памяти для оптимизации производительности платформы. В Android 16 появился режим совместимости, который позволяет запускать некоторые приложения, созданные для 4 KB страниц памяти, на устройствах с 16 KB страницами.

👉 Если Android обнаружит, что в вашем приложении используются 4 KB выровненные страницы памяти, система автоматически включит режим совместимости и покажет пользователю диалоговое окно с уведомлением.
👉 Чтобы избежать отображения этого диалога при запуске приложения, добавьте в AndroidManifest.xml атрибут <application android:pageSizeCompat="true" />
👉 Однако для максимальной производительности, стабильности и надёжности рекомендуется адаптировать приложение к 16 KB страницам, касается тех у кого есть нативные библиотеки и код

Подробнее о том, как обновить приложения для поддержки 16 KB страниц памяти, читайте в блоге.

Android Broadcast

14 Feb, 05:36


🤖 Включение Edge-to-edge для всех приложений без возможности выключения

В Android 15 есть флаг R.attr#windowOptOutEdgeToEdgeEnforcement, который позволял отключить для приложения "обязательное" включение Edge-to-Edge. В Android 16 флаг помечен как устаревший (deprecated) и система его игнорирует, а значит для вашего приложения включится режим отображения от края до края экрана.

#android #android16 #edgetoedge

Android Broadcast

14 Feb, 05:31


🤖 Улучшения поддержки UltraHDR в Android 16

Появилась поддержка UltraHDR в HEIC, также работают на поддержкой в AVIF. Также добавили новые параметры UltraHDR из черновика стандарта ISO 21496-1

#android #android16

Android Broadcast

14 Feb, 05:27


🤖 Точная настройка цветовой температуры и оттенка в Camera2

В Android 16 появилась поддержка точной настройки цветовой температуры и оттенка для камеры, что особенно полезно для профессиональных видеосъёмочных приложений.

Ранее в Android управление балансом белого осуществлялось через CONTROL_AWB_MODE, но выбор ограничивался предустановками (например, “Лампа накаливания”, “Облачно”, “Сумерки”).

Теперь новый режим COLOR_CORRECTION_MODE_CCT позволяет использовать параметры COLOR_CORRECTION_COLOR_TEMPERATURE и COLOR_CORRECTION_COLOR_TINT для более точной коррекции баланса белого на основе коррелированной цветовой температуры (CCT).

Пример кода:
fun setCCT() {
val colorTemperatureRange: Range<Int> =
mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]

// Переключаемся в ручной режим для активации CCT
reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30

val request: CaptureRequest = reqBuilder.build()
}


Теперь разработчики могут добиваться более точной цветопередачи, что особенно важно для профессиональной видеосъёмки.

#android #android16 #camera2 #камера

Android Broadcast

14 Feb, 05:18


⚙️ Профессиональные функции Camera2 API. Гибридная автоэкспозиция 🎥

В Android 16 добавлены новые режимы гибридной автоэкспозиции (Hybrid AE) в Camera2. Теперь можно вручную управлять отдельными параметрами экспозиции, оставляя остальное на алгоритм автоэкспозиции (AE).

Доступны два новых режима:
👉 ISO + AE – вы задаёте ISO, а автоэкспозиция регулирует выдержку.
👉 Выдержка + AE – вы управляете временем экспозиции, а AE настраивает ISO.

Это даёт больше гибкости по сравнению с прежним подходом, где нужно было либо полностью полагаться на автоэкспозицию, либо вручную контролировать все параметры.

fun setISOPriority() {
// ...

val availablePriorityModes = mStaticInfo.characteristics.get(
CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
)

// ...

// Включение AE режима
reqBuilder.set(
CaptureRequest.CONTROL_AE_MODE,
CameraMetadata.CONTROL_AE_MODE_ON
)
reqBuilder.set(
CaptureRequest.CONTROL_AE_PRIORITY_MODE,
CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
)
reqBuilder.set(
CaptureRequest.SENSOR_SENSITIVITY,
TEST_SENSITIVITY_VALUE
)
val request: CaptureRequest = reqBuilder.build()

// ...
}


#android #android16 #камера #camera2

Android Broadcast

14 Feb, 05:11


🤖 Появился новый Intent для съёмки Motion Photo

val intent = Intent(MediaStore.ACTION_MOTION_PHOTO_CAPTURE)
// или MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE

// Задаем куда сохранить
intent.putExtra(MediaStoreEXTRA_OUTPUT, uri)
// или Uri через ClidData
intent.setClipData(clipData)

context.startActivity(intent)


#android16

Android Broadcast

14 Feb, 04:59


🤖 Вышла вторая Beta Android 16

Вышла вторая из четырёх Beta версий Android 16. Улучшили работу с медиа, новые возможности Camera2 API, форсирование Edge-to-edge и другие. Как всегда расскажу отдельными постами про самые интересные фичи

#android16

Android Broadcast

13 Feb, 14:03


Три слова для привлечения внимания любого тимлида: OKR, планирование и мотивация команды 🚀

А теперь, пока вы тут: встречаемся 26 февраля на Avito TeamLead Drinkup #3!

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

Для регистрации кликайте сюда. Осталось не так много мест! 🔥

#management_avitotech

Android Broadcast

13 Feb, 09:07


Как лишние ресурсы могут повлиять на UI вашего приложения

Библиотеки от Google и других популярных SDK часто содержат строки для десятков локалей, тогда как большинство приложений поддерживают всего 7–10 наиболее востребованных языков.

Механизм выбора ресурсов в Android устроен таким образом, что система подбирает наиболее подходящий ресурс с учётом квалификаторов (например, локали). Если для конкретной локали, установленной на устройстве, в вашем проекте отсутствует соответствующий перевод, система может использовать строку из библиотеки по умолчанию. Это может привести к неожиданному отображению интерфейса.

Чтобы избежать подобных ситуаций, вы можете явно задать набор локалей, которые поддерживает ваше приложение. Тогда все ресурсы для неуказанных локалей не попадут в финальный APK, что не только снижает его размер, но и обеспечивает предсказуемость UI.

Пример настройки в build.gradle.kts (application модуль):

android {
androidResources {
// Автоматически сгенерировать список локалей на основе ресурсов проекта
// По умолчанию false
generateLocaleConfig = true

// Либо явно указать поддерживаемые локали
localeFilters.addAll(setOf("en", "ru", "es", "de"))
}
}


Ранее Android Gradle Plugin позволял фильтровать ресурсы по различным группам квалификаторов (например, плотность экрана, ориентация и т.д.), однако начиная с AGP 8.0 эта возможность объявлена устаревшей и поддерживается только фильтрация по локалям. Это связано с тем, что App Bundle эффективно разделяет ресурсы по плотности экрана, а применение других фильтров использовалось крайне редко.

#android #gradle #локализация #совет

Android Broadcast

13 Feb, 06:00


🚀 Ergostol радует новой акцией

🔥 При покупке регулируемого стола или подстолья вы получаете скидку -20% на все опции!
🗓 Период акции: с 13.02.2025 по 16.02.2025

Как это работает:
▪️ На странице товара: при добавлении аксессуара из блока опций к столу цена автоматически пересчитается со скидкой.
▪️ В корзине: если вы добавили стол и опцию раздельно, скидка также применится автоматически.

Почему это круто?
Создайте идеальное рабочее пространство с выгодой!
Опции, которые сделают ваш стол еще удобнее, теперь доступнее.

❗️А по промокоду ANDROID10 вы получите дополнительную скидку на все опции и товары в вашей корзине

Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262

Android Broadcast

12 Feb, 19:31


🚀 Вышла первая Beta версия Room 2.7.0. Самое важное нововведение - переход на KMP с поддержкой Android, iOS и Desktop 🔥🔥🔥. Также на Android теперь можно использовать SQLite из артефакта, а не только тот что в Android ОС

#android #kmp #jetpack #room #sqlite

Android Broadcast

12 Feb, 14:00


📹 Опасности в Android: уязвимости и защитные меры (42м)

Увлекательное путешествие в мир безопасности Android! Разобрали самые интересные и коварные уязвимости, такие как Path Traversal, SQL-инъекции и Tapjacking. Но основное внимание уделили WebView: неправильной валидации данных, уязвимостям в библиотеке для парсинга URL, JavaScript Interface и загрузке диплинков.

В докладе нет скучных терминов и монотонных объяснений. Вместо этого — захватывающая история поиска уязвимостей и их устранения, основанная на личном опыте при разработке приложений.

Будет полезно всем тем, кто интересуется безопасностью Android-приложений.

📹 Версия на VK Video

#android #безопасность #mobius

Android Broadcast

11 Feb, 06:00


Выполнение запросов SQLite на множестве потоков может привести к замедлению вашего приложения 🤯

Разработчик делает классный разбор того, как работают запросы SQLite в Android и как их оптимизировать. Статья - параллельность в Android SQLite (EN,11м)

Основные выводы:
👉 Используйте забандленную версию SQLite (добавит около 1 Мб за каждый ABI)
👉 Если работает с несколькими БД через ROOM, то задавайте CoroutineContext или Executor для выполнения запросов
👉 Больше полезного в статье, почитай. Она того стоит

#android #room #sqlite #jetpack

Android Broadcast

10 Feb, 18:46


В Android Studio Meerkat 2024.3.1 появится возможность создавать KMP Shared модуль для Android и iOS

#androidstudio #kmp #android #ios

Android Broadcast

10 Feb, 08:50


📹 В Jetpack Room есть возможность использовать не встроенный в Android ОС SQLite, а вместо этого использовать самую свежую версию (вес около 1 МБ для каждого ABI).

Это позволит использовать единую версию SQLite на всех устройствах и получать преимущества в скорости работы от новых функций. Причем эта возможность доступна для всех поддерживаемых платформ, которые поддерживает Room: Android, iOS, Desktop.

📹 Доклад с Droidcon от гуглера о том, как это сделать (EN, 15м)
🔗 Подробности в документации

#android #sqlite #room #jetpack

Android Broadcast

10 Feb, 06:47


LinkedIn и JetBrains запартнёрились и теперь и запустили сертификацию по java.

Курс "Java Foundations Professional Certificate by JetBrains" направлен на начинающих и включается 5 глав: синтаксис, ООП, объекты и APIs, структуры данных и JDBC, после чего можно получить сертификат.

Жду программы по Kotlin

#jetbrains #linkedin #сертификация

Android Broadcast

09 Feb, 13:51


‼️ Защита от атак на приложения через изменение AndroidManifest

При сборке APK финальный AndroidManifest формируется из нескольких источников:
👉 AndroidManifest всех модулей в коде вашего приложения
👉 AndroidManifest из подключённых AAR-зависимостей
👉 Изменения через Android Gradle Plugin (например, подстановка параметров и указание namespace)
👉 Сторонние Gradle-плагины, модифицирующие манифест через AGP

В результате итоговый AndroidManifest представляет собой комбинацию множества частей. Подробнее о процессе его объединения я рассказывал в этом 📹 видео.

🔒 Как защититься от скрытых изменений манифеста?

Рекомендую автоматизировать проверку с помощью Gradle-плагина manifest-guard.

Плагин позволяет сохранить эталонный AndroidManifest и автоматически проверять его при сборке проекта.
Можно настроить запуск проверки на CI: если манифест изменился, сборка упадёт, а вы получите HTML-отчёт с разницей между эталоном и текущей версией.

#android #безопасность

Android Broadcast

08 Feb, 09:20


🐱 Buckwheat (на русском звучит "Гречка") - это приложение с открытым исходным кодом, которое помогает вам тратить деньги разумно. Запись каждой статьи расходов приводит вас в чувства и дает представление о том, сколько и как вы можете потратить.

Стек технологий: Jetpack Compose, KotlinX Coroutines, Room, Dagger + Hilt, Coil

🛒 Вы можете установить приложение из Google Play

#android #opensource #пример #fdroid #compose

Android Broadcast

08 Feb, 08:47


Streamflix - приложение-кинотеатр с открытым исходным кодов для Android смартфонов, планшетов и Android TV для просмотра фильмов и ТВ шоу. Для видео используется ExoPlayer из Jetpack Media 3

#android #пример #opensource #androidtv #медиа

Android Broadcast

08 Feb, 08:40


FFShare - Android-приложение с открытым исходны кодом для сжатия картинок, видео и аудио файлов с помощью ffmpeg

#android #пример #opensource #fdroid

Android Broadcast

08 Feb, 08:27


2.3 миллиона приложений не опубликовали в Google Play в 2024, а 1.3 миллиона приложениям отказали в запросе разрешений для доступа к конфиденциальным данным пользователей (необоснованные разрешения приложений)

Google Play подвела итоги защиты разработчиков и пользователей за 2024. Вот основные факты:

🤔 Google постоянно предотвращает публикацию в Google Play приложений, нарущаюших политику магазина, и удалила 158 тыс аккаунтов разработчиков, пытающихся публиковать вредоносные приложения.

⭐️ Google много инвестируют в ИИ для ускорения проверки и 92% вредоносных приложений проверяется им.

🤖 91% установок всех приложений в Google Play Store используют возможности защиты Android 13 или более поздней версии. (хотя уже скоро релизнется Android 16 😂)

🚀 Приложения, использующие Google Play Integrity API, в среднем на 80% реже используются из непроверенных и ненадежных источников.

🔍 Google Play Protect ежедневно сканирует более 200 миллиардов приложений

В 2024 году сканирование в режиме реального времени Google Play Protect выявило более 13 миллионов новых вредоносных приложений, установленных не из Google Play

🤯 Было предотвращено более 36 миллионов попыток установок приложения не из Google Play в рамках пилотной программы по определению фрода в 9 странах.

#googleplay #безопасность

Android Broadcast

08 Feb, 07:55


Waydroid - решение на основе контейнеров для запуска Android приложения в GNU/Linux системах, используй Wayland

Если любите Linux, то Waydroid даст вам возможность запуска Android приложений и сделать их интеграцию в систему как нативные приложения.

#linux

Android Broadcast

08 Feb, 07:32


Chrome на Android получит поддержку сторонних менеджеров паролей

Ранее стало известно, что в Beta-версии все менеджеры паролей для Android начнут работать с Chrome. Google на основе обратной связи добавила полезные возможности:

1️⃣ Узнать любому приложению, используется ли в Chrome сторонний менеджер паролей

2️⃣ Добавили Deep Link для открытия настройки выбора сервиса автозаполнения в Chrome
val autofillSettingsIntent = Intent(Intent.ACTION_APPLICATION_PREFERENCES).apply {
addCategory(Intent.CATEGORY_DEFAULT)
addCategory(Intent.CATEGORY_APP_BROWSER)
addCategory(Intent.CATEGORY_PREFERENCE)
}

val chooser = Intent.createChooser(autofillSettingsIntent, "Pick Chrome Channel")
startActivity(chooser)


Chrome 135 выйдет в релиз 1 апреля 2025

#android #autofill #chrome

Android Broadcast

07 Feb, 15:50


Если вы хотите провести собеседование, чтобы показать как оно устроено в вашей компании, а может наоборот устроить душное невыносимое собеседование - пишите @kirill_broadcast. Найду подходящего кандидата для вас!

Android Broadcast

07 Feb, 13:53


Что самое сложное в собеседовании для разработчиков?

Это не задачи на алгоритмы и не вопросы про фреймворки. Самое сложное — понять, чего от вас ждут.

Я решил помочь разобраться в этом и собрал плейлист с МОК собеседованиями.

Здесь вы найдете:
🔍 Разборы задач с объяснением логики
💡 Советы, как показать свои сильные стороны
🚀 Примеры вопросов, которые задают в топовых компаниях
👉 Посмотреть плейлист можно на YouTube 📹 и VK Video 📹

Какой вопрос на собеседовании поставил вас в тупик? Делитесь в комментариях!

#AndroidBroadcast #собес

Android Broadcast

06 Feb, 19:28


В Android Studio вскоре будет новый терминал. Там появится подсветка и автодополнение. Пока можно попробовать, но когда-то он останется единственным доступным.

Ряды тех, кто ностальгирует по старому UI в IDEA/Android Studio, прибавилось 😁

#androidstudio

Android Broadcast

06 Feb, 12:17


Тимлиды, техлиды и все те, кто руководит IT-командами, — ждём вас на Avito TeamLead Drinkup #3⚡️

Поэтому скорее бронируйте в календарях вечер 26 февраля. Встретимся в неформальной обстановке, понетворкаем и обсудим:
— взлом интервью и накрутку опыта у кандидатов;
— ИИ в процессе разработки и управлении командой;
— как смириться с тем, что ты не самый сильный по хардам, и начать жить;
— OKR, планирование и стратегия.

И другие темы, которые «болят» или, наоборот, радуют каждого тимлида. Не забудьте зарегистрироваться и отправить этот пост коллегам (за это + в управленческую карму).

🗂Avito TeamLead Drinkup #3, 26 февраля, Москва.

#management_avitotech

Android Broadcast

05 Feb, 16:15


🤯 Не нужно делать инжект всех зависимостей в конструктор

Встретил код в проекте:
class MyViewModel(
...
private val sendDataUseCase: SendDataUseCase,
...
): ViewModel() {

// Вызывается, когда пользователь в UI нажмёт на "Send"
fun onSendClicked(...) {
viewModelScope.launch {
sendDataUseCase.invoke(...) // либо sendDataUseCase(...)
}
}
}


sendDataUseCase не нужен сразу при создании объекта, а нужен только если пользователь нажмёт на кнопку "Send" в UI, что может и не произойти. Так как эта зависимость нужна в конструкторе, то при получении в DI будет сразу происходить создание этой зависимости, что приводит к ненужной нагрузке.

Я рекомендую делать отложенное получение зависимостей с помощью механизма Provider или Lazy. Первый будет ходить за зависимостью в граф каждый раз, а второй - при первом обращении и сохранит её.
// При использовании Dagger или Hilt
class MyViewModel(
...
private val sendDataUseCase: javax.inject.Provider<SendDataUseCase>, // или dagger.Lazy
...
): ViewModel() {

fun onSendClicked(...) {
viewModelScope.launch {
sendDataUseCase.get()
.invoke(...)
}
}
}


Если вы используете Koin на момент написания поста (актуальная версия 4.0), делать отложенный инжект в конструктор возможности нет:
// При использовании Koin
class MyViewModel(): ViewModel() {

// отложенное получение зависимости в Koin
private val sendDataUseCase: SendDataUseCase by inject()

fun onSendClicked(...) {
viewModelScope.launch {
// аналог Provider - получение зависимости каждый раз из графа
val sendDataUseCase: SendDataUseCase = getKoin().get()
sendDataUseCase.invoke(...)
}
}
}


Результат оптимизации
более быстрый старт экранов (зависит от сложности графов)
уменьшение расхода памяти
KOIN потеря явной зависимости в конструкторе. Мне бы очень хотелось увидеть аналог Provider и Lazy в Koin через конструктор, но пока приходится делать свои обертки 😔

#dagger #di #лучшиепрактики

Android Broadcast

05 Feb, 16:15


🏆 Хотите чтобы я провел анализ вашего проекта и дал подробный отчет? Делаю ревью проектов для компаний так и по персональным запросом с различным уровнем подробности. Пишите мне в личку @kirill_broadcast с подробностями вашего запроса

Android Broadcast

05 Feb, 10:07


Коротко описал ключевые изменения в ViewBindingPropertyDelegate 2.0 через статью (EN,3м) и вот альтернативная ссылка

#android #viewbinding

Android Broadcast

31 Jan, 10:53


Все мы уже привыкли выкладывать сборки в Google Play через AAB, которые передаст на устройство только необходимое для устройства нативные библиотеки. Некоторым приходится раздавать сборку в APK формате. Банальный кейс - отдавать сборку на проверку QA.

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

Android Gradle плагин позволяет указать какие ABI нужно добавлять в сборку. Сложность в том, что для финальной сборки обычно надо добавить ABI arm64-v8a и armeabi-v7a, а вот для Intel эмуляторов нужны x86 и x86-64. Чтобы делать это эффективно, я делал механизм передачи значений ABI через переменные при сборке. Это позволяет задавать локально и на CI разные значения, а локальные задавать через файл local.properties или переменную окружения

// Код в Gradle KTS скрипте
fun resolveAbiFilters(): List<String> {
val abisString =
project.findProperty("abiFilter") as String? // Параметр командной строки
?: readFromLocalProperties("abi.filter") // Значение из local.properties
?: System.getenv("ABI_FILTER") // Переменная окружения

return abisString?.split(",") ?: emptyList()
}

fun readFromLocalProperties(key: String): String? {
val localPropertiesFile = rootProject.file("local.properties")
if (!localPropertiesFile.exists()) return null

val localProperties = Properties().apply {
localPropertiesFile.inputStream().use(::load)
}
return localProperties.getProperty(key)
}


// В Android application модуле указываем
android {
defaultConfig {
ndk {
abiFilters = resolveAbiFilters()
}
}
}


Пример задания через параметр
./gradlew assembleRelease -PabiFilter=arm64-v8a,armeabi-v7a


Если вы запускаете приложения из Android Studio на устройстве/эмуляторе, то IDE понимает какую ABI из поддерживаемых стоит включить в APK, чтобы приложение смогло работать. Все остальные исключается. Сборка компактнее - меньше время на передачу и установку тестового билда.

#android #gradle #ndk

Android Broadcast

31 Jan, 06:00


Как команда Контура объединила CI/CD для мобильных платформ (5м)

Команда мобильной разработки Контура столкнулась с проблемой разного CI/CD для Android и iOS. Разные пайплайны, gitflow, подходы к секретам и использование сабмодулей создавали сложности в сопровождении и развитии инфраструктуры.

Как было:
👉 Разные процессы CI для Android и iOS
👉 Submodules, не подтягивающие обновления
👉 Дублирование кода
👉 Сложности с мультиплатформенным подходом

Как стало:
👉 Перевели CI на единый шаблон
👉 Отказались от сабмодулей
👉 Унифицировали работу с секретами
👉 Перешли на модульную структуру fastlane

Теперь CI/CD работает как сервис: разработчики могут быстро подключать обновления и собирать пайплайны под новые платформы. Даже после ухода ключевых инженеров система продолжает стабильно работать.

UPD1: Этот процесс был выполнен давно и в Контур уже отказались от Fastlane.

#fastlane #android #ios #ci #автоматизация

Android Broadcast

30 Jan, 18:00


У Qualcomm есть собственная технология апскейла для игр - Snapdragon Game Super Resolution 2. Полезно разработчикам игр с 3D. Короткое знакомство в статье (EN,4м)

Ссылка без VPN

#qualcomm #gpu

Android Broadcast

30 Jan, 10:38


📹 Обзор компактного рабочего стола для работы стоя/сидя (14 мин)

Мне понадобилось сделать рабочее место дома, а места для этого не так много. Решением послужил компактный стол - Ergostol One 2.0. Попользовался им практически месяц и делюсь впечатлениями.

Промокод со скидкой на 10% на всю продукцию Ergostol в описание к видео

#AndroidBroadcast #ergostol

Android Broadcast

30 Jan, 09:07


🚀 Вышел Room 2.7.0-alpha13

Библиотека мигрирует на Kotlin 2.0+ и весь проект должен будет тоже использовать её. Хотите KMP - точно надо будет мигрировать на Kotlin 2.0

Это последний альфа релиз и дальше будет Beta и уже совсем скоро релиз.

#android #kmp #jetpack #jetpackupdate #sqlite

Android Broadcast

29 Jan, 03:27


Goose - open-source ИИ-ассистент , который заберет рутину у программистов и сократит время на выполнение задач

Ключевые особенности:
👉 Работает локально на вашем компьютере без интернета
👉 Расширяемый: можно подключить сторонние сервисы через API
👉 Может работать с разными провайдерами AI: OpenAI, Gemini, Groq и другие
👉 Есть интеграция с IDE от JetBrains

@mobi_dev

Android Broadcast

28 Jan, 07:35


На сайте Android Developers появилась документация с рекомендациями по разработке приложений и циферблатов для детей на WearOS

#android #wearos

Android Broadcast

27 Jan, 15:11


📺 Google заставит разработчиков поддержать планшеты в Android 16

Google снова пытается убедить разработчиков поддерживать UI под большие экраны. Сделал видео где сделал весь обзор попыток Google повысить популярность Android планшетов и почему снова ничего не выйдет.

#AndroidBroadcast #android16

Android Broadcast

27 Jan, 07:44


🤖 Разбор как Android освобождает память для приложений (EN, 5м)

Android имеет ограниченное количество оперативной памяти для приложений и не использует SWAP. Что множество приложений могли работать система использует механизмы по управлению приложениями для очистки памяти - Low Memory Killer (LMKd) и Kernel SWAP (Kswapd). В статье разбирают эти утилиты и принципы работы с памятью

🔗 Ссылка без VPN

Android Broadcast

27 Jan, 06:36


⚙️ Optimize App Performance By Mastering Stability in Jetpack Compose (EN, 20м)

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

Разбираются:
👉 Что такое Stable тип
👉 Как происходит рекомпозиция
👉 Restartable и Skippable Composable функции
👉 Compose Compiler Metrics
👉 Аннотации Immutable и Stable
👉 Аннотация NonRestartableComposable
👉 Как стабилизировать Composable функции
👉 Strong Skipping Mode

#compose #производительность

Android Broadcast

27 Jan, 06:00


Руководство(EN,6м) от команды CameraX по созданию эффекта как на видео, когда весь ваш UI на Compose. Используется определение лиц в кадре и наложение масок

🔗 Ссылка без VPN

#android #jetpack #camerax #камера #compose

Android Broadcast

25 Jan, 08:56


📹 Android Developers Backstage 212 - С Днём Рождения, Android Studio!

Состав из одних ветеранов команды Android разработки и Чета Хасса обсуждают всю историю Android Studio от идеи её появления до современности!

Подключение библиотек через исходники, сборка приложений на машине разработчика и множество других ограничений, которые большинство подписчиков этого канала даже и не знали 😁 а на они все были. Когда разработчики жалуются на современные инструменты, то я вспоминаю хаотичный статус инструментов в 2012, когда я начинал.

#android #adb #androidstudio

Android Broadcast

25 Jan, 08:30


🔨 Сегодня исполнилось 10 лет с выхода Android Studio 1.0 🤯

Я помню как пробовал ранние сборки Android Studio, мучался с переходом на IDEA платформу после Eclipse, знакомился с системой сборки после хаоса ADT плагина.

Ставьте ❤️ если пользовались Android Studio с первой версии и делитесь вашими воспоминаниями от первой версии

#android #androidstudio

Android Broadcast

24 Jan, 14:45


🤖 В Android 16 для всех приложений по умолчанию включат Predictive Back Gesture

Все приложения с targetSdk Android 16 и выше должны поддерживать Predictive Back Gesture (PBG) т.к. его включат по умолчанию. Если вы этого не хотите - можно просто отключить для вашего приложения.

При включенном PBG в приложение не будет срабатывать callback Activity.onBackPressed() и отправляться события KeyEvent.KEYCODE_BACK.

Для отключения надо добавить в AndroidManifest
<application
android:enableOnBackInvokedCallback="false"
>
<!-- Отключение на уровне activity-->
<activity
android:enableOnBackInvokedCallback="false"
/>
</application>


#android #android16

Android Broadcast

24 Jan, 14:37


🤖 В Android 16 изменяется поведение ordered broadcast (с заданным приоритетом)

Доставка Broadcast Intent на основе приоритетов между процессами больше не гарантируется. Это значит, что приоритеты будут работать только в рамках приложения и его процесса.

Приоритеты SYSTEM_LOW_PRIORITY и SYSTEM_HIGH_PRIORITY смогут задавать только системные приложения, а для всех остальных приоритет автоматически будет понижаться/повышаться.

#android #android16

Android Broadcast

24 Jan, 14:26


🤖 Некоторые приложения не будут запускатьcя на Android 16 без перекомпиляции из-за обновления ART

В Android 16 изменится внутренняя реализация виртуальной машины ART, что направлено на увеличение производительности и поддержки дополнительных фичей Java.

Это изменения приведет к тому что код библиотек и приложений, который полагается на внутреннюю структуру ART может некорректно работать на Android 12+ и выше.

Проверьте ваше приложение на Android 16, чтобы убедиться в корректности его работы.

Обновление ART будет доставлено на все устройства с Android 12 и выше, а также установленными Google Play Services.

#android #android16 #art

Android Broadcast

24 Jan, 14:12


🤖 В Android 16 добавили поддержку кодека Advanced Professional Video (APV) для записи видео профессионального уровня и пост-продакшена.

Ключевые особенности APV:
👉 Качество видео близко к raw-формату.
👉 Высокая скорость кодирования внутри кадра, удобная для редактирования.
👉 Поддержка битрейтов до нескольких Гбит/с для 2K, 4K, 8K.
👉 Фрейм-тайлинг для иммерсивного контента и параллельного кодирования.
👉 Разные форматы цветовой субдискретизации и битовой глубины.
👉 Многократное перекодирование без значительной потери качества.
👉 HDR10/10+, пользовательские метаданные, многокамерное видео.
👉 Работа с альфа-каналами, глубиной и превью.

Кодек APV реализован на основе OpenAPV, поддерживает профиль APV 422-10 с YUV 422, 10-битным кодированием и битрейтом до 2 Гбит/с. Это прорыв для профессиональной видеосъёмки на Android!

#android #android16 #медиа #видеосъёмка

Android Broadcast

24 Jan, 13:59


🔨 В Android Studio добавили генерацию превью Composable функций на основе Gemini

Сгенерированные превью будут заполнены данными, не всегда идеально, но как минимум уже будет вам полезно.

#android #androidstudio #compose #gemini

Android Broadcast

24 Jan, 10:58


🔨 Поддержка Android XR в Android Studio

Вышла вторая Canary версия Android Studio Meerkat Feature Drop в которой появилась поддержка Android XR: шаблоны проектов, эмулятор, Layout Inspector и другие инструменты

#android #androidstudio #androidxr

Android Broadcast

23 Jan, 20:50


Android 16 Beta 1: Предиктивный жест назад для трёхкнопочной навигации и приложения Обои и Стиль.

При использовании системной навигации с тремя кнопками теперь можно будет увидеть анимацию предиктивного жеста назад. Для этого необходимо зажать кнопку назад. При этом вы также можете отменить это действие просто переместив палец в другую часть экрана, но не отрывая палец от дисплея.

Также теперь поддержку предиктивного жеста назад получило системное приложение Обои и стиль.

#Android16

😎 Google News | Ru

Android Broadcast

23 Jan, 20:47


Так будет выглядить при добавление нескольких сегментов и точек

Android Broadcast

23 Jan, 20:46


Вот так выглядит новый стиль уведомлений в Android 16

#android16

Android Broadcast

23 Jan, 20:41


Notification Live Updates в Android 16

Добавили новый стиль уведомлений - ProgressStyle, который позволяет задать текущий прогресс, иконки для начала, конца и текущей позиции, добавлять разные сегменты и точки.

Подробности по новому типу уведомлений читайте тут

Рекомендуется интегрировать приложениям в сфере доставки и навигации. Пишите свои комментарии каким категориям приложений еще подойдет

#android16

Android Broadcast

23 Jan, 20:31


Все устройства Google Pixel 6 и выше могут вступить в Beta программу и получить первую Beta Android 16 по воздуху.

#android16

Android Broadcast

23 Jan, 20:26


🎉 Вышла первая Beta Android 16

Что нового:
👉 Лучшая поддержка больших экранов
👉 Новый тип уведомлений - Live Updates. Похоже на Live Activity из iOS
👉 Поддержка кодека Advanced Professional Video (APV), который используется для записи в проффессиональнызх видео и монтажа
👉 Camera2 API сможет определять нужно ли включить ночной режим
👉 Поддержка вертикального текста
👉 Улучшения accessibility
👉 Ranging API - определение расстояния и угла между Android устройством и удаленным девайсом на основе разных технологий
👉 Изменения под капотом в ART VM приведут к тому что не все приложения будут работать корректно на Android 16. Надо перекомпилировать код и выпускать обновление!
👉 Predictive Back Gesture будет включен для всех приложений с Android 16 и выше.
👉 Predictive Back Gesture теперь поддерживает 3-кнопочную навигацию
👉 Изменения в поведении API

Все подробности в отдельных постах в @android_broadcast

Еще год назад в феврале мы получали только первую Developer Preview, а в 2025 уже первая Beta в январе!

#android16

Android Broadcast

23 Jan, 18:02


‼️ Теперь всем приложениям надо поддерживать обе ориентации экрана, а также большие экраны

Начиная с Android 16, будут игнорироваться аттрибуты манифест и API, которые используются для ограничения ориентации и размера окна приложения, что нацелено на опыт пользователей с большим экраном.

По простому - разработчикт будут обязаны поддержать поворот экрана и большие экраны, или ваше приложение будет выглядеть плохо (растягиваться)

#android16 #планшет

Android Broadcast

23 Jan, 15:02


Открываем набор на оплачиваемую стажировку 🔥

Вы спрашивали, вы ждали, и вот мы возвращаемся с анонсом стажировки для разработчиков! 6 месяцев, от 25 часов в неделю и 5 направлений: Frontend, Backend, iOS, Android и QA.

Сразу отвечаем на возможные вопросы:
🔵 работа из офиса, удалённо или в гибридном формате на выбор;
🔵 зарплата обсуждается на этапе интервью;
🔵 после программы в компании остаются 80% стажёров.
А ещё вы будете решать реальные задачи бизнеса вместе с разработчиками Авито. Звучит круто!

💻 Узнать требования для каждого направления и попробовать свои силы можно тут.

#avitostart

Android Broadcast

23 Jan, 13:44


Кофе для автора ☕️
Нравится канал @android_broadcast ? Поддержите автора, угостив чашкой кофе. Больше энергии — больше контента!

Android Broadcast

10 Jan, 06:00


Android разработчик с большим опытом публикации open source делится советами (EN, 18м) по разработке подобных проектов

#opensouce

Android Broadcast

09 Jan, 19:34


🔨 Вышла стабильная версия Android Studio Ladybug Feature Drop 2024.2.2

👉 Больше AI функций с Gemini
👉 Поддержка превью анимаций для WearOS тайлов
👉 Эмулятор WearOS теперь поддерживает Health Services
👉 App Links Assistant упростит реализацию App Link
👉 Интеграция с Google Play SDK Insights. Прямо в IDE будут предупреждения про необходимость обновления зависимостей
👉 Motion Editor deprecated и будет удалён в следующем релизе Android Studio. Пользуйтесь Compose инструментами
👉 Новая панель с сенсорами, которая позволит симулировать возможности сенсора
🛠 Исправили 770 багов

Подробнее про изменения тут

#androidstudio

Android Broadcast

09 Jan, 10:41


Долгожданный аксессуар для рабочего стола 🔌 выдвижная розетка Ergostol PowerUp, которая объединяет в себе обычные розетки, беспроводную зарядку, обычный USB порт и Type-C с быстрой зарядкой Power Delivery ⚡️

Прочный корпус, выполненный из алюминия, долговечного пластика (PC) и закаленного стекла. Размещайте розетку даже вблизи мокрых зон - защита от брызг убережет от нежелательного воздействия влаги на разъемы питания.

💡 Не забудьте заглянуть на сайт ergostol.ru и выбрать идеальный стол для вашего рабочего пространства!

🎁 По промокоду ANDROID10 вы получите скидку на все товары в вашей корзине

Реклама. ООО «СОФТЭФФЕКТ», ИНН 7735575262

Android Broadcast

09 Jan, 08:49


Android команда из Google сделала курс по Rust с нуля и до сложных фичей. Курс будет полезен Android разработчикам, кто работает с NDK. Также в курсе освещается работа с Chromium, Bare-metal и многопоточность

Курс также можно скачать как PDF

#android #ndk #rust

Android Broadcast

09 Jan, 04:41


Media Performance Classes (MPC) - фича Android 12, которая позволяет понять уровень производительности устройства и от него менять возможности вашего приложения. Каждую версию Android обновляются требования для соответствия классу новой версии ОС. Также функция доступна и через Jetpack Performance Core, а информация о классе устройства обновляется через Google Play Services.

// Пример использования 
class MyActivity : Activity() {
@Inject lateinit var devicePerformance: DevicePerformance

override fun onResume() {
super.onResume()
when {
devicePerformance.mediaPerformanceClass >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE -> {
// MPC level 34+
// Самое современное устройство. Стоит включать всё
}
devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.TIRAMISU -> {
// MPC level 33.
// Мощное, но не флагман
}
else -> {
// MPC level 31, 30 или не определено
// Удаляйте дополнительные плюшки для лучшей скорости работы
}
}
}
}

Google Maps поделились своим примером использовантия MPC для оптимизации доступности функционала карт

#android #производительность #jetpack

Android Broadcast

08 Jan, 17:35


Привет всем в этом году. За каникулы я занялся обновлением библиотеки ViewBindingPropertyDelegate. Изменил подход к сбросу ViewBinding и убрал ненужные проверки, что в итоге обеспечило библиотеки надёжную работу и решило проблемы с анимациями. Библиотека получает новую мажорную версию, так как меняется очистка под капотом и меняется API получения делегатов.

Ищу добровольцев, кто будет готов попробовать миграцию на 2.0 Release Candidate и поделиться тем, как работает новая версия в вашем коде.

Android Broadcast

27 Dec, 18:11


Итоги года для @android_broadcast впечатляют 🤯
📈 Выросли по количеству подписчиков с 12.8 тыс до 13.9. Совсем чуть-чуть остаётся до 14 тыс
🔥Для вас все 6 лет канала работает единственный автор - Кирилл Розов. Залетайте в мой блог @rozov_blog
🚀 Ваш интерес к каналу только растёт, что заряжает меня работать дальше

Если вам интересно узнать результаты других моих каналов - заходите:
🏝 @kotlin_broadcast
🔨 @compose_broadcast
🍏 @ios_broadcast

Я же буду отдыхать и готовить для вас новый контент в видео формате на 📹YouTube и 📹 VK Video, и много экcлюзива на 🪙 Boosty!

Увидимся с вами в 2025 года

Android Broadcast

27 Dec, 15:00


Я занимаюсь разработкой неофициального Kotlin Multiplatfrom клиента сервиса Frame.io под Android, Desktop и iOS.

Уже вышло 7 видео:
- О проекте
- Генерация клиента REST API через Open API схему
- Создание и настройка проекта в Android Studio
- Настройка GitHub Репозитория
- Что важно учесть на этапе дизайна. Дизайн приложения FrameIO
- Настройка UI Kit на основе Material3
- Реализация работы с Frame.io REST API

Вы также получите доступ к исходном коду на GitHub и дизайну на Figma! Всё обсуждение ведем в Telegram чате

Чтобы получить доступ надо оформить подписку уровня Senior или выше, либо за единоразовую оплату навсегда

#AndroidBroadcast #видео #frameio

Android Broadcast

27 Dec, 14:44


Всем привет! Подготовили для вас последний в текущем году релиз. Что нового:
1⃣ Артефакты для xctestrun конфигов обрабатываются еще быстрее;
2⃣ улучшили механизм дискаверинга нативных iOS тестов;
3⃣ пофиксили баг, при котором очередь могла внезапно потерять бакет из-за перезапуска воркера;
4⃣ добавили возможность использования env- переменных в emceeplan файле для чувствительных данных - вроде пароля для artifactory user;
5⃣ добавили ресурсов в облако и сделали его работу еще быстрее.

Напоминаем, что попробовать Emcee можно бесплатно на 10 воркерах при регистрации в облаке в января предоставляем 300 минут для прогона ваших тестов бесплатно! 🎁

Всех с наступающим Новым годом, до встречи в 2025! 🌲

Android Broadcast

27 Dec, 14:12


Inure App Manager - Android приложение с открытым исходным кодом для управления другими приложения, получением информации и их модификацией

Установить из Google Play, а полная версия уже за деньги

#android #пример #opensource

Android Broadcast

27 Dec, 13:34


Пример разработки плагина для Android Studio (10м)

Подробное руководство от создания проекта до публикации в магазин JetBrains. Автор показывает всё на примере проверки грамотности в сообщениях к коммитам в Git. Результат - плагин PreCommitSpellChecker

#androidstudio

Android Broadcast

27 Dec, 12:47


Оптимизация под контролем: инструменты и метрики для Аndroid-приложений (11м)

В статье рассказывается про оптимизацию времени запуска Android-приложения, разбираются основные метрики старта и инструменты, с помощью которых можно анализировать производительность.

#android #производительность

Android Broadcast

27 Dec, 12:00


Google Play объявила лучшие приложения и игры 2024 года
🏆Лучшее приложения - планировщик событий Partiful
🏆 Лучшая игра - AFK Journey
🏆 Лучшее приложение для разных устройств - онлайн-кинотеатр Max
🏆 Лучшая играя для разных устройств - Clash of Clans

Остальных победителей смотрите в статье

#googleplay

Android Broadcast

26 Dec, 16:00


🔴 Начался прямой эфир с подведением итогов 2024 года

В прямом эфире буду подводить итоги 2024: Android, Kotlin, блог

Конечно же отвечу на ваши вопросы по тебе разработки и не только

Запись будет доступа на каналах после эфира

Подключайтесь!

Android Broadcast

26 Dec, 13:46


📹 Что не так с мобильными сервисами в Android и iOS. Кирилл Розов. Mobius Осень 2024

Стала доступна запись моего доклада с Mobius где я рассказал про проблему монополии мобильных сервисов и предложил своё решение для светлого будущего новых мобильных ОС

#mobius

Android Broadcast

26 Dec, 09:00


Облако — это конструктор!

The Art of Programming — подкаст об ​​инструментах, технике и разработке ПО. По следам конференции HighLoad 2024 записали новый выпуск, в котором обсуждаем индустрию публичных облаков.

Вместе с Данилой Дюгуровым, CTO MTC Web Services, говорим о новостях индустрии, создании новых облачных платформ, потенциале рынка и принципах формирования топовых команд разработки.

🎧Слушайте The Art of Programming на всех популярных подкаст-площадках.

#реклама

Android Broadcast

24 Dec, 09:03


VK представила OpenVK, где будут собраны все проекты компании с открытым исходным кодом. Сам же код располагается на GitHub и других публичных площадках.

Уже опубликованы:
👉 ByteWeaver - инструмент для патчинга JVM байт-кода Android-приложений во время сборки. Используется в Tracer
👉 DeviceHub - система удаленного управления Android-устройствами, которые используются для тестирования и разработки приложений
👉 VKUI — дизайн-система на React для создания интерфейсов

Среди ML-разработок — модель Sentence Encoders которая строит специальные векторные представления по тексту и служит базой для многих внутренних задач. Сейчас она находится в топе ru-MTEB, а число скачиваний доходит до 100 000 в месяц.

Источник тут

#opensource #vk

Android Broadcast

24 Dec, 06:00


🚀 Duolingo ускорили время сборки на CI c 50 до 16 минут

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

Затем произвели оптимизацию запуска задач на CI, что эффективнее использовать общие ресурсы.

Максимально настроили кэш, чтобы не выполнять одну и ту же работу между сборками.

В коде отказались от старых технологий и лишнего груза на сборку. Например, KAPT поменяли на KSP

Читая статью, сложилось впечатление что ребята сделали самую базу и долго терпели как у них было всё плохо.

#android #ios #ci #производительность

Android Broadcast

23 Dec, 20:45


🚀 Ускорение загрузки Koin при запуске Android приложения (EN,8м)

В Koin 4 добавили интеграцию с Jetpack Startup для запуска инициализации Koin

class MainApplication : Application(), KoinStartup {

override fun onKoinStartup(): KoinAppDeclaration = {
androidContext(this@MainApplication)
allowOverride(false)
modules(AppModule().module)
defaultModule()
}
}


и доступна инициализация фича модулей

// Initializer из Jetpack Startup
class FirstModuleInitializer : Initializer<Unit> {
override fun create(context: Context) {
loadKoinModules(firstModule)
}

override fun dependencies() =
mutableListOf(KoinInitializer::class.java)
}


Также показывается отложення загрузка модулей с помощью корутин

val m1 = lazyModule {
singleOf(::ClassA) { bind<IClassA>() }
}

startKoin {
// загрузка модулей в фоне с помощью Kotlin Coroutines
lazyModules(m1)
}

val koin = KoinPlatform.getKoin()

// Ожидания выполнения задач загрузки модулей
koin.waitAllStartJobs()

// или ставим в очередь лямбду на выполнение после
koin.runOnKoinStarted { koin ->
// Код выполнится после загрузки lazy modules
}


Подробнее про ленивые модули и фоновую загрузку в документации

#android #koin #di #jetpack #производительность #coroutines

Android Broadcast

23 Dec, 20:25


📹 Очевидные и неочевидные дыры безопасности в мобильной разработке. Максим Плахута

Аудит Google нагрянул внезапно (как снег в Москве), и команде Яндекс 360 пришлось очень оперативно доказать, что Почта безопасна (и срочно исправить, если вдруг не совсем).

Проверку прошли успешно, и деляться своим опытом. В процессе поняли, как делать не надо, и как можно улучшить процесс разработки (например, на что обращать внимание на ревью).

Презентация – https://disk.yandex.ru/i/vv1l7tEIeq6TIA

#android #яндекс #codefest #безопасность

Android Broadcast

23 Dec, 09:39


🎁 Ergostol дарит подарки

При покупке товаров на сайте Ergostol, отмеченных специальными маркерами, вы получите новогодний подарок.

Для этого:
1. Выберите товар с пометкой "Подарок при заказе"
2. Оформите заказ до 5 января 2025 года (включительно).
3. Получите свой подарок вместе с покупкой! 🎄

❗️А по промокоду ANDROID10 вы получите еще скидку на все товары в вашей корзине

Реклама. ООО «СОФТЭФФЕКТ», ИНН 7735575262

Android Broadcast

23 Dec, 08:31


Instagram на Android добавила съёмку в Ночном Режиме

Функцию могут оценить пользователи Google Pixel 6 и выше, Galaxy S24 Ultra, Flip и Fold 6 поколения. Обещают поддержки большего количества устройств. Реализовали её на основе Jetpack CameraX, но также можно сделать и через Camera 2 API из Android SDK.

#android #camerax

Android Broadcast

05 Dec, 18:30


🤖 Вопперы и табы: как мы сделали меню для Burger King (4м)

Surf рассказывает сделали редизайн навигации главного экрана в приложении Burger King, где надо было сделать двухуровневые табы

#recyclerview #android

Android Broadcast

04 Dec, 14:44


📹 Новый выпуск: всё о мобильной разработке за месяц!

В этом видео я собрал самые горячие новости и интересные события в мире Android 🤖 и Kotlin 🏝. Каждая новость — это шаг к тому, чтобы быть в тренде разработки. Не пропустите!

#AndroidBroadcast #Android #Kotlin #JetpackViewModel #Compose #DI #KMP

Android Broadcast

04 Dec, 09:05


🛒 Play Integrity API сделали быстрее и приватнее

На Android 13 и выше теперь Play Integrity API теперь будет работать на основе аппаратного механизма Android Platform Key Attestation, что сделает сложнее и дороже злоумышленникам обход аттестации устройства. Android 12 и ниже будут работать как и прежде.

Всех пользователей переведут на новый механизм в мае 2025, но уже сейчас можно переключиться по запросу

#googleplay #безопасность

Android Broadcast

04 Dec, 05:05


🪙 Полный разбор Jetpack ViewModel (42 мин)

Полный разбор ViewModel, что позволит вам прокачаться в знаниях, узнать глубже API, которое используете, и ответить на вопросы на собеседованиях как Senior. Весь разбор на реальном коде в IDE

Что в видео:
👉 как удобно использовать
👉 Создание нестандартного ViewModelStore
👉 создание собственных фабрик
👉 как ViewModel пережить смерть процесса, а не только поворот экрана
🏝 Использование в Kotlin Multiplatform

Видео доступно по подписке в Telegram и на Boosty (лучше тут), либо единоразовая покупка тут

#AndroidBroadcast #viewmodel #jetpack #kmp

Android Broadcast

03 Dec, 12:20


🤖 Пишем транзишинометр для Compose на Андроид (12м)

Автор статьи, Максим Качинкин, из ДоДо решил реализовать замер платности анимаций переходов между экранами. В статье разбирается что считается во время показа экрана, методика замера и конечно же код реализации. Рекомендую к ознакомлению

#android #анимация #compose

Android Broadcast

03 Dec, 06:05


Вышел Dagger 2.53 c breaking changes для Kotlin
👉 Все Binds теперь потребуют объявления с nullable типами
👉 Обязательно использование JvmSuppressWildcards в Multibinding Map для generic типа значения
👉 Binds методы теперь не могут использовать Scope, когда они делегирует @Produces имплементации
👉 Удалена поддержка Java 7

‼️ Ничего полезного в Dagger не добавляют уже давно, так что сидите на той версии что вас устраивает и работает.

#dagger #di

Android Broadcast

02 Dec, 12:49


Между всеми участниками сообщества Broadcast проводим Тайный Санта! 10 декабря бот вам выдаст имя участника, которому вы будете отправлять подарок. Для регистрации надо перейти по ссылке и следовать инструкциям бота

Еще в боте много всяких весёлых активностей! Присоединяйтесь!

Android Broadcast

01 Dec, 08:52


Demeter от Яндекс - набор библиотек для анализа производительности Android приложений. Включает в себя замер выполнения методов, скорость выполнения inject в конструкторы, следит за изменениями StateObject. Результаты можно экспортировать для удобного анализа через таблицы, Perfetto и Flipper

#инструменты #производительность

Android Broadcast

30 Nov, 05:05


Реализую приложения на Compose Material 3 и был в шоке как в коде тебе требуют один набор цветов, на сайта в документации описаны другие, а еще часть нашел из анонса в блоге Material Design. Как вы с этим боретесь?

#material

Android Broadcast

29 Nov, 14:06


🐘Gradle уже не тот! Что думают разработчики?

В новом выпуске Кирилл Розов и Сергей Боиштян - Билд инженер, Лид команды "Speed" в AvitoTech обсуждают:
🔧 Профессию билд-инженера и основные задачи этой роли.
⚙️ Прогресс в Gradle и Android Gradle плагине.
🌟 Будущее сборок для Android и Kotlin Multiplatform проектов.

Если вы хотите узнать, как изменился Gradle и куда движется мир сборок, это видео для вас!

#AndroidBroadcast #avitotech #gradle

Android Broadcast

29 Nov, 12:34


🤖 Вышел стабильный Jetpack Media3 1.5.0
👉 MinSDK подняли до 21 (Android 5.0)
👉 Появился common-ktx артефакт с расширениями для Kotlin
👉 Множество улучшений в ExoPlayer

Много много всего. Список изменений огромный. Я не спец в медиа, но те кто пользуется - точно зайдите посмотреть

#jetpack #медиа #exoplayer

Android Broadcast

28 Nov, 14:14


В официальной документации по Kotlin Multiplatform появился раздел по интеграции с iOS. Описываются как подходы локальные, так и через SPM и CocoaPods

Теперь подключение iOS в KMP проект перестало быть магией. До этого приходилось потратить прилично времени на разбор

#ios #kmp #spm #swift #документация

Android Broadcast

27 Nov, 18:42


📹 Rules about performance tools - Android Developers Backstage (1ч10м)

В этом эпизоде подкаста Chef, Romain и Shay Barak расскажут о том, как команда разработчиков платформы Android изучает производительность и понимает работоспособность системы — и что вообще означает работоспособность системы? Они обсуждают измерение производительности, компромиссы и инструменты Perfetto, Compiler Explorer и профилировщик памяти в Android Studio.

00:00 Введение
00:27 Работоспособность системы
03:35 Усилия по повышению эффективности приложений
05:59 Данные телеметрии
08:21 Компромиссы между долгим временем работы батареи и высокой производительностью
10:38 Группы планировщиков
13:32 Статический разряд
19:10 Сотрудничество с разработчиками приложений vs операционная система
23:26 Высокая частота обновления экрана
32:02 Охват vs вовлеченность
34:10 Какие инструменты использует ваша команда для оптимизации производительности
37:09 Godbolt.org
39:39 Развенчание мифов
43:52 Лучшие инструменты — это те, которые работают в многопользовательском режиме
45:42 R8 или R-Not
48:05 Оптимизация под наборы функций
50:08 Инструменты, а не правила
54:36 Какие инструменты мне нужно знать, если я разработчик приложений, стремящийся улучшить производительность
55:37 Трекер распределения памяти
57:08 Инструменты с открытым исходным кодом
59:04 Полезные ресурсы для разработчиков, чтобы понять различные инструменты
1:06:19 Заключительные мысли

#производительность

Android Broadcast

27 Nov, 17:48


🏝🎉 Вышел Kotlin 2.1.0

👉 Новые фичи языка (разберу отдельно в @kotlin_broadcast, но ничего такого)
👉 Улучшения K2 компилятора, что также повлияло и на kapt (который deprecated)
👉 KMP Базовая поддержка Swift Export, стабильный Gradle для опций компилятора и много чего ещё
👉 В Kotlin/Native улучшили поддержку iosArm64
👉 Поддержка новых версий Gradle и Android Gradle Plugin

Ждем багфиксы в 2.1.10 и потом обновляемся. За разборами с большими подробностями идите в @kotlin_broadcast

#kotlin #gradle #k2 #kmp #swift

Android Broadcast

27 Nov, 04:40


Автор Koin поделился результатами замерами скорости работы Koin и Hilt. Для этого взяли оригинальную версию приложения Now In Android и собственную с миграцией на Koin.

Тест делался через простой замер времени от и до, автор намеренно отказался от Jetpack Benchmark, который обеспечивает прогрев и стабильность результатов. Такой подход у меня вызывает вопросы. Мне также было бы интересно увидеть замеры после оптимизации кода через R8

Результаты на картинке, подробности в статье, а дальше уже всё решать вам.

UPD В комментариях уже накопали как выкрутили замеры в пользу Koin

#di #koin #dagger #benchmark

Android Broadcast

21 Nov, 07:00


🎤 На извечный вопрос о «лучшей мобильной платформе» постарались ответить ребята в новом выпуске Sravni Podcast.

❗️Обсудили, как iOS и Android различаются в плане технологий и пользовательского опыта, под что проще разрабатывать и может ли «многообразие Android» успешно конкурировать с «магией Apple».

Также в выпуске:
👉 Состояние мобильной разработки — есть ли кризис?
👉 Развитие разработчиков для iOS и Android: полезные материалы и практики
👉 Превосходство Android Studio над XСode?
👉 Когда наступит кроссплатформенное будущее?

Посмотреть или послушать подкаст можно здесь:
📹 YouTube
📺 RUTUBE
🎵 Яндекс Музыка

Реклама. ООО «Сравни.ру» ИНН: 7710718303

Android Broadcast

21 Nov, 06:00


🐘 Ускорение сборки Android проекта. Избавляемся от AGP в API-модулях

Уже давно известно что Gradle модули c Java/Kotlin плагином собираются быстрее чем те что с AGP. Статья от разработчика огромного приложения про ускорение сборки. API и IMPL модули уже сделали, а вот теперь делают чистыми API модули

#архитектура #gradle #оптимизация #agp

Android Broadcast

20 Nov, 08:49


Подробный разбор (8м) как реаализовали шапку главной страницы Авито на основе Coordinator Layout

#анимация #nestedscroll

Android Broadcast

20 Nov, 08:00


🐘 Показали вторую превью Declarative Gradle - DSL для удобной настройки проектов без копания в Groovy/Kotlin скриптах

В новой сборке поддержали конфигурацию Android Gradle плагина

#gradle #agp

Android Broadcast

20 Nov, 05:00


🔥 Приглашаем на Vertis Mobile Meetup Hardcore Edition

🗓 Когда: 23 ноября
📍 Где: Санкт-Петербург, Свердловская наб., 44, с. 1, БЦ «Феррум»

Собираем опытных разработчиков, чтобы обсудить, что нового в мобильной разработке.
🔹 Как адаптировать большой iOS проект к Swift 6 и Strict Concurrency Checking — и выжить
🔹 Оптимизация Android-приложения на реальном примере
🔹 Какие бывают метрики здоровья приложений, как их собирать и зачем отслеживать

В программе:
▪️3 хардкорных доклада от разработчиков из Яндекс Путешествий, Авто.ру и общих сервисов Вертикалей
▪️Пазлер: мы написали короткие программы на Swift и Kotlin, а вам нужно догадаться, каким будет результат их работы.
▪️Нетворкинг и афтепати

👉 Зарегистрироваться

Реклама. ООО «Яндекс.Вертикали». ИНН 7704340327

Android Broadcast

19 Nov, 19:50


Пример работы с новым API для проверки уровня Android SDK

#android16

Android Broadcast

19 Nov, 19:46


🤖 Google представила Android 16 BAKLAVA

Что нового:
👉 Новое API для проверки мажорной и минорной версии Android
👉 Photo Picker теперь можно будет встраивать в UI приложений. Будет отдельная Jetpack библиотека для переноса это на разные версии ОС
👉 Health Connect позволит сохранять медицинские записи в формате стандарта FHIR , который давно поддерживается на iPhone
👉 Обновление Privacy Sandbox (без пояснений)

Релиз ожидается в Q2 2025

#android16

Android Broadcast

19 Nov, 19:46


График релиза различных этапов Android 16

#android16

Android Broadcast

19 Nov, 19:46


Больше подробностей на сайте Android 16 для разработчиков

#android16

Android Broadcast

19 Nov, 12:00


Вышла первая Beta Android Studio Ladybug Feature Drop

#androidstudio

Android Broadcast

19 Nov, 09:00


🧐 Хотите узнать, как строить эффективную многопоточную/асинхронную инфраструктуру приложений?

Тогда приглашаем на бесплатный урок онлайн-курса «Android Developer. Professional» — «Kotlin Coroutine в Android-разработке» от OTUS

🗓 Когда: 28 ноября в 20:00 мск

На вебинаре вы:
Узнаете, как правильно использовать корутины и suspend функции, глубоко разобравшись в их устройстве и best practices
Научитесь реализовывать операторы и писать правильные цепочки, используя Flow
Сможете использовать знания для построения эффективной инфраструктуры приложений.

👉 Зарегистрироваться на урок

🔥 После вебинара вы сможете продолжить обучение на курсе по специальной цене, в том числе в рассрочку.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Android Broadcast

19 Nov, 05:11


В RuStore появилась возможность добавить поисковые теги для приложений и игр

#rustore

Android Broadcast

18 Nov, 14:00


Новое видео уже на 📹 YouTube и 📹 VK Video!

Используете сторонние библиотеки в своих проектах? Убедитесь, что вы делаете это правильно! В этом видео вас ждет все, что важно знать о лицензиях, чтобы избежать юридических проблем и работать с библиотеками легально.

Android Broadcast

18 Nov, 13:36


Composable Screens - приложение с демонстрацией сложных интерфейсов, реализованных на Compose UI.

#пример #compose

Android Broadcast

18 Nov, 09:35


🤯 VK откроет исходный код своих решений

VK планирует выкладывать часть проектов своей экосистемы в open source, включая публикацию в свободном доступе исходников элементов IT-систем и продуктов, инструментов, библиотек для разработчиков, а также ИИ-моделей. Компания зарегистрировала домены opensourcevk.ru и vkopensource.ru.

#opensource #vk

Android Broadcast

18 Nov, 08:37


🔥 Black Friday в Ergostol 🔥

🗓 Период акции: с 18 по 24.11.2024

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

❗️ По промокоду ANDROID10 вы получите дополнительную скидку в размере 10% на все столы и аксессуары

Реклама. ООО «СОФТЭФФЕКТ», ИНН 7735575262

Android Broadcast

18 Nov, 05:37


Google Play продлила срок обязательно выполнения политики по разрешениям на доступ к фото и видео. Срок введения политики - 22 января 2025 года, но теперь разработчики могут запросить продление срока до 28 мая 2025

Политика требует чтобы приложения с редкими обращениями к фото и видео стали использовать Photo Picker, а при других сценариях продемонстрировать зачем нужно использовать разрешения READ_MEDIA_IMAGES и READ_MEDIA_VIDEO

#googleplay

Android Broadcast

18 Nov, 05:00


🤖 Вышли нативные Gravatar SDK для Android и iOS

Android Broadcast

15 Nov, 10:47


Новое видео уже на 📹 YouTube и 📹 VK Video!

Благодаря разбору кода подписчиков узнайте, как прокачать свои навыки, глядя на реальные примеры.

В видео:
🚀 Советы по чистому коду и оптимизации
🚀 Как повысить читаемость и структурированность
🚀 На что стоит обратить внимание при написании кода

Присоединяйтесь, чтобы прокачать свои проекты — и присылайте свои на следующий разбор по этой форме!

#AndroidBroadcast #CodeReview

Android Broadcast

15 Nov, 10:26


Вышел Robolectric 4.14 с поддержкой Android 15 (SDK Level 35)

#тестирование

Android Broadcast

15 Nov, 06:47


🤖 Как запускать Android-автотесты в облаке с Emcee?

На Хабре появилась подробная инструкция по настройке Emcee для запуска Android-тестов в облачной инфраструктуре.

Для запуска понадобятся: Linux, Docker, KVM и немного времени на настройку. Подробнее о том, как всё это настроить, читайте в статье 🚀

#emcee #avitotech #автотесты

Android Broadcast

15 Nov, 06:00


Как избавиться от TransactionTooLargeException 🤔 ? Правильный способ - не сохранять ничего тяжело и лишнего в Bundle, как это и должно быть, либо применить библиотеку Bundle Saver. Она сама всё сделает за вас и сохранит на диск, а после восстановит

Android Broadcast

14 Nov, 20:06


В Idea 2024.3 уменьшили время ожидания после открытия проекта и возможностью набирать код. Добились этого за счет оптимизации индексации проекта, разделением его на несколько фаз и параллельным выполнением индексации

#idea #производительность

Android Broadcast

14 Nov, 17:16


Канал @android_broadcast продолжает работу без каких либо изменений

Android Broadcast

14 Nov, 16:59


❗️Мы сделали волну, но дальше не можем поддерживать

Дорогие участники сообщества Mobile Broadcast!
С сожалением сообщаем вам о закрытии нашего проекта. Мы (Кирилл и Алексей) внесли значительный вклад в его развитие, стараясь создать уникальную атмосферу и волну активности офлайн сообщества. Однако, к сожалению, больше не сможем продолжать поддерживать сообщество, так как не хотим развивать еще одно онлайн сообщество.

Группы сообществ передадим во владение админам каждого соответствующего города при условии смены бренда.

Мы благодарим всех вас за время, проведённое здесь, за активность и поддержку. Мы надеемся, что вы найдёте новые интересные проекты и сообщества, которые увлекут вас так же, как и Mobile Broadcast.

P.s. Мы открыты к предложениям и всегда готовы поддержать развитие сообщества

#новости

Android Broadcast

14 Nov, 12:51


Выгореть могут все. Но знаете, как сделать это быстро, эффективно, а возможно и незаметно для самого себя? Рассказываем в нашем стендап-шоу «У микрофона» 🎤

В студии Евгений Толмачёв, руководитель юнита FullBase в кластере SellerExperience, и скелет Вася.

Вася мог бы быть нормальным, если бы всё время не пытался кому-то что-то доказать и хотя бы периодически делился проблемами. Смотрите в шоу, как его сломали неуёмные амбиции и переработки.

Берегите себя! Ведь как говорит Женя, «всегда есть способ сделать себе ещё хуже» 😀

🔵Ссылки для тех, кому неудобно смотреть на YouTube:

— выпуск в ВК;
— выпуск на Рутубе.

#видео_avitotech

Android Broadcast

14 Nov, 12:00


🤖 Автоматизация поиска утечек памяти в UI

Разработчик поделился опытом автоматизации поиска утечек памяти на основе LeakCanary и UI тестов на Kaspresso

#автотесты

Android Broadcast

14 Nov, 12:00


💡 Архитектура Apex для упрощения работы с UI слоем 💡

Разработчики Android, если вас замучила сложность в слое UI, стоит обратить внимание на статью(6м) об архитектуре APEX (Aligned Protocol and Execution)! Apex предлагает новый подход к модульности и стабильности приложений, дополняя традиционный подход слоями UI и ViewModel. Главное в Apex — это четкое управление состоянием (State) и командными процессами (Executor). Такой подход упрощает асинхронные операции и делает интерфейс отзывчивым.

🐱 Исходный код на GitHub и пример

#архитектура

Android Broadcast

14 Nov, 09:00


🎉 В Ergostol стартовали топовые скидки до 1️⃣7️⃣ ноября

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

Преимущества
Ergostol:
👉 Самый большой выбор регулируемых столов в России
👉 Стол под заказ за 25 дней + модернизация существующего стола
👉 Отправка в любой город России, Беларуси и Казахстана + гарантия 3 года

🔥А по промокоду ANDROID10 вы получите дополнительную скидку в размере 10% на все столы и аксессуары

❗️Только сейчас у вас есть возможность приобрести качественные столы по выгодным ценам

Консультанты Ergostol всегда готовы помочь в подборе стола и аксессуаров к нему под ваш запрос.

Реклама. ООО «СОФТЭФФЕКТ», ИНН 7735575262

Android Broadcast

14 Nov, 08:31


🚀 В Jetpack Navigation 2.8.4 добавили поддержку Kotlin value классов в качестве route или аргумента в route

#jetpack #навигация

Android Broadcast

14 Nov, 08:25


🚀 SavedStateHandle в ViewModel получил поддержку KMP

Благодаря поддержке KotlinX Serialization в SavedState получилось сделать перенос сохранения ViewModel в KMP Common код. Появился специальный делегат saved(), который делает сохранение и восстановление

#jetpack #kmp #android #androiddev

Android Broadcast

14 Nov, 08:17


🚀 В Jetpack Saved State добавили поддержку KotlinX Serialization

Теперь с помощью методов encodeToSavedState() и decodeFromSavedState() можно сохранить любой класс с аннотацией @Serializable. Можно попробовать в версии 1.3.0-alpha05

Всё это доступно в KMP Common коде и теперь Parcelize не нужен будет

#jetpack #kmp #android #androiddev

Android Broadcast

14 Nov, 08:07


Вышла Jetpack PDF alpha 4. Поддерживается Android 12+ и нужно чтобы на устройстве были SDK Extension level 13

#jetpack #pdf

Android Broadcast

14 Nov, 06:00


Разработчик делится взглядом на то как надо работать с UseCase в Kotlin коде

#архитектура

Android Broadcast

13 Nov, 17:44


📱 Google ускорила Android эмулятор

Компания потратила 6 месяцев на повышение скорости работы эмулятора, а также уменьшение количества его падений и фризов. Инициативу назвали Project Quartz. Всё это время не делали никаких новых фичей

Что сделали:
👉 Переехали на новую версию Qt
👉 Обновили gfxstream
👉 Добавили более 600 end-to-end тестов
👉 Уменьшили кол-во открыты багов и ошибок на 43.5% (формулировки исправили нету 😁). Осталось 2605 открытых
👉 Улучшили логирование и сбор метрик для отслеживания проблем

В посте прикреплён график сокращения количество отправленных крешей в каждой версий эмулятора (меньше - лучше). За 6 месяцев сократили количество крешей на 30%

Я как раз недавно выпустил
видео про фичи эмулятора и могу сказать что он работает очень хорошо

#androidstudio #эмулятор

Android Broadcast

13 Nov, 13:01


📈 В AppMetrica появилась возможность обнаруживать фрод

Благодаря интеграции FraudScore и AppMetrica теперь можно выявлять и анализировать подозрительный трафик прямо в интерфейсе аналитики. Пользователи смогут исключать некачественные источники трафика и оптимизировать рекламу только на реальные установки.

Функция антифрода будет доступна для пользователей опций Custom и Pro в AppMetrica.

#appmetrica #монетизация #аналитика

Android Broadcast

13 Nov, 12:00


Новости ноября в мире Android-разработки уже на 📹 YouTube и 📹 VK Video (27 мин)

🤖 Изменения в графике релизов Android, начиная с 2025 года
🏝 Новая KMP IDE от JetBrains — часть плана развития Kotlin Multiplatform (KMP) на 2025 год
🔨 Новинки Gemini AI в Android Studio
📸 CameraX 1.4 — новый релиз с массой фичей

Не пропустите полезный выпуск для всех, кто хочет быть на волне новинок в Android-разработке! 🤖

Android Broadcast

13 Nov, 09:00


Стать сотрудником Яндекса быстрее и проще, чем кажется. Участвуйте в днях быстрого найма: решите тестовое, пройдите несколько секций собеседования и получите офер за несколько дней.

Ближайшее мероприятие:
• 30 ноября – 1 декабря — для Android- и iOS-разработчиков, офер за 2 дня в команды Карт и Рекламы.

Зарегистрироваться

#реклама

Android Broadcast

13 Nov, 07:30


Важное объявление для сообщества Android Broadcast

Друзья, с самого начала существования Android Broadcast мы общались, делились знаниями и опытом в нашем общем чате @android_broadcast_talks. Со временем чат значительно вырос и, к сожалению, стал переполняться спам-ботами 😞. Сейчас у меня не хватает ресурсов на то что бы читать все дискуссии, отвечать на вопросы и качественную модерацию .

🔥 Переходите в Закрытое Сообщество Android Broadcast!
Если вам нужны мои ответы и поддержка — добро пожаловать в закрытое сообщество на Boosty. В этом уютном пространстве мы обсуждаем всё, что касается:
👉 разработки приложений,
👉 карьеры и профессионального роста,
👉 борьбы с выгоранием,
👉 первых шагов в IT и многого другого.

💡 Дополнительные возможности для участников:
👉 1-на-1 консультации со мной через чат — подробнее тут.
👉 Регулярные созвоны для обсуждения актуальных тем — подключиться можно здесь.

Будем рады видеть вас в сообществе! Вместе мы сможем создать пространство для глубоких и интересных дискуссий 💬.

#AndroidBroadcast

Android Broadcast

13 Nov, 06:30


🔨 Вышла первая Canary версия Android Studio Meerkat 2024.3.1 (сурикат) Ничего нового кроме переезда на свежую IDEA Platform 2024.3, которая еще даже не успела релизнуться. Новая схема выхода Android Studio действительно даёт свои плоды.

#androidstudio

Android Broadcast

13 Nov, 06:00


Пример (EN,17м) использования AI Core (AI Edge SDK) от Google на Pixel 9

#ai #aicore

Android Broadcast

12 Nov, 17:34


💉 В Koin нашли решение проблемы с compile time safety 🤯 Все подробности из письма от разработчиков раскрыл в @kotlin_broadcast Там же под делитесь вашим мнением относительно решения

#koin

Android Broadcast

12 Nov, 10:18


Вышел Gradle 8.11 🐘
🚀 Параллельная загрузка и сохранение Configuration Cache
☕️ Ошибки компиляции Java будут показывать в конце build отчета
📜 Объединенный отчёт по предупреждениям и deprecated вызовам
🛠 Исправление багов

#gradle

Android Broadcast

11 Nov, 13:25


📹 Спец интервью Розова и Гладкова на Mobius про вкатывание в мобилку и как побороть страхи

В завершение первого дня Mobius в Петербурге, на after party, ребята записали подкаст, где обсудили:

🔹 Почему мобильная разработка — отличное направление, и как начать, даже если вы только начинаете в IT.
🔹 Полезные советы для тех, кто ищет свой путь в индустрии и хочет развиваться как профессионал.
🔹 Путь от джуниора до сеньора: какие навыки и качества помогают расти.
🔹 Как справляться со страхом задавать вопросы и преодолевать синдром самозванца.
🔹 Медийность и личный бренд в карьере разработчика: где это помогает, а где может помешать.
🔹 Как оставаться мотивированным, избегать выгорания и находить баланс между работой и личной жизнью.

Это видео — практическое руководство для всех, кто стремится развиваться в мобильной разработке и не боится идти вперёд! 💼💻

Также есть версия на 📹 VK Video

Android Broadcast

08 Nov, 12:00


Автор библиотеки-обертки над Android PackageInstaller API делиться с какими багами Android пришлось столкнуться и как их решал:
👉 Странности поведения при выдаче разрешения на установку
👉 Только BroadcastReceiver не позволяет полностью отследить весь статус процесса установки приложения

Подробности в статье(EN,10м)

#androidos

Android Broadcast

08 Nov, 09:00


💸 Новые возможности монетизации приложений на React Native

Новость для React-разработчиков: теперь приложения на фреймворке можно подключить к Рекламной cети Яндекса. Раньше монетизация была доступна только для iOS, Android, Unity и Flutter.

Сейчас в РСЯ доступны более 300 000 прямых рекламодателей. Платформа помогает гибко настраивать рекламу, заполнять блоки до 100% и повышать доход от монетизации.

Вот что ещё предлагает Яндекс:
👉 Больше 30 индустрий рекламодателей: от ритейла до финансов;
👉 Свыше 60 сторонних источников рекламы;
👉 7 форматов рекламы для разных категорий приложений;
👉 Платформу медиации, которая позволяет показывать самую выгодную рекламу;
👉 Простую интеграцию рекламного SDK и круглосуточную поддержку.

Узнать подробнее о Рекламной сети Яндекса можно по ссылке.

#реклама

Android Broadcast

08 Nov, 08:40


В этом году решил сплотить наше сообщество - давайте устроим обмен подарками. Может быть как что-то физическое или электронное (Telegram Preimum, подарок в Steam или еще что). Рекомендуемая сумма - 30$

Для участия надо пройти по ссылке и нажать в Telegram внизу кнопку Начать/Start. Дальше бот вам всё подскажет.

UPD Была проблема с местами - уже решена! Пробуйте снова

#AndroidBroadcast

Android Broadcast

07 Nov, 12:23


Все, кто сейчас в поисках новых задач и команд, — в Авито открыты три отличные вакансии🤖

У вас есть возможность сокращать time to market для приложения Авито, развивать мотивационную программу для частных клиентов компании и переводить один из главных экранов на BDUI.

Подробности — в этой подборке

#вакансия

Android Broadcast

07 Nov, 10:01


‼️ Прямой эфир с code review проектов подписчиков ‼️
Когда: Воскресенье, 10 ноября, 18:00 (GMT+3 Москва)

Суть формата
1️⃣Вы присылаете свой проект на ревью
2️⃣ Я предварительно его изучаю
3️⃣ Рассказываю про интересные решения, что сделал бы иначе и куда вообще стоит развивать проект

Если вы хотите подать свой проект на бесплатное ревью - заполняйте форму

Смотреть можно будет на Boosty и в закрытом TG канале. Запись будет доступна спустя некоторое время после эфира

#AndroidBroadcast #codereview

Android Broadcast

07 Nov, 07:40


📱 Llama 3.2 на мобильных устройствах

Разработчики адаптировали модель Llama 3.2 для мобильных устройств, облегчив её запуск на iOS и Android. Благодаря сжатию данных объём модели уменьшился, что обеспечило высокую скорость работы на мобильных процессорах. Теперь вы можете использовать мощную модель Llama на своих телефонах без потери производительности, так как она оптимизирована для ARM-процессоров.

👉 Технические детали

#iOS #Android

Android Broadcast

06 Nov, 12:00


Приложение под Android написано максимально без библиотек для демонстрации работы различных алгоритмов сортировки. Всё на View. В статье (19 мин) автор подробно рассказал про реализацию, а исходный код вы можете посмотреть на GitHub

#анимация #архитектура

Android Broadcast

06 Nov, 10:43


Ты знал что можешь выбрать тему следующего видео на канале? Всегда приходит много интересных тем, но что важнее и нужнее тебе в текущий момент знаешь только ты! Переходи по ссылке и голосую за понравившееся темы видео.

#AndroidBroadcast #выбортемы

Android Broadcast

06 Nov, 08:23


🚀 Свежий выпуск на 📹 YouTube и 📹 VK Video! 🚀

5 СЕКРЕТНЫХ преимуществ Android эмулятора! 📱 (27 мин)

Раскрываю скрытые возможности эмулятора 🤯, которые помогут заменить реальные устройства и сделать разработку удобнее и быстрее:
🚀 Быстрая настройка и запуск эмулятора
🏗 Функции для адаптации под любые задачи
⌛️ Фишки для экономии времени

#AndroidBroadcast #видео #androidstudio

Android Broadcast

06 Nov, 06:19


Компьютерное зрение на С++: подключаем ML-библиотеки и обрабатываем результаты поиска объектов (25м)

В статье рассматривается:
👉 Как подключить к проекту библиотеки машинного обучения PyTorch и NCNN.
👉 Как получить модели YOLOv5 и YOLOv4 для использования на устройстве
👉 Как реализовать инференс моделей для обнаружения объектов
👉 Как обработать результаты работы моделей YOLO

#cv #ml

Android Broadcast

05 Nov, 15:00


Не так давно произошло обновление приложения для такси и на Splash они зачем-то добавили вибрацию. Прикольно было только один раз, а теперь раздражает! Тут сразу статья(7м) в тему как стоит делать работу с тактильной отдачей

#вибрация

Android Broadcast

05 Nov, 13:00


Отчет по контенту который вышел для платных подписчиков в октябре 2024
🏝 Трансформация Android проекта в КМР
🔨 Демонстрация рефакторинга сложного кода в многомодульную гибкую библиотеку
🏝 Обзор библиотеки Kotlin inject - DI для KMP
🎙 Запись моего доклада с Mobius. Рассказал про проблемы мобильных сервисов и что такое Open Mobile Services
🎙Доклад с DevFest Omsk 2024 про мою библиотеку навигации NavState. Фокус на том каким образом стоит подходить к архитектуре от простого к сложному

Также вам будут доступны постоянные обновления 📚 Базы Знаний Android разработчика и обсуждения вопросов по разработке и карьере в Закрытой Группе Telegram

Получить доступ к материалам можно через подписку на 🪙 Boosty или в ✉️ Telegram

#AndroidBroadcast #отчёт

Android Broadcast

05 Nov, 10:00


🔥 Приглашаем на открытый урок для разработчиков на Android, iOS, React Native, Ionic или Xamari

📒Тема: Используем GPU для создания настоящего 3D-движка в Flutter
🗓 Когда: 6 ноября в 20:00 мск
👉 Регистрация по ссылке

На уроке вас ждут:
▪️ Основы 3D-графики (вершинные и фрагментные шейдеры), определение шейдеров в impeller
▪️ Создание собственных шейдеров для отображения 3D-объектов в Flutter-приложении
▪️ Добавление света и теней, отображение 3D-изображения на экране
▪️ Интеграция 3D в игровой движок Flame, создание несложной игры

👨‍💻 Спикер: Дмитрий Золотов — опытный Flutter+Kotlin Developer в Yandex, FullStack разработчик (Flutter/Python/Kotlin/GoLang/C++), преподаватель

🎁 Всем участникам дадим скидку на основной курс.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Android Broadcast

05 Nov, 05:39


Вышел загрузчик изображений Coil 3.0 c поддержкой 🏝Kotlin Multiplatform. Теперь помимо 🤖 Android поддерживается iOS, JVM, JS и WASM. Подробнее тут

Что еще нового:
❗️ Изменился пакет с io.coil-kt на io.coil-kt.coil3
👉 Можно выбрать библиотеку для работы с сетью: OkHttp или Ktor
👉 Улучшили работы с Compose Preview
Убрали загрузку Android ресурсов через android.resource://example.package.name/drawable/image
❗️ По умолчанию размер декодированной картинки не будет превосходить размер 4096 на 4096
❗️ Работу с Coil 2 Parameters API заменил на Extras
🛠 Важные улучшения и исправления

Новая версия требует внесения изменения в код. Подробное руководство читайте в руководстве по миграции

#kmp #сеть #картинки #compose

Android Broadcast

04 Nov, 18:03


Занимаясь разработкой своего простого решения для навигации, мне было интересно на Mobius послушать доклады про библиотеки для навигации. Один из вопросов который всегда остаётся спорным: "Должен ли диалог быть показываться через библиотеку навигации "

Опубликовал свои мысли касательно этого вопроса в виде статьи на Хабре. Буду очень рад вашим голосам под статьей и комментариями с мнением

#навигация #архитектура #jetpack

Android Broadcast

04 Nov, 12:02


Короткая статья с описанием того как под капотом устроена работа Compose чтобы модифицировать код с Composable аннотациями и привести его к исполняемому виду

#подкапотом #compose

Android Broadcast

04 Nov, 09:51


Подай заявку на ревью кода ‼️ Я регулярно проводил ревью кода проектов подписчиков и пора продолжить. Принимаются Android/KMP приложения и библиотеки

Зачем стоит это сделать:
👉 Получите взгляд на ваш код со стороны опытного разработчика
👉 Сможете задать свои вопросы
👉 Устроите рекламу своему проекту

#codereview

Android Broadcast

04 Nov, 09:38


Email клиент K-9 стал Thunderbird. Исходники доступны на GitHub

#opensource #примеркода

Android Broadcast

04 Nov, 08:50


Vertex AI в Firebase cтал доступен для всех. Это рекомендуемый способ для Android приложений для работы с Gemini моделями, вместо Google AI Client SDK. Руководство по интеграции тут

#ai #firebase #gemini

Android Broadcast

04 Nov, 07:40


GPT Mobile - приложение с открытым исходным кодом для чатов с разными AI моделями. Скачать билд на Google Play или F-Droid

#проект #opensource

Android Broadcast

04 Nov, 07:03


📺 Видео про Gemini AI с недавнего #TheAndroidShow

#gemini #ai #androidstudio

Android Broadcast

04 Nov, 06:50


Google демонстрирует интеграцию Gemini AI в Android Studio
👉 Написание кода, рефакторинг и документирование
👉 Интеграция с написанием UI на Compose
👉 Интеграция в Quality Insights (Firebase Crashlytics)
👉 Генерация тестов
👉 Генерация сообщений для коммитов
👉 Пояснение ошибок при сборке проекта или Gradle синхронизации

#anroidstudio #gemini #ai

Android Broadcast

03 Nov, 10:26


‼️ Новое видео с кодингом на канале ‼️ Делаю рефакторинг большого класса, которы приводит к снижению скорости сборки и постоянным конфликтам во время Pull/Merge Request между разработчиками.

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

Видео доступно на Boosty и в Закрытом Telegram чате. Код полученного результат на GitHub (для платных подписчиков)

#AndroidBroadcast #Видео

Android Broadcast

31 Oct, 20:52


Вышел второе обновление 🔨 Android Studio Ladybug 2024.2 с исправлением ошибок

#androidstudio

Android Broadcast

31 Oct, 18:17


Всё это Google смог сделать благодаря 3 вещам
🤖 Project Treble - разделение слоёв фреймворка, драйверов и надстроек вендора
🤖 Project Mainline - отделение функций ОС на модули и обновление их независимо от прошивки через Google Play Services
🤖 Google Play Services - тотальный контроль над устройствами с Google Play

#androidos

Android Broadcast

31 Oct, 18:12


‼️ Google переводит Android SDK на более частые обновления с 2025 года

Теперь API Level будет не целым числом, а состоять из мажорной и минорной цифры

2️⃣ квартал 2025. Мажорный релиз!
👉 Единственный релиз с изменением поведения, который может затронуть приложения
👉 Предоставят новые API для разработчиков
👉 Будет увеличивать уровень API

4️⃣ квартал 2025. Минорный релиз.
👉 Новые API для разработчиков
👉 Обновления фичей, оптимизации и исправления багов со второго квартала
👉 Повышает минорное значение в пределах уровня API

1️⃣ и 3️⃣ квартал 2025. Только новые фичи для пользователей без API для разработчиков.

#androidos

Android Broadcast

31 Oct, 14:28


Вышла CameraX 1.4.0
👉 Поддержка 10-битного HDR в фото и видео
👉 Поддержка HLG и 10-битного HEVC
👉 Поддержка UltraHDR
👉 Больше поддержки Kotlin
👉 Эффекты в реальном времени
👉 Возможность узнать о поддержке стабилизации и включение её
👉 Shutter Sound API - проверка нужно ли в текущем регионе снимать со звуком
👉 Поддержка работы экрана как вспышки
👉 Camera Extensions Metadata API

Вообщем сделали много всего полезного, что лучше читать в анонсе. Кажется, это самое активно развивающееся API из Jetpack

#jetpack #jetpackupdate #camerax #камера

Android Broadcast

31 Oct, 14:13


Вышел WorkManager 2.10.0
👉 Добавлена поддержка Android 15 (compileSdk 35)
👉 Для всех Job в WorkManager теперь добавляется trace тег, который при использовании ‘adb shell dumpsys jobscheduler’ позволит понять какой Worker выполнялся
👉 Через Configuration объект можно задать CoroutineDispatcher для выполнения CoroutineWorker
👉 Для Worker теперь можно указать NetworkRequest, который задает на какой сети будет выполняться worker

#jetpack #jetpackupdate #workmanager

Android Broadcast

31 Oct, 09:00


Как связаны Яндекс Маркет и Android?

В стеке разработчиков логистики Маркета на Android:
- Разработка дизайн-система на B&G
- Своя реализация паттерна MVVM: лёгкая и быстрая
- Собственный разработанный фреймворк для конструктора заданий
- 5 мобильных приложений
- Большое покрытие функциональности автотестами

А еще за каждым заказом Яндекс Маркета стоят миллионы строк кода, написанных разработчиками логистики для реальных людей: курьеров, логистов, операторов пунктов выдачи заказов, покупателей. Анализировать логистические цепочки. Упростить управление огромным грузопотоком и оптимизировать затраты. Управлять доставкой по всей стране. Помочь с нагрузочным тестированием. Запустить IT-инфраструктуру сортировочных центров и складов.

Узнайте больше о команде разработки логистики Маркета на сайте

Реклама ООО «ЯНДЕКС» ИНН 7736207543

Android Broadcast

30 Oct, 16:23


Статья(3м) про Java метод main и когда он вызывается при запуске приложения

Android Broadcast

29 Oct, 09:25


Рекомендация по тому что стоит помещать в .gitignore (который в корне проекта) вашего Android проекта на Gradle с использованием Kotlin
👉 *.iml - все файлы конфигурации IDEA
👉 .gradle/ - всё что генерирует Gradle для своей работы
👉 .idea/ - весь локальный конфиг проекта
👉 .kotlin/ - всё что генерирует Kotlin для работы (помойму появилось с версии Kotlin 2.0)
👉 build/ - папка с файлами в процессе сборки Gradle
👉 captures/ - трейсы который собирает студии
👉 local.properties - локальный файл конфигурации Android проекта

❗️Для NDK нужны будет добавлять еще файлы
❗️Для каждого Gradle Android Studio создаёт свой .gitignore, куда обычно попадает build/ папка
❗️Если вам нужно переносить стиль кода между разработчиками - используйте .editorconfig. IDEA и Android Studio считывают из него настройки стиля кода
❗️Плагин .ignore поможет вам с генерацией стандартных конфигов

Это лишь мой набор игноров, который эффективно работает. Для себя вы можете настроить как удобно вам

#git

Android Broadcast

29 Oct, 06:01


Опубликовали дорожную карту развития Kotlin Multiplatform на 2025
👩‍💻 Поддержка всех фичей из Jetpack Compose
👩‍💻 Стабилизация Compose iOS
🤯 Отдельная Kotlin Multiplatform IDE
👩‍💻 Сборка Apple билдов в облаке, чтобы помочь разработчикам без mac
👩‍💻 Kotlin-to-Swift export - релиз первой публичной версии в 2025 году

Разработка библиотек
👩‍💻 Инструмент для верификации совместимости публичного API разных версих KMP библиотек
👩‍💻 Шаблоны и рук-ва для создания и публикации KMP библиотек
👩‍💻 Релиз полностью обновленного процесса публикации KMP библиотек
👩‍💻 Улучшения процесса документации
👩‍💻 Работают над улучшением поиска библиотек с поддержкой KMP

#kotlin #kmp

Android Broadcast

28 Oct, 18:19


Вышел Lottie Android 6.6.0
👉 Переработана поддержка отбрасываемых теней
🛠 Исправление багов

#анимация

Android Broadcast

28 Oct, 17:20


Если у вас есть возможность поддержать @android_broadcast голосами, то буду очень рад признателен . Переходите по ссылке https://t.me/boost/android_broadcast

Хочу через истории выкладывать советы и другие новости проекта

Android Broadcast

28 Oct, 13:18


📺 Свежий выпуск новостей из мира Android разработки (20 мин)

🤖 Суд между Google Play и Epic
😧 Android Studio убирает поддержку View
👩‍💻 Compose и Kotlin Multiplatform на Aurora OS

Жду ваш лайк под видео и комментарии с мнением

#AndroidBroadcast #видео #новости

Android Broadcast

26 Oct, 11:04


Разбор(4м) способов синхронизации доступа к переменной на примере инкремента int из разных корутин

#coroutines

Android Broadcast

25 Oct, 14:32


Вышел KtLint 1.4.0. Значительных изменений/улучшений на мой взгляд нету. Кажется, инстрeмент вышел на плато и спокойно дорабатывается

#инструменты

Android Broadcast

25 Oct, 09:40


📺 Получилось достать запись моего доклада с Mobius, включая вопросы зрителей. Доступен для подписчиков на Boosty и через Telegram бота Tribute

В докладе я рассказал про монополию мобильных сервисов и почему AOSP и iOS не так важны компаниям как мобильные сервисы и магазины, через которые идет не то чтобы доход, а контроль рынка. Самое важное - как стоит сделать сервисы чтобы дать конкуренцию разработчикам и выбор пользователям! Инициатива Open Mobile Services

#AndroidBroadcast #mobius #gms #aops #ios

Android Broadcast

24 Oct, 17:01


Вышел Koin Annotations 1.4.0 Stable
👉 Создание модулей на старте
👉 Поддержка WASM
👉 Поддержка Qualifier
👉 Поддержка object модулей
👉 Сканирование множества модулей для поиска объявление зависимостей
👉 Обновили документацию для KMP
👉 Улучшили валидацию объявлений во время компиляции
👉 Рефакторинг кодогенерации для KMP проектов для решения багов и улучшения скорости работы

#koin #di #wasm

Android Broadcast

24 Oct, 09:10


👨‍💻 2ГИС ищет C++/QT/QML разработчика (ANDROID)

Про особенности создания приложения на QT можете узнать в интервью на канале, где Кирилл Розов общался с разработчиком 2ГИС под Android.

Стек: С++
Формат работы:
удаленка, офис, гибрид
Требование:
опыт работы от 3-х лет

Задачи:
👉 Разработка и проектирование нового функционала с использованием Qt/QML;
👉 Оценка задач и проведение код-ревью;
👉 Багфикс и оптимизация;
👉 Написание автотестов и работа с прекрасной командой QA

Компания предлагает:
👉 Удаленка или офис (Москва, Санкт-Петербург, Новосибирск);
👉 ДМС;
👉 Обмен опытом;
👉 Собственный учебный центр.

❗️ Для отклика заполните форму

#вакансия

Android Broadcast

23 Oct, 12:00


Разработчик из мессенджера eXpress поделилась (15м) как они добивались минимальной задержки между нажатием кнопки отправки сообщения и показом этого в ленте сообщений. Одной из частей послужила оптимизация работы с БД SQLite черз Room:
🚀 Получать только необходимые столбцы (получили ускорение до 9 раз в отдельных сценариях)
🚀 Использование специальны операторов SQLite (например, EXISTS)
🚀 Использование транзакций (INSERT и UPDATE ускорили в несколько раз)
🚀 Обновление нескольких полей в рамках одной UPDATE операции
🚀 Игнорирование операций без результата (например, вставки пустого List)

Больше полезных советов в статье

#sqlite #оптимизации #room

Android Broadcast

23 Oct, 10:12


📺 Избавляемся от Context и работы с ресурсами в бизнес-логике (20м)

Новое видео из которого вы узнаете решение реальной задачи с собеседования. Устраиваю кодинг где показываю способы того как убрать работу с ресурсами и Android Context из бизнес логики. Рассматривается 4 варианта решения с комментариями.

❗️ Пришлось сделать перезалив видео из-за обнаруженной ошибки в публикации. Будет классно если вы зайдете, посмотрите и поставите лайк с комментарием. Спасибо

#AndroidBroadcast #видео #кодинг #архитектура

Android Broadcast

23 Oct, 09:00


👨‍💻 2ГИС в поисках продуктового аналитика Mobile

Стек: Аналитик, SQL, R, Phyton
Формат работы:
удаленка, офис, гибрид
Требование:
опыт работы от 3-х лет

Задачи:
👉 Участие в формировании и приоритизации продуктовых фич и гипотез на основе аналитических данных;
👉 Анализ запущенных фич;
👉 Поиск способов проверки гипотез, в том числе через А/B-тестирование;
👉 Исследование поведения пользователей, поиск проблем и точек роста;
👉 Информативная визуализация данных в системах визуализации (Grafana/PowerBI);
👉 Составление и приоритезирование бэклога;
👉 Поиск инсайтов в данных;
👉 Внедрение новых практик анализа данных.

Будет плюсом:
👉 Опыт работы со сходным продуктом (мобильное приложение);
👉 Опыт управление командой;
👉 Фундаментальное математическое образование;
👉 Опыт А/B-тестов для различных условий.

Компания предлагает:
👉 Удаленка или офис (Москва, Санкт-Петербург, Новосибирск);
👉 Коворкинги в Нижнем Новгороде, Томске, Астане, Алма-Ате;
👉 ДМС и возможность получать онлайн-консультации и терапевта, невролога, психолога и медицинского агента;
👉 Обмен опытом, поможем с выступлениями на конференциях и статьями для Хабра/VC;
👉 Собственный учебный центр: курсы, тренинги и книги.

❗️ Для отклика заполните форму

#вакансия

Android Broadcast

23 Oct, 08:00


Разработчик показал(8м) как через Shortcut на macOS автоматизировал adb команды. Исходники shortcut в статье

#adb #автоматизация

Android Broadcast

23 Oct, 07:35


В закрытом Telegram канале провожу розыгрыш 500 Telegram Stars и одного билета на CrossConf, которая пройдет 8 ноября в Москве.

Вступить в группу можно через Boosty и Telegram бота Tribute

#розыгрыш

Android Broadcast

23 Oct, 06:00


Android Gradle Plugin 8.X уже по умолчанию использует fullMode R8 - полный набор всех оптимизаций кода, которые более агрессивно изменяют код по сравнению с запуском R8 в режиме совместимости с ProGuard. Например одна из таких оптимизаций - удаление классов со схожим набором свойств и использование первых из них. Подробности тут

Последняя строка кода из картинки выведет Audi: BMW@2351584

#r8 #proguard #оптимизации

Android Broadcast

22 Oct, 13:07


В Android 14 появился Android Virtualization Framework (AVF), который позволяет запустить изолированную среду для выполнения кода на Android устройствах. AVF построен на базе KVM. Больше подробностей читайте в коротком разборе(EN,3м)

#android14

Android Broadcast

22 Oct, 05:34


Google представила App Performance Score - несколько вариантов оценки скорости работы вашего приложения от 0 до 100.

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

#производительность

Android Broadcast

22 Oct, 05:23


JetBrains рассказала про разработку нового UI и как его настроить удобно под вас

#idea #androidstudio

Android Broadcast

21 Oct, 19:26


В Android Studio LadyBug Feature Drop Canary 7 появилась генерация документации к коду с помощью Gemini

#androidstudio #gemini #ai

Android Broadcast

21 Oct, 09:00


🔥 PARMA ищет руководителя IT-проектов

Стек:
Project manager, R
Локация:
Россия, г. Москва
Формат работы:
удаленка, офис, гибрид
Требование:
опыт работы от 3-х лет

Задачи:

👉 Планирование и организация работы на проекте;
👉 Выстраивание и поддержание взаимоотношений с Заказчиком и подрядчиками компании;
👉 Формирование и контроль соблюдения бюджета проекта;
👉 Управление требованиями Заказчика;
👉 Управление командой проекта;
👉 Контроль соблюдения контрольных точек проекта;
👉 Организация работ по дальнейшему развитию системы.

Компания предлагает:
👉 Проектную методологию, описанные процессы работы, планы адаптации и развития, менторство;
👉 Гибкий график - нет строгого начала дня, для нас главное - работа на результат;
👉 Возможность поработать с разными заказчиками;
👉 Корпоративное обучение и развитие;
👉 ДМС со стоматологией.

❗️ Для отклика заполните форму

#вакансия

Android Broadcast

20 Oct, 09:02


Выступил на Mobius Очень 2024. Расскзаал про идею создания открытых мобильных сервисов. Было много зрителей и насыщенное обсуждение после. Организация конференции и атмосфера - лучшая что я видел

Android Broadcast

18 Oct, 09:00


👨‍💻 SM Lab в поисках Android разработчика МП FitLife

Стек: Kotlin, Android, Unit Testing.
Локация: Россия, г. Москва
Формат работы: Удаленка, Офис, Гибрид
Требование: Опыт работы от 1 года до 3 лет

Задачи:
👉 Разработка нового функционала;
👉 Взаимодействие с аналитиками, дизайнерами и тестировщиками;
👉 Аудит программного кода;
👉 Проведение декомпозиции и оценки поставленных задач;
👉 Поиск лучшего решения каждой задачи;
👉 Участие в планировании релизов.

Будет плюсом:
👉 Знание Material Design;
👉 Знание NDK;
👉 Опыт работы с push нотификациями; геолокацией; с Yandex MapKit, Google Maps или аналогами;
👉 Опыт разработки кастомных UI; REST API + Spring MVC.
👉 Опыт использования MVI Core от Badoo; различных SDK: Retrofit, Firebase;
👉 Знание Jira, Confluence.

Компания предлагает:
👉 Гибкий график;
👉 Официальное трудоустройство по ТК РФ;
👉 ДМС, английский, фитнес и другие опции в кафетерии льгот;
👉 Полугодовые премии;
👉 Профессиональное развитие;
👉 Дисконт 30% (Sportmaster, Ostin, Funday).

❗️Для отклика заполните форму

#вакансия

Android Broadcast

18 Oct, 06:00


В Chrome на Android появляется возможность использовать в Web сторонние сервисы автозаполнения паролей. Пока эта настройка экспериментальная. От сервиса автозаполнения не требуется дополнительных действий кроме как полноценной интеграции с ОС как это было раньше.

#chome #autofill

Android Broadcast

17 Oct, 13:16


Разработчик команды Яндекс GO поделился опытом (18м) внедрения фичи с Flutter использовали Dynamic Feature Delivery - механизм Google Play для установки отдельных фичей по запросу или при удовлетворение устройством требований

#googleplay #архитектура #flutter #dynamicdelivery

Android Broadcast

17 Oct, 09:00


🔥 Стартовал этап Квалификации на международный чемпионат по программированию Yandex Cup 2024 с призовым фондом 12,5 млн рублей.

❗️ Принять участие могут опытные разработчики и начинающие программисты со всего мира, а также юниоры 14–18 лет из России.

📢 В этом году участникам предстоит погрузиться в задачи, посвященные различным историческим эпохам и попробовать решить их с точки зрения IT. На картинках — примеры таких ситуаций: вы попробуете придумать систему регулировки в средневековой Венеции, поможете роботам пройти лабиринт Майя или попытаетесь разработать систему оцифровки для бюллетеней из Древнего Рима.

👉 Поспешите, регистрация открыта до 20 октября. Победители встретятся на финале в Ташкенте и поборются за призовой фонд в 12,5 млн руб.

#реклама

Android Broadcast

17 Oct, 06:22


Началась разработка Jetpack Navigation 2.9.0 в которой добавили поддержку Supporting Pane

#jetpack #navigation

Android Broadcast

16 Oct, 17:30


Google Выложила руководство по адаптации Android приложения для работы с оконном режиме как в Desktop, который есть на Chrome и уже тестируется в Google Pixel Tablet, но и без него уже производители делали этот функционал

#adaptive #планшет #ui

Android Broadcast

16 Oct, 11:00


Google на примере JetLagged показала как с помощью Jetpack Compose и библиотек от Google можно добавиться гибкого UI (читайте статью тут). Используются Flow layouts, WindowSizeClasses, movableContentOf, анимаци для плавного перехода и др. API

#compose

Android Broadcast

16 Oct, 08:32


Спустя месяц после релиза новой версии ОС в AOSP, Google Pixel наконец-то стали получить Android 15 🎉

#android15

Android Broadcast

16 Oct, 06:00


👨‍💻Программисты проводят за компьютером 40+ часов в неделю

И с годами из-за этого начинаются проблемы со здоровьем. Сказал бы мне кто раньше, что стоит изменить 😢

😍 Уже несколько лет работаю за столом от Ergostol. Заказал себе столешницу с вырезом и множеством аксессуаров, а самый любимый мой - беспроводная зарядка (жалко что с ней нельзя зарядить часы).

❗️Самое главное преимущество - это возможность смены положения стола и правильная позиция монитора относительно глаз.

На сайте Ergostol вы сможете найти большой выбор моделей столешниц, приводов подъема стола и аксессуаров.

🔥По промокоду ANDROID10 вы получите скидку на все товары в вашей корзине

Реклама. ООО «СОФТЭФФЕКТ», ИНН 7735575262

Android Broadcast

15 Oct, 15:22


Вышло интервью с Кириллом Поповым про Tracer - инструмент для сбора и анализа крэшей, а также важных метрик приложения, влияющих на работу приожения. Сравнили инструмент с Crashlytics, обсудили монетизацию, как AI может улучшить стабильность приложения и повысить их скорость работы, а также множество других тем.

#AndroidBroadcast #видео

Android Broadcast

15 Oct, 05:24


Вышел первый патч Android Studio Ladybug (то что в Stable канале)

#androidstudio

Android Broadcast

14 Oct, 06:36


"Как из Леруа Мерлен сделали Лемана Про" (13м) - история ребрендинга приложения о том как меняли, цвета, строки, работу с Deep Link и другие части Android и iOS приложений

#compose #uikit #android #ios #swiftui

Android Broadcast

14 Oct, 06:00


Когда вы запускаете Activity по неявному Intent, то не всегда первый вариант из совпадение будет подходящим.

Получить все варианты можно с помощью PackageManager
List<ResolveInfo> resolveInfos =
packageManager.queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);


Автор статьи (5м) как раз-то через это API решал креш с открытием системных настроек для управлениям принтерами

Android Broadcast

10 Oct, 16:53


В следующей версии Android Studio уберут Motion Editor 🤯, как часть процесса миграции с XML UI на Jetpack Compose. Используйте Compose Animation Preview (говорится что это более продвинутый инструмент)

#androidstudio #compose #анимация

Android Broadcast

10 Oct, 16:48


В свежей Canary версии Android Studio появилось превью анимаций тайлов WearOS

#androidstudio #wearos #анимация