Android Good Reads
4.05K subscribers
362 photos
15 videos
1 file
2.1K links
Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день.

Автор канала: @Lamprof

Размещение рекламы: @tanyasanovna
Download Telegram
Compose Preview c MVI и State Hositing

Идея крайне проста:
👉 В Composable экран передаем state в качестве параметра
👉 Вторым параметром идет EventManager
👉 Получаем чистый UI, без бизнес логики и репозиториев
👉 В @Preview передается замоканые данные, что так же удобно использовать при тестировании компонентов
👉 Еще 1 большой плюс - упрощение внедрения скриншот тестирования

@Composable
fun ProfileScreen(
state: ProfileScreenState,
onEvent: (ProfileEvent) -> Unit
) {
// Screen data
}


@Preview
@Composable
private fun ProfileScreenPreview() = ProfileScreenContent(
state = ProfileScreenState(),
onEvent = {}
)


В комментариях подсказали, что у FlowMVI можно получить тоже самое из коробки
Вчера состоялся первый день конференции IntelliJ IDEA Conf 2025. Да-да и такая есть! Хоть и с небольшим запозданием, но мы получаем обновления из IntelliJ в Android Studio, так что относится и к нам.

Запись первого дня можно глянуть тут
Сегодня трансляция будет на официальном канале
Меняем Android Studio на IntelliJ IDEA ради JetBrains Junie

Что за проблемы возникли:
👉 Android Plugin немного отстает от последних версий Android Studio
👉 Несколько полезных плагинов недоступны для установки в IDEA (Firebase Services, Firebase Testing, Test Recorder, Android APK Support, Android NDK Support, Android SDK Upgrade Assistant, Google Cloud Tools for Android Studio, App Links Assistant)
👉 Некоторые плагины нужно установить вручную(Android,Android Design Tools, Jetpack Compose, Smali Viewer), некоторый функционал дублируется

Android Studio хорошо заточена под Android разработку, но когда хочется потрогать последние фичи из IDEA - свитчнуться возможно!
Android Good Reads
Rich Errors в Kotlin 2.4 Анонсировали на KotlinConf. На мой взгляд, классная обертка на замену старому-доброму try-catch. Какие возможные проблемы видите в этом?
Еще 1 анонс - name-base разделение переменных.

Position-base:
val talk = Talk(title = "Kotlin Conf 2025", speakerName = "Darren Le")

val (speakerName, title) = talk
print("title = $title, speakerName= $speakerName")
// title = Darren Le, speakerName = Kotlin Conf 2025


Name-base:
(val speakerName, val title) = talk
print("title = $title, speakerName= $speakerName")
// title = Kotlin Conf 2025, speakerName = Darren Le


Как несколько лет назад, именованные параметры сделали вызов функций удобнее и безопаснее. Теперь так и с разворачиванием классов.

👍 - Полезно
👎 - Не вижу смысла использовать
Android Good Reads
Еще 1 анонс - name-base разделение переменных. Position-base: val talk = Talk(title = "Kotlin Conf 2025", speakerName = "Darren Le") val (speakerName, title) = talk print("title = $title, speakerName= $speakerName") // title = Darren Le, speakerName =…
Остальные анонсы с конференции от Marcin Moskała, кроме уже разобранного:

👉 Улучшенная работа с плагинами (скрин выше)
👉 Упрощение дебага корутин
👉 Агентов и MCP теперь можно писать и на Kotlin!
Android Good Reads
Что изменится в Android 16? Отмена ограничений по ориентации экрана и изменению размера окна Кратко - много боли для тех, кто не делает адаптивный дизайн приложения. C Android 16 будут игнорироваться значения: 👉 screenOrientation: portrait, reversePortrait…
Релиз Android 16

Многое уже разбирали с вами на канале:

👉 Новые API камеры
👉 Material 3 Expressive уже будет проявляться в системных приложениях
👉 Адаптивный дизайн, как стандарт
👉 Обновления для кнопки назад
👉 Улучшения для ProgressStyle виджетов
👉 Новые инструменты для профайлинга
👉 Усложнения в области security
Please open Telegram to view this post
VIEW IN TELEGRAM