TGViewer
Channel Public Channel
Android Broadcast

Android Broadcast

@android_broadcast

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

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Subscribers
14.5K
Photos
3.9K
Videos
399
Links
6.3K

Showing posts older than #9286 · Back to latest

Older Posts 19 shown
Post #9283 9.93K
📹 Эти фичи изменят разработку на Kotlin (15 мин)

Прошла Kotlin Conf и в рамках keynote показали 3 фичи:
🏝 улучшение destructing declaration
🏝 обязательное использование возвращаемых значений для всех методов
🏝 улучшение работы с ошибками (не с exception, именно ошибками логики)

Версия на 📹 VK Video и 📺 RuTube

#AndroidBroadcast #kotlin #kotlinconf25
  • 🔥 28
  • 👍 14
  • ❤ 5
  • 🤯 1
Post #9282 15K
🤖 Android принудительно запрещает делать запросы в сеть в фоне вне жизненного цикла приложения

Теперь если вы делаете сетевой запрос при уходе приложения в фон, когда вы не используете WorkManager или Foreground Service, то такой запрос будет остановлен с исключением UnknownHostException (стандартно выбрасывается если нет сети или сервер невозможно найти) или другой IOException. ✔️ Ранее, пока был жив процесс приложения, можно было успеть выполнить запросы.

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

Изменение применяется на Android 15 и выше для всех приложений с targetSdk=35+

Источник тут

#android15
  • 🤯 47
  • 👍 23
  • ❤ 8
Post #9281 8.02K

Forwarded from iOS Broadcast (Андрей Зонов)

🧰🐥 Разработка на Swift под Android
Внутри сообщества официально собирается рабочая группа по созданию Android приложений на Swift. Основная цель - добавить и поддерживать Android как официальную платформу для Swift
Задачи рабочей группы:
🔵Улучшение и поддержка поддержки Android в официальном дистрибутиве Swift
🔵Усовершенствование основных пакетов Swift для работы с идиомами Android
🔵Определение уровней поддержки платформы и работа над достижением официальной поддержки
🔵Определение поддерживаемых уровней и архитектур Android API
🔵Развитие непрерывной интеграции для проекта Swift
🔵Выявление и рекомендация методов взаимодействия Swift и Java SDK для Android
🔵Разработка поддержки для отладки приложений Swift на Android
🔵Консультирование и помощь в добавлении поддержки Android в пакеты Swift сообщества
Общение через Форум Swift для Android и в рабочей группе на форумах Swift. Членство в рабочей группе открыто для всех желающих.

Новость интригующая, хотя в моменте ничего и не даст:
🔴Сейчас речь идет о начале работы рабочей группы, а не о готовом решении
🟢Apple на своем примере смогут показать как использовать swift для разработки под Andoid, т.к. имеют достаточно своих приложений (например, Apple music)
  • 🤔 43
  • 🤯 32
  • ❤ 6
  • 🔥 4
  • 🙏 1
Post #9280 8.07K
🚀 Пример Jetpack Media 3 Transformer API для создания приложения с обрезкой видео (EN,3м)

Разработчик решил реализовать простую затею - обрезать видео на основе выбранного отрезка текста из расшифровки дорожки. Использовал Jetpack Media3 и EventLabs API. ПО итогу вышло приложение 🐱 QuickTrim

🔗 Альтернативная ссылка тут

#android #androidjetpack #media3 #opensource #пример
  • 👍 26
  • 🔥 12
  • ❤ 1
  • 🤯 1
Post #9279 11K
🤯 AI ломает R8 и восстаналивает код после защиты

Разработчик провёл эксперимент по восстановлению обфусцированного когда с помощью GPT 4o и чуда не произошло. AI смог сделать читаемые имена переменных и функций, сделать форматирование кода. С Compose кодом вообще ничего дельного не вышло. Теперь надо думать и про угрозу AI взломов усложнит жизнь IT.

Запрос на восстановление кода
Using the R8 algorithm, deobfuscate this class and translate it into its real-world context.


🔗 Альтернативная ссылка на статью

#android #r8 #ai
  • 🤔 35
  • 🤯 16
  • 👍 2
  • ❤ 1
Post #9277 10.5K
⚙️ Liquid Glass Compose - библиотека для переноса эффекта стекла из iOS на Android в Compose.

Поддерживается Android 7.0, а на Android 13 и выше используются AGSL шейдеры, что повышает производительность и добавляет блюр.

Автор библиотеки - подписчик канал и буде рад звезде на GitHub и вашему мнению по коду решения в комментариях
  • 👍 77
  • 🔥 41
  • 🤯 25
  • ❤ 3
Post #9276 5.75K

Forwarded from Kotlin Multiplatform Broadcast

🏝 Вышел Kotlin 2.2.0

Что нового в релизе языка:
👉 Превью context parametr
👉 Non-local break и continue теперь stable
👉 Kotlin/JVM: изменения в генерации метода по умолчанию
👉 Kotlin/Native: улучшения в управлением памятью
👉 Kotlin/Wasm: wasmJs таргет отделили от js таргета
🐘 Поддержка Gradle 7.6.3 - 8.14
👉 Base64 стало Stable

#kotlin
  • ❤ 40
  • 👍 5
  • 🔥 2
Post #9275 8.95K
🏗 Функциональное программирование в Android. Знакомство с парадигмой (21м)

Первая статья из серии про как построить архитектуру Android приложения в функциональном стиле. Стек: Kotln; Jetpack Compose; одна из UDF-архитектур (Redux, TEA, MVI); ArrowKt; Coroutines + Flow.

