Ċ import Ġde . f ay ard . refresh Versions . core . version For Ċ import Ġorg . jetbrains . kotlin . kon an . properties . load Properties Ċ import Ġjava . lang . String . format Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . application ") ĊĠĠĠ Ġkotlin (" android ") ĊĠĠĠ Ġid (" net . th au vin . erik . gradle . semver ") Ċ } Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Ġ= Ġ 3 1 ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ= Ġ" com . fuzzy fun ctors . reduction s " ĊĠĠĠĠĠĠĠ Ġmin Sdk Ġ= Ġ 2 3 ĊĠĠĠĠĠĠĠ Ġtarget Sdk Ġ= Ġ 3 1 ĊĊĠĠĠĠĠĠĠ Ġ// ĠMaking Ġeither Ġof Ġthese Ġtwo Ġvalues Ġdynamic Ġin Ġthe Ġdefault Config Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġrequire Ġa Ġfull Ġapp Ġbuild Ġand Ġre installation Ġbecause Ġthe ĠAndroid Manifest . xml ĊĠĠĠĠĠĠĠ Ġ// Ġmust Ġbe Ġupdated . ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= Ġ" 0 . 1 " ĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" android . support . test . runner . Android JUnit Runner " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġandroid Components . on Variants Ġ{ Ġvariant Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( variant . build Type Ġ== Ġ" release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= Ġload Properties (" app / version . properties ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant . outputs . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . version Code . set ( properties . getProperty (" version . build meta "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . version Name . set ( properties . getProperty (" version . semver "). substring Before ("+ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" debug ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Test Coverage Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget ByName (" release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Options Ġ{ ĊĠĠĠĠĠĠĠ Ġunit Tests . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . use JUnit Platform () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= ĠJava Version . VERSION _ 1 1 . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Features Ġ{ ĊĠĠĠĠĠĠĠ Ġcompose Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompose Options Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Compiler Extension Version Ġ= Ġversion For (" version . android x . compose . compiler ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlint Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Dependencies Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġxml Report Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġhtml Report Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġpackaging Options Ġ{ ĊĠĠĠĠĠĠĠ Ġresources Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Ġ+= Ġ"/ META - INF /{ AL 2 . 0 , L GPL 2 . 1 }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġincrement Build Meta Ġ{ ĊĠĠĠĠĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Meta Ġ= Ġformat ("% d ", Ġbuild Meta . toInt () Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ kotlin Ġ{ ĊĠĠĠ Ġsource Sets . all Ġ{ ĊĠĠĠĠĠĠĠ Ġlanguage Settings . opt In (" android x . compose . material 3 . Experimental Material 3 Api ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ after Evaluate Ġ{ ĊĠĠĠ Ġval Ġapp Module Ġ= Ġthis ĊĠĠĠ Ġval Ġtest Debug Task Ġ= Ġtasks . named (" test Debug UnitTest ") ĊĠĠĠ Ġval Ġtest Release Task Ġ= Ġtasks . named (" test Release UnitTest ") ĊĊĠĠĠ Ġroot Project . sub projects . forEach Ġ{ Ġmodule Ġ-> ĊĠĠĠĠĠĠĠ Ġmodule . after Evaluate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Task Key Ġ= Ġ" test " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule ?. take Unless Ġ{ Ġit Ġ== Ġapp Module Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . tasks ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . find Ġ{ Ġit . name . equals ( test Task Key ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Debug Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Release Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( project (": data ")) ĊĠĠĠ Ġimplementation ( project (": presentation ")) ĊĠĠĠ Ġimplementation ( project (": core ")) ĊĠĠĠ Ġimplementation ( project (": domain ")) ĊĠĠĠ Ġimplementation ( project (": debug - ui ")) ĊĊĠĠĠ Ġimplementation ( platform ( libs . kotlin . bom )) ĊĊĠĠĠ Ġimplementation ( libs . android x . activity . compose ) ĊĠĠĠ Ġimplementation ( libs . android x . appcompat ) ĊĠĠĠ Ġimplementation ( libs . bundles . compose . ui ) ĊĠĠĠ Ġimplementation ( libs . android x . core . k tx ) ĊĠĠĠ Ġimplementation ( libs . arrow . core ) ĊĠĠĠ Ġimplementation ( libs . co il ) ĊĠĠĠ Ġimplementation ( libs . k oin . android ) ĊĠĠĠ Ġimplementation ( libs . kotlin . coroutines . android ) ĊĠĠĠ Ġimplementation ( libs . kotlin . coroutines . core ) ĊĠĠĠ Ġimplementation ( libs . log cat ) ĊĠĠĠ Ġimplementation ( libs . rem oted ata ) ĊĠĠĠ Ġimplementation ( libs . ret rofit ) ĊĠĠĠ Ġimplementation ( libs . ret rofit . converter . mos hi ) ĊĊĠĠĠ Ġdebug Implementation ( libs . flip per ) ĊĠĠĠ Ġdebug Implementation ( libs . flip per . leak can ary 2 . plugin ) ĊĠĠĠ Ġdebug Implementation ( libs . leak can ary ) ĊĠĠĠ Ġdebug Implementation ( libs . so loader ) ĊĊĠĠĠ Ġrelease Implementation ( libs . flip per . noop ) ĊĊĠĠĠ Ġtest Implementation ( libs . k oin . test ) ĊĠĠĠ Ġtest Implementation ( libs . kotlin . coroutines . test ) ĊĊĠĠĠ Ġtest Implementation ( project (": test - util ")) ĊĊĠĠĠ Ġandroid Test Implementation ( libs . android x . compose . ui . testing ) ĊĠĠĠ Ġandroid Test Implementation ( libs . android x . test . rules ) ĊĠĠĠ Ġandroid Test Implementation ( libs . android x . test . runner ) Ċ } Ċ