Миграция на Kotlin DSL

This commit is contained in:
2023-04-07 21:34:59 +03:00
parent 8db9a89237
commit 481cd770f4
13 changed files with 203 additions and 108 deletions
+1
View File
@@ -12,6 +12,7 @@
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/buildSrc" />
</set>
</option>
</GradleProjectSettings>
-89
View File
@@ -1,89 +0,0 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
compileSdk 33
defaultConfig {
applicationId "ru.megboyzz.dnevnik"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary true
}
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled true
}
kotlinOptions {
jvmTarget = '1.8'
freeCompilerArgs = ['-Xjvm-default=compatibility']
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion compose_version
}
packagingOptions {
resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
implementation 'androidx.activity:activity-compose:1.3.1'
implementation 'androidx.constraintlayout:constraintlayout-compose:1.0.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_version"
implementation "androidx.navigation:navigation-compose:2.5.3"
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
implementation "androidx.compose.material:material-icons-extended:$compose_version"
implementation "com.google.accompanist:accompanist-swiperefresh:0.23.0"
implementation "com.google.accompanist:accompanist-navigation-animation:0.30.0"
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
//Библиотечка для рисования круговых диаграмок
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//LazyHorizontalGrid
implementation 'androidx.compose.foundation:foundation:1.4.1'
// The compose calendar library
implementation 'com.kizitonwose.calendar:compose:2.1.1'
implementation "io.coil-kt:coil-compose:2.3.0"
}
+68
View File
@@ -0,0 +1,68 @@
plugins {
id("com.android.application")
kotlin("android")
}
android {
namespace = "ru.megboyzz.dnevnik"
compileSdk = AppConfig.compileSdk
defaultConfig {
minSdk = AppConfig.minSdk
targetSdk = AppConfig.targetSdk
version = AppConfig.versionName
vectorDrawables {
useSupportLibrary = true
}
multiDexEnabled = true
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = listOf(
"-Xjvm-default=compatibility"
)
}
buildFeatures{
compose = true
}
composeOptions{
kotlinCompilerExtensionVersion = Versions.compose
}
packagingOptions{
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies {
//std lib
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
//app libs
implementation(AppDependencies.appLibraries)
//test libs
testImplementation(AppDependencies.testLibraries)
androidTestImplementation(AppDependencies.androidTestLibraries)
}
+1 -1
View File
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.kts.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
+1 -2
View File
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="ru.megboyzz.dnevnik">
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
-13
View File
@@ -1,13 +0,0 @@
buildscript {
ext {
compose_version = '1.4.1'
}
}
plugins {
id 'com.android.application' version '7.2.1' apply false
id 'com.android.library' version '7.2.1' apply false
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
+4
View File
@@ -0,0 +1,4 @@
plugins {
id("com.android.application") version(Versions.gradle)
id("org.jetbrains.kotlin.android") version(Versions.kotlin)
}
+9
View File
@@ -0,0 +1,9 @@
import org.gradle.kotlin.dsl.`kotlin-dsl`
plugins {
`kotlin-dsl`
}
repositories {
mavenCentral()
}
+16
View File
@@ -0,0 +1,16 @@
//Константы уровня приложения
object AppConfig {
const val compileSdk = 33
const val minSdk = 21
const val targetSdk = 32
const val versionCode = 1
const val versionName = "1.0.0"
const val buildToolsVersion = "29.0.3"
const val androidTestInstrumentation = "androidx.test.runner.AndroidJUnitRunner"
const val proguardConsumerRules = "consumer-rules.pro"
const val dimension = "environment"
}
+76
View File
@@ -0,0 +1,76 @@
import org.gradle.api.artifacts.dsl.DependencyHandler
object AppDependencies {
//std lib
val kotlinStdLib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
//android ui
private val appcompat = "androidx.appcompat:appcompat:${Versions.appcompat}"
private val coreKtx = "androidx.core:core-ktx:${Versions.coreKtx}"
private val constraintLayout =
"androidx.constraintlayout:constraintlayout:${Versions.constraintLayout}"
private val pieChartLib = "com.github.PhilJay:MPAndroidChart:v3.1.0"
//test libs
private val junit = "junit:junit:${Versions.junit}"
private val extJUnit = "androidx.test.ext:junit:${Versions.extJunit}"
private val espressoCore = "androidx.test.espresso:espresso-core:${Versions.espresso}"
val appLibraries = arrayListOf<String>().apply {
add(kotlinStdLib)
add(coreKtx)
add(appcompat)
add(constraintLayout)
add(pieChartLib)
}
val androidTestLibraries = arrayListOf<String>().apply {
add(extJUnit)
add(espressoCore)
}
val testLibraries = arrayListOf<String>().apply {
add(junit)
}
}
//util functions for adding the different type dependencies from build.gradle file
fun DependencyHandler.kapt(list: List<String>) {
list.forEach { dependency ->
add("kapt", dependency)
}
}
fun DependencyHandler.implementation(list: List<String>) {
list.forEach { dependency ->
add("implementation", dependency)
}
}
fun DependencyHandler.testImplementation(list: List<String>){
list.forEach { dependency ->
add("testImplementation", dependency)
}
}
fun DependencyHandler.androidTestImplementation(list: List<String>){
list.forEach { dependency ->
add("androidTestImplementation", dependency)
}
}
fun DependencyHandler.coreLibraryDesugaring(list: List<String>){
list.forEach { dependency ->
add("coreLibraryDesugaring", dependency)
}
}
fun DependencyHandler.debugImplementation(list: List<String>){
list.forEach { dependency ->
add("debugImplementation", dependency)
}
}
+22
View File
@@ -0,0 +1,22 @@
//константы версии
//для зависимостей Kotlin DSL
object Versions {
//app level
const val gradle = "7.2.1"
const val kotlin = "1.8.10"
//libs
val coreKtx = "1.7.0"
val appcompat = "1.3.0-alpha01"
val constraintLayout = "2.0.0-beta8"
val compose = "1.4.4"
//test
val junit = "4.12"
val extJunit = "1.1.1"
val espresso = "3.2.0"
}
+1 -1
View File
@@ -1,6 +1,6 @@
#Mon Sep 26 23:09:42 MSK 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
+4 -2
View File
@@ -5,13 +5,15 @@ pluginManagement {
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' }
maven(url = "https://jitpack.io")
}
}
rootProject.name = "MyDnevnik"
include ':app'
include(":app")