Вчера состоялся первый день конференции 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😁2
Меняем 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🔥3😁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🤔5👍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
Как несколько лет назад, именованные параметры сделали вызов функций удобнее и безопаснее. Теперь так и с разворачиванием классов.
👍 - Полезно
👎 - Не вижу смысла использовать
👎92👍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 },
)
👍12❤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❤2
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👎21💅3
Рабочая группа по продвижению использования 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.
🥴22❤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
👉 Используете
appBundle
Carrion.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
Проверяем себя, что все вышеперечисленное использовали хоть раз и знаем!
👍14🔥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/
Намного нагляднее и с удобной навигацией, а не статьей на медиуме!
Намного нагляднее и с удобной навигацией, а не статьей на медиуме!
🔥13👍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🔥2👎1
Android Good Reads
Недавний релиз Kotlin 2.2.0 👉 Фича в превью: контекстные параметры 👉 Экспериментальные функции теперь стабильны: guard conditions, нелокальные операторы break и continue, а также multi-dollar интерполяция строк. 👉 Унифицированное управление предупреждениями…
Напоминаю, стрим с разработчиками на тему Kotlin 2.2 сегодня в 14:00 UTC. Я ошибся в прошлом посте
👍3
Про поддержку 16KB page
Зачем?
Девайсы с поддержкой 16 KB работают быстрее на 5-10%, а так же:
👉 Старт приложений быстрее (до 30% для некоторых приложений, 3.16% в среднем),
👉 Меньше расход батареи (на 4.56% меньше)
👉 Быстрее запуск камеры (4.48-6.60%)
Как?
👉
👉Обновляем AGP до 8.5.1+, NDK до r28+.
👉Если не помогло то кропотливо выискиваем нужные флаги из официальных рекомендаций
Тестируем
Необходимые эмуляторы уже в Android Studio
Зачем?
Девайсы с поддержкой 16 KB работают быстрее на 5-10%, а так же:
👉 Старт приложений быстрее (до 30% для некоторых приложений, 3.16% в среднем),
👉 Меньше расход батареи (на 4.56% меньше)
👉 Быстрее запуск камеры (4.48-6.60%)
Как?
👉
APK Analyze
/Alignment Checks
/Lint
поможет найти вселомающую зависимость👉Обновляем AGP до 8.5.1+, NDK до r28+.
👉Если не помогло то кропотливо выискиваем нужные флаги из официальных рекомендаций
Тестируем
Необходимые эмуляторы уже в Android Studio
👍11❤3🔥2🏆1