Telegram Web Link
Видео о том, как Compose Multiplatform работает на iOS:

- Definition of what performance is and what our goals are
- Overview of Compose Multiplatform machinery and how it works on iOS
- Summary of interesting problems we had and how we overcame them

#compose #ios #multiplatform

https://www.youtube.com/watch?v=Df1ZCmmHWzM
K2 не полностью обратно совместим с K1. Нам нужно выполнить некоторые дополнительные шаги, чтобы наш код компилировался на K2. Подробное объяснение миграции описано в официальном руководстве по миграции. Здесь же мы просто объясним наиболее важные изменения, которые могут затронуть обычных пользователей.

#kotlin

https://habr.com/ru/companies/spring_aio/articles/826660/
В этой статье разберем, какие обновления для обеспечения безопасности пользователей были представлены в докладе Safeguarding user security on Android на Google I/O, и как они отразятся на разработке.

Новая защита пользователей
◦ Улучшения UX во время демонстрации экрана
◦ Защита пользователей во время кражи устройства
◦ Private Space feature
◦ Сокращение доступа к фото и видео

Play Integrity API
◦ App access risk
◦ Play Protect
◦ Проверка недавней активности приложения
◦ Integrity API report

Изменения в Android 15
◦ Обновление версии target SDK
◦ Safer Intent update
◦ Запуск background activity


#android #security #apilevel #sdk

https://habr.com/ru/companies/kts/articles/823574/
Если вы используете Android Studio в работе, то высока вероятность, что рано или поздно зададитесь вопросом – что можно «проапгрейдить» в железе для повышения производительности и что от этого ожидать? Если посмотреть официальные рекомендации, то они довольно скудные и особой ясности не вносят. На хабре на эту тему уже была довольно интересная статья с подробными разборами «что-на-что» влияет. Здесь же я попытаюсь немного дополнить ее еще некоторыми тестами.

#android #performance #build

https://habr.com/ru/articles/823840/
На связи эксперты из Стингрей Технолоджиз – Юрий Шабалин, Веселина Зацепина и Игорь Кривонос.

Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в популярной библиотеке для навигации в приложениях Android – Jetpack Navigation. Эта уязвимость позволяет открывать любые фрагменты внутри приложения.

К большому сожалению, несмотря на усилия сообщества, об этой уязвимости мало кто знает. Поэтому сегодня мы хотим еще раз подсветить данную проблему с углублением в детали. В статье мы разберем, что из себя представляет библиотека Jetpack Navigation и ее основные элементы, в чем заключается уязвимость и насколько она опасна, а также приведем немного статистики по уязвимым приложениям.


#android #compose #navigation #security

https://habr.com/ru/companies/swordfish_security/articles/830338/
Пост от Gradle команды о том, что такое Declarative Gradle, и какие дальнейшие планы по нему

#android #gradle

https://blog.gradle.org/declarative-gradle-first-eap
Подробная статья о том, что такое Accessibility, и почему это важно.

Внутри еще несколько полезных ссылок, в том числе на серию статей о реализации Accessibility в Compose.

#android #accessibility

https://www.thedroidsonroids.com/blog/what-is-accessibility-in-mobile-apps
Android Application Security Knowledge Base (AAKB) - база знаний по уязвимостям безопасности, которые могут появиться в нашем коде. Там можно найти подробные объяснения и рекомендации по устранению.

#android #security

https://android-developers.googleblog.com/2024/07/making-security-easy-vuln-remediation.html
Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна. Большинство существующих туториалов в интернете описывают как раз опыт публикации через OSSRH на Maven Central из-за чего после марта 2024 года эти инструкции стали не актуальны для публикации проектов новых авторов.

Процесс публикации можно разбить на следующие шаги:

1. Регистрация на Central Portal и верификация namespace
2. Создания GPG ключа для подписи артефактов
3. Локальная публикация проекта для теста
4. Подключение JReleaser к проекту и публикация локально
5. Настройка Github Actions для автоматической публикации


#android #library #maven

https://habr.com/ru/articles/830630/
Обзор Compose компонентов из Material 3 Adaptive, которые помогают создавать UI под разные размеры экранов.

