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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Android Good Reads
Сегодня стартует Google I/O 2025. Самая интересная для нас с вами часть тут
По чуть-чуть будем обозревать новости с Google I/O. Первое на что обращаем внимание - очередная навигация. Из плюсов - большая гибкость и больше контроля над навигацией в приложении. Как следствие - возможное переусложнение навигации, необходимость миграции и невероятные велосипеды в каждой компании.

Немного кода с Nav3:

// Define the routes in your app and any arguments.
data object Home
data class Product(val id: String)

// Create a back stack, specifying the route the app should start with.
val backStack = remember { mutableStateListOf<Any>(ProductList) }

// A NavDisplay displays your back stack. Whenever the back stack changes, the display updates.
NavDisplay(
backStack = backStack,

// Specify what should happen when the user goes back
onBack = { backStack.removeLastOrNull() },

// An entry provider converts a route into a NavEntry which contains the content for that route.
entryProvider = { route ->
when (route) {
is Home -> NavEntry(route) {
Column {
Text("Welcome to Nav3")
Button(onClick = {
// To navigate to a new route, just add that route to the back stack
backStack.add(Product("123"))
}) {
Text("Click to navigate")
}
}
}
is Product -> NavEntry(route) {
Text("Product ${route.id} ")
}
else -> NavEntry(Unit) { Text("Unknown route: $route") }
}
}
)
🔥7🤔4💯3😁1
Сегодня, кстати, начинается следующая важная конференция - KotlinConf. Записи будут доступны позже на сайте, а прямая трансляция начинается через 10 минут.

Неделя насыщенная на новости по андроид разработке.
🔥52👍2
Android Good Reads
Сегодня, кстати, начинается следующая важная конференция - KotlinConf. Записи будут доступны позже на сайте, а прямая трансляция начинается через 10 минут. Неделя насыщенная на новости по андроид разработке.
Конференция закончилась. Краткий обзор от jetbrAIns команды:

https://blog.jetbrains.com/kotlin/2025/05/kotlinconf-2025-language-features-ai-powered-development-and-kotlin-multiplatform/

Я был на самой конференции и лично мне понравился умеренный и не фанатичный подход к AI, стабилизация большинства экспериментальных функций и API, а так же рост комьюнити. Очень жду Kotlin/wasm в бете!

Meta теперь золотой спонсор Kotlin Foundation, что же будет с React Native? 😱

Следующий KotlinConf пройдет в Мюнхене!
🔥22👍6
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 можно получить тоже самое из коробки
8👍3🤯2
Вчера состоялся первый день конференции IntelliJ IDEA Conf 2025. Да-да и такая есть! Хоть и с небольшим запозданием, но мы получаем обновления из IntelliJ в Android Studio, так что относится и к нам.

Запись первого дня можно глянуть тут
Сегодня трансляция будет на официальном канале
👍5😁3
Меняем 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 - свитчнуться возможно!
👍5😁4🔥3💅21🤷‍♂1
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


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

👍 - Полезно
👎 - Не вижу смысла использовать
👎95👍60🤔2
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!
👍52🔥2
Android Good Reads
Что изменится в Android 16? Отмена ограничений по ориентации экрана и изменению размера окна Кратко - много боли для тех, кто не делает адаптивный дизайн приложения. C Android 16 будут игнорироваться значения: 👉 screenOrientation: portrait, reversePortrait…
Релиз Android 16

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

👉 Новые API камеры
👉 Material 3 Expressive уже будет проявляться в системных приложениях
👉 Адаптивный дизайн, как стандарт
👉 Обновления для кнопки назад
👉 Улучшения для ProgressStyle виджетов
👉 Новые инструменты для профайлинга
👉 Усложнения в области security
👍73
Порадуемся за код, который мы не написали

Вся статья сводится к простой мысли. Не переусложняйте и декомпозируйте задачи, благо современные технологии (Composable, например) это позволяют.
Programmers often like working on complex systems, but I believe that it’s important to practice breaking down that complexity into simpler systems.
👍11
keepScreenOn в Jetpack Compose

