StartAndroid
10.7K subscribers
371 photos
10 videos
5 files
1.75K links
Канал об Android (Андроид) разработке

Сайт - http://startandroid.ru

Чат - https://tttttt.me/startandroidchat

Контакты - https://startandroid.ru/ru/about/cntct5.html

Реклама - https://startandroid.ru/ru/about/reklama.html
Download Telegram
Новые коллекции в Android

Зачем вообще нужно было строгать новые коллекции и переписывать старые?

На это есть как минимум три причины:

- Эффективный расход памяти - думаю не секрет что даже при наличии 8Gb ОЗУ на вашем телефоне память не бесконечна, поэтому новые коллекции были написаны, придерживаясь принципа "минимум объектов".

- Эффективная реализация алгоритмов - старые реализации могут содержать не очень эффективные алгоритмы и устаревшие решения, требующие рефакторинга.

- Kotlin Multiplatform - при написании общего кода на Kotlin под разные платформы требуется минимальное количество зависимостей от платформенных структур данных, например таких как android.util.SparseArray.

А теперь перейдём к самой вкусной части статьи, разберёмся что за магические штуки наколдовали Google кодеры и самое главное как они работают под капотом.

#android #kotlin #collections

https://habr.com/ru/articles/811415/
Погружение в мир Lint'a в Android-проекте

Статические анализаторы уже давно являются неотъемлемой частью разработки проектов не только на Android. Они позволяют выявлять ошибки, несоответствия стандартам code style, производительности или безопасности, обозначать какие-то узкие места, сокращать code review и т. д. Android Studio (далее просто студия) «из коробки» содержит огромное количество всевозможных проверок, но, как правило, этого недостаточно, всегда есть какие-то неучтённые проблемы, внутренние правила компании или команды разработки. Кратко расскажем про Lint, как начинали делать свои правила, с какими задачами сталкивались на первых этапах и как решали. Это поможет вам впервые погрузиться в тему, так как интернет весьма скуден на статьи по ней.

#android #lint

https://habr.com/ru/companies/domclick/articles/818067/
VK представила бесплатную платформу для A/B-тестирования

Сервис ускоряет процесс тестирования новых функций в приложениях и на сайтах, позволяет проводить сотни экспериментов ежедневно и сокращает время тестирования с дней до часов. А главное — данные пользователей остаются анонимны и сохраняются на протяжении 10+ лет.

 Платформа разработана для различных типов приложений и доступна через Remote Config в Консоли RuStore. Сейчас она задействована в нескольких проектах VK с общей аудиторией более 70 млн человек.
Дроиды и питоны: работаем с ADB на Python

Однажды, в одну из бессонных ночей, я думал, как можно автоматизировать рутинные действия на андроид-смартфоне. Ну вы же знаете программистов - их хлебом не корми, дай только что-то автоматизировать. Будь это просто создание каких-то отчетов или сортировка файлов.

И вот, тогда я узнал об одной прекрасной утилите - Android Debug Bridge, ADB. Прекрасный инструмент для работы с Android - подключил телефон, и занимайся чем хочешь. Но иногда так лень запоминать разные команды, вводить их каждый раз... Вот здесь на помощь приходит Python. Прекрасный язык с большими возможностями.

В этой статье я рассмотрю как работать с ADB через python.


#android #adb #python

https://habr.com/ru/articles/822099/
Несколько полезных 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
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/
Видео о том, как 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