#android #ui #adaptive #compose

https://www.youtube.com/watch?v=xPUZENis4gc
Возвращаемся к урокам по Compose после летних каникул.

Новая важная тема - Stability. В первом уроке разбираемся, что это такое и зачем вообще нужно.

Подключим compiler metrics отчеты, чтобы видеть, какие классы компилятор считает stable/unstable, а какие функции - skippable.

Используем аннотацию Immutable, чтобы увидеть, как можно сломать Stability.

В качестве примеров пока используем примитивы и data классы.

#android #course #compose

https://startandroid.ru/ru/courses/compose.html
Мобильные разработчики, общий сбор!

29 августа в Санкт-Петербурге пройдёт VK JT Mobile, первая конференция VK для мобильных разработчиков на iOS и Android. Вспомним прошлое, обсудим будущее и, опираясь на наш опыт, расскажем, как моментально внедрять технологии, структурировать миллионы строк кода и постоянно улучшать продуктовые метрики.

В программе нестандартные сценарии работы с пушами, упрощение разработки с помощью нейросетей, фичи для анализа ошибок и даже реализация приложений для автомобилей. Подробнее — на сайте.

Регистрируйтесь, если хотите реализовывать сложные в разработке, но простые для юзеров приложения, а также разбираться в инструментах и практиках, которые применяют наши специалисты 🙋

#реклама
Android Gradle Plugin это тяжелая штука. Модуль с подключенным AGP (например с com.android.library) конфигурируется в два раза дольше чем обычный jvm модуль java/kotlin. В момент конфигурации android-модуля потребляется в два раза больше оперативной памяти. У модуля с AGP больше тасок, больше вес output артефактов, больше триггеров для инвалидации билд-кэша.

В крупных проектах, когда у нас есть возможность использовать модули без AGP, мы должны это делать ради времени билда и конфигурации.

К сожалению в 90% случаев мы не можем оставить модуль обычным JVM модулем из-за того что он ссылается на какие-то сущности из Android SDK или библиотеки, распространяемые в виде AAR артефактов.

Решение в том чтобы разрешить JVM модулям зависеть от Android SDK и AAR, при этом не подключая AGP.


#android #gradle #java #module #agp

https://habr.com/ru/articles/835402/
В файле local.properties можно хранить, например, свои логин/пароль. Gradle может закинуть их в класс BuildConfig, чтобы мы могли использовать эти данные в приложении на экране логина, и не вводить каждый раз руками. Это будет работать только в локальной сборке.

#android #gradle

https://dev.to/kiolk/simple-way-to-store-secrets-in-android-project-345k
Интересный способ избавиться от UseCase, которые просто прокидывают метод репозитория. Делаем такой UseCase интерфейсом и наследуем его в репозитории.

#android #kotlin #usecase #architecture

https://dladukedev.com/articles/042_avoid_useless_cases_part_2/
Вышел Kotlin 2.0.20

- The data class copy function will have the same visibility as the constructor
- Static accessors for source sets from the default target hierarchy are now available in multiplatform projects
- Concurrent marking for Kotlin/Native has been made possible in the garbage collector
- The @ExperimentalWasmDsl annotation in Kotlin/Wasm has a new location
- Support has been added for Gradle versions 8.6–8.8
- A new option allows sharing JVM artifacts between Gradle projects as class files
- The Compose compiler has been updated
- Support for UUIDs has been added to the common Kotlin standard library

#kotlin

https://blog.jetbrains.com/kotlin/2024/08/kotlin-2-0-20-released/
Сравнение Flutter и Kotlin Multiplatform:

- Flutter vs. KMP in a nutshell
- Flutter vs. KMP – Detailed comparison
- Flutter vs. KMP – Main differences
- Flutter vs. KMP: 4 key criteria to help you decide
- Developing with Flutter and KMP – Droids On Roids approach
- Summary

#flutter #kmp #multiplatform

https://www.thedroidsonroids.com/blog/flutter-vs-kotlin-multiplatform
2025/07/07 15:14:17
Back to Top
HTML Embed Code: