Android Good Reads
Material 3 expressive  Существует наряду с material 3, его не депрекейтят. По ссылке можно посмотреть дизайн референсы и новые доступные UI элементы.  Проекты без дизайнеров будут выглядеть немного лучше и удобнее?
This media is not supported in your browser
    VIEW IN TELEGRAM
  Wear OS 6 и Material Expressive
Не самый частый кейс, но, вместе с Material Expressive, намного проще сделать Wear версию вашего приложения
Не самый частый кейс, но, вместе с Material Expressive, намного проще сделать Wear версию вашего приложения
👍5❤2
  Compose Preview c MVI и State Hositing
Идея крайне проста:
👉 В
👉 Вторым параметром идет
👉 Получаем чистый UI, без бизнес логики и репозиториев
👉 В
👉 Еще 1 большой плюс - упрощение внедрения скриншот тестирования
В комментариях подсказали, что у FlowMVI можно получить тоже самое из коробки
Идея крайне проста:
👉 В
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, так что относится и к нам.
Запись первого дня можно глянуть тут
Сегодня трансляция будет на официальном канале
  
  Запись первого дня можно глянуть тут
Сегодня трансляция будет на официальном канале
YouTube
  
  IntelliJ IDEA Conf 2025. Day 1
  On June 3–4, 2025, JetBrains is hosting a free virtual event – IntelliJ IDEA Conf.
IntelliJ IDEA Conf is a celebration of the developer community, bringing together professionals who strive for excellence in software development.
#IntelliJIDEAConf #Java…
IntelliJ IDEA Conf is a celebration of the developer community, bringing together professionals who strive for excellence in software development.
#IntelliJIDEAConf #Java…
👍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 - свитчнуться возможно!
Что за проблемы возникли:
👉 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💅2❤1🤷♂1
  
  Android Good Reads
Kotlin Multiplatform по чуть чуть проникает в официальные документации по Android.  Теперь есть шаблон для кроссплатформенного модуля, а так же 2 новые кодлабы: 👉 KMP getting started 👉 Миграция Room на KMP  Краткий обзор KotlinConf от гугл команды:  https://android…
  
Rich Errors в Kotlin 2.4
Анонсировали на KotlinConf. На мой взгляд, классная обертка на замену старому-доброму
Какие возможные проблемы видите в этом?
Анонсировали на KotlinConf. На мой взгляд, классная обертка на замену старому-доброму
try-catch. Какие возможные проблемы видите в этом?
🔥23🤔6👍4❤3
  
  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!
👉 Улучшенная работа с плагинами (скрин выше)
👉 Упрощение дебага корутин
👉 Агентов и MCP теперь можно писать и на Kotlin!
👍5❤2🔥2
  
  Android Good Reads
Что изменится в Android 16? Отмена ограничений по ориентации экрана и изменению размера окна  Кратко - много боли для тех, кто не делает адаптивный дизайн приложения. C Android 16 будут игнорироваться значения:  👉 screenOrientation: portrait, reversePortrait…
  
Релиз Android 16
Многое уже разбирали с вами на канале:
👉 Новые API камеры
👉 Material 3 Expressive уже будет проявляться в системных приложениях
👉 Адаптивный дизайн, как стандарт
👉 Обновления для кнопки назад
👉 Улучшения для ProgressStyle виджетов
👉 Новые инструменты для профайлинга
👉 Усложнения в области security
Многое уже разбирали с вами на канале:
👉 Новые API камеры
👉 Material 3 Expressive уже будет проявляться в системных приложениях
👉 Адаптивный дизайн, как стандарт
👉 Обновления для кнопки назад
👉 Улучшения для ProgressStyle виджетов
👉 Новые инструменты для профайлинга
👉 Усложнения в области security
👍7❤3
  Порадуемся за код, который мы не написали
Вся статья сводится к простой мысли. Не переусложняйте и декомпозируйте задачи, благо современные технологии (
  
  Вся статья сводится к простой мысли. Не переусложняйте и декомпозируйте задачи, благо современные технологии (
Composable, например) это позволяют.Programmers often like working on complex systems, but I believe that it’s important to practice breaking down that complexity into simpler systems.
Celebrate the code you didn't write
  
  Celebrate the code you didn't write :: Ryan Harter
  Over the past few years I've been driving an architecture and tech spec review process at work. This has been helpful in breaking down certain silos, distributing knowledge across the organization, and building skills and experience in more junior engineers.…
👍11
  keepScreenOn в Jetpack Compose
Как это было:
или
или тег в xml:
Начиная с 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👍8❤4🤯4
  Autofill в Compose 1.8.0 
Несмотря на то что поддержка автозаполнения вышла еще 2021 году, API докрутили только сейчас. Поддержка самой кнопки
Несмотря на то что поддержка автозаполнения вышла еще 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 },
)👍13❤2🗿2
  Как-то мы упустили этот весь тренд с AI и вайбкодингом. Но вот и до Android Studio добралась возможность повайбкодить. Agent-mode в Gemini. 