В начале рассматривают функциональную парадигму и отличия ее от других подходов (императивный и декларативный)

#android #архитектура
  • 🔥 24
  • ❤ 2
  • 🤔 2
  • 🤯 1
Post #9274 8.2K
  • 🔥 18
  • ❤ 2
Post #9273 7.58K
🤖 Почему разработчик не контролирует, как выглядят уведомления в системной панели

Когда разработчик использует NotificationCompat.Builder для создания уведомлений из Android приложения, может показаться, что прямого контроля на внешний вид нету 🤯 На самом деле формируется не визуальный компонент, а объект данных, который описывает что есть в уведомление.

Этот объект — это просто структура, сериализуемая через Parcelable. Он передаётся в системный процесс через Binder — механизм межпроцессного взаимодействия в Android. А вот принимать и интерпретировать этот объект будет специальное системное приложение — SystemUI.

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

Вот почему одно и то же уведомление может выглядеть совершенно по-разному на разных устройствах и версиях ОС. Один и тот же вызов setContentTitle("Новость") может дать совершенно разный результат на Pixel с чистым Android и на Xiaomi с MIUI. Более того, даже RemoteViews, которые позволяют задавать кастомные layout’ы для уведомлений, могут игнорироваться или ограничиваться прошивками производителей.

Именно по этой причине я не люблю когда в уведомления вставляют Custom View, который выбивается из стиля и часто портит визуал системы и поведение. Мечтаю чтобы его поскорее запретили в Android. Пожалуйста, хотя бы в Android 17 🙏

Запомните ‼️ Уведомление в Android — это не UI объект, это контракт между приложением и SystemUI, который интерпретируется, а не исполняется дословно. Поэтому пишите уведомления так, чтобы они были понятны системе, а красоту UI вы можете контролировать только внутри вашего приложения.

#android #androiddev
  • 👍 76
  • ❤ 6
Post #9271 8.87K
‼️ Новое видео на 🪙 Boosty - Полный разбор Android Context (20 мин)

В новом видео погружаюсь в особенности того как работает Context, а именно:
👉 какие типы Context бывают
👉 почему Application класс != Application Context
👉 как Android ОС создает экземпляр Context и передает его в компоненты приложения
👉 советы по работе с Context

‼️ Всё это позволит вам лучше понимать работу с Contex, лучше организовать код и ответить на собеседования глубже, чтобы дать ответ уровня Senior!

Подписку на видео можно также оформить через Telegram

#AndroidBroadcast #android
  • 👍 36
  • 🔥 21
  • 🤯 7
  • ❤ 4
Post #9270 5.97K

Forwarded from Kotlin Multiplatform Broadcast

🏝 Стали доступны записи доклад с KotlinConf 2025

Все сессии можно найти в расписании. Пока только на сайте, но там встроен YouTube плеер, так что позже выпустят плейлист. В @kotlin_broadcast буду выкладывать доклады и рассказывать самое интересное

#kotlin #kotlinconf
  • 🔥 28
  • ❤ 4
Post #9264 7.28K
🤖 В Android 16 появится поддержка десктопного режима на внешних дисплеях

В Android 16 QRP1 появилась поддержка десктопного режима при подключении внешних дисплеях. Включается режим плавающих окон, а значит приложения смогут иметь произвольный размер, управление перейдет в мышку и клавиатуру (а смысл иначе от внешнего дисплея?)

Совсем уже не новинка в мире Android, но какому количеству людей это будет необходимо? Делитесь своим мнением в комментариях

#android #android16 #desktop
  • ❤ 32
  • 👍 15
  • 🔥 8
Post #9263 7.39K
🤖 Как удалить отладочный код в релизных сборках на примере логов

Еще одна рекомендация - используйте минификацию кода через R8/ProGuard чтобы удалить весь код логирования. Ничего лишнего не уйдёт в логи, а также повысите скорость работы

Добавьте в правила следующие инструкции
# Удаляем Log.v()
-assumenosideeffects class android.util.Log {
public static int v(...);
}

# Удаляем Log.d()
-assumenosideeffects class android.util.Log {
public static int d(...);
}

# Удаляем Log.i()
-assumenosideeffects class android.util.Log {
public static int i(...);
}


Подробнее про инструкцию assumenosideeffects читайте в документации

#android #proguard #r8 #оптимизация
  • 👍 55
  • ❤ 3
  • 🤔 1
Post #9262 7K
‼️ Что надо сделать? Не создавайте сообщения до того, как действительно убедитесь, что включено логирование и откладывать работу для на попозже (совет хорошо для всего). Например
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled) {
Log.d(tag, messageBuilder())
}
}


но автор еще не учел проверку уровня логирования:
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, Log.DEBUG)) {
Log.d(tag, messageBuilder())
}
}


или прийти к более общей функции
inline fun log(tag: String, level: Int, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, level)) {
when (level) {
Log.VERBOSE -> Log.v(tag, messageBuilder())
Log.DEBUG -> Log.d(tag, messageBuilder())
Log.INFO -> Log.i(tag, messageBuilder())
Log.WARN -> Log.w(tag, messageBuilder())
Log.ERROR -> Log.e(tag, messageBuilder())
else -> Log.d(tag, messageBuilder()) // fallback
}
}
}


#android #производительность
  • 👍 23
  • 🤔 4
  • ❤ 3
Post #9261 6.39K
🤖 Уверен что правильно работаешь с логами?

Разработчик решил оценить влияние логирования на работу приложения и описал в статье. Проблема только если создаете лишние объекты

#android #производительность
  • 👍 15
  • 🔥 3
  • ❤ 2
  • 🤔 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →