Вышла стабильная Android Studio Iguana
Debugging
- Version control in App Quality Insights
- View Crashlytics in App Quality Insights
Design
- Jetpack Compose UI Check
- Progressive rendering for Compose Preview
Develop
- Intellij platform update
Testing
- Baseline Profiles wizard
- Espresso Device API
- The latest Android Virtual Devices
Build
- Support for Gradle Version Catalogs
- Policy issue warnings in Google Play SDK Index
- CompileSDK version support
https://android-developers.googleblog.com/2024/02/android-studio-iguana-is-stable.html
#android #androidstudio
Debugging
- Version control in App Quality Insights
- View Crashlytics in App Quality Insights
Design
- Jetpack Compose UI Check
- Progressive rendering for Compose Preview
Develop
- Intellij platform update
Testing
- Baseline Profiles wizard
- Espresso Device API
- The latest Android Virtual Devices
Build
- Support for Gradle Version Catalogs
- Policy issue warnings in Google Play SDK Index
- CompileSDK version support
https://android-developers.googleblog.com/2024/02/android-studio-iguana-is-stable.html
#android #androidstudio
Статья о технической реализации UI событий в ViewModel
#android #viewmodel #architecture #event
https://proandroiddev.com/viewmodel-events-as-state-are-an-antipattern-35ff4fbc6fb6 (Оригинал)
https://shorturl.at/dghip (Перевод)
#android #viewmodel #architecture #event
https://proandroiddev.com/viewmodel-events-as-state-are-an-antipattern-35ff4fbc6fb6 (Оригинал)
https://shorturl.at/dghip (Перевод)
Medium
ViewModel: Events as State are an Antipattern
In this article Nikita explores how a popular notion about expressing events as states may be a misleading one.
В этой статье я расскажу, как можно подружить Robolectric и JUnit 5 и как мы смогли это сделать в Альфа-Банке.
Вы узнаете, как запустить JUnit 4 тесты при совместном использовании с JUnit Jupiter с помощью тестового движка Vintage. А ещё — как с JUnit Platform разработчики Kotest и Spock Framework создавали свои тестовые фреймворки.
Чтобы разобраться со всем этими вопросами, нужно понять мотивы разработчиков, которые создавали JUnit 5. Для этого мы сравним архитектуру JUnit 4 и JUnit 5 и ограничения и возможности, которые предоставляют нам эти библиотеки.
#android #test #robolectric #junit
https://habr.com/ru/companies/alfa/articles/773080/
Вы узнаете, как запустить JUnit 4 тесты при совместном использовании с JUnit Jupiter с помощью тестового движка Vintage. А ещё — как с JUnit Platform разработчики Kotest и Spock Framework создавали свои тестовые фреймворки.
Чтобы разобраться со всем этими вопросами, нужно понять мотивы разработчиков, которые создавали JUnit 5. Для этого мы сравним архитектуру JUnit 4 и JUnit 5 и ограничения и возможности, которые предоставляют нам эти библиотеки.
#android #test #robolectric #junit
https://habr.com/ru/companies/alfa/articles/773080/
Хабр
Как подружить JUnit 5 и Robolectric?
Задавались ли вы вопросом, почему Robolectric не работает JUnit 5? В этой статье я расскажу, как можно подружить Robolectric и JUnit 5 и как мы смогли это сделать в Альфа-Банке. Вы узнаете, как...
UX Best Practices по удалению аккаунта в приложении
#android #bestpractices #account
https://android-developers.googleblog.com/2024/03/designing-your-account-deletion-experience-google-play.html
#android #bestpractices #account
https://android-developers.googleblog.com/2024/03/designing-your-account-deletion-experience-google-play.html
Android Developers Blog
Designing your account deletion experience with users in mind
To help you build trust and design a user-friendly experience that helps meet our policy requirements, consider these best practices.
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Compose урок, новая тема - Input.
Начнем с базовых вещей. Используем Modifier pointerInput для получения PointerEvent. Разбираемся, какая информация о касаниях нам доступна. Используем calculate методы для расчета Zoom и вращения.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Начнем с базовых вещей. Используем Modifier pointerInput для получения PointerEvent. Разбираемся, какая информация о касаниях нам доступна. Используем calculate методы для расчета Zoom и вращения.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Android-разработчик в команду VK Мессенджера
VK ищет Senior Android-разработчика, 3+ года опыта в разработке, высшее техническое образование.
Отличие продукта — нетривиальная бизнес-логика на клиенте и повышенный спрос на оптимизацию: от запросов к API и БД до отрисовки текста.
Чем занимаются:
— разрабатывают offline first мессенджер;
— пишут SDK для мессенджера со сквозным шифрованием;
— проводят эксперименты;
— решают интересные инфраструктурные задачи;
— улучшают скорость отрисовки, переключения экранов и запросов к БД.
Как работают:
— пишут весь новый код на Kotlin;
— используют RxJava, не применяя лишние библиотеки;
— работают в свободном графике и без бюрократии.
Требования
— опыт коммерческой разработки под Android — более 3 лет;
— писали с нуля нескольких нетривиальных приложений;
— навык многопоточного программирования;
— работали с БД на уровне SQL-запросов;
- понимаете процесс отрисовки View.
Откликнуться: vk.company.android
#реклама
VK ищет Senior Android-разработчика, 3+ года опыта в разработке, высшее техническое образование.
Отличие продукта — нетривиальная бизнес-логика на клиенте и повышенный спрос на оптимизацию: от запросов к API и БД до отрисовки текста.
Чем занимаются:
— разрабатывают offline first мессенджер;
— пишут SDK для мессенджера со сквозным шифрованием;
— проводят эксперименты;
— решают интересные инфраструктурные задачи;
— улучшают скорость отрисовки, переключения экранов и запросов к БД.
Как работают:
— пишут весь новый код на Kotlin;
— используют RxJava, не применяя лишние библиотеки;
— работают в свободном графике и без бюрократии.
Требования
— опыт коммерческой разработки под Android — более 3 лет;
— писали с нуля нескольких нетривиальных приложений;
— навык многопоточного программирования;
— работали с БД на уровне SQL-запросов;
- понимаете процесс отрисовки View.
Откликнуться: vk.company.android
#реклама
Видео-обзор новых фич недавно вышедшей студии Игуаны
#androidstudio
https://www.youtube.com/watch?v=kVZ1QNMMub0
#androidstudio
https://www.youtube.com/watch?v=kVZ1QNMMub0
YouTube
What’s new in Android Studio Iguana
Struggling with sluggish app performance, frustrating crashes, and dependency headaches? Android Studio Iguana delivers powerful new tools to tackle these challenges, and is now available for downloading on the stable channel.
This version includes new features…
This version includes new features…
Не так давно на Хабре публиковались оптимистичные новости относительно интеграции Windows Subsystem for Android (WSA) в операционную систему Windows. В частности, говорилось, что в Windows Store стали доступны Android-приложения, которые можно запустить на устройстве под управлением Windows 11.
Всё бы ничего, но теперь стало известно о том, что Microsoft решила вернуться в прошлое и убрать этот компонент. Правда, не сразу, а лишь 5 марта 2025 года — получается, ровно через год после появления новости. Но есть и другая неожиданность — приложение Amazon Appstore, которое даёт возможность устанавливать и запускать софт под Android, уберут уже… вчера. То есть убрали. О том, что происходит и почему, поговорим под катом.
#android #windows
https://habr.com/ru/companies/ru_mts/articles/798789/
Всё бы ничего, но теперь стало известно о том, что Microsoft решила вернуться в прошлое и убрать этот компонент. Правда, не сразу, а лишь 5 марта 2025 года — получается, ровно через год после появления новости. Но есть и другая неожиданность — приложение Amazon Appstore, которое даёт возможность устанавливать и запускать софт под Android, уберут уже… вчера. То есть убрали. О том, что происходит и почему, поговорим под катом.
#android #windows
https://habr.com/ru/companies/ru_mts/articles/798789/
Хабр
Из Windows 11 неожиданно убирают Windows Subsystem for Android. Что происходит и почему?
Не так давно на Хабре публиковались оптимистичные новости относительно интеграции Windows Subsystem for Android (WSA) в операционную систему Windows. В частности, говорилось, что в Windows Store стали...
Подробная статья про KSP, теория и практика
#android #kotlin #ksp
https://medium.com/@umpteenthdev/kotlin-symbol-processing-from-theory-to-practice-e85f980eb67e
#android #kotlin #ksp
https://medium.com/@umpteenthdev/kotlin-symbol-processing-from-theory-to-practice-e85f980eb67e
Сводка последних новостей от JetBrains:
Product News
- Compose Multiplatform 1.6.0 – resources, UI testing, iOS accessibility, and preview annotation
- Amper update – February 2024
- The Ktor roadmap for 2024
Survey
- Configuration Language Survey – help shape the future of build configurations
Google Summer of Code
- Become a Kotlin Google Summer of Code contributor and make an impact!
Advent of Code in Kotlin
- Celebrating our participants and their solutions
Livestream Recordings
- Strategies for successful conference talks
- Data analytics with Kotlin notebooks
Education
- Learn to refactor using your IDE for better Kotlin code
#android #kotlin #jetbrains #compose
https://blog.jetbrains.com/kotlin/2024/03/kotlin-roundup-feb-march-24/
Product News
- Compose Multiplatform 1.6.0 – resources, UI testing, iOS accessibility, and preview annotation
- Amper update – February 2024
- The Ktor roadmap for 2024
Survey
- Configuration Language Survey – help shape the future of build configurations
Google Summer of Code
- Become a Kotlin Google Summer of Code contributor and make an impact!
Advent of Code in Kotlin
- Celebrating our participants and their solutions
Livestream Recordings
- Strategies for successful conference talks
- Data analytics with Kotlin notebooks
Education
- Learn to refactor using your IDE for better Kotlin code
#android #kotlin #jetbrains #compose
https://blog.jetbrains.com/kotlin/2024/03/kotlin-roundup-feb-march-24/
The JetBrains Blog
Kotlin Roundup: Unveiling the New Compose Multiplatform Release, Amper Update, and More! | The Kotlin Blog
Unveiling the New Compose Multiplatform Release, Amper Update, and other Kotlin ecosystem news.
Привет, Хабр! Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать повторяющуюся работу в андроид-разработке при помощи плагина для Android Studio.
#android #androidstudio
https://habr.com/ru/companies/alfa/articles/799873/
#android #androidstudio
https://habr.com/ru/companies/alfa/articles/799873/
Хабр
Автоматизируем рутину в Android разработке: плагин для создания шаблонного кода на примере создания -api -impl модулей
Привет, Хабр! Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать...
Очередная статья о том, что такое Kotlin Multiplatform и почему имеет смысл его использовать
- What is Kotlin Multiplatform?
- How does Kotlin Multiplatform differ from other cross-platform solutions?
- When should you choose KMP?
- Top apps made with Kotlin Multiplatform
#android #kotlin #kmp
https://www.thedroidsonroids.com/blog/what-is-kotlin-multiplatform
- What is Kotlin Multiplatform?
- How does Kotlin Multiplatform differ from other cross-platform solutions?
- When should you choose KMP?
- Top apps made with Kotlin Multiplatform
#android #kotlin #kmp
https://www.thedroidsonroids.com/blog/what-is-kotlin-multiplatform
Вступай в Android-комьюнити Surf
В канале Surf Android Team разработчики приложений «Лабиринт», «Магнит», «Ригла» и других делятся лучшими практиками и больными шишками из опыта работы с Kotlin и Java.
Вот подборка полезных постов из канала:
🟢 Lottie-анимации для приложения-сети зоомагазинов
🟢 Дорожная карта Junior Android-разработчика
🟢 Парсинг SMS через SMS User Consent API
Surf активно расширяет Android-комьюнити и ждёт тебя в канале, чтобы делиться интересными кейсами и быть на одной волне актуальных технологий.
⌨️ Подписывайся по ссылке → @surf_android
#реклама
В канале Surf Android Team разработчики приложений «Лабиринт», «Магнит», «Ригла» и других делятся лучшими практиками и больными шишками из опыта работы с Kotlin и Java.
Вот подборка полезных постов из канала:
Surf активно расширяет Android-комьюнити и ждёт тебя в канале, чтобы делиться интересными кейсами и быть на одной волне актуальных технологий.
#реклама
Please open Telegram to view this post
VIEW IN TELEGRAM
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI/UX для людей с ограниченными возможностями, разных национальностей и особенностями развития. В этой статьей я расскажу про разработку интерфейсов в XML и Compose для варьирующего размера шрифта. А также покажу почему атрибут contentDescription так важен.
#android #design #ux #compose
https://habr.com/ru/articles/798473/
#android #design #ux #compose
https://habr.com/ru/articles/798473/
Хабр
Как увеличить шрифт так, чтобы контейнер не поехал? Адаптация UI/UX для людей с проблемами зрения в XML и Compose
Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI/UX для людей с ограниченными возможностями, разных...
Новый Compose урок по теме - Input.
Используем функцию awaitPointerEvent для отслеживания простых событий типа click, swipe и long press.
Рассматриваем прочие await* функции: awaitFirstDown, awaitLongPressOrCancellation, awaitDragOrCancellation, waitForUpOrCancellation, awaitEachGesture.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Используем функцию awaitPointerEvent для отслеживания простых событий типа click, swipe и long press.
Рассматриваем прочие await* функции: awaitFirstDown, awaitLongPressOrCancellation, awaitDragOrCancellation, waitForUpOrCancellation, awaitEachGesture.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
Обзор второго Android 15 Developer Preview
Updating Android communications
- Satellite support
- Smoother NFC experiences
Developer productivity
- PDF Improvements
- Automatic language switching refinements
- Granular line break controls
- Expanded IntentFilter Functionality
- More OpenJDK API support
Giving your app more flexibility on more screens
- Cover screen support
A more private, secure Android
- Screen record detection
Making Android more efficient
- ApplicationStartInfo API
- Changes to package stopped state
- Detailed app size information
- Changes to foreground services
- SQLite database
Media refinements
- HDR Headroom Control
- Loudness Control
- Use Spatializer instead of Virtualizer
Behavior changes
- Elegant fonts everywhere
User Experience
#android #preview
https://android-developers.googleblog.com/2024/03/the-second-developer-preview-of-android-15.html
https://commonsware.com/blog/2024/03/23/random-musings-android-15-developer-preview-2.html
Updating Android communications
- Satellite support
- Smoother NFC experiences
Developer productivity
- PDF Improvements
- Automatic language switching refinements
- Granular line break controls
- Expanded IntentFilter Functionality
- More OpenJDK API support
Giving your app more flexibility on more screens
- Cover screen support
A more private, secure Android
- Screen record detection
Making Android more efficient
- ApplicationStartInfo API
- Changes to package stopped state
- Detailed app size information
- Changes to foreground services
- SQLite database
Media refinements
- HDR Headroom Control
- Loudness Control
- Use Spatializer instead of Virtualizer
Behavior changes
- Elegant fonts everywhere
User Experience
#android #preview
https://android-developers.googleblog.com/2024/03/the-second-developer-preview-of-android-15.html
https://commonsware.com/blog/2024/03/23/random-musings-android-15-developer-preview-2.html
Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давно, но смог найти применение лишь пару месяцев назад. Расскажу о том, что такое context receivers, где их можно использовать, и, конечно же, про «успешный успех» — минус 60% самописного DI в Ozon ID SDK. Но обо всём по порядку.
#kotlin #android #contextreceivers
https://habr.com/ru/companies/ozontech/articles/802641/
#kotlin #android #contextreceivers
https://habr.com/ru/companies/ozontech/articles/802641/
Хабр
Context receivers — новые extension functions
Думаю, не раскрою большой секрет, что Ozon разработал энное количество мобильных приложений: для покупателей, для продавцов, банк и т. д. В каждом из них требуется авторизация. Для этого существует...
Что нового в Kotlin 2.0.0-Beta5
IDE support
Kotlin K2 compiler
- Current K2 compiler limitations
- Smart cast improvements
- Kotlin Multiplatform improvements
- Compiler plugins support
- How to enable the Kotlin K2 compiler
- Try the Kotlin K2 compiler in Kotlin Playground
- Support in IntelliJ IDEA
- Leave your feedback on the new K2 compiler
Kotlin/Native: resolving conflicts with Objective-C methods
Kotlin/Wasm
- Unsigned primitive types in functions with @JsExport
- Binaryen available by default in production builds
- Generation of TypeScript declaration files in Kotlin/Wasm
- Support for named export
Kotlin/JS
- Support for type-safe plain JavaScript objects
- Support for npm package manager
Gradle improvements
- Improved Gradle dependency handling for CInteropProcess in Kotlin/Native
- Visibility changes in Gradle
- New directory for Kotlin data in Gradle projects
- Kotlin/Native compiler downloaded when needed
- Deprecating old ways of defining compiler options
Standard library: Stable AutoCloseable interface
What to expect from upcoming Kotlin EAP releases
How to update to Kotlin 2.0.0-Beta5
#kotlin
https://kotlinlang.org/docs/whatsnew-eap.html
IDE support
Kotlin K2 compiler
- Current K2 compiler limitations
- Smart cast improvements
- Kotlin Multiplatform improvements
- Compiler plugins support
- How to enable the Kotlin K2 compiler
- Try the Kotlin K2 compiler in Kotlin Playground
- Support in IntelliJ IDEA
- Leave your feedback on the new K2 compiler
Kotlin/Native: resolving conflicts with Objective-C methods
Kotlin/Wasm
- Unsigned primitive types in functions with @JsExport
- Binaryen available by default in production builds
- Generation of TypeScript declaration files in Kotlin/Wasm
- Support for named export
Kotlin/JS
- Support for type-safe plain JavaScript objects
- Support for npm package manager
Gradle improvements
- Improved Gradle dependency handling for CInteropProcess in Kotlin/Native
- Visibility changes in Gradle
- New directory for Kotlin data in Gradle projects
- Kotlin/Native compiler downloaded when needed
- Deprecating old ways of defining compiler options
Standard library: Stable AutoCloseable interface
What to expect from upcoming Kotlin EAP releases
How to update to Kotlin 2.0.0-Beta5
#kotlin
https://kotlinlang.org/docs/whatsnew-eap.html
Kotlin Help
What's new in Kotlin 2.0.0-RC3 | Kotlin
Подробное иллюстрированное введение в тему Generics в Kotlin
#kotlin #generics
https://typealias.com/start/kotlin-generics/
#kotlin #generics
https://typealias.com/start/kotlin-generics/
Dave Leeds on Kotlin
Generics
Perk up your understanding of generics in Chapter 18 of Kotlin: An Illustrated Guide! Through the engaging examples of Jennifer's bakery café and its ever-evolving beverage menu, you'll learn all about generics, type parameters, type arguments, upper-bound…
RuStore — российский стор для Android, в котором можно публиковать свои приложения на более чем 30-миллионную аудиторию, подключать платежное SDK и развивать монетизизацию.
RuStore постоянно улучшается, сейчас команда работает над следующими обновлениями и проводит исследование о магазинах приложений, чтобы сделать его еще удобнее для пользователей и разработчиков.
👉 Примите участие в опросе по ссылке — это займет всего 5 минут, зато даст команде объективную обратную связь. Исследование анонимно и конфиденциально, а все данные будут использованы для анализа только в обобщенном виде.
#реклама
RuStore постоянно улучшается, сейчас команда работает над следующими обновлениями и проводит исследование о магазинах приложений, чтобы сделать его еще удобнее для пользователей и разработчиков.
👉 Примите участие в опросе по ссылке — это займет всего 5 минут, зато даст команде объективную обратную связь. Исследование анонимно и конфиденциально, а все данные будут использованы для анализа только в обобщенном виде.
#реклама