Не что-то прорывное, но раньше нужно было переключаться меж IDE или использовать Junie, а теперь решение из коробки!
  
  Не что-то прорывное, но раньше нужно было переключаться меж IDE или использовать Junie, а теперь решение из коробки!
Android Developers
  
  Agent Mode  |  Android Studio  |  Android Developers
  Learn about AI-assisted coding features powered by Gemini.
👍8❤3🔥3
  
  Android Good Reads
Как-то мы упустили этот весь тренд с AI и вайбкодингом. Но вот и до Android Studio добралась возможность повайбкодить. Agent-mode в Gemini.   Не что-то прорывное, но раньше нужно было переключаться меж IDE или использовать Junie, а теперь решение из коробки!
Я не хочу превращать Android канал в новостник на тему очередного прорыва в AI, поэтому соберу в кучу несколько полезных статей и холиварных топиков, которые отражают мою позицию.
👉 Как AI влияет на способность думать "гораздо проще написать промпт, закинуть его в чат, и сразу же получить разжеванный ответ"
Да, вместо долгого исследования - ты получаешь ответ с ссылками откуда была взята информация. Так быстрее и непривычнее. Время на техническое исследования сокращается кратно и появляется больше времени на продуктовый ресерч
👉 Вайбкодинг vs Метакодинг. Статья на редите. Выглядит, как естественное развитие одного из другого. Сначала ты просто копируешь со стековерфлоу, затем ты уже думаешь что копировать. Все через это проходили, правда? Так и тут, сначала бездумно забираем ответ AI, потом учимся задавать правильные вопросы и выбираем необходимое
👉 Смотрим как Copilot Agent сводит разработчиков с ума. Да, часть решаемых им задач приходится вот так вот Vibe-дебажить, но часть он решает и успешно закрывает в фоне. Очевидно, что разработка постепенно меняет формат того как она будет выглядеть. Это не очередные фантазии, а реальные контрибьюты в
По работе я пользуюсь GitHub Copilot. Он, даже с последними моделями, недотягивает до Cursor, но берет большим количеством интеграций с GitHub. Gemini, интегрированный в Android Studio, использует модель 2.5 с откатом к 2.0, что делает генерируемый код совершенно непригодным к ревью. До Android разработки вайбкодинг дойдет не скоро, как мне кажется. База для обучения была сильно меньше, чем для фронтенд кода, что сказывается на качестве. Большинство AI IDE построены на базе vsCode, что вынуждает переключаться меж IDE, а не сидеть в удобном и привычном месте.
А какой опыт у вас?
👍 - Больше статей по AI связанных с 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💅3❤1
  Рабочая группа по продвижению использования Swift в android разработке
Основная идея - сделать Android официально поддерживаемой платформой языка Swift. Задачи перед собой поставили стандартные для кроссплатформенного фреймворка, обсуждение открытое, так что можете поучаствовать.
А чтобы быть готовым - пойду подпишусь на iOS Good Reads (@iosgr)
  
  Основная идея - сделать Android официально поддерживаемой платформой языка Swift. Задачи перед собой поставили стандартные для кроссплатформенного фреймворка, обсуждение открытое, так что можете поучаствовать.
А чтобы быть готовым - пойду подпишусь на iOS Good Reads (@iosgr)
Swift.org
  
  
  Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
🥴24❤7👍4🔥4😁4
  
  Android Good Reads
Улучшения виджетов вместе с обновлением Glance 1.2. Посмотреть доклад про live update в новых виджетах можно тут.  Про кастомизацию ProgressBar в Android 16 тут
  
Первые примеры для Live Notification Bar в  Samsung One UI 7
С примерами вида Код - Визуал
Анимации, работают из коробки. Live Notification и Now Bar уже доступны для кастомизации
С примерами вида Код - Визуал
Анимации, работают из коробки. Live Notification и Now Bar уже доступны для кастомизации
👍9❤4🔥2
  Недавний релиз Kotlin 2.2.0
