From e63720489cf242343cc64fe7da8323673716930f Mon Sep 17 00:00:00 2001 From: Dongmin Date: Sat, 21 Sep 2024 16:26:53 +0900 Subject: [PATCH] feature #866: init project and properties --- feature/fortune/.gitignore | 1 + feature/fortune/build.gradle.kts | 64 +++++++++++++++++++ feature/fortune/consumer-rules.pro | 0 feature/fortune/proguard-rules.pro | 21 ++++++ .../fortune/ExampleInstrumentedTest.kt | 24 +++++++ feature/fortune/src/main/AndroidManifest.xml | 4 ++ .../feature/fortune/ExampleUnitTest.kt | 17 +++++ settings.gradle.kts | 1 + 8 files changed, 132 insertions(+) create mode 100644 feature/fortune/.gitignore create mode 100644 feature/fortune/build.gradle.kts create mode 100644 feature/fortune/consumer-rules.pro create mode 100644 feature/fortune/proguard-rules.pro create mode 100644 feature/fortune/src/androidTest/java/org/sopt/official/feature/fortune/ExampleInstrumentedTest.kt create mode 100644 feature/fortune/src/main/AndroidManifest.xml create mode 100644 feature/fortune/src/test/java/org/sopt/official/feature/fortune/ExampleUnitTest.kt diff --git a/feature/fortune/.gitignore b/feature/fortune/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/fortune/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/fortune/build.gradle.kts b/feature/fortune/build.gradle.kts new file mode 100644 index 000000000..30ffac8b0 --- /dev/null +++ b/feature/fortune/build.gradle.kts @@ -0,0 +1,64 @@ +plugins { + sopt("feature") + sopt("compose") + alias(libs.plugins.ksp) + alias(libs.plugins.ktlint) + alias(libs.plugins.secret) +} + +android { + defaultConfig { + vectorDrawables { + useSupportLibrary = true + } + } + libraryVariants.all { + sourceSets { + getByName(name) { + java.srcDir("build/generated/ksp/$name/kotlin") + } + } + } + namespace = "org.sopt.official.feature.fortune" +} + +dependencies { + // core + implementation(projects.core.common) + implementation(projects.core.analytics) + + // compose + implementation(libs.kotlin.collections.immutable) + implementation(platform(libs.compose.bom)) + implementation(libs.bundles.compose) + implementation(libs.compose.destination.core) + ksp(libs.compose.destination.ksp) + + // etc + implementation(libs.kotlin.datetime) + implementation(libs.coil.compose) + + // test + testImplementation(libs.junit) + androidTestImplementation(libs.bundles.compose.test) + androidTestImplementation(libs.bundles.android.test) + debugImplementation(libs.bundles.compose.android.test) +} + +secrets { + defaultPropertiesFileName = "secrets.defaults.properties" + + ignoreList.add("sdk.*") +} + +ktlint { + android.set(true) + debug.set(true) + coloredOutput.set(true) + verbose.set(true) + outputToConsole.set(true) + filter { + exclude { projectDir.toURI().relativize(it.file.toURI()).path.contains("/generated/") } + exclude { it.file.name.contains("gradle") } + } +} diff --git a/feature/fortune/consumer-rules.pro b/feature/fortune/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/feature/fortune/proguard-rules.pro b/feature/fortune/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/feature/fortune/proguard-rules.pro @@ -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 \ No newline at end of file diff --git a/feature/fortune/src/androidTest/java/org/sopt/official/feature/fortune/ExampleInstrumentedTest.kt b/feature/fortune/src/androidTest/java/org/sopt/official/feature/fortune/ExampleInstrumentedTest.kt new file mode 100644 index 000000000..607fe886d --- /dev/null +++ b/feature/fortune/src/androidTest/java/org/sopt/official/feature/fortune/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package org.sopt.official.feature.fortune + +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("org.sopt.official.feature.fortune.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/feature/fortune/src/main/AndroidManifest.xml b/feature/fortune/src/main/AndroidManifest.xml new file mode 100644 index 000000000..e10007615 --- /dev/null +++ b/feature/fortune/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/feature/fortune/src/test/java/org/sopt/official/feature/fortune/ExampleUnitTest.kt b/feature/fortune/src/test/java/org/sopt/official/feature/fortune/ExampleUnitTest.kt new file mode 100644 index 000000000..220c38c82 --- /dev/null +++ b/feature/fortune/src/test/java/org/sopt/official/feature/fortune/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package org.sopt.official.feature.fortune + +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) + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 826cefb79..b5755fe53 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -39,4 +39,5 @@ include( ":feature:notification", ":feature:soptamp", ":feature:poke", + ":feature:fortune" )