initial commit

This commit is contained in:
Carlos Martinez
2020-02-01 16:01:58 -03:00
parent bfa862a680
commit 900f018134
42 changed files with 934 additions and 7 deletions

1
base/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

55
base/build.gradle Normal file
View File

@@ -0,0 +1,55 @@
apply from: 'versions.gradle'
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion build_versions.target_sdk
buildToolsVersion build_versions.build_tools
defaultConfig {
minSdkVersion build_versions.min_sdk
targetSdkVersion build_versions.target_sdk
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests.returnDefaultValues = true
}
}
dependencies {
kapt deps.room.compiler
api deps.kotlin.std_lib
api deps.androidx.appcompat
api deps.androidx.core_ktx
api deps.androidx.constraint_layout
api deps.androidx.lifecycle_ext
api deps.androidx.lifecycle_viewmodel
api deps.androidx.recycler_view
api deps.retrofit.runtime
api deps.retrofit.gson
api deps.retrofit.rx
api deps.room.runtime
api deps.koin.core
api deps.koin.scope
api deps.koin.viewmodel
api deps.rx.core
api deps.rx.android
api deps.okhttp_logging_interceptor
api deps.timber
//Testing
testImplementation deps.testing.junit
testImplementation deps.testing.koin
androidTestImplementation deps.testing.core
androidTestImplementation deps.testing.rules
androidTestImplementation deps.testing.runner
androidTestImplementation deps.testing.ext
androidTestImplementation deps.testing.espresso
}

0
base/consumer-rules.pro Normal file
View File

21
base/proguard-rules.pro vendored Normal file
View File

@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@@ -0,0 +1,24 @@
package com.hako.base
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.hako.base.test", appContext.packageName)
}
}

View File

@@ -0,0 +1,2 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hako.base" />

View File

@@ -0,0 +1,3 @@
<resources>
<string name="app_name">base</string>
</resources>

View File

@@ -0,0 +1,17 @@
package com.hako.base
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}

76
base/versions.gradle Normal file
View File

@@ -0,0 +1,76 @@
ext.deps = [:]
def versions = [:]
versions.kotlin = "1.3.41"
versions.androidx_appcompat = "1.1.0"
versions.androidx_core = "1.1.0"
versions.androidx_constraint_layout = "1.1.3"
versions.androidx_lifecycle = "2.2.0"
versions.androidx_recycler_view = "1.1.0"
versions.okhttp_logging_interceptor = "4.3.1"
versions.retrofit = "2.7.1"
versions.timber = "4.7.1"
versions.room = "2.2.3"
versions.koin = "2.0.1"
versions.rx_core = "2.2.17"
versions.rx_android = "2.1.1"
versions.junit = "4.13"
versions.test = "1.2.0"
versions.test_ext = "1.1.1"
versions.espresso = "3.2.0"
def deps = [:]
def kotlin = [:]
kotlin.version = "$versions.kotlin"
kotlin.std_lib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$versions.kotlin"
deps.kotlin = kotlin
def androidx = [:]
androidx.appcompat = "androidx.appcompat:appcompat:$versions.androidx_appcompat"
androidx.core_ktx = "androidx.core:core-ktx:$versions.androidx_core"
androidx.constraint_layout = "androidx.constraintlayout:constraintlayout:$versions.androidx_constraint_layout"
androidx.lifecycle_ext = "androidx.lifecycle:lifecycle-extensions:$versions.androidx_lifecycle"
androidx.lifecycle_viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:$versions.androidx_lifecycle"
androidx.recycler_view = "androidx.recyclerview:recyclerview:$versions.androidx_recycler_view"
deps.androidx = androidx
def retrofit = [:]
retrofit.runtime = "com.squareup.retrofit2:retrofit:$versions.retrofit"
retrofit.gson = "com.squareup.retrofit2:converter-gson:$versions.retrofit"
retrofit.mock = "com.squareup.retrofit2:retrofit-mock:$versions.retrofit"
retrofit.rx = "com.squareup.retrofit2:adapter-rxjava2:$versions.retrofit"
deps.retrofit = retrofit
def room = [:]
room.runtime = "androidx.room:room-runtime:$versions.room"
room.compiler = "androidx.room:room-compiler:$versions.room"
deps.room = room
def koin = [:]
koin.core = "org.koin:koin-android:$versions.koin"
koin.scope = "org.koin:koin-androidx-scope:$versions.koin"
koin.viewmodel = "org.koin:koin-androidx-viewmodel:$versions.koin"
deps.koin = koin
def rx = [:]
rx.core = "io.reactivex.rxjava2:rxjava:$versions.rx_core"
rx.android = "io.reactivex.rxjava2:rxandroid:$versions.rx_android"
deps.rx = rx
def testing = [:]
testing.junit = "junit:junit:$versions.junit"
testing.core = "androidx.test:core:$versions.test"
testing.rules = "androidx.test:rules:$versions.test"
testing.runner = "androidx.test:runner:$versions.test"
testing.ext = "androidx.test.ext:junit:$versions.test_ext"
testing.koin = "org.koin:koin-test:$versions.koin"
testing.espresso = "androidx.test.espresso:espresso-core:$versions.espresso"
deps.testing = testing
// Singles
deps.okhttp_logging_interceptor = "com.squareup.okhttp3:logging-interceptor:$versions.okhttp_logging_interceptor"
deps.timber = "com.jakewharton.timber:timber:$versions.timber"
ext.deps = deps