Новые коллекции в Android
Зачем вообще нужно было строгать новые коллекции и переписывать старые?
На это есть как минимум три причины:
- Эффективный расход памяти - думаю не секрет что даже при наличии 8Gb ОЗУ на вашем телефоне память не бесконечна, поэтому новые коллекции были написаны, придерживаясь принципа "минимум объектов".
- Эффективная реализация алгоритмов - старые реализации могут содержать не очень эффективные алгоритмы и устаревшие решения, требующие рефакторинга.
- Kotlin Multiplatform - при написании общего кода на Kotlin под разные платформы требуется минимальное количество зависимостей от платформенных структур данных, например таких как android.util.SparseArray.
А теперь перейдём к самой вкусной части статьи, разберёмся что за магические штуки наколдовали Google кодеры и самое главное как они работают под капотом.
#android #kotlin #collections
https://habr.com/ru/articles/811415/
Зачем вообще нужно было строгать новые коллекции и переписывать старые?
На это есть как минимум три причины:
- Эффективный расход памяти - думаю не секрет что даже при наличии 8Gb ОЗУ на вашем телефоне память не бесконечна, поэтому новые коллекции были написаны, придерживаясь принципа "минимум объектов".
- Эффективная реализация алгоритмов - старые реализации могут содержать не очень эффективные алгоритмы и устаревшие решения, требующие рефакторинга.
- Kotlin Multiplatform - при написании общего кода на Kotlin под разные платформы требуется минимальное количество зависимостей от платформенных структур данных, например таких как android.util.SparseArray.
А теперь перейдём к самой вкусной части статьи, разберёмся что за магические штуки наколдовали Google кодеры и самое главное как они работают под капотом.
#android #kotlin #collections
https://habr.com/ru/articles/811415/
Хабр
Новые коллекции в Android
В 2018 году в androidx появился новый пакет collection, который содержал несколько специфичных структур данных, переписанных на Kotlin, таких как LongSparseArray , SimpleArrayMap и SparseArrayCompat ....
Погружение в мир Lint'a в Android-проекте
Статические анализаторы уже давно являются неотъемлемой частью разработки проектов не только на Android. Они позволяют выявлять ошибки, несоответствия стандартам code style, производительности или безопасности, обозначать какие-то узкие места, сокращать code review и т. д. Android Studio (далее просто студия) «из коробки» содержит огромное количество всевозможных проверок, но, как правило, этого недостаточно, всегда есть какие-то неучтённые проблемы, внутренние правила компании или команды разработки. Кратко расскажем про Lint, как начинали делать свои правила, с какими задачами сталкивались на первых этапах и как решали. Это поможет вам впервые погрузиться в тему, так как интернет весьма скуден на статьи по ней.
#android #lint
https://habr.com/ru/companies/domclick/articles/818067/
Статические анализаторы уже давно являются неотъемлемой частью разработки проектов не только на Android. Они позволяют выявлять ошибки, несоответствия стандартам code style, производительности или безопасности, обозначать какие-то узкие места, сокращать code review и т. д. Android Studio (далее просто студия) «из коробки» содержит огромное количество всевозможных проверок, но, как правило, этого недостаточно, всегда есть какие-то неучтённые проблемы, внутренние правила компании или команды разработки. Кратко расскажем про Lint, как начинали делать свои правила, с какими задачами сталкивались на первых этапах и как решали. Это поможет вам впервые погрузиться в тему, так как интернет весьма скуден на статьи по ней.
#android #lint
https://habr.com/ru/companies/domclick/articles/818067/
Хабр
Погружение в мир Lint'a в Android-проекте
Статические анализаторы уже давно являются неотъемлемой частью разработки проектов не только на Android. Они позволяют выявлять ошибки, несоответствия стандартам code style, производительности или...
Поиск источника конфликта в Gradle зависимостях проекта, и решение проблемы.
#android #gradle
https://proandroiddev.com/debugging-dependencies-in-gradle-54c8be444849
#android #gradle
https://proandroiddev.com/debugging-dependencies-in-gradle-54c8be444849
Medium
Debugging dependencies in Gradle
How to use dependencyInsight and fix transient dependencies to specific versions in your Android app
VK представила бесплатную платформу для A/B-тестирования
Сервис ускоряет процесс тестирования новых функций в приложениях и на сайтах, позволяет проводить сотни экспериментов ежедневно и сокращает время тестирования с дней до часов. А главное — данные пользователей остаются анонимны и сохраняются на протяжении 10+ лет.
Платформа разработана для различных типов приложений и доступна через Remote Config в Консоли RuStore. Сейчас она задействована в нескольких проектах VK с общей аудиторией более 70 млн человек.
Сервис ускоряет процесс тестирования новых функций в приложениях и на сайтах, позволяет проводить сотни экспериментов ежедневно и сокращает время тестирования с дней до часов. А главное — данные пользователей остаются анонимны и сохраняются на протяжении 10+ лет.
Платформа разработана для различных типов приложений и доступна через Remote Config в Консоли RuStore. Сейчас она задействована в нескольких проектах VK с общей аудиторией более 70 млн человек.
Telegram
VK
🔹 Мы запустили бесплатную мегаплатформу для мега A/B-тестов в Remote Config в Консоли 💙 RuStore.
🔹 Новый инструмент от команды Mail.ru автоматизирует разработчикам всё, что связано с развитием новых фичей в приложениях: включает/выключает функции, таргетирует…
🔹 Новый инструмент от команды Mail.ru автоматизирует разработчикам всё, что связано с развитием новых фичей в приложениях: включает/выключает функции, таргетирует…
Дроиды и питоны: работаем с ADB на Python
Однажды, в одну из бессонных ночей, я думал, как можно автоматизировать рутинные действия на андроид-смартфоне. Ну вы же знаете программистов - их хлебом не корми, дай только что-то автоматизировать. Будь это просто создание каких-то отчетов или сортировка файлов.
И вот, тогда я узнал об одной прекрасной утилите - Android Debug Bridge, ADB. Прекрасный инструмент для работы с Android - подключил телефон, и занимайся чем хочешь. Но иногда так лень запоминать разные команды, вводить их каждый раз... Вот здесь на помощь приходит Python. Прекрасный язык с большими возможностями.
В этой статье я рассмотрю как работать с ADB через python.
#android #adb #python
https://habr.com/ru/articles/822099/
Однажды, в одну из бессонных ночей, я думал, как можно автоматизировать рутинные действия на андроид-смартфоне. Ну вы же знаете программистов - их хлебом не корми, дай только что-то автоматизировать. Будь это просто создание каких-то отчетов или сортировка файлов.
И вот, тогда я узнал об одной прекрасной утилите - Android Debug Bridge, ADB. Прекрасный инструмент для работы с Android - подключил телефон, и занимайся чем хочешь. Но иногда так лень запоминать разные команды, вводить их каждый раз... Вот здесь на помощь приходит Python. Прекрасный язык с большими возможностями.
В этой статье я рассмотрю как работать с ADB через python.
#android #adb #python
https://habr.com/ru/articles/822099/
Хабр
Дроиды и питоны: работаем с ADB на Python
Однажды, в одну из бессонных ночей, я думал, как можно автоматизировать рутинные действия на андроид-смартфоне. Ну вы же знаете программистов - их хлебом не корми, дай только что-то автоматизировать....
Несколько полезных Kotlin функций. В основном будет полезно начинающим, но и опытные разрабы могут найти что-то интересное.
- measureTime + measureTimedValue
- markNow() + ValueTimeMark
- require + check
- Delegates: observable + vetoable + lazy
- buildList + buildString
- Base64 encoding/decoding
- HexFormat
- Typography constants: copyright, nbsp, leftDoubleQuote, ...
#kotlin
https://www.youtube.com/watch?v=OFWMtmqocV8
- measureTime + measureTimedValue
- markNow() + ValueTimeMark
- require + check
- Delegates: observable + vetoable + lazy
- buildList + buildString
- Base64 encoding/decoding
- HexFormat
- Typography constants: copyright, nbsp, leftDoubleQuote, ...
#kotlin
https://www.youtube.com/watch?v=OFWMtmqocV8
YouTube
7 Features in Kotlin's Standard Library that You Might Have Overlooked
Are you still using the Java API when you don't have to? Are you rewriting functions that are already in the standard library? In this video, I cover seven features in Kotlin's standard library that you might have missed or forgotten about.
🕙 What days and…
🕙 What days and…
JCenter закрывается 15 августа 2024. После этого запросы будут редиректиться на Maven Central.
Предварительно будет несколько плановых отключений, что позволит понять, как это скажется на сборках:
July 30th, 7:00 AM – 8:00 AM (UTC) (1 hour)
July 30th, 6:00 PM – 7:00 PM (UTC) (1 hour)
August 5th, 7:00 AM – 11:00 AM (UTC) (4 hours)
August 5th, 6:00 PM – 10:00 PM (UTC) (4 hours)
August 7th, 1:00 PM – August 8th, 1:00 PM (UTC) (24 hours)
#gradle #maven #jcenter
https://jfrog.com/blog/jcenter-sunset/
Предварительно будет несколько плановых отключений, что позволит понять, как это скажется на сборках:
July 30th, 7:00 AM – 8:00 AM (UTC) (1 hour)
July 30th, 6:00 PM – 7:00 PM (UTC) (1 hour)
August 5th, 7:00 AM – 11:00 AM (UTC) (4 hours)
August 5th, 6:00 PM – 10:00 PM (UTC) (4 hours)
August 7th, 1:00 PM – August 8th, 1:00 PM (UTC) (24 hours)
#gradle #maven #jcenter
https://jfrog.com/blog/jcenter-sunset/
JFrog
JCenter Sunset on August 15th, 2024
JFrog supported the Java community as the host of the JCenter repository for Java OSS libraries, packages and components as part of JFrog’s Bintray service for several years. When Bintray was deprecated on May 1st, 2021, to make way for the development and…
Видео о том, как 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
- 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
YouTube
Compose Multiplatform performance on iOS | Elijah Semyonov
Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs
One of the main goals of Compose Multiplatform for iOS is providing absolutely smooth performance, even on high-refresh-rate-displays.
In this talk we deep dive into details…
One of the main goals of Compose Multiplatform for iOS is providing absolutely smooth performance, even on high-refresh-rate-displays.
In this talk we deep dive into details…
Рекомендации от Gradle по неймингу в Version Catalog
#gradle #versioncatalog #android #bestpractice
https://blog.gradle.org/best-practices-naming-version-catalog-entries
#gradle #versioncatalog #android #bestpractice
https://blog.gradle.org/best-practices-naming-version-catalog-entries
blog.gradle.org
Dependency Management - Best Practices for Naming Gradle Version Catalog Entries
Version catalogs are a fairly recent feature in Gradle Build Tool. They help manage dependencies by providing a standardized way of defining and accessing the catalog of dependencies used in a project—ensuri...
K2 не полностью обратно совместим с K1. Нам нужно выполнить некоторые дополнительные шаги, чтобы наш код компилировался на K2. Подробное объяснение миграции описано в официальном руководстве по миграции. Здесь же мы просто объясним наиболее важные изменения, которые могут затронуть обычных пользователей.
#kotlin
https://habr.com/ru/companies/spring_aio/articles/826660/
#kotlin
https://habr.com/ru/companies/spring_aio/articles/826660/
Хабр
Новый компилятор K2 в Kotlin. Часть 2. Гайд по миграции
В этой статье эксперт сообщества Spring АйО – Михаил Поливаха рассмотрит процесс миграции с компилятора Kotlin старой версии на новый компилятор K2. В предыдущей статье...
В этой статье разберем, какие обновления для обеспечения безопасности пользователей были представлены в докладе 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/
Новая защита пользователей
◦ Улучшения 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: доклад с Google I/O 2024
Привет, меня зовут Аня, и я Android-разработчица в KTS . В этой статье разберем, какие обновления для обеспечения безопасности пользователей были представлены в докладе Safeguarding user security on...
Если вы используете Android Studio в работе, то высока вероятность, что рано или поздно зададитесь вопросом – что можно «проапгрейдить» в железе для повышения производительности и что от этого ожидать? Если посмотреть официальные рекомендации, то они довольно скудные и особой ясности не вносят. На хабре на эту тему уже была довольно интересная статья с подробными разборами «что-на-что» влияет. Здесь же я попытаюсь немного дополнить ее еще некоторыми тестами.
#android #performance #build
https://habr.com/ru/articles/823840/
#android #performance #build
https://habr.com/ru/articles/823840/
Хабр
«Железо» для Android Studio (gradle-сборка) в 2024 году
Вступление Если вы используете Android Studio в работе, то высока вероятность, что рано или поздно зададитесь вопросом – что можно «проапгрейдить» в железе для повышения производительности и что от...
На связи эксперты из Стингрей Технолоджиз – Юрий Шабалин, Веселина Зацепина и Игорь Кривонос.
Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в популярной библиотеке для навигации в приложениях Android – Jetpack Navigation. Эта уязвимость позволяет открывать любые фрагменты внутри приложения.
К большому сожалению, несмотря на усилия сообщества, об этой уязвимости мало кто знает. Поэтому сегодня мы хотим еще раз подсветить данную проблему с углублением в детали. В статье мы разберем, что из себя представляет библиотека Jetpack Navigation и ее основные элементы, в чем заключается уязвимость и насколько она опасна, а также приведем немного статистики по уязвимым приложениям.
#android #compose #navigation #security
https://habr.com/ru/companies/swordfish_security/articles/830338/
Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в популярной библиотеке для навигации в приложениях Android – Jetpack Navigation. Эта уязвимость позволяет открывать любые фрагменты внутри приложения.
К большому сожалению, несмотря на усилия сообщества, об этой уязвимости мало кто знает. Поэтому сегодня мы хотим еще раз подсветить данную проблему с углублением в детали. В статье мы разберем, что из себя представляет библиотека Jetpack Navigation и ее основные элементы, в чем заключается уязвимость и насколько она опасна, а также приведем немного статистики по уязвимым приложениям.
#android #compose #navigation #security
https://habr.com/ru/companies/swordfish_security/articles/830338/
Хабр
Разбираемся с новой уязвимостью Android-библиотеки Jetpack Navigation: как открыть любой фрагмент из вашего приложения?
Всем привет! На связи эксперты из Стингрей Технолоджиз – Юрий Шабалин, Веселина Зацепина и Игорь Кривонос. Недавно специалисты из компании Positive Technologies нашли серьезную проблему безопасности в...
Пост от Gradle команды о том, что такое Declarative Gradle, и какие дальнейшие планы по нему
#android #gradle
https://blog.gradle.org/declarative-gradle-first-eap
#android #gradle
https://blog.gradle.org/declarative-gradle-first-eap
blog.gradle.org
First look at Declarative Gradle
Introduction
Подробная статья о том, что такое Accessibility, и почему это важно.
Внутри еще несколько полезных ссылок, в том числе на серию статей о реализации Accessibility в Compose.
#android #accessibility
https://www.thedroidsonroids.com/blog/what-is-accessibility-in-mobile-apps
Внутри еще несколько полезных ссылок, в том числе на серию статей о реализации Accessibility в Compose.
#android #accessibility
https://www.thedroidsonroids.com/blog/what-is-accessibility-in-mobile-apps
Droids On Roids
What is Accessibility in Mobile Apps? Legal Requirements in App Development Series - Part I
Accessibility in mobile apps will be a hot topic in 2024, largely due to upcoming EU legislation that will soon cover digital products. See what to look out for.
Android Application Security Knowledge Base (AAKB) - база знаний по уязвимостям безопасности, которые могут появиться в нашем коде. Там можно найти подробные объяснения и рекомендации по устранению.
#android #security
https://android-developers.googleblog.com/2024/07/making-security-easy-vuln-remediation.html
#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/
Процесс публикации можно разбить на следующие шаги:
1. Регистрация на Central Portal и верификация namespace
2. Создания GPG ключа для подписи артефактов
3. Локальная публикация проекта для теста
4. Подключение JReleaser к проекту и публикация локально
5. Настройка Github Actions для автоматической публикации
#android #library #maven
https://habr.com/ru/articles/830630/
Хабр
Как публиковать библиотеку в Maven Central Portal в 2024 году
Англоязычная версия статьи на Medium Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна. Большинство существующих туториалов в интернете описывают как раз опыт публикации...
Обзор Compose компонентов из Material 3 Adaptive, которые помогают создавать UI под разные размеры экранов.
#android #ui #adaptive #compose
https://www.youtube.com/watch?v=xPUZENis4gc
#android #ui #adaptive #compose
https://www.youtube.com/watch?v=xPUZENis4gc