1
+ plugins {
2
+ id(" com.android.application" )
3
+ id(" org.jetbrains.kotlin.android" )
4
+ id(" org.jetbrains.kotlin.plugin.compose" )
5
+ id(" com.google.devtools.ksp" )
6
+ }
7
+
8
+ android {
9
+ buildToolsVersion = " 34.0.0"
10
+ compileSdk = 34
11
+
12
+ defaultConfig {
13
+ applicationId = " com.dessalines.rankmyfavs"
14
+ minSdk = 21
15
+ targetSdk = 34
16
+ versionCode = 20
17
+ versionName = " 0.5.2"
18
+
19
+ testInstrumentationRunner = " androidx.test.runner.AndroidJUnitRunner"
20
+ vectorDrawables {
21
+ useSupportLibrary = true
22
+ }
23
+ ksp { arg(" room.schemaLocation" , " $projectDir /schemas" ) }
24
+ }
25
+
26
+ // Necessary for izzyondroid releases
27
+ dependenciesInfo {
28
+ // Disables dependency metadata when building APKs.
29
+ includeInApk = false
30
+ // Disables dependency metadata when building Android App Bundles.
31
+ includeInBundle = false
32
+ }
33
+
34
+ if (project.hasProperty(" RELEASE_STORE_FILE" )) {
35
+ signingConfigs {
36
+ register(" release" ) {
37
+ storeFile = file(project.property(" RELEASE_STORE_FILE" )!! )
38
+ storePassword = project.property(" RELEASE_STORE_PASSWORD" ) as String?
39
+ keyAlias = project.property(" RELEASE_KEY_ALIAS" ) as String?
40
+ keyPassword = project.property(" RELEASE_KEY_PASSWORD" ) as String?
41
+
42
+ // Optional, specify signing versions used
43
+ enableV1Signing = true
44
+ enableV2Signing = true
45
+ }
46
+ }
47
+ }
48
+ buildTypes {
49
+ release {
50
+ signingConfig = if (project.hasProperty(" RELEASE_STORE_FILE" )) {
51
+ signingConfigs.getByName(" release" )
52
+ } else {
53
+ signingConfigs.getByName(" debug" )
54
+ }
55
+
56
+ isMinifyEnabled = true
57
+ isShrinkResources = true
58
+ proguardFiles(
59
+ // Includes the default ProGuard rules files that are packaged with
60
+ // the Android Gradle plugin. To learn more, go to the section about
61
+ // R8 configuration files.
62
+ getDefaultProguardFile(" proguard-android-optimize.txt" ),
63
+
64
+ // Includes a local, custom Proguard rules file
65
+ " proguard-rules.pro"
66
+ )
67
+ }
68
+ debug {
69
+ applicationIdSuffix = " .debug"
70
+ versionNameSuffix = " (DEBUG)"
71
+ }
72
+ }
73
+
74
+ compileOptions {
75
+ sourceCompatibility = JavaVersion .VERSION_17
76
+ targetCompatibility = JavaVersion .VERSION_17
77
+ }
78
+ kotlinOptions {
79
+ jvmTarget = " 17"
80
+ freeCompilerArgs = listOf (" -Xjvm-default=all-compatibility" , " -opt-in=kotlin.RequiresOptIn" )
81
+ }
82
+ buildFeatures {
83
+ compose = true
84
+ }
85
+ namespace = " com.dessalines.rankmyfavs"
86
+ }
87
+
88
+ dependencies {
89
+ // Color picker
90
+ implementation(" com.github.skydoves:colorpicker-compose:1.1.2" )
91
+
92
+ // Exporting / importing DB helper
93
+ implementation(" com.github.dessalines:room-db-export-import:0.1.0" )
94
+
95
+ // Composable screenshot
96
+ implementation(" dev.shreyaspatil:capturable:3.0.0" )
97
+
98
+ // CSV exporting
99
+ implementation(" com.floern.castingcsv:casting-csv-kt:1.2" )
100
+
101
+ // Tables
102
+ implementation(" com.github.Breens-Mbaka:BeeTablesCompose:1.2.0" )
103
+
104
+ // Glicko2
105
+ implementation(" com.github.goochjs:glicko2:master" )
106
+
107
+ // Compose BOM
108
+ implementation(platform(" androidx.compose:compose-bom:2024.10.00" ))
109
+ implementation(" androidx.compose.ui:ui" )
110
+ implementation(" androidx.compose.material3:material3" )
111
+ implementation(" androidx.compose.material:material-icons-extended-desktop:1.7.4" )
112
+ implementation(" androidx.compose.material3:material3-window-size-class" )
113
+ implementation(" androidx.compose.ui:ui-tooling" )
114
+ implementation(" androidx.compose.runtime:runtime-livedata:1.7.4" )
115
+
116
+ // Activities
117
+ implementation(" androidx.activity:activity-compose:1.9.3" )
118
+ implementation(" androidx.activity:activity-ktx:1.9.3" )
119
+
120
+ // LiveData
121
+ implementation(" androidx.lifecycle:lifecycle-runtime-compose:2.8.6" )
122
+
123
+ // Navigation
124
+ implementation(" androidx.navigation:navigation-compose:2.8.3" )
125
+
126
+ // Markdown
127
+ implementation(" com.github.jeziellago:compose-markdown:0.5.4" )
128
+
129
+ // Preferences
130
+ implementation(" me.zhanghai.compose.preference:library:1.1.1" )
131
+
132
+ // Room
133
+ // To use Kotlin annotation processing tool
134
+ ksp(" androidx.room:room-compiler:2.6.1" )
135
+ implementation(" androidx.room:room-runtime:2.6.1" )
136
+ annotationProcessor(" androidx.room:room-compiler:2.6.1" )
137
+
138
+ // optional - Kotlin Extensions and Coroutines support for Room
139
+ implementation(" androidx.room:room-ktx:2.6.1" )
140
+
141
+ // App compat
142
+ implementation(" androidx.appcompat:appcompat:1.7.0" )
143
+ }
0 commit comments