taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

build.gradle (3380B)


      1 /*
      2  * This file is part of GNU Taler
      3  * (C) 2020 Taler Systems S.A.
      4  *
      5  * GNU Taler is free software; you can redistribute it and/or modify it under the
      6  * terms of the GNU General Public License as published by the Free Software
      7  * Foundation; either version 3, or (at your option) any later version.
      8  *
      9  * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
     10  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11  * A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License along with
     14  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15  */
     16 
     17 plugins {
     18     id 'com.android.library'
     19     id 'kotlin-android'
     20     id 'kotlinx-serialization'
     21     id "org.jetbrains.kotlin.plugin.compose" version "$kotlin_version"
     22 }
     23 
     24 android {
     25     namespace 'net.taler.common'
     26     compileSdkVersion 36
     27 
     28     defaultConfig {
     29         minSdkVersion 21
     30         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     31         consumerProguardFiles 'consumer-rules.pro'
     32     }
     33 
     34     buildTypes {
     35         release {
     36             minifyEnabled true
     37             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
     38         }
     39         debug {
     40             minifyEnabled minify_debug
     41             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
     42         }
     43     }
     44 
     45     buildFeatures {
     46         viewBinding = true
     47         compose = true
     48     }
     49     compileOptions {
     50         sourceCompatibility = JavaVersion.VERSION_17
     51         targetCompatibility = JavaVersion.VERSION_17
     52     }
     53     kotlinOptions {
     54         jvmTarget = "17"
     55     }
     56     packagingOptions {
     57         resources {
     58             excludes += ['META-INF/*.kotlin_module']
     59         }
     60     }
     61 }
     62 
     63 dependencies {
     64     implementation platform('androidx.compose:compose-bom:2026.02.01')
     65     implementation 'androidx.compose.material3:material3'
     66     implementation 'androidx.compose.ui:ui'
     67     implementation 'androidx.compose.foundation:foundation'
     68 
     69     implementation 'androidx.appcompat:appcompat:1.7.1'
     70     implementation 'androidx.core:core-ktx:1.17.0'
     71     implementation "androidx.constraintlayout:constraintlayout:$constraintlayout_version"
     72     implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
     73 
     74     // Navigation
     75     implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
     76     implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
     77 
     78     // ViewModel and LiveData
     79     implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
     80 
     81     // QR codes
     82     implementation 'com.google.zxing:core:3.5.3'  // needs minSdkVersion 24+ or desugar
     83 
     84     // JSON parsing and serialization
     85     api 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0'
     86     testImplementation "junit:junit:$junit_version"
     87     testImplementation 'org.json:json:20250517'
     88 
     89     // Networking
     90     api "io.ktor:ktor-client:$ktor_version"
     91     api "io.ktor:ktor-client-okhttp:$ktor_version"
     92     implementation "io.ktor:ktor-client-serialization-jvm:$ktor_version"
     93     implementation "io.ktor:ktor-serialization-kotlinx-json:$ktor_version"
     94     implementation "io.ktor:ktor-client-content-negotiation:$ktor_version"
     95     implementation("io.ktor:ktor-client-logging:$ktor_version")
     96 }