Skip to content

Commit 442de47

Browse files
authored
Merge pull request #1 from isoguzay/task/implement-mvvm-architecture
task/implement-base-mvvm-architecture
2 parents f5a790d + 6f53beb commit 442de47

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+610
-42
lines changed

app/build.gradle

Lines changed: 79 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
apply plugin: "com.android.application"
2-
apply plugin: 'kotlin-android'
1+
plugins {
2+
id 'com.android.application'
3+
id 'kotlin-android'
4+
id 'kotlin-kapt'
5+
id 'dagger.hilt.android.plugin'
6+
}
37

48
if (!file("local.gradle").exists()) {
59
exec {
@@ -28,20 +32,87 @@ android {
2832
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
2933
}
3034
}
35+
kotlinOptions {
36+
jvmTarget = "1.8"
37+
}
38+
buildFeatures {
39+
compose = true
40+
}
41+
composeOptions{
42+
kotlinCompilerExtensionVersion = "1.1.1"
43+
}
3144
}
3245

3346
dependencies {
34-
androidTestImplementation "androidx.test:runner:1.4.0"
35-
androidTestImplementation "androidx.test.ext:junit:1.1.3"
36-
androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
37-
38-
testImplementation "junit:junit:4.13.2"
3947

4048
implementation fileTree(dir: "libs", include: ["*.jar"])
4149
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
4250
implementation "androidx.appcompat:appcompat:1.4.1"
4351
implementation "androidx.core:core-ktx:1.7.0"
44-
52+
53+
// coil
54+
implementation "io.coil-kt:coil-compose:1.4.0"
55+
56+
// compose
57+
implementation "androidx.compose.animation:animation:1.1.1"
58+
implementation "androidx.compose.compiler:compiler:1.1.1"
59+
implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0"
60+
implementation "androidx.compose.foundation:foundation:1.1.1"
61+
implementation "androidx.compose.foundation:foundation-layout:1.1.1"
62+
implementation "androidx.compose.material:material:1.1.1"
63+
implementation "androidx.compose.material:material-icons-core:1.1.1"
64+
implementation "androidx.compose.material:material-icons-extended:1.1.1"
65+
implementation "androidx.navigation:navigation-compose:2.4.2"
66+
implementation "androidx.navigation:navigation-common-ktx:2.4.2"
67+
implementation "androidx.compose.runtime:runtime:1.1.1"
68+
implementation "androidx.compose.runtime:runtime-livedata:1.1.1"
69+
implementation "androidx.compose.ui:ui:1.1.1"
70+
implementation "androidx.compose.ui:ui-tooling:1.1.1"
71+
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.4.1"
72+
implementation "androidx.hilt:hilt-navigation-compose:1.0.0"
73+
74+
// coroutines
75+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1'
76+
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1"
77+
78+
// dagger-hilt
79+
implementation 'com.google.dagger:hilt-android:2.41'
80+
kapt 'com.google.dagger:hilt-compiler:2.41'
81+
82+
// google-maps
83+
implementation "com.google.maps.android:maps-compose:1.0.0"
84+
implementation "com.google.android.gms:play-services-maps:18.0.2"
85+
86+
// retrofit
4587
implementation "com.squareup.retrofit2:retrofit:2.9.0"
4688
implementation "com.squareup.retrofit2:converter-moshi:2.9.0"
89+
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
90+
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.6'
91+
92+
// splash api
93+
implementation "androidx.core:core-splashscreen:1.0.0-beta02"
94+
95+
// timber - log library
96+
implementation 'com.jakewharton.timber:timber:5.0.1'
97+
98+
// test libraries
99+
androidTestImplementation "androidx.test:runner:1.4.0"
100+
androidTestImplementation "androidx.test.ext:junit:1.1.3"
101+
androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
102+
103+
testImplementation "junit:junit:4.13.2"
104+
105+
// google truth assert operations
106+
testImplementation "com.google.truth:truth:1.1.3"
107+
108+
// android arch test rules
109+
implementation "androidx.arch.core:core-testing:2.1.0"
110+
111+
// coroutines test scope
112+
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.1"
113+
47114
}
115+
116+
kapt {
117+
correctErrorTypes = true
118+
}

