Полезные материалы по мобильной разработке. Статьи, подборки, нововведения, анонсы.
object Deps {
const val androidxAppCompat = "…"
}
А затем в build.gradle.ktsможно обращаться вот так
dependencies {
implementation(Deps.androidxAppCompat)
}
Посмотреть пример можно тут, тут и здесь.
Способ 2 – Version Catalog. В Gradle 7.0 добавили новую фичу Version Catalog. С помощью Version Catalog можно подключать несколько зависимостей одной строкой, предварительно объявив нужные зависимости в одну группу/бандл.
Как подрубить? В gradle, которая лежит в корне проекта нужно добавить файлик libs.versions.toml, в котором и объявляются зависимости в определенном формате.
А затем в build.gradle.ktsможно обращаться вот так
dependencies {
implementation(libs.compose)
}
Посмотреть пример можно тут, тут и здесь
Полезные ссылки
👉 Using Version Catalog on Android projects
👉 Clean Dependency Management in Multi Module Android Projects
👉 Gradle version catalogs for an awesome dependency management
👉 Migrate from Groovy to Kotlin DSL
👉 The New Way of Writing Build Gradle with Kotlin DSL
👉 Kotlin DSL: Gradle scripts in Android made easy
👉 Stop using Gradle buildSrc. Use composite builds instead
👉 GitHub – Android-Starter-2022
👉 GitHub – Now in Android App
👉 GitHub – RefreshVersionsActivity. Как думаете, что будет, если тыкнуть кнопку несколько раз? Совершенно верно, Activity без проблем запустится несколько раз. Последствия зависят от логики, риски могут быть достаточно серьезными. В многих, в том числе и крупных/известных приложениях встречал такое поведение.
Кейсов можно придумать множество, от простых до достаточно критичных. Для примера я взял наиболее понятные.
Теперь про то, как такое решать?
Наиболее популярное решение, которое я видел – delay на клик. То есть, давать возможность нажать на кнопку 1 раз в 1 или несколько секунд. Надеюсь суть понятна.
Реализовать такое можно по-разному, кто-то решает через Rx, кто-то через корутины, кто-то через кастомные обработчики. Я больше предпочитаю кастомный обработчик с delay + kotlin extension для View.
Вот несколько примеров с реализациями
👉 Kotlin Expert [Safe Click Listener in Android]
👉 Android Safe Click Listener
👉 Ensure single click on Android
👉 How to prevent multiple clicks in Android Jetpack Compose