👉 Фича в превью: контекстные параметры
👉 Экспериментальные функции теперь стабильны:
👉 Унифицированное управление предупреждениями компилятора.
👉 Изменения в генерации методов по умолчанию для функций в интерфейсах.
👉 Поддержка LLVM 19 и новые возможности для отслеживания и настройки потребления памяти
👉 Разделение
👉 Исправлена работа метода copy, генерируемого для интерфейсов с аннотацией
👉 В плагин
👉 API для Base64 и HexFormat теперь стабильны.
10 июля в 16:00 UTC будет стрим с разработчиками
  
  👉 Фича в превью: контекстные параметры
👉 Экспериментальные функции теперь стабильны:
guard conditions, нелокальные операторы break и continue, а также multi-dollar интерполяция строк.👉 Унифицированное управление предупреждениями компилятора.
👉 Изменения в генерации методов по умолчанию для функций в интерфейсах.
👉 Поддержка LLVM 19 и новые возможности для отслеживания и настройки потребления памяти
👉 Разделение
Wasm-таргета и возможность настраивать Binaryen для каждого проекта👉 Исправлена работа метода copy, генерируемого для интерфейсов с аннотацией
@JsPlainObject👉 В плагин
Kotlin Gradle включена проверка бинарной совместимости.👉 API для Base64 и HexFormat теперь стабильны.
10 июля в 16:00 UTC будет стрим с разработчиками
The JetBrains Blog
  
  Kotlin 2.2.0 Released | The Kotlin Blog
  The Kotlin 2.2.0 release is out! This version includes both new and stable language features, tooling updates, performance improvements for different platforms, and important fixes. Learn more!
👍7🔥5❤4
  Уменьшаем размер приложения
Вам стоит пропустить эту статью если у вас уже настроено:
👉 Минимальный R8 со специфичными правилами под каждую библиотеку. Вы проверяете его работу не на проде, а с помощью
👉 Перевели все картинки в
👉 Аккуратно переиспользуете layout
👉 Используете
  
  Вам стоит пропустить эту статью если у вас уже настроено:
👉 Минимальный R8 со специфичными правилами под каждую библиотеку. Вы проверяете его работу не на проде, а с помощью
testProguardFiles, например👉 Перевели все картинки в
webp формат, вырезали ненужные ресурсы в конфигурациях👉 Аккуратно переиспользуете layout
👉 Используете
appBundleCarrion.dev
  
  Reducing App Size: Proguard, R8, App Bundles & Resource Shrinking
  A comprehensive guide to reducing Android app size using Proguard, R8, App Bundles, and Resource Shrinking techniques for better performance and user experience.
👍6❤2🔥1
  Шпаргалка по flow операторам
Внутри примеры кода с пояснением для:
👉
👉
👉
👉
👉
👉
👉
👉
Проверяем себя, что все вышеперечисленное использовали хоть раз и знаем!
Внутри примеры кода с пояснением для:
👉
map, filter, take(n)👉
reduce, fold, runningReduce/scan, 👉
transform👉
FlatMapConcat, FlatMapMerge, FlatMapLatest👉
flowOn, buffer, conflate, collectLatest👉
zip, combine, merge👉
catch, onCompletion, retryWhen👉
onEach, debounce(timeoutMillis), distinctUntilChangedПроверяем себя, что все вышеперечисленное использовали хоть раз и знаем!
👍15🔥4❤2
  
  Android Good Reads
Шпаргалка по flow операторам  Внутри примеры кода с пояснением для: 👉 map, filter, take(n) 👉 reduce, fold, runningReduce/scan,  👉 transform 👉 FlatMapConcat, FlatMapMerge, FlatMapLatest 👉 flowOn, buffer, conflate, collectLatest 👉 zip, combine, merge 👉 catch…
  
В комментах Osip(@rareilly) подсказал еще 1 шпаргалку: https://flowmarbles.com/
Намного нагляднее и с удобной навигацией, а не статьей на медиуме!
Намного нагляднее и с удобной навигацией, а не статьей на медиуме!
🔥14👍11
  Так как я чертовски заинтересован в увеличении комьюнити CMP разработки, то вот вам свежая и полезная библиотечка Alarmee, которая является оберткой для всякого рода пушей. 
Firebase, Локальные, Отложенные и повторяющиеся пуши - всё тут!
Никаких больше болей по надстройке пушей на платформах!
  
  Firebase, Локальные, Отложенные и повторяющиеся пуши - всё тут!
Никаких больше болей по надстройке пушей на платформах!
GitHub
  
  GitHub - Tweener/alarmee: A Kotlin/Compose Multiplatform library to schedule alarms, display local notifications, and handle push…
  A Kotlin/Compose Multiplatform library to schedule alarms, display local notifications, and handle push notifications on Android and iOS. - Tweener/alarmee
10👍7🔥3👎1