app/src/main/AndroidManifest.xml

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,30 @@
22
xmlns:tools="http://schemas.android.com/tools"
33
package="com.adyen.android.assignment">
44

5+
<uses-permission android:name="android.permission.INTERNET" />
6+
57
<application
6-
android:allowBackup="false"
7-
android:icon="@mipmap/ic_launcher"
8+
android:name=".AdyenApplication"
9+
android:allowBackup="true"
10+
android:icon="@mipmap/ic_app_logo"
811
android:label="@string/app_name"
9-
android:roundIcon="@mipmap/ic_launcher_round"
12+
android:roundIcon="@mipmap/ic_app_logo_round"
1013
android:supportsRtl="true"
11-
android:theme="@style/AppTheme"
12-
tools:ignore="GoogleAppIndexingWarning" >
14+
android:theme="@style/Theme.AdyenApplication.Splash"
15+
tools:ignore="GoogleAppIndexingWarning">
16+
17+
<meta-data
18+
android:name="com.google.android.geo.API_KEY"
19+
android:value="AIzaSyD_-cwlXX7BjiwBoW4qj1IiFPjRaDtZaYI" />
1320

14-
<activity android:name=".ui.MainActivity" />
21+
<activity
22+
android:name=".ui.MainActivity"
23+
android:exported="true">
24+
<intent-filter>
25+
<action android:name="android.intent.action.MAIN" />
26+
<category android:name="android.intent.category.LAUNCHER" />
27+
</intent-filter>
28+
</activity>
1529

1630
</application>
1731

53.1 KB
Loading
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.adyen.android.assignment
2+
3+
import android.app.Application
4+
import dagger.hilt.android.HiltAndroidApp
5+
6+
@HiltAndroidApp
7+
class AdyenApplication : Application() {
8+
override fun onCreate() {
9+
super.onCreate()
10+
}
11+
}

app/src/main/java/com/adyen/android/assignment/api/model/Category.kt renamed to app/src/main/java/com/adyen/android/assignment/data/remote/model/Category.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.adyen.android.assignment.api.model
1+
package com.adyen.android.assignment.data.remote.model
22

33
data class Category(
44
val icon: Icon,

app/src/main/java/com/adyen/android/assignment/api/model/GeoCode.kt renamed to app/src/main/java/com/adyen/android/assignment/data/remote/model/GeoCode.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.adyen.android.assignment.api.model
1+
package com.adyen.android.assignment.data.remote.model
22

33
data class GeoCode(
44
val main: Main

app/src/main/java/com/adyen/android/assignment/api/model/Icon.kt renamed to app/src/main/java/com/adyen/android/assignment/data/remote/model/Icon.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.adyen.android.assignment.api.model
1+
package com.adyen.android.assignment.data.remote.model
22

33
data class Icon(
44
val prefix: String,

app/src/main/java/com/adyen/android/assignment/api/model/Location.kt renamed to app/src/main/java/com/adyen/android/assignment/data/remote/model/Location.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.adyen.android.assignment.api.model
1+
package com.adyen.android.assignment.data.remote.model
22

33
data class Location(
44
val address: String,

app/src/main/java/com/adyen/android/assignment/api/model/ResponseWrapper.kt renamed to app/src/main/java/com/adyen/android/assignment/data/remote/model/ResponseWrapper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.adyen.android.assignment.api.model
1+
package com.adyen.android.assignment.data.remote.model
22

33
data class ResponseWrapper(
44
val results: List<Result>?,

app/src/main/java/com/adyen/android/assignment/api/model/Result.kt renamed to app/src/main/java/com/adyen/android/assignment/data/remote/model/Result.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.adyen.android.assignment.api.model
1+
package com.adyen.android.assignment.data.remote.model
22

33
data class Result(
44
val categories: List<Category>,

0 commit comments

Comments
 (0)