Как это было:
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

или
window.decorView.keepScreenOn = true

или тег в xml:
android:keepScreenOn="true"


Начиная с compose 1.9.0-alpha01 это можно сделать модификатором
Box(
modifier = Modifier.keepScreenOn()
){
Text("Keep the screen on.. 🔆")
}
🔥27👍84🤯4
Autofill в Compose 1.8.0

Несмотря на то что поддержка автозаполнения вышла еще 2021 году, API докрутили только сейчас. Поддержка самой кнопки Autofill теперь идет из коробки, а новое API позволяет спарсить значение даже внутрь Switch:
var firstLetterE by remember { mutableStateOf(false) }
Switch(
modifier = Modifier.semantics {
contentType = ContentType.EmailAddress

// We need to declare a data type explicitly since this isn't a TextField
contentDataType = ContentDataType.Text

onAutofillText { text ->
firstLetterE = text.startsWith("E", ignoreCase = true)
true
}
},
checked = firstLetterE,
onCheckedChange = { firstLetterE = it },
)
👍132🗿2
Как-то мы упустили этот весь тренд с AI и вайбкодингом. Но вот и до Android Studio добралась возможность повайбкодить. Agent-mode в Gemini.

Не что-то прорывное, но раньше нужно было переключаться меж IDE или использовать Junie, а теперь решение из коробки!
👍83🔥3
Android Good Reads
Как-то мы упустили этот весь тренд с AI и вайбкодингом. Но вот и до Android Studio добралась возможность повайбкодить. Agent-mode в Gemini. Не что-то прорывное, но раньше нужно было переключаться меж IDE или использовать Junie, а теперь решение из коробки!
Я не хочу превращать Android канал в новостник на тему очередного прорыва в AI, поэтому соберу в кучу несколько полезных статей и холиварных топиков, которые отражают мою позицию.

👉 Как AI влияет на способность думать "гораздо проще написать промпт, закинуть его в чат, и сразу же получить разжеванный ответ"
Да, вместо долгого исследования - ты получаешь ответ с ссылками откуда была взята информация. Так быстрее и непривычнее. Время на техническое исследования сокращается кратно и появляется больше времени на продуктовый ресерч

👉 Вайбкодинг vs Метакодинг. Статья на редите. Выглядит, как естественное развитие одного из другого. Сначала ты просто копируешь со стековерфлоу, затем ты уже думаешь что копировать. Все через это проходили, правда? Так и тут, сначала бездумно забираем ответ AI, потом учимся задавать правильные вопросы и выбираем необходимое

👉 Смотрим как Copilot Agent сводит разработчиков с ума. Да, часть решаемых им задач приходится вот так вот Vibe-дебажить, но часть он решает и успешно закрывает в фоне. Очевидно, что разработка постепенно меняет формат того как она будет выглядеть. Это не очередные фантазии, а реальные контрибьюты в dotnet репу: Неудачный и смешной - Удачный. Так что, как минимум, пробуем на своих проектах. Важный скилл - грамотно описать задачу.

По работе я пользуюсь GitHub Copilot. Он, даже с последними моделями, недотягивает до Cursor, но берет большим количеством интеграций с GitHub. Gemini, интегрированный в Android Studio, использует модель 2.5 с откатом к 2.0, что делает генерируемый код совершенно непригодным к ревью. До Android разработки вайбкодинг дойдет не скоро, как мне кажется. База для обучения была сильно меньше, чем для фронтенд кода, что сказывается на качестве. Большинство AI IDE построены на базе vsCode, что вынуждает переключаться меж IDE, а не сидеть в удобном и привычном месте.

А какой опыт у вас?

👍 - Больше статей по AI связанных с Android разработкой
😐 - Только если реально что-то интересное
👎 - Не надо статей по AI
😐80👍25👎23💅31