|
diff --git a/Week1/app/build.gradle.kts b/Week1/app/build.gradle.kts
deleted file mode 100644
index cfcfc78..0000000
--- a/Week1/app/build.gradle.kts
+++ /dev/null
@@ -1,47 +0,0 @@
-plugins {
- alias(libs.plugins.android.application)
-}
-
-android {
- namespace = "com.example.week1"
- compileSdk {
- version = release(36) {
- minorApiLevel = 1
- }
- }
-
- defaultConfig {
- applicationId = "com.example.week1"
- minSdk = 24
- targetSdk = 36
- versionCode = 1
- versionName = "1.0"
-
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- }
-
- buildTypes {
- release {
- isMinifyEnabled = false
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_11
- targetCompatibility = JavaVersion.VERSION_11
- }
-}
-
-dependencies {
- implementation(libs.androidx.core.ktx)
- implementation(libs.androidx.appcompat)
- implementation(libs.material)
- implementation(libs.androidx.activity)
- implementation(libs.androidx.constraintlayout)
- testImplementation(libs.junit)
- androidTestImplementation(libs.androidx.junit)
- androidTestImplementation(libs.androidx.espresso.core)
-}
\ No newline at end of file
diff --git a/Week1/app/src/main/java/com/example/week1/MainActivity.kt b/Week1/app/src/main/java/com/example/week1/MainActivity.kt
index 865a367..149f1fe 100644
--- a/Week1/app/src/main/java/com/example/week1/MainActivity.kt
+++ b/Week1/app/src/main/java/com/example/week1/MainActivity.kt
@@ -1,68 +1,68 @@
package com.example.week1
+import android.graphics.Color
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
-import android.widget.TextView
-import android.widget.ImageView
-import android.graphics.Color
+import com.example.week1.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
+ private lateinit var binding: ActivityMainBinding
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
- setContentView(R.layout.activity_main)
- val text1 : TextView = findViewById(R.id.text1)
- val text2 : TextView = findViewById(R.id.text2)
- val text3 : TextView = findViewById(R.id.text3)
- val text4 : TextView = findViewById(R.id.text4)
- val text5 : TextView = findViewById(R.id.text5)
- val good : ImageView = findViewById(R.id.good)
- val happy : ImageView = findViewById(R.id.happy)
- val soso : ImageView = findViewById(R.id.soso)
- val bad : ImageView = findViewById(R.id.bad)
- val angry : ImageView = findViewById(R.id.angry)
-
+ binding = ActivityMainBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
+ val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
+ insets
+ }
fun resetTextColors() {
- text1.setTextColor(Color.BLACK)
- text2.setTextColor(Color.BLACK)
- text3.setTextColor(Color.BLACK)
- text4.setTextColor(Color.BLACK)
- text5.setTextColor(Color.BLACK)
+ binding.textgood.setTextColor(Color.BLACK)
+ binding.texthappy.setTextColor(Color.BLACK)
+ binding.textsoso.setTextColor(Color.BLACK)
+ binding.textbad.setTextColor(Color.BLACK)
+ binding.textangry.setTextColor(Color.BLACK)
}
- good.setOnClickListener {
+ binding.good.setOnClickListener {
resetTextColors()
- text1.setTextColor(Color.parseColor("#F9DC77"))
+ binding.textgood.setTextColor(
+ ContextCompat.getColor(this, R.color.good)
+ )
}
- happy.setOnClickListener {
+ binding.happy.setOnClickListener {
resetTextColors()
- text2.setTextColor(Color.parseColor("#AEE9FE"))
+ binding.texthappy.setTextColor(
+ ContextCompat.getColor(this, R.color.happy)
+ )
}
- soso.setOnClickListener {
+ binding.soso.setOnClickListener {
resetTextColors()
- text3.setTextColor(Color.parseColor("#94A5FE"))
+ binding.textsoso.setTextColor(
+ ContextCompat.getColor(this, R.color.soso)
+ )
}
- bad.setOnClickListener {
+ binding.bad.setOnClickListener {
resetTextColors()
- text4.setTextColor(Color.parseColor("#77C48D"))
+ binding.textbad.setTextColor(
+ ContextCompat.getColor(this, R.color.bad)
+ )
}
- angry.setOnClickListener {
+ binding.angry.setOnClickListener {
resetTextColors()
- text5.setTextColor(Color.parseColor("#D94F49"))
- }
-
- ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
- val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
- v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
- insets
+ binding.textangry.setTextColor(
+ ContextCompat.getColor(this, R.color.angry)
+ )
}
}
-
}
\ No newline at end of file
diff --git a/Week1/app/src/main/res/drawable/angry.png b/Week1/app/src/main/res/drawable/angry.png
deleted file mode 100644
index 217a46b..0000000
Binary files a/Week1/app/src/main/res/drawable/angry.png and /dev/null differ
diff --git a/Week1/app/src/main/res/drawable/arrow_back.xml b/Week1/app/src/main/res/drawable/arrow_back.xml
deleted file mode 100644
index 99f85de..0000000
--- a/Week1/app/src/main/res/drawable/arrow_back.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/Week1/app/src/main/res/drawable/bad.png b/Week1/app/src/main/res/drawable/bad.png
deleted file mode 100644
index f8aea2f..0000000
Binary files a/Week1/app/src/main/res/drawable/bad.png and /dev/null differ
diff --git a/Week1/app/src/main/res/drawable/good.png b/Week1/app/src/main/res/drawable/good.png
deleted file mode 100644
index 039a3ac..0000000
Binary files a/Week1/app/src/main/res/drawable/good.png and /dev/null differ
diff --git a/Week1/app/src/main/res/drawable/happy.png b/Week1/app/src/main/res/drawable/happy.png
deleted file mode 100644
index 90e8e66..0000000
Binary files a/Week1/app/src/main/res/drawable/happy.png and /dev/null differ
diff --git a/Week1/app/src/main/res/drawable/soso.png b/Week1/app/src/main/res/drawable/soso.png
deleted file mode 100644
index dc37241..0000000
Binary files a/Week1/app/src/main/res/drawable/soso.png and /dev/null differ
diff --git a/Week1/app/src/main/res/layout/activity_main.xml b/Week1/app/src/main/res/layout/activity_main.xml
index a8d8000..a709999 100644
--- a/Week1/app/src/main/res/layout/activity_main.xml
+++ b/Week1/app/src/main/res/layout/activity_main.xml
@@ -15,14 +15,15 @@
android:layout_marginStart="20dp"
android:src="@drawable/arrow_back"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"/>
+ app:layout_constraintTop_toTopOf="parent"
+ android:contentDescription="@string/my_image_description"/>
+ app:layout_constraintTop_toBottomOf="@+id/detail"
+ android:contentDescription="@string/my_image_description"/>
+ app:layout_constraintTop_toBottomOf="@+id/textgood"
+ android:contentDescription="@string/my_image_description"/>
+ app:layout_constraintTop_toBottomOf="@+id/texthappy"
+ android:contentDescription="@string/my_image_description"/>
+ app:layout_constraintTop_toBottomOf="@+id/textsoso"
+ android:contentDescription="@string/my_image_description"/>
+ app:layout_constraintTop_toBottomOf="@+id/textbad"
+ android:contentDescription="@string/my_image_description"/>
-
-
-
\ No newline at end of file
diff --git a/Week1/app/src/main/res/values/colors.xml b/Week1/app/src/main/res/values/colors.xml
deleted file mode 100644
index c8524cd..0000000
--- a/Week1/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- #FF000000
- #FFFFFFFF
-
\ No newline at end of file
diff --git a/Week1/app/src/main/res/values/strings.xml b/Week1/app/src/main/res/values/strings.xml
index ade1634..ceda6df 100644
--- a/Week1/app/src/main/res/values/strings.xml
+++ b/Week1/app/src/main/res/values/strings.xml
@@ -1,3 +1,12 @@
Week1
+ 오늘 하루는 어땠나요?
+ 감정우표를 선택해주세요
+ 선택한 감정우표를 기반으로 맞춤형 질문이 배달됩니다
+ 더없이 행복한 하루였어요
+ 들뜨고 흥분돼요
+ 평범한 하루였어요
+ 생각이 많아지고 불안해요
+ 부글부글 화가 나요
+ .
\ No newline at end of file
diff --git a/Week1/app/src/main/res/values/themes.xml b/Week1/app/src/main/res/values/themes.xml
deleted file mode 100644
index fb78203..0000000
--- a/Week1/app/src/main/res/values/themes.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Week1/gradle/libs.versions.toml b/Week1/gradle/libs.versions.toml
deleted file mode 100644
index 5dba66a..0000000
--- a/Week1/gradle/libs.versions.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[versions]
-agp = "9.1.0"
-coreKtx = "1.18.0"
-junit = "4.13.2"
-junitVersion = "1.3.0"
-espressoCore = "3.7.0"
-appcompat = "1.7.1"
-material = "1.13.0"
-activity = "1.13.0"
-constraintlayout = "2.2.1"
-
-[libraries]
-androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
-junit = { group = "junit", name = "junit", version.ref = "junit" }
-androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
-androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
-androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
-androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
-androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
-
-[plugins]
-android-application = { id = "com.android.application", version.ref = "agp" }
-
diff --git a/Week1/.gitignore b/Week7/.gitignore
similarity index 100%
rename from Week1/.gitignore
rename to Week7/.gitignore
diff --git a/Week1/app/.gitignore b/Week7/app/.gitignore
similarity index 100%
rename from Week1/app/.gitignore
rename to Week7/app/.gitignore
diff --git a/Week7/app/build.gradle.kts b/Week7/app/build.gradle.kts
new file mode 100644
index 0000000..5a8bc96
--- /dev/null
+++ b/Week7/app/build.gradle.kts
@@ -0,0 +1,63 @@
+plugins {
+ alias(libs.plugins.android.application)
+ alias(libs.plugins.kotlin.compose)
+ alias(libs.plugins.kotlin.serialization)
+}
+
+android {
+ namespace = "com.example.week7"
+ compileSdk {
+ version = release(36) {
+ minorApiLevel = 1
+ }
+ }
+
+ defaultConfig {
+ applicationId = "com.example.week7"
+ minSdk = 24
+ targetSdk = 36
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+ buildFeatures {
+ compose = true
+ }
+}
+
+dependencies {
+ implementation(libs.androidx.core.ktx)
+ implementation(libs.androidx.lifecycle.runtime.ktx)
+ implementation(libs.androidx.activity.compose)
+ implementation(platform(libs.androidx.compose.bom))
+ implementation(libs.androidx.compose.ui)
+ implementation(libs.androidx.compose.ui.graphics)
+ implementation(libs.androidx.compose.ui.tooling.preview)
+ implementation(libs.androidx.compose.material3)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.androidx.junit)
+ androidTestImplementation(libs.androidx.espresso.core)
+ androidTestImplementation(platform(libs.androidx.compose.bom))
+ androidTestImplementation(libs.androidx.compose.ui.test.junit4)
+ debugImplementation(libs.androidx.compose.ui.tooling)
+ debugImplementation(libs.androidx.compose.ui.test.manifest)
+
+ implementation(libs.androidx.navigation.compose)
+ implementation(libs.kotlinx.serialization.json)
+ implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0")
+}
\ No newline at end of file
diff --git a/Week1/app/proguard-rules.pro b/Week7/app/proguard-rules.pro
similarity index 100%
rename from Week1/app/proguard-rules.pro
rename to Week7/app/proguard-rules.pro
diff --git a/Week1/app/src/androidTest/java/com/example/week1/ExampleInstrumentedTest.kt b/Week7/app/src/androidTest/java/com/example/week7/ExampleInstrumentedTest.kt
similarity index 86%
rename from Week1/app/src/androidTest/java/com/example/week1/ExampleInstrumentedTest.kt
rename to Week7/app/src/androidTest/java/com/example/week7/ExampleInstrumentedTest.kt
index bc55096..ae243af 100644
--- a/Week1/app/src/androidTest/java/com/example/week1/ExampleInstrumentedTest.kt
+++ b/Week7/app/src/androidTest/java/com/example/week7/ExampleInstrumentedTest.kt
@@ -1,4 +1,4 @@
-package com.example.week1
+package com.example.week7
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- assertEquals("com.example.week1", appContext.packageName)
+ assertEquals("com.example.week7", appContext.packageName)
}
}
\ No newline at end of file
diff --git a/Week1/app/src/main/AndroidManifest.xml b/Week7/app/src/main/AndroidManifest.xml
similarity index 82%
rename from Week1/app/src/main/AndroidManifest.xml
rename to Week7/app/src/main/AndroidManifest.xml
index c891bc8..925b9c1 100644
--- a/Week1/app/src/main/AndroidManifest.xml
+++ b/Week7/app/src/main/AndroidManifest.xml
@@ -10,10 +10,12 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
- android:theme="@style/Theme.Week1">
+ android:theme="@style/Theme.Week7">
+ android:exported="true"
+ android:label="@string/app_name"
+ android:theme="@style/Theme.Week7">
diff --git a/Week7/app/src/main/java/com/example/week7/MainActivity.kt b/Week7/app/src/main/java/com/example/week7/MainActivity.kt
new file mode 100644
index 0000000..bf09a3d
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/MainActivity.kt
@@ -0,0 +1,20 @@
+package com.example.week7
+
+import android.os.Bundle
+import androidx.activity.ComponentActivity
+import androidx.activity.compose.setContent
+import androidx.activity.enableEdgeToEdge
+import androidx.compose.material3.MaterialTheme
+import com.example.week7.ui.MainScreen
+
+class MainActivity : ComponentActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContent {
+ MaterialTheme {
+ MainScreen()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/navigation/NavigationItem.kt b/Week7/app/src/main/java/com/example/week7/navigation/NavigationItem.kt
new file mode 100644
index 0000000..d58b220
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/navigation/NavigationItem.kt
@@ -0,0 +1,7 @@
+package com.example.week7.navigation
+
+data class NavigationItem(
+ val title: String,
+ val route: Any,
+ val iconRes: Int
+)
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/navigation/Route.kt b/Week7/app/src/main/java/com/example/week7/navigation/Route.kt
new file mode 100644
index 0000000..fde7358
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/navigation/Route.kt
@@ -0,0 +1,16 @@
+package com.example.week7.navigation
+
+import kotlinx.serialization.Serializable
+
+@Serializable
+sealed interface Route {
+ @Serializable data object Home : Route
+ @Serializable data object BuyGraph : Route {
+ @Serializable data object All : Route
+ @Serializable data object Tops : Route
+ @Serializable data object Shoes : Route
+ }
+ @Serializable data object Wishlist : Route
+ @Serializable data object ShoppingCart : Route
+ @Serializable data object Profile : Route
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/MainScreen.kt b/Week7/app/src/main/java/com/example/week7/ui/MainScreen.kt
new file mode 100644
index 0000000..8d493bf
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/MainScreen.kt
@@ -0,0 +1,103 @@
+package com.example.week7.ui
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.*
+import androidx.compose.material3.*
+import androidx.compose.runtime.*
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.unit.dp
+import androidx.navigation.NavDestination.Companion.hasRoute
+import androidx.navigation.NavDestination.Companion.hierarchy
+import androidx.navigation.NavGraph.Companion.findStartDestination
+import androidx.navigation.compose.*
+import com.example.week7.R
+import com.example.week7.navigation.Route
+import com.example.week7.navigation.NavigationItem
+import com.example.week7.ui.screen.*
+
+@Composable
+fun MainScreen() {
+ val navController = rememberNavController()
+ val navBackStackEntry by navController.currentBackStackEntryAsState()
+ val currentDestination = navBackStackEntry?.destination
+
+ var selectedTabIndex by remember { mutableIntStateOf(0) }
+
+ val navItems = listOf(
+ NavigationItem("Home", Route.Home, R.drawable.ic_home),
+ NavigationItem("Buy", Route.BuyGraph, R.drawable.ic_buy),
+ NavigationItem("Wish", Route.Wishlist, R.drawable.ic_wishlist),
+ NavigationItem("Cart", Route.ShoppingCart, R.drawable.ic_shoppingcart),
+ NavigationItem("Profile", Route.Profile, R.drawable.ic_profile)
+ )
+
+ Scaffold(
+ containerColor = Color.White,
+ bottomBar = {
+ NavigationBar(containerColor = Color.White) {
+ navItems.forEach { item ->
+ val isSelected = currentDestination?.hierarchy?.any {
+ it.hasRoute(item.route::class)
+ } == true
+
+ NavigationBarItem(
+ icon = {
+ Icon(
+ painter = painterResource(id = item.iconRes),
+ contentDescription = item.title,
+ modifier = Modifier.size(24.dp),
+ tint = if (isSelected) Color.Black else Color.Gray
+ )
+ },
+ label = { Text(item.title) },
+ selected = isSelected,
+ onClick = {
+ navController.navigate(item.route) {
+ popUpTo(navController.graph.findStartDestination().id) {
+ saveState = true
+ }
+ launchSingleTop = true
+ restoreState = true
+ }
+ }
+ )
+ }
+ }
+ }
+ ) { innerPadding ->
+ NavHost(
+ navController = navController,
+ startDestination = Route.Home,
+ modifier = Modifier
+ .padding(innerPadding)
+ .background(Color.White)
+ ) {
+ composable { HomeScreen() }
+
+ navigation(startDestination = Route.BuyGraph.All) {
+ composable {
+ BuyScreen(
+ selectedTabIndex = selectedTabIndex,
+ onTabSelected = { selectedTabIndex = it }
+ )
+ }
+ }
+
+ composable { WishlistScreen() }
+
+ composable {
+ ShoppingCartScreen(
+ onNavigateToBuy = {
+ navController.navigate(Route.BuyGraph) {
+ popUpTo { inclusive = true }
+ }
+ }
+ )
+ }
+
+ composable { ProfileScreen() }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/screen/BuyScreen.kt b/Week7/app/src/main/java/com/example/week7/ui/screen/BuyScreen.kt
new file mode 100644
index 0000000..aa778ca
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/screen/BuyScreen.kt
@@ -0,0 +1,81 @@
+package com.example.week7.ui.screen
+
+import androidx.compose.foundation.layout.*
+import androidx.compose.material3.*
+import androidx.compose.runtime.*
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.dp
+import com.example.week7.R
+import androidx.compose.material3.TabRowDefaults.tabIndicatorOffset
+
+@Composable
+fun BuyScreen(
+ selectedTabIndex: Int,
+ onTabSelected: (Int) -> Unit
+) { val tabs = listOf(
+ stringResource(R.string.all),
+ stringResource(R.string.Shirts),
+ stringResource(R.string.Shoes)
+ )
+
+ Column(modifier = Modifier.fillMaxSize()) {
+ TabRow(
+ selectedTabIndex = selectedTabIndex,
+ containerColor = Color.White,
+ contentColor = Color.Black,
+ indicator = { tabPositions ->
+ TabRowDefaults.SecondaryIndicator(
+ modifier = Modifier.tabIndicatorOffset(tabPositions[selectedTabIndex]),
+ height = 3.dp,
+ color = Color.Black
+ )
+ },
+ divider = {}
+ ) {
+ tabs.forEachIndexed { index, title ->
+ Tab(
+ selected = selectedTabIndex == index,
+ onClick = { onTabSelected(index) },
+ text = {
+ Text(
+ text = title,
+ fontWeight = if (selectedTabIndex == index) FontWeight.Bold else FontWeight.Normal,
+ color = if (selectedTabIndex == index) Color.Black else Color.Gray
+ )
+ }
+ )
+ }
+ }
+
+ Box(modifier = Modifier.fillMaxSize()) {
+ when (selectedTabIndex) {
+ 0 -> BuyAllScreen()
+ 1 -> BuyTopsScreen()
+ 2 -> BuyShoesScreen()
+ }
+ }
+ }
+}
+
+@Composable
+fun BuyAllScreen() {
+ Box(modifier = Modifier.fillMaxSize())
+}
+
+@Composable
+fun BuyTopsScreen() {
+ Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
+ Text(text = "탭2")
+ }
+}
+
+@Composable
+fun BuyShoesScreen() {
+ Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
+ Text(text = "탭3")
+ }
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/screen/HomeScreen.kt b/Week7/app/src/main/java/com/example/week7/ui/screen/HomeScreen.kt
new file mode 100644
index 0000000..0fb0891
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/screen/HomeScreen.kt
@@ -0,0 +1,44 @@
+package com.example.week7.ui.screen
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.*
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.example.week7.R
+import androidx.compose.ui.layout.ContentScale
+
+@Composable
+fun HomeScreen() {
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .padding(16.dp)
+ ) {
+ Text(
+ text = stringResource(id = R.string.Title),
+ fontSize = 40.sp,
+ fontWeight = FontWeight.Bold,
+ modifier = Modifier.padding(top = 24.dp, start = 20.dp)
+ )
+ Text(
+ text = stringResource(id = R.string.date),
+ fontSize = 20.sp,
+ modifier = Modifier.padding(start = 20.dp, bottom = 30.dp)
+ )
+ Image(
+ painter = painterResource(id = R.drawable.img_home),
+ contentDescription = null,
+ modifier = Modifier
+ .size(320.dp)
+ .align(Alignment.CenterHorizontally),
+ contentScale = ContentScale.Crop
+ )
+ }
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/screen/ProfileScreen.kt b/Week7/app/src/main/java/com/example/week7/ui/screen/ProfileScreen.kt
new file mode 100644
index 0000000..66d56f5
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/screen/ProfileScreen.kt
@@ -0,0 +1,11 @@
+package com.example.week7.ui.screen
+
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+
+@Composable
+fun ProfileScreen() {
+ Box(modifier = Modifier.fillMaxSize())
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/screen/ShoppingCartScreen.kt b/Week7/app/src/main/java/com/example/week7/ui/screen/ShoppingCartScreen.kt
new file mode 100644
index 0000000..6477292
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/screen/ShoppingCartScreen.kt
@@ -0,0 +1,69 @@
+package com.example.week7.ui.screen
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.*
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import androidx.navigation.NavController
+import com.example.week7.R
+import com.example.week7.navigation.Route
+
+@Composable
+fun ShoppingCartScreen(onNavigateToBuy: () -> Unit) {
+ Box(
+ modifier = Modifier
+ .fillMaxSize()
+ .padding(16.dp)
+ ) {
+ Column(
+ modifier = Modifier.fillMaxSize(),
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ Image(
+ painter = painterResource(id = R.drawable.ic_bag_circle),
+ contentDescription = null,
+ modifier = Modifier
+ .padding(top = 180.dp)
+ .size(40.dp),
+ contentScale = ContentScale.Crop
+ )
+ Text(
+ text = stringResource(id = R.string.cart_empty),
+ fontSize = 15.sp,
+ modifier = Modifier.padding(top = 20.dp)
+ )
+ Text(
+ text = stringResource(id = R.string.cart_guide),
+ fontSize = 15.sp
+ )
+ }
+
+ Button(
+ onClick = {
+ onNavigateToBuy()
+ },
+ modifier = Modifier
+ .fillMaxWidth()
+ .align(Alignment.BottomCenter)
+ .padding(bottom = 16.dp),
+ colors = ButtonDefaults.buttonColors(containerColor = Color.Black),
+ shape = androidx.compose.foundation.shape.RoundedCornerShape(8.dp)
+ ) {
+ Text(
+ text = stringResource(id = R.string.buy_button),
+ fontSize = 20.sp,
+ color = Color.White
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/screen/WishlistScreen.kt b/Week7/app/src/main/java/com/example/week7/ui/screen/WishlistScreen.kt
new file mode 100644
index 0000000..3e2dc58
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/screen/WishlistScreen.kt
@@ -0,0 +1,26 @@
+package com.example.week7.ui.screen
+
+import androidx.compose.foundation.layout.*
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.example.week7.R
+
+@Composable
+fun WishlistScreen() {
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .padding(top = 24.dp, start = 20.dp)
+ ) {
+ Text(
+ text = stringResource(id = R.string.WishList),
+ fontSize = 40.sp,
+ fontWeight = FontWeight.Bold
+ )
+ }
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/theme/Color.kt b/Week7/app/src/main/java/com/example/week7/ui/theme/Color.kt
new file mode 100644
index 0000000..1c90c81
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/theme/Color.kt
@@ -0,0 +1,11 @@
+package com.example.week7.ui.theme
+
+import androidx.compose.ui.graphics.Color
+
+val Purple80 = Color(0xFFD0BCFF)
+val PurpleGrey80 = Color(0xFFCCC2DC)
+val Pink80 = Color(0xFFEFB8C8)
+
+val Purple40 = Color(0xFF6650a4)
+val PurpleGrey40 = Color(0xFF625b71)
+val Pink40 = Color(0xFF7D5260)
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/theme/Theme.kt b/Week7/app/src/main/java/com/example/week7/ui/theme/Theme.kt
new file mode 100644
index 0000000..c284fcb
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/theme/Theme.kt
@@ -0,0 +1,58 @@
+package com.example.week7.ui.theme
+
+import android.app.Activity
+import android.os.Build
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.darkColorScheme
+import androidx.compose.material3.dynamicDarkColorScheme
+import androidx.compose.material3.dynamicLightColorScheme
+import androidx.compose.material3.lightColorScheme
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.LocalContext
+
+private val DarkColorScheme = darkColorScheme(
+ primary = Purple80,
+ secondary = PurpleGrey80,
+ tertiary = Pink80
+)
+
+private val LightColorScheme = lightColorScheme(
+ primary = Purple40,
+ secondary = PurpleGrey40,
+ tertiary = Pink40
+
+ /* Other default colors to override
+ background = Color(0xFFFFFBFE),
+ surface = Color(0xFFFFFBFE),
+ onPrimary = Color.White,
+ onSecondary = Color.White,
+ onTertiary = Color.White,
+ onBackground = Color(0xFF1C1B1F),
+ onSurface = Color(0xFF1C1B1F),
+ */
+)
+
+@Composable
+fun Week7Theme(
+ darkTheme: Boolean = isSystemInDarkTheme(),
+ // Dynamic color is available on Android 12+
+ dynamicColor: Boolean = true,
+ content: @Composable () -> Unit
+) {
+ val colorScheme = when {
+ dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
+ val context = LocalContext.current
+ if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
+ }
+
+ darkTheme -> DarkColorScheme
+ else -> LightColorScheme
+ }
+
+ MaterialTheme(
+ colorScheme = colorScheme,
+ typography = Typography,
+ content = content
+ )
+}
\ No newline at end of file
diff --git a/Week7/app/src/main/java/com/example/week7/ui/theme/Type.kt b/Week7/app/src/main/java/com/example/week7/ui/theme/Type.kt
new file mode 100644
index 0000000..f8b10c9
--- /dev/null
+++ b/Week7/app/src/main/java/com/example/week7/ui/theme/Type.kt
@@ -0,0 +1,34 @@
+package com.example.week7.ui.theme
+
+import androidx.compose.material3.Typography
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.sp
+
+// Set of Material typography styles to start with
+val Typography = Typography(
+ bodyLarge = TextStyle(
+ fontFamily = FontFamily.Default,
+ fontWeight = FontWeight.Normal,
+ fontSize = 16.sp,
+ lineHeight = 24.sp,
+ letterSpacing = 0.5.sp
+ )
+ /* Other default text styles to override
+ titleLarge = TextStyle(
+ fontFamily = FontFamily.Default,
+ fontWeight = FontWeight.Normal,
+ fontSize = 22.sp,
+ lineHeight = 28.sp,
+ letterSpacing = 0.sp
+ ),
+ labelSmall = TextStyle(
+ fontFamily = FontFamily.Default,
+ fontWeight = FontWeight.Medium,
+ fontSize = 11.sp,
+ lineHeight = 16.sp,
+ letterSpacing = 0.5.sp
+ )
+ */
+)
\ No newline at end of file
diff --git a/Week1/app/src/main/res/drawable/ic_launcher_foreground.xml b/Week7/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from Week1/app/src/main/res/drawable/ic_launcher_foreground.xml
rename to Week7/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/Week7/app/src/main/res/drawable/ic_bag_circle.xml b/Week7/app/src/main/res/drawable/ic_bag_circle.xml
new file mode 100644
index 0000000..1af2ce6
--- /dev/null
+++ b/Week7/app/src/main/res/drawable/ic_bag_circle.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
diff --git a/Week7/app/src/main/res/drawable/ic_buy.xml b/Week7/app/src/main/res/drawable/ic_buy.xml
new file mode 100644
index 0000000..2d96131
--- /dev/null
+++ b/Week7/app/src/main/res/drawable/ic_buy.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
diff --git a/Week7/app/src/main/res/drawable/ic_home.xml b/Week7/app/src/main/res/drawable/ic_home.xml
new file mode 100644
index 0000000..d9089f3
--- /dev/null
+++ b/Week7/app/src/main/res/drawable/ic_home.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/Week1/app/src/main/res/drawable/ic_launcher_background.xml b/Week7/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from Week1/app/src/main/res/drawable/ic_launcher_background.xml
rename to Week7/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/Week7/app/src/main/res/drawable/ic_profile.xml b/Week7/app/src/main/res/drawable/ic_profile.xml
new file mode 100644
index 0000000..1fc97b8
--- /dev/null
+++ b/Week7/app/src/main/res/drawable/ic_profile.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/Week7/app/src/main/res/drawable/ic_shoppingcart.xml b/Week7/app/src/main/res/drawable/ic_shoppingcart.xml
new file mode 100644
index 0000000..3b6e816
--- /dev/null
+++ b/Week7/app/src/main/res/drawable/ic_shoppingcart.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/Week7/app/src/main/res/drawable/ic_wishlist.xml b/Week7/app/src/main/res/drawable/ic_wishlist.xml
new file mode 100644
index 0000000..7fdefea
--- /dev/null
+++ b/Week7/app/src/main/res/drawable/ic_wishlist.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/Week7/app/src/main/res/drawable/img_home.png b/Week7/app/src/main/res/drawable/img_home.png
new file mode 100644
index 0000000..f42aa9d
Binary files /dev/null and b/Week7/app/src/main/res/drawable/img_home.png differ
diff --git a/Week1/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Week7/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from Week1/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to Week7/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/Week1/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Week7/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from Week1/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to Week7/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/Week1/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Week7/app/src/main/res/mipmap-hdpi/ic_launcher.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-hdpi/ic_launcher.webp
rename to Week7/app/src/main/res/mipmap-hdpi/ic_launcher.webp
diff --git a/Week1/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Week7/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
rename to Week7/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
diff --git a/Week1/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Week7/app/src/main/res/mipmap-mdpi/ic_launcher.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-mdpi/ic_launcher.webp
rename to Week7/app/src/main/res/mipmap-mdpi/ic_launcher.webp
diff --git a/Week1/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Week7/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
rename to Week7/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
diff --git a/Week1/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Week7/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
rename to Week7/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
diff --git a/Week1/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Week7/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
rename to Week7/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
diff --git a/Week1/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Week7/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
rename to Week7/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
diff --git a/Week1/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Week7/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
rename to Week7/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
diff --git a/Week1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Week7/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
rename to Week7/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
diff --git a/Week1/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Week7/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Week1/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
rename to Week7/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
diff --git a/Week7/app/src/main/res/values/colors.xml b/Week7/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..f8c6127
--- /dev/null
+++ b/Week7/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Week7/app/src/main/res/values/strings.xml b/Week7/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..a90eae8
--- /dev/null
+++ b/Week7/app/src/main/res/values/strings.xml
@@ -0,0 +1,17 @@
+
+ Week7
+ 홈
+ 구매하기
+ 위시리스트
+ 장바구니
+ 프로필
+ Discover
+ 9월 4일 목요일
+ 전체
+ Tops & T-Shirts
+ Shoes
+ 위시리스트
+ 장바구니가 비어있습니다.
+ 제품을 추가하면 여기에 표시됩니다.
+ 주문하기
+
\ No newline at end of file
diff --git a/Week7/app/src/main/res/values/themes.xml b/Week7/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..e5a02b7
--- /dev/null
+++ b/Week7/app/src/main/res/values/themes.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Week1/app/src/main/res/xml/backup_rules.xml b/Week7/app/src/main/res/xml/backup_rules.xml
similarity index 100%
rename from Week1/app/src/main/res/xml/backup_rules.xml
rename to Week7/app/src/main/res/xml/backup_rules.xml
diff --git a/Week1/app/src/main/res/xml/data_extraction_rules.xml b/Week7/app/src/main/res/xml/data_extraction_rules.xml
similarity index 100%
rename from Week1/app/src/main/res/xml/data_extraction_rules.xml
rename to Week7/app/src/main/res/xml/data_extraction_rules.xml
diff --git a/Week1/app/src/test/java/com/example/week1/ExampleUnitTest.kt b/Week7/app/src/test/java/com/example/week7/ExampleUnitTest.kt
similarity index 92%
rename from Week1/app/src/test/java/com/example/week1/ExampleUnitTest.kt
rename to Week7/app/src/test/java/com/example/week7/ExampleUnitTest.kt
index 393e6b9..45b6c58 100644
--- a/Week1/app/src/test/java/com/example/week1/ExampleUnitTest.kt
+++ b/Week7/app/src/test/java/com/example/week7/ExampleUnitTest.kt
@@ -1,4 +1,4 @@
-package com.example.week1
+package com.example.week7
import org.junit.Test
diff --git a/Week1/build.gradle.kts b/Week7/build.gradle.kts
similarity index 60%
rename from Week1/build.gradle.kts
rename to Week7/build.gradle.kts
index 3756278..cc601ae 100644
--- a/Week1/build.gradle.kts
+++ b/Week7/build.gradle.kts
@@ -1,4 +1,6 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.android.application) apply false
+ alias(libs.plugins.kotlin.compose) apply false
+ alias(libs.plugins.kotlin.serialization) apply false
}
\ No newline at end of file
diff --git a/Week1/gradle.properties b/Week7/gradle.properties
similarity index 100%
rename from Week1/gradle.properties
rename to Week7/gradle.properties
diff --git a/Week1/gradle/gradle-daemon-jvm.properties b/Week7/gradle/gradle-daemon-jvm.properties
similarity index 100%
rename from Week1/gradle/gradle-daemon-jvm.properties
rename to Week7/gradle/gradle-daemon-jvm.properties
diff --git a/Week7/gradle/libs.versions.toml b/Week7/gradle/libs.versions.toml
new file mode 100644
index 0000000..fd45b16
--- /dev/null
+++ b/Week7/gradle/libs.versions.toml
@@ -0,0 +1,36 @@
+[versions]
+agp = "9.1.1"
+coreKtx = "1.18.0"
+junit = "4.13.2"
+junitVersion = "1.3.0"
+espressoCore = "3.7.0"
+lifecycleRuntimeKtx = "2.6.1"
+activityCompose = "1.13.0"
+kotlin = "2.2.10"
+composeBom = "2024.09.00"
+navigationCompose = "2.8.0"
+kotlinxSerializationJson = "1.7.0"
+
+[libraries]
+androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
+androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
+androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
+androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" }
+androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
+androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
+androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
+androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
+androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
+androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
+androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
+kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }
+
+[plugins]
+android-application = { id = "com.android.application", version.ref = "agp" }
+kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
+kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
+
diff --git a/Week1/gradle/wrapper/gradle-wrapper.jar b/Week7/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from Week1/gradle/wrapper/gradle-wrapper.jar
rename to Week7/gradle/wrapper/gradle-wrapper.jar
diff --git a/Week1/gradle/wrapper/gradle-wrapper.properties b/Week7/gradle/wrapper/gradle-wrapper.properties
similarity index 91%
rename from Week1/gradle/wrapper/gradle-wrapper.properties
rename to Week7/gradle/wrapper/gradle-wrapper.properties
index 24b983f..d43920e 100644
--- a/Week1/gradle/wrapper/gradle-wrapper.properties
+++ b/Week7/gradle/wrapper/gradle-wrapper.properties
@@ -1,4 +1,4 @@
-#Wed Mar 25 15:53:59 KST 2026
+#Wed May 13 01:14:16 KST 2026
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06
diff --git a/Week1/gradlew b/Week7/gradlew
similarity index 100%
rename from Week1/gradlew
rename to Week7/gradlew
diff --git a/Week1/gradlew.bat b/Week7/gradlew.bat
similarity index 100%
rename from Week1/gradlew.bat
rename to Week7/gradlew.bat
diff --git a/Week1/settings.gradle.kts b/Week7/settings.gradle.kts
similarity index 95%
rename from Week1/settings.gradle.kts
rename to Week7/settings.gradle.kts
index 1534841..770e853 100644
--- a/Week1/settings.gradle.kts
+++ b/Week7/settings.gradle.kts
@@ -22,6 +22,6 @@ dependencyResolutionManagement {
}
}
-rootProject.name = "Week1"
+rootProject.name = "Week7"
include(":app")
\ No newline at end of file
diff --git a/pull_request_template.md b/pull_request_template.md
index aad16f8..d1a8d89 100644
--- a/pull_request_template.md
+++ b/pull_request_template.md
@@ -1,5 +1,5 @@
## 📌 PR 제목
-
+
## 🔗 관련 이슈
Closes #이슈번호
|