TGViewer
Channel Public Channel
Android Broadcast

Android Broadcast

@android_broadcast

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

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

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

Showing posts older than #8570 · Back to latest

Older Posts 20 shown
Post #8569 8.45K
Когда идет в работе системы что-то не так, то самый популярный ответ: "Перезагрузи. Не помогло? Сбрасывай"

Это же актуально и для Android проектов. Стандартный "Clean Project" не решит всё, есть еще много всего связанного со сборкой проекта и работой IDE
👉 Удаление папок Gradle build
👉 Удаление кэша Gradle - папка .gradle в корне проекта
👉 Можно удалить весь Gradle кэш в домашней папка пользователя

Почитал эти советы из статьи (EN,13м), где автор еще и автоматизировал всё это через скрипты, которые можно взять в тексте

#androidstudio #gradle
  • 🔥 24
  • 👍 11
  • 👏 4
  • 🤯 3
Post #8567 7.62K
Android Broadcast Интересные факты про SQLite в одной статье #sqlite
Если хотите узнать больше фактов про SQLite, то почитайте статью выше ⬆️
  • 🎉 22
  • 👍 5
  • 🔥 2
Post #8566 7.81K
  • 🤯 45
  • 👍 7
  • 🔥 2
  • 💯 1
Post #8565 7.54K
  • 🔥 22
  • 👍 6
  • 🤯 4
Post #8564 7.44K
  • 🔥 15
  • 👍 6
  • 🤯 1
Post #8563 6.99K
  • 👍 20
  • 🔥 5
  • 🤯 5
  • 🎉 2
Post #8562 7.25K
Интересные факты про SQLite в одной статье

#sqlite
  • 👍 21
  • 🔥 7
Post #8561 7.19K
НОВОЕ ВИДЕО 🪙 Разбор настроек разработчика на Android устройстве (19 мин)

Показываю какие возможности есть в настройках разработчика для отладки и анализа работы приложений. Позволит проверять даже релизные приложения! 🤯

Альтернативное оформление подписки через Telegram, если не работает Boosty

#AndroidBroadcast #видео
  • 🔥 42
  • 👍 4
  • 👏 2
  • 🤯 1
Post #8560 7.15K
Ускорение работы в DataStore 1.1.2

Считывания первого закэшированного в памяти элемента в среднем ускорили в 8 раз 🤯

#android #datastore #jetpack #jetpackupdate
  • 👍 62
  • 🤯 28
  • ❤ 1
Post #8559 7.79K
Вышел RecyclerView 1.4.0 c поддержкой Android 15, а именно добавили работу с адаптивной частотой обновления экранов.

Также появилось API RecyclerView.LayoutManager.isLayoutReversed

#android #jetpack #recyclerview #jetpackupdate
  • 👍 30
  • 🤯 1
Post #8558 7.61K
Вышла Jetpack Activity 1.10.0

👉 Photo Picker теперь позволяет выбрать картинки по порядку, а также задать начальную вкладку (картинки или "альбомы")

👉 PickVisualMedia и PickMultipleVisualMedia Activity Result контракты, что вызывают photo Picker больше по умолчанию не вызывают Gogole Play Services, если не найден системный Photo Picker, а будет запускать интент ACTION_SYSTEM_FALLBACK_PICK_IMAGES, которые приведет к запуску подходящей альтернативы для Photo Picker.

⚙️ Для Compose появился новый local compostion - LocalActivity, которая предоставляет текущую Activity. Ранее надо было делать приведение типа из LocalContext
// Надо было делать раньше
LocalContext.current as Activity

// Доступно теперь
LocalActivity.current


#android #jetpack #compose #jetpackupdate
  • 👍 62
  • 🔥 15
Post #8557 5.99K
  • 🔥 9
  • 👍 4
  • 🤯 2
Post #8556 4.65K

Forwarded from Kotlin Multiplatform Broadcast

🏝 Как работает отмена Kotlin Coroutines под капотом (24м)

Подробная статья о том, что происходит при вызове функции cancel() - отмене корутине, а именно рассказывается про:
👉 Классы Job и JobSupport
👉 Состояния Job
👉 Как работает отмена в Structured Concurrency
👉 Коммуникация между родительской и дочерней Job
👉 Как отменяется функция delay()
👉 Как отменяются suspend функции

#kotlin #coroutines
  • 🔥 27
  • 👍 10
Post #8555 6.08K
Google объявила о расширении категорий приложений, которые может быть установлены в Android for Cars (машины с Android медиа системой без необходимости подключения смартфона, не путайте с Android Auto). Соответствующее упоминание появилось в официальной документации

С февраля 2025 приложения из категорий видео, игры и браузеры при соотвествии требованиям Android for Cars станут доступны автоматически, без каких-либо изменений со стороны разработчиков.

Для соответствия нужно выполнение требований Cars Tier 3, но это как минимум качественная поддержка больших экранов и если есть нативный код, то надо поддержать x86 архитектуры

#android #cars #google #googleplay
  • 👍 22
Post #8549 6.08K
Комментарий из YouTube под моим видео https://youtu.be/rheT3w9nGKE

андроид разработка слишком усложнилась. сам переход на Котлин уже был сомнительным шагом. a jetpack compose - это вообще тот случай когда благими намерениями выстлана дорога в ад. UI-фреймворк должен быть максимально простым и изучаться полностью за три дня, а не вот это всё... изза всего этого треша и ушел из андрод разработки. счастливо оставаться в вашем филиале ада.
Что думаете вы?
  • 👍 62
  • 🤯 45
  • 🔥 7
  • 👏 7
  • 🎉 4
Post #8548 5.92K
Google Home APIs для Android доступны для всех

Вышла открытая Beta для Android (iOS будет чуть позже), которая позволит из приложения управлять устройствами и сценариями умного дома от Google

#android #google #умныйдом
  • 🔥 19
  • 👍 5
Post #8547 6.44K
Погружение в код реализации Jetpack ViewModel (EN, 5м)

Разбор как реализована Jetpack ViewModel после добавления поддержки KMP: код в класса, AutoClosable, viewModelScope

Для платных подписчиков на Boosty можно найти обзор всех фичей ViewModel, которые будут полезны вам

#android #kmp #jetpack #androidx #viewmodel #подкапотом
  • 👍 20
  • 🤯 2
Post #8546 6.14K
Не используйте null для отсутcтвия состояния в UI

Сталкиваюсь с решениями разработчиков, когда они используют null для задания состояния UI по умолчанию. Мне такой подход не нравится 😡. У элементов обычно всегда есть начально состояние. Например, прогресс скрыт, данных списка нету, и др. Либо вовсе эти элементы не показываются и используется экран-заглушка

В коде я выражаю такое состояние следующим образом

private val _screenState =
MutableStateFlow<ScreenState>(ScreenState.Default)

val screenState = _screenState.asStateFlow()

sealed interface ScreenState {

object Default : ScreenState // Иногда называю None
data class DataLoaded(...) : ScreenState
data class Loading(...): ScreenState
}

@Composable
fun MyScreen() {
val state: ScreenState by stateFlow.collectAsState()
MyScreen(state)
}

@Composable
fun MyScreen(state: ScreenState): Unit = when(state) {
is ScreenState.Default -> Default(state)
is ScreenState.Loading -> ProgressScreen(state)
is ScreenState.DataLoaded -> DataScreen(state)
}

@Composable
private fun DefaultSceen(state: ScreenState.Default)

@Composable
private fun ProgressScreen(state: ScreenState.Loading)

@Composable
private fun DataScreen(state: ScreenState.DataLoaded)


также Default можно заменить на ссылку на другое состояние, и при этом не сломать код выше

sealed interface ScreenState {

data class DataLoaded(...) : ScreenState
data class Loading(...): ScreenState

companion object {
val Default: ScreenState
get() = Loading(...)
}
}


Использование null вместо Default приведет к неудобным аспектам работы с кодом:
1. Придется использовать null safety или операторы Flow для работы с null
2. Любые задания начальных состояний UI элементов придется привязывать не через поле в объекте состояния, а через связывание с null состоянием
3. Расширить/изменить null нельзя, а вот класс можно дополнить полями/методами и включить в анализ кода

#android #compose #AndroidBroadcast #БазаЗнаний
  • 👍 122
  • ❤ 5
  • 🤯 4
  • 🎉 3
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 →