Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5c44da4

Browse files
create search dynamic feature module
1 parent 0d125e7 commit 5c44da4

File tree

10 files changed

+145
-4
lines changed

10 files changed

+145
-4
lines changed

‎app/build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,10 @@ android {
100100
kotlinOptions {
101101
jvmTarget = "1.8"
102102
}
103-
dynamicFeatures = mutableSetOf(Modules.DynamicFM.POST_DETAIL)
103+
dynamicFeatures = mutableSetOf(
104+
Modules.DynamicFeature.POST_DETAIL,
105+
Modules.DynamicFeature.SEARCH
106+
)
104107
}
105108

106109
dependencies {

‎app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<resources>
22
<string name="app_name">Poster</string>
33
<string name="title_post_detail">Post Detail</string>
4+
<string name="title_search">Search</string>
45
</resources>

‎buildSrc/src/main/java/Modules.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ object Modules {
1212
/**
1313
* Dynamic Feature Modules
1414
*/
15-
object DynamicFM {
15+
object DynamicFeature {
1616
const val POST_DETAIL = ":features:post_detail"
17+
const val SEARCH = ":features:search"
1718
}
1819
}

‎features/post_detail/src/main/java/com/smarttoolfactory/post_detail/PostDetailFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ class PostDetailFragment : Fragment() {
2525

2626
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
2727
super.onViewCreated(view, savedInstanceState)
28-
2928
// Get RepoListItem from navigation component arguments
3029
val post = arguments?.get("post") as? Post?
3130

‎features/search/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

‎features/search/build.gradle.kts

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import extension.addBaseDynamicFeatureModuleDependencies
2+
import extension.addInstrumentationTestDependencies
3+
import extension.addUnitTestDependencies
4+
5+
plugins {
6+
id(Plugins.ANDROID_DYNAMIC_FEATURE_PLUGIN)
7+
id(Plugins.KOTLIN_ANDROID_PLUGIN)
8+
id(Plugins.KOTLIN_ANDROID_EXTENSIONS_PLUGIN)
9+
id(Plugins.KOTLIN_KAPT_PLUGIN)
10+
id(Plugins.DAGGER_HILT_PLUGIN)
11+
}
12+
13+
android {
14+
15+
compileSdkVersion(AndroidVersion.COMPILE_SDK_VERSION)
16+
17+
defaultConfig {
18+
19+
applicationId = "com.smarttoolfactory.search"
20+
21+
minSdkVersion(AndroidVersion.MIN_SDK_VERSION)
22+
targetSdkVersion(AndroidVersion.TARGET_SDK_VERSION)
23+
versionCode = AndroidVersion.VERSION_CODE
24+
versionName = AndroidVersion.VERSION_NAME
25+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
26+
}
27+
28+
buildTypes {
29+
getByName("release") {
30+
isMinifyEnabled = false
31+
proguardFiles(
32+
getDefaultProguardFile("proguard-android-optimize.txt"),
33+
"proguard-rules.pro"
34+
)
35+
}
36+
}
37+
38+
packagingOptions {
39+
exclude("META-INF/AL2.0")
40+
}
41+
42+
dataBinding.isEnabled = true
43+
// android.buildFeatures.viewBinding = true
44+
45+
compileOptions {
46+
sourceCompatibility = JavaVersion.VERSION_1_8
47+
targetCompatibility = JavaVersion.VERSION_1_8
48+
}
49+
kotlinOptions {
50+
jvmTarget = "1.8"
51+
}
52+
}
53+
54+
dependencies {
55+
56+
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
57+
58+
implementation(project(Modules.APP))
59+
implementation(project(Modules.AndroidLibrary.CORE))
60+
implementation(project(Modules.AndroidLibrary.DOMAIN))
61+
62+
addBaseDynamicFeatureModuleDependencies()
63+
64+
// Support and Widgets
65+
implementation(Deps.APPCOMPAT)
66+
implementation(Deps.MATERIAL)
67+
implementation(Deps.CONSTRAINT_LAYOUT)
68+
69+
// Lifecycle, LiveData, ViewModel
70+
implementation(Deps.LIFECYCLE_EXTENSIONS)
71+
72+
// Glide
73+
implementation(Deps.GLIDE)
74+
kapt(Deps.GLIDE_COMPILER)
75+
76+
// Unit Tests
77+
addUnitTestDependencies()
78+
testImplementation(project(Modules.AndroidLibrary.TEST_UTILS))
79+
80+
// Instrumentation Tests
81+
addInstrumentationTestDependencies()
82+
androidTestImplementation(project(Modules.AndroidLibrary.TEST_UTILS))
83+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.smarttoolfactory.search
2+
3+
import androidx.test.ext.junit.runners.AndroidJUnit4
4+
import androidx.test.platform.app.InstrumentationRegistry
5+
import org.junit.Assert.assertEquals
6+
import org.junit.Test
7+
import org.junit.runner.RunWith
8+
9+
/**
10+
* Instrumented test, which will execute on an Android device.
11+
*
12+
* See [testing documentation](http://d.android.com/tools/testing).
13+
*/
14+
@RunWith(AndroidJUnit4::class)
15+
class ExampleInstrumentedTest {
16+
@Test
17+
fun useAppContext() {
18+
// Context of the app under test.
19+
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20+
assertEquals("com.smarttoolfactory.search", appContext.packageName)
21+
}
22+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:dist="http://schemas.android.com/apk/distribution"
4+
package="com.smarttoolfactory.search">
5+
6+
<dist:module
7+
dist:instant="false"
8+
dist:title="@string/title_search">
9+
<dist:delivery>
10+
<dist:on-demand />
11+
</dist:delivery>
12+
<dist:fusing dist:include="true" />
13+
</dist:module>
14+
</manifest>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.smarttoolfactory.search
2+
3+
import org.junit.Assert.assertEquals
4+
import org.junit.Test
5+
6+
/**
7+
* Example local unit test, which will execute on the development machine (host).
8+
*
9+
* See [testing documentation](http://d.android.com/tools/testing).
10+
*/
11+
class ExampleUnitTest {
12+
@Test
13+
fun addition_isCorrect() {
14+
assertEquals(4, 2 + 2)
15+
}
16+
}

‎settings.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ include(
44
":libraries:data",
55
":libraries:domain",
66
":libraries:test-utils",
7-
":features:post_detail"
7+
":features:post_detail",
8+
":features:search"
89
)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /