diff --git a/README.md b/README.md new file mode 100644 index 00000000..30578ebb --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# android-github + +## 1 단계 - GitHub(모듈 분리) +### 프로그래밍 요구 사항 +- 순수 코틀린 모듈인 domain 모듈을 만든다. +- 순수 코틀린 모듈인 data 모듈을 만든다. +- data 모듈은 domain 모듈에 의존해야 한다. +- app 모듈은 domain 모듈에 의존해야 한다. + +## 2단계 - GitHub(HTTP) +###기능 요구사항 +- GitHub Repository 목록을 가져올 수 있어야 한다. +- GET, https://api.github.com/repositories +- full_name, description 필드만 + +###프로그래밍 요구사항 +- Repository 목록을 가져오는 기능은 data 모듈에 구현되어야 한다. +- data 모듈의 구현체는 모두 internal class로 선언한다. +- HTTP 요청을 통해 가져오는 구현체에 대한 테스트 코드를 작성한다. +- OkHttp MockWebServer 이용 \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 74966232..da8b0673 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,5 +1,3 @@ -@file:Suppress("UnstableApiUsage") - plugins { id("com.android.application") id("kotlin-android") @@ -10,7 +8,7 @@ android { compileSdk = Version.compileSdk defaultConfig { - applicationId = "edu.nextstep.camp.calculator" + applicationId = "camp.nextstep.edu.github" minSdk = Version.minSdk targetSdk = Version.targetSdk versionCode = 1 @@ -42,17 +40,26 @@ android { } dependencies { - api(project(":github-domain")) + implementation(project(":github-data")) + implementation(project(":github-domain")) implementation("org.jetbrains.kotlin:kotlin-stdlib:${Version.kotlin}") - implementation("androidx.core:core-ktx:1.9.0") - implementation("androidx.appcompat:appcompat:1.6.0") - implementation("com.google.android.material:material:1.7.0") + implementation("androidx.core:core-ktx:1.10.1") + implementation("androidx.appcompat:appcompat:1.6.1") + implementation("com.google.android.material:material:1.9.0") implementation("androidx.constraintlayout:constraintlayout:2.1.4") - implementation("androidx.fragment:fragment-ktx:1.5.5") + implementation("androidx.fragment:fragment-ktx:1.6.1") + implementation("com.squareup.retrofit2:retrofit:2.9.0") + implementation ("com.squareup.retrofit2:converter-gson:2.9.0") + implementation ("com.google.code.gson:gson:2.10.1") + implementation("androidx.room:room-runtime:2.5.2") + annotationProcessor("androidx.room:room-compiler:2.5.2") testImplementation("junit:junit:4.13.2") testImplementation("com.google.truth:truth:1.1.3") + testImplementation ("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4") + implementation("com.squareup.okhttp3:mockwebserver:4.11.0") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") } + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a9b73270..d5da6292 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + - + + + + - + - +