diff --git "a/.github/ISSUE_TEMPLATE/\354\230\244\354\273\264\354\231\204---\353\252\250\353\215\230-\354\225\210\353\223\234\353\241\234\354\235\264\353\223\234---jetpack-compose-\354\236\205\353\254\270-\355\205\234\355\224\214\353\246\277.md" "b/.github/ISSUE_TEMPLATE/\354\230\244\354\273\264\354\231\204---\353\252\250\353\215\230-\354\225\210\353\223\234\353\241\234\354\235\264\353\223\234---jetpack-compose-\354\236\205\353\254\270-\355\205\234\355\224\214\353\246\277.md"
deleted file mode 100644
index 92393a9..0000000
--- "a/.github/ISSUE_TEMPLATE/\354\230\244\354\273\264\354\231\204---\353\252\250\353\215\230-\354\225\210\353\223\234\353\241\234\354\235\264\353\223\234---jetpack-compose-\354\236\205\353\254\270-\355\205\234\355\224\214\353\246\277.md"
+++ /dev/null
@@ -1,21 +0,0 @@
----
-name: '오컴완 : 모던 안드로이드 - Jetpack Compose 입문 템플릿'
-about: 오컴완 [모던 안드로이드 - Jetpack Compose 입문] 스터디용 이슈 템플릿
-title: "[WEEK0] Title"
-labels: LECTURE ▶️
-assignees: b1urrrr
-
----
-
-```
-N주차 학습 기간 : ~ 00.00.00. (요일)
-```
-# TO-DO LIST
-### 섹션 N :
-- [ ] Todo1
-- [ ] Todo2
-- [ ] Todo3
-### 섹션 N :
-- [ ] Todo1
-- [ ] Todo2
-- [ ] Todo3
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 4e47698..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,20 +0,0 @@
-- #issue
-## *✅ Completed Tasks*
-### subtitle
-- [ ] todo1
- - [ ] todo 1-1 [🔗]()
- - [ ] todo 1-2 [🔗]()
-- [ ] todo 2 [🔗]()
-- [ ] todo 3 [🔗]()
-
-
-## *📸 Screenshot*
-| task1 | task2 | task3 |
-| :---: | :---: | :---: |
-|
|
|
|
-
-
-## *📢 To Reviewers*
-- pr point1
-- pr point2
-- pr point3
diff --git a/README.md b/README.md
deleted file mode 100644
index c6e155a..0000000
--- a/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# 오컴완 스터디
-```
-오늘
-컴포즈
-완료
-```
-
-
-## 📍 STUDY PROGRESS
-### [모던 안드로이드 - Jetpack Compose 입문](https://www.inflearn.com/course/%EB%AA%A8%EB%8D%98-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%BB%B4%ED%8F%AC%EC%A6%88#curriculum)
-| Week | Chapter | Title | Date | Link |
-| :--: | :-----: | :---: | :--: | :--: |
-
-
-
-## 📍 COMMIT CONVENTION
-- ✨ **[FEAT]** : 새로운 기능 구현
-- ✅ **[MOD]** : 코드 수정 및 내부 파일 수정
-- ➕ **[ADD]** : 부수적인 코드 추가 및 라이브러리 추가, 새로운 파일 생성
-- 🎀 **[CHORE]** : 버전 코드 수정, 패키지 구조 변경, 타입 및 변수명 변경 등의 작은 작업
-- ⚰️ **[DEL]** : 쓸모없는 코드나 파일 삭제
-- 💄 **[UI]** : UI 작업
-- 🔨 **[FIX]** : 버그 및 오류 해결
-- 🚑️ **[HOTFIX]** : issue나 QA에서 문의된 급한 버그 및 오류 해결
-- 🔀 **[MERGE]** : 다른 브랜치와의 MERGE
-- 🚚 **[MOVE]** : 프로젝트 내 파일이나 코드의 이동
-- ⏪️ **[RENAME]** : 파일 이름 변경
-- ♻️ **[REFACTOR]** : 전면 수정
-- 📝 **[DOCS]** : README나 WIKI 등의 문서 개정
diff --git a/modern-android-compose/section00/.gitignore b/modern-android-compose/section00/.gitignore
deleted file mode 100644
index 876d12e..0000000
--- a/modern-android-compose/section00/.gitignore
+++ /dev/null
@@ -1,277 +0,0 @@
-# Created by https://www.toptal.com/developers/gitignore/api/android,androidstudio,kotlin,java,macos,windows
-# Edit at https://www.toptal.com/developers/gitignore?templates=android,androidstudio,kotlin,java,macos,windows
-
-### Android ###
-# Gradle files
-.gradle/
-build/
-
-# Local configuration file (sdk path, etc)
-local.properties
-
-# Log/OS Files
-*.log
-
-# Android Studio generated files and folders
-captures/
-.externalNativeBuild/
-.cxx/
-*.apk
-output.json
-
-# Android Studio
-/*/build/
-/*/local.properties
-/*/out
-/*/*/build
-/*/*/production
-*.ipr
-*~
-*.swp
-
-# IntelliJ
-*.iml
-.idea/
-misc.xml
-deploymentTargetDropDown.xml
-render.experimental.xml
-.gradle
-/local.properties
-/.idea/workspace.xml
-/.idea/libraries
-.DS_Store
-/build
-/captures
-.externalNativeBuild
-
-# Keystore files
-*.jks
-*.keystore
-
-# Google Services (e.g. APIs or Firebase)
-google-services.json
-
-# Android Profiling
-*.hprof
-
-### Android Patch ###
-gen-external-apklibs
-
-# Replacement of .externalNativeBuild directories introduced
-# with Android Studio 3.5.
-
-### Java ###
-# Compiled class file
-*.class
-
-# Log file
-
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.nar
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-replay_pid*
-
-### Kotlin ###
-# Compiled class file
-
-# Log file
-
-# BlueJ files
-
-# Mobile Tools for Java (J2ME)
-
-# Package Files #
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-
-### macOS ###
-# General
-.DS_Store
-.AppleDouble
-.LSOverride
-
-# Icon must end with two \r
-Icon
-
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-.com.apple.timemachine.donotpresent
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
-
-### macOS Patch ###
-# iCloud generated files
-*.icloud
-
-### Windows ###
-# Windows thumbnail cache files
-Thumbs.db
-Thumbs.db:encryptable
-ehthumbs.db
-ehthumbs_vista.db
-
-# Dump file
-*.stackdump
-
-# Folder config file
-[Dd]esktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msix
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
-### AndroidStudio ###
-# Covers files to be ignored for android development using Android Studio.
-
-# Built application files
-*.ap_
-*.aab
-
-# Files for the ART/Dalvik VM
-*.dex
-
-# Java class files
-
-# Generated files
-bin/
-gen/
-out/
-
-# Gradle files
-.gradle
-
-# Signing files
-.signing/
-
-# Local configuration file (sdk path, etc)
-
-# Proguard folder generated by Eclipse
-proguard/
-
-# Log Files
-
-# Android Studio
-/*/build/
-/*/local.properties
-/*/out
-/*/*/build
-/*/*/production
-.navigation/
-*.ipr
-*~
-*.swp
-
-# Keystore files
-
-# Google Services (e.g. APIs or Firebase)
-# google-services.json
-
-# Android Patch
-
-# External native build folder generated in Android Studio 2.2 and later
-.externalNativeBuild
-
-# NDK
-obj/
-
-# IntelliJ IDEA
-*.iws
-/out/
-
-# User-specific configurations
-.idea/caches/
-.idea/libraries/
-.idea/shelf/
-.idea/workspace.xml
-.idea/tasks.xml
-.idea/.name
-.idea/compiler.xml
-.idea/copyright/profiles_settings.xml
-.idea/encodings.xml
-.idea/misc.xml
-.idea/modules.xml
-.idea/scopes/scope_settings.xml
-.idea/dictionaries
-.idea/vcs.xml
-.idea/jsLibraryMappings.xml
-.idea/datasources.xml
-.idea/dataSources.ids
-.idea/sqlDataSources.xml
-.idea/dynamic.xml
-.idea/uiDesigner.xml
-.idea/assetWizardSettings.xml
-.idea/gradle.xml
-.idea/jarRepositories.xml
-.idea/navEditor.xml
-
-# Legacy Eclipse project files
-.classpath
-.project
-.cproject
-.settings/
-
-# Mobile Tools for Java (J2ME)
-
-# Package Files #
-
-# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
-
-## Plugin-specific files:
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Mongo Explorer plugin
-.idea/mongoSettings.xml
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
-
-### AndroidStudio Patch ###
-
-!/gradle/wrapper/gradle-wrapper.jar
-
-# End of https://www.toptal.com/developers/gitignore/api/android,androidstudio,kotlin,java,macos,windows
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/.gitignore b/modern-android-compose/section00/app/.gitignore
deleted file mode 100644
index 42afabf..0000000
--- a/modern-android-compose/section00/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/build.gradle.kts b/modern-android-compose/section00/app/build.gradle.kts
deleted file mode 100644
index b19e4cb..0000000
--- a/modern-android-compose/section00/app/build.gradle.kts
+++ /dev/null
@@ -1,48 +0,0 @@
-plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
-}
-
-android {
- namespace = "com.ocomwan.kotlinbasics"
- compileSdk = 33
-
- defaultConfig {
- applicationId = "com.ocomwan.kotlinbasics"
- minSdk = 28
- targetSdk = 33
- 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_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
- }
- kotlinOptions {
- jvmTarget = "1.8"
- }
-}
-
-dependencies {
-
- implementation("androidx.core:core-ktx:1.9.0")
- implementation("androidx.appcompat:appcompat:1.6.1")
- implementation("com.google.android.material:material:1.8.0")
- implementation("androidx.constraintlayout:constraintlayout:2.1.4")
- testImplementation("junit:junit:4.13.2")
- androidTestImplementation("androidx.test.ext:junit:1.1.5")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
- implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
-}
diff --git a/modern-android-compose/section00/app/proguard-rules.pro b/modern-android-compose/section00/app/proguard-rules.pro
deleted file mode 100644
index 481bb43..0000000
--- a/modern-android-compose/section00/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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/modern-android-compose/section00/app/src/androidTest/java/com/ocomwan/kotlinbasics/ExampleInstrumentedTest.kt b/modern-android-compose/section00/app/src/androidTest/java/com/ocomwan/kotlinbasics/ExampleInstrumentedTest.kt
deleted file mode 100644
index da85f38..0000000
--- a/modern-android-compose/section00/app/src/androidTest/java/com/ocomwan/kotlinbasics/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.ocomwan.kotlinbasics
-
-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("com.ocomwan.kotlinbasics", appContext.packageName)
- }
-}
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/AndroidManifest.xml b/modern-android-compose/section00/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 23e9b08..0000000
--- a/modern-android-compose/section00/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/java/com/ocomwan/kotlinbasics/Main.kt b/modern-android-compose/section00/app/src/main/java/com/ocomwan/kotlinbasics/Main.kt
deleted file mode 100644
index 49eae5a..0000000
--- a/modern-android-compose/section00/app/src/main/java/com/ocomwan/kotlinbasics/Main.kt
+++ /dev/null
@@ -1,316 +0,0 @@
-package com.ocomwan.kotlinbasics
-
-import java.util.Scanner
-import kotlin.math.max
-import kotlin.math.min
-import kotlin.random.Random
-
-const val num = 20 // Compile Time Constant
-
-fun main() {
- practiceCallbackFunction()
-}
-
-private fun practicePrint() {
- println("Hello World")
- print("Hello World")
-}
-
-private fun practiceVariablesAndConstants() {
- var i = 10
- var name = "채연"
- var point = 3.3
-
- i = 20
-
- val num = 20
- // num = 30 (X)
-}
-
-private fun practiceTypeConversion() {
- var i = 10
- var l = 20L
-
- l = i.toLong()
- i = l.toInt()
-
- var name = ""
- name = i.toString()
-
- val name2 = "10"
- i = name2.toInt()
-}
-
-private fun practiceString() {
- var name = "hello"
- print(name.uppercase())
- print(name.lowercase())
- print(name[0])
-
- name = "채연"
- print("제 이름은 ${name}입니다.")
- print("제 이름은 ${name + 10}입니다.")
-}
-
-private fun practiceMaxAndMin() {
- val i = 10
- val j = 20
-
- print(max(i, j))
- print(min(i, j))
-}
-
-private fun practiceRandom() {
- var randomNumber = Random.nextInt()
- print(randomNumber)
-
- randomNumber = Random.nextInt(0, 100) // 0 ~ 99
- print(randomNumber)
-
- val randomDouble = Random.nextDouble(0.0, 1.0) // 0.0 ~ 0.9999...
- print(randomDouble)
-}
-
-private fun practiceKeyboardInput() {
- val reader = Scanner(System.`in`)
-
- val numberInput = reader.nextInt()
- println(numberInput)
- val stringInput = reader.next()
- println(stringInput)
-}
-
-private fun practiceConditionalExpression() {
- val i = 5
- if (i > 10) {
- print("10보다 크다")
- } else if (i > 5) {
- print("5보다 크다")
- } else {
- print("")
- }
-
- val result = when {
- i > 10 -> "10보다 크다"
- i > 5 -> "5보다 크다"
- else -> "!!!"
- }
- println(result)
-
- val booleanResult = if (i > 10) true else false
- println(booleanResult)
-}
-
-private fun practiceLoop() {
- val items = listOf(1, 2, 3, 4, 5)
-
- for (item in items) {
- print(item)
- }
-
- items.forEach { item ->
- print(item)
- }
-
- // for (int i = 0; i < items.length; i++)
- for (i in 0..(items.size - 1)) {
- print(items[i])
- }
-
- for (i in 0 until items.size) {
- print(items[i])
-
- break
- continue
- }
-}
-
-private fun practiceList() {
- val items = listOf(1, 2, 3, 4, 5)
-
-// items.add()
-
- val mutableItems = mutableListOf(1, 2, 3, 4, 5)
- mutableItems.add(6)
- mutableItems.remove(3)
-}
-
-private fun practiceArray() {
- val items = arrayOf(1, 2, 3)
- items.size
- items.get(0)
- items.set(0, 10) // Java
- items[0] = 10 // Kotlin
-
- // List를 활용하는 것이 권장됨
-
- try {
- val item = items[4]
- } catch (e: Exception) {
- print(e.message)
- }
-}
-
-private fun practiceNullSafety() {
- var name: String? = null
- name = "채연"
- name = null
-
- var name2: String = ""
- if (name != null) {
- name2 = name
- }
-
- name2 = name!!
-
- name?.let {
- name2 = name
- }
-}
-
-private fun practiceFunction() {
- // Method와 Function의 차이점
- print(sum(10, 20))
- print(sum(b = 20, a = 30)) // 순서를 바꿔도 괜찮음. 명시적. 가독성 향상.
-}
-
-// Top-Level Function : 모든 파일에서 사용 가능
-fun sum(a: Int, b: Int, c: Int = 0): Int {
- return a + b + c
-}
-
-fun sum2(a: Int, b: Int, c: Int = 0) = a + b + c
-
-// Java Method Overload
-// fun sum(a: Int, b: Int) = a + b
-// fun sum(a: Int, b: Int, c: Int) = a + b + c
-
-private fun practiceClassDataClassGetterSetter() {
- val john = Person("John", 20)
- val john2 = Person("John", 20)
-// print(john.name)
- print(john.age)
-
-// john.name = "Bell"
- john.age = 24
-
- println(john)
- println(john2)
- println(john == john2) // false
- println(john === john2)
-// john.hobby = "탁구"
-}
-
-// data class : equals, hashCode 등의 함수 자동 재정의
-data class Person(
- private val name: String, // getter 미제공
- var age: Int,
-) {
- var hobby = "축구"
- private set // setter 미제공
- get() = "취미 : $field"
-
- // 생성할 때마다 실행
- init {
- print("init")
- }
-
- fun some() {
- hobby = "농구"
- }
-}
-
-private fun practiceExtends() {
- val dog = Dog()
- val cat = Cat()
-
- println(dog.move())
- println(cat.move())
-}
-
-abstract class Animal {
- // 코틀린은 open 키워드를 붙여야 override 가능
- open fun move() {
- println("이동!")
- }
-}
-
-class Dog : Animal(), Drawable {
- override fun move() {
- println("껑충? 강아지가 왜 껑충 뜀")
- }
-
- override fun draw() {
- println("강아지 그리기")
- }
-}
-
-class Cat : Animal(), Drawable {
- override fun move() {
- println("고양이는 살금 ㅇㅈ")
- }
-
- override fun draw() {
- println("고양이 그리기")
- }
-}
-
-// 기본 클래스는 상속 불가능, open 키워드 필요
-open class Human
-
-class SuperMan : Human()
-
-private fun practiceInterface() {
- val dog = Dog()
- val cat = Cat()
-
- println(dog.draw())
- println(cat.draw())
-}
-
-interface Drawable {
- fun draw()
-}
-
-private fun practiceTypeCheckIs() {
- val dog: Animal = Dog()
- val cat = Cat()
-
- dog.move()
-// dog.draw() -> Animal 타입 상태에서는 사용 불가능
-
- if (dog is Dog) { // true
- println("멍멍이")
- dog.move()
- dog.draw() // Dog로 타입 변환된 후에는 사용 가능
- }
-// if (dog is Cat) println("고양이") -> incompatible type check
-
- dog as Cat // as : 타입 강제 변환
-}
-
-private fun practiceGeneric() {
- val box = Box(10)
- val box2 = Box("박스")
-
- println(box.value)
- println(box2.value)
-}
-
-class Box(var value: T)
-// class Box(value: T) -> val 또는 var 지정하지 않으면 getter, setter가 제공되지 않아서 value 호출 불가능 (그냥 인자)
-
-// 콜백 함수 타입 : input과 output 정의:
-private fun practiceCallbackFunction() {
- myFunc(10) {
- println("콜백 함수 호출")
- } // 별다른 매개변수가 없다면 소괄호 생략 가능
-
- myFunc(20)
-}
-
-fun myFunc(a: Int, callback: () -> Unit = { /* default */ }) { // input과 output이 없는 함수
- println("함수 시작!")
- callback
- println("함수 끝!")
-}
diff --git a/modern-android-compose/section00/app/src/main/java/com/ocomwan/kotlinbasics/MainActivity.kt b/modern-android-compose/section00/app/src/main/java/com/ocomwan/kotlinbasics/MainActivity.kt
deleted file mode 100644
index c604c0e..0000000
--- a/modern-android-compose/section00/app/src/main/java/com/ocomwan/kotlinbasics/MainActivity.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.ocomwan.kotlinbasics
-
-import android.os.Bundle
-import androidx.appcompat.app.AppCompatActivity
-import androidx.lifecycle.lifecycleScope
-import kotlinx.coroutines.launch
-
-class MainActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
-
-// practiceSuspendFunctionAndCoroutine(10) -> coroutine scope 내부에서 호출해야함
- lifecycleScope.launch {
- practiceSuspendFunctionAndCoroutine(100) {
- // 콜백 함수 내용
- }
- }
- }
-}
-
-// suspend function : 정지 함수로 끝날 때까지 대기. 메인 스레드에서 실행 불가능
-// - suspend 함수 내부 실행
-// - coroutine scope 내부 실행
-suspend fun practiceSuspendFunctionAndCoroutine(a: Int, callback: () -> Unit = { }) {
- println("함수 시작!")
- callback()
- println("함수 끝!")
-}
diff --git a/modern-android-compose/section00/app/src/main/res/drawable/ic_launcher_background.xml b/modern-android-compose/section00/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 07d5da9..0000000
--- a/modern-android-compose/section00/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/modern-android-compose/section00/app/src/main/res/drawable/ic_launcher_foreground.xml b/modern-android-compose/section00/app/src/main/res/drawable/ic_launcher_foreground.xml
deleted file mode 100644
index 2b068d1..0000000
--- a/modern-android-compose/section00/app/src/main/res/drawable/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/layout/activity_main.xml b/modern-android-compose/section00/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index 0b15a20..0000000
--- a/modern-android-compose/section00/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/modern-android-compose/section00/app/src/main/res/mipmap-anydpi/ic_launcher.xml
deleted file mode 100644
index 6f3b755..0000000
--- a/modern-android-compose/section00/app/src/main/res/mipmap-anydpi/ic_launcher.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/modern-android-compose/section00/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
deleted file mode 100644
index 6f3b755..0000000
--- a/modern-android-compose/section00/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/modern-android-compose/section00/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/modern-android-compose/section00/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
deleted file mode 100644
index b2dfe3d..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/modern-android-compose/section00/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d6..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/modern-android-compose/section00/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
deleted file mode 100644
index 62b611d..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/modern-android-compose/section00/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a307..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/modern-android-compose/section00/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
deleted file mode 100644
index 1b9a695..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/modern-android-compose/section00/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/modern-android-compose/section00/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9287f50..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/modern-android-compose/section00/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d642..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/modern-android-compose/section00/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9126ae3..0000000
Binary files a/modern-android-compose/section00/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section00/app/src/main/res/values-night/themes.xml b/modern-android-compose/section00/app/src/main/res/values-night/themes.xml
deleted file mode 100644
index 922186b..0000000
--- a/modern-android-compose/section00/app/src/main/res/values-night/themes.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/values/colors.xml b/modern-android-compose/section00/app/src/main/res/values/colors.xml
deleted file mode 100644
index f8c6127..0000000
--- a/modern-android-compose/section00/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- #FFBB86FC
- #FF6200EE
- #FF3700B3
- #FF03DAC5
- #FF018786
- #FF000000
- #FFFFFFFF
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/values/strings.xml b/modern-android-compose/section00/app/src/main/res/values/strings.xml
deleted file mode 100644
index c263ec3..0000000
--- a/modern-android-compose/section00/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
- Kotlin Basics
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/values/themes.xml b/modern-android-compose/section00/app/src/main/res/values/themes.xml
deleted file mode 100644
index 0e28f76..0000000
--- a/modern-android-compose/section00/app/src/main/res/values/themes.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/xml/backup_rules.xml b/modern-android-compose/section00/app/src/main/res/xml/backup_rules.xml
deleted file mode 100644
index fa0f996..0000000
--- a/modern-android-compose/section00/app/src/main/res/xml/backup_rules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/main/res/xml/data_extraction_rules.xml b/modern-android-compose/section00/app/src/main/res/xml/data_extraction_rules.xml
deleted file mode 100644
index 9ee9997..0000000
--- a/modern-android-compose/section00/app/src/main/res/xml/data_extraction_rules.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section00/app/src/test/java/com/ocomwan/kotlinbasics/ExampleUnitTest.kt b/modern-android-compose/section00/app/src/test/java/com/ocomwan/kotlinbasics/ExampleUnitTest.kt
deleted file mode 100644
index 8974bbd..0000000
--- a/modern-android-compose/section00/app/src/test/java/com/ocomwan/kotlinbasics/ExampleUnitTest.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.ocomwan.kotlinbasics
-
-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/modern-android-compose/section00/build.gradle.kts b/modern-android-compose/section00/build.gradle.kts
deleted file mode 100644
index ef164ea..0000000
--- a/modern-android-compose/section00/build.gradle.kts
+++ /dev/null
@@ -1,5 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-plugins {
- id("com.android.application") version "8.1.4" apply false
- id("org.jetbrains.kotlin.android") version "1.9.0" apply false
-}
\ No newline at end of file
diff --git a/modern-android-compose/section00/gradle.properties b/modern-android-compose/section00/gradle.properties
deleted file mode 100644
index 3c5031e..0000000
--- a/modern-android-compose/section00/gradle.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Project-wide Gradle settings.
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
-# AndroidX package structure to make it clearer which packages are bundled with the
-# Android operating system, and which are packaged with your app's APK
-# https://developer.android.com/topic/libraries/support-library/androidx-rn
-android.useAndroidX=true
-# Kotlin code style for this project: "official" or "obsolete":
-kotlin.code.style=official
-# Enables namespacing of each library's R class so that its R class includes only the
-# resources declared in the library itself and none from the library's dependencies,
-# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/modern-android-compose/section00/gradle/wrapper/gradle-wrapper.jar b/modern-android-compose/section00/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index e708b1c..0000000
Binary files a/modern-android-compose/section00/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/modern-android-compose/section00/gradle/wrapper/gradle-wrapper.properties b/modern-android-compose/section00/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 9a6f112..0000000
--- a/modern-android-compose/section00/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Wed Nov 15 23:15:42 KST 2023
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/modern-android-compose/section00/gradlew b/modern-android-compose/section00/gradlew
deleted file mode 100644
index 4f906e0..0000000
--- a/modern-android-compose/section00/gradlew
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=`expr $i + 1`
- done
- case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=`save "$@"`
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-exec "$JAVACMD" "$@"
diff --git a/modern-android-compose/section00/gradlew.bat b/modern-android-compose/section00/gradlew.bat
deleted file mode 100644
index 107acd3..0000000
--- a/modern-android-compose/section00/gradlew.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/modern-android-compose/section00/settings.gradle.kts b/modern-android-compose/section00/settings.gradle.kts
deleted file mode 100644
index cb5e690..0000000
--- a/modern-android-compose/section00/settings.gradle.kts
+++ /dev/null
@@ -1,17 +0,0 @@
-pluginManagement {
- repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
- }
-}
-dependencyResolutionManagement {
- repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
- repositories {
- google()
- mavenCentral()
- }
-}
-
-rootProject.name = "Kotlin Basics"
-include(":app")
diff --git a/modern-android-compose/section01/app/.gitignore b/modern-android-compose/section01/app/.gitignore
deleted file mode 100644
index 42afabf..0000000
--- a/modern-android-compose/section01/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/build.gradle.kts b/modern-android-compose/section01/app/build.gradle.kts
deleted file mode 100644
index 2586b92..0000000
--- a/modern-android-compose/section01/app/build.gradle.kts
+++ /dev/null
@@ -1,72 +0,0 @@
-plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
-}
-
-android {
- namespace = "com.ocomwan.myapplication"
- compileSdk = 34
-
- defaultConfig {
- applicationId = "com.ocomwan.myapplication"
- minSdk = 28
- targetSdk = 34
- versionCode = 1
- versionName = "1.0"
-
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- vectorDrawables {
- useSupportLibrary = true
- }
- }
-
- buildTypes {
- release {
- isMinifyEnabled = false
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro",
- )
- }
- }
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
- }
- kotlinOptions {
- jvmTarget = "1.8"
- }
- buildFeatures {
- compose = true
- }
- composeOptions {
- kotlinCompilerExtensionVersion = "1.4.3"
- }
- packaging {
- resources {
- excludes += "/META-INF/{AL2.0,LGPL2.1}"
- }
- }
-}
-
-dependencies {
-
- implementation("androidx.core:core-ktx:1.12.0")
- implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
- implementation("androidx.activity:activity-compose:1.8.2")
- implementation(platform("androidx.compose:compose-bom:2023.03.00"))
- implementation("androidx.compose.ui:ui")
- implementation("androidx.compose.ui:ui-graphics")
- implementation("androidx.compose.ui:ui-tooling-preview")
- implementation("androidx.compose.material3:material3")
- testImplementation("junit:junit:4.13.2")
- androidTestImplementation("androidx.test.ext:junit:1.1.5")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
- androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00"))
- androidTestImplementation("androidx.compose.ui:ui-test-junit4")
- debugImplementation("androidx.compose.ui:ui-tooling")
- debugImplementation("androidx.compose.ui:ui-test-manifest")
-
- // Navigation
- implementation("androidx.navigation:navigation-compose:2.7.6")
-}
diff --git a/modern-android-compose/section01/app/proguard-rules.pro b/modern-android-compose/section01/app/proguard-rules.pro
deleted file mode 100644
index 481bb43..0000000
--- a/modern-android-compose/section01/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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/modern-android-compose/section01/app/src/androidTest/java/com/ocomwan/myapplication/ExampleInstrumentedTest.kt b/modern-android-compose/section01/app/src/androidTest/java/com/ocomwan/myapplication/ExampleInstrumentedTest.kt
deleted file mode 100644
index 5c58761..0000000
--- a/modern-android-compose/section01/app/src/androidTest/java/com/ocomwan/myapplication/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.ocomwan.myapplication
-
-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("com.ocomwan.myapplication", appContext.packageName)
- }
-}
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/AndroidManifest.xml b/modern-android-compose/section01/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 66eca46..0000000
--- a/modern-android-compose/section01/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/PracticeActivity.kt b/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/PracticeActivity.kt
deleted file mode 100644
index 6c20f63..0000000
--- a/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/PracticeActivity.kt
+++ /dev/null
@@ -1,253 +0,0 @@
-@file:OptIn(
- ExperimentalMaterial3Api::class,
- ExperimentalComposeUiApi::class,
-)
-
-package com.ocomwan.myapplication
-
-import android.os.Bundle
-import androidx.activity.ComponentActivity
-import androidx.activity.compose.setContent
-import androidx.compose.foundation.Image
-import androidx.compose.foundation.ScrollState
-import androidx.compose.foundation.background
-import androidx.compose.foundation.clickable
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.lazy.LazyColumn
-import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Favorite
-import androidx.compose.material.icons.filled.FavoriteBorder
-import androidx.compose.material3.Button
-import androidx.compose.material3.Card
-import androidx.compose.material3.CardDefaults
-import androidx.compose.material3.ExperimentalMaterial3Api
-import androidx.compose.material3.Icon
-import androidx.compose.material3.IconButton
-import androidx.compose.material3.SnackbarHostState
-import androidx.compose.material3.Text
-import androidx.compose.material3.TextField
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateOf
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.rememberCoroutineScope
-import androidx.compose.runtime.saveable.rememberSaveable
-import androidx.compose.runtime.setValue
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.ExperimentalComposeUiApi
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.layout.ContentScale
-import androidx.compose.ui.platform.LocalSoftwareKeyboardController
-import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.res.stringResource
-import androidx.compose.ui.tooling.preview.Preview
-import androidx.compose.ui.unit.dp
-import com.ocomwan.myapplication.ui.theme.MyApplicationTheme
-import kotlinx.coroutines.launch
-
-class PracticeActivity : ComponentActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContent {
- MyApplicationTheme {
- PracticeNavigation()
- }
- }
- }
-
- @Composable
- fun PracticeColumn() {
- Column(
- modifier = Modifier
- .fillMaxSize()
- .background(color = Color.Blue)
- .padding(16.dp),
- horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = Arrangement.SpaceBetween,
- ) {
- Text(stringResource(R.string.section1_hello))
- Text(stringResource(R.string.section1_world))
- }
- }
-
- @Composable
- fun PracticeBox() {
- Box(
- modifier = Modifier
- .background(color = Color.Green)
- .fillMaxWidth()
- .height(200.dp),
- ) {
- Text(stringResource(R.string.section1_today_compose))
- Box(
- modifier = Modifier
- .fillMaxSize()
- .padding(16.dp),
- contentAlignment = Alignment.BottomEnd,
- ) {
- Text(stringResource(R.string.section1_complete))
- }
- }
- }
-
- @Composable
- fun PracticeListAndLazyColumn() {
-// val scrollState = rememberScrollState()
-// ListUsingColum(scrollState = scrollState)
- ListUsingLazyColumn()
- }
-
- @Composable
- private fun ListUsingColum(scrollState: ScrollState) {
- Column(
- modifier = Modifier
- .background(color = Color.Green)
- .fillMaxWidth()
- .verticalScroll(
- state = scrollState,
- ),
- ) {
- for (i in 1..50) {
- Text(getString(R.string.section1_letter, i.toString()))
- }
- }
- }
-
- @Composable
- fun ListUsingLazyColumn() {
- LazyColumn(
- modifier = Modifier
- .background(color = Color.Green)
- .fillMaxWidth(),
- contentPadding = PaddingValues(16.dp),
- verticalArrangement = Arrangement.spacedBy(8.dp),
- ) {
- item {
- Text(stringResource(R.string.section1_header))
- }
- items(50) { index ->
- Text(stringResource(R.string.section1_letter, index))
- }
- item {
- Text(stringResource(R.string.section1_footer))
- }
- }
- }
-
- @Composable
- fun PracticeImageCardState() {
- var isFavorite by rememberSaveable {
- mutableStateOf(false)
- }
-
- ImageCard(
- modifier = Modifier
- .fillMaxWidth(0.5f)
- .padding(16.dp),
- isFavorite = isFavorite,
- ) { favorite ->
- isFavorite = favorite
- }
- }
-
- @Composable
- fun ImageCard(
- modifier: Modifier = Modifier,
- isFavorite: Boolean,
- onTabFavorite: (Boolean) -> Unit,
- ) {
- Card(
- modifier = modifier,
- shape = RoundedCornerShape(5.dp),
- elevation = CardDefaults.cardElevation(
- defaultElevation = 10.dp,
- ),
- ) {
- Box(
- modifier = Modifier.height(200.dp),
- ) {
- Image(
- painter = painterResource(id = R.drawable.img_kermit),
- contentDescription = stringResource(R.string.section1_kermit_img),
- contentScale = ContentScale.Crop,
- )
- Box(
- modifier = Modifier.fillMaxSize(),
- contentAlignment = Alignment.TopEnd,
- ) {
- IconButton(onClick = { onTabFavorite(!isFavorite) }) {
- Icon(
- imageVector = if (isFavorite) Icons.Default.Favorite else Icons.Default.FavoriteBorder,
- contentDescription = stringResource(R.string.section1_favorite),
- tint = Color.White,
- )
- }
- }
- }
- }
- }
-
- @Composable
- fun PracticeTextFieldButtonSnackBar() {
- val (inputText, setInputText) = rememberSaveable {
- mutableStateOf("")
- }
- val snackbarHostState = remember {
- SnackbarHostState()
- }
- val coroutineScope = rememberCoroutineScope()
- val keyboardController = LocalSoftwareKeyboardController.current
-
- Column(
- modifier = Modifier
- .fillMaxSize()
- .background(color = Color.White).clickable {
- keyboardController?.hide()
- },
- verticalArrangement = Arrangement.Center,
- horizontalAlignment = Alignment.CenterHorizontally,
- ) {
- TextField(
- value = inputText,
- onValueChange = setInputText,
- )
- Spacer(modifier = Modifier.height(14.dp))
- Button(onClick = {
- keyboardController?.hide()
- coroutineScope.launch {
- snackbarHostState.showSnackbar(
- getString(
- R.string.section1_input_text,
- inputText,
- ),
- )
- }
- }) {
- Text(stringResource(R.string.section1_click))
- }
- }
- }
-
- @Composable
- fun PracticeNavigation() {
- }
-
- @Preview(showBackground = true)
- @Composable
- fun DefaultPreview() {
- MyApplicationTheme {
- PracticeTextFieldButtonSnackBar()
- }
- }
-}
diff --git a/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Color.kt b/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Color.kt
deleted file mode 100644
index 4c54da7..0000000
--- a/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Color.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.ocomwan.myapplication.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/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Theme.kt b/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Theme.kt
deleted file mode 100644
index 3093c19..0000000
--- a/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Theme.kt
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.ocomwan.myapplication.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.runtime.SideEffect
-import androidx.compose.ui.graphics.toArgb
-import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.platform.LocalView
-import androidx.core.view.WindowCompat
-
-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 MyApplicationTheme(
- 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
- }
- val view = LocalView.current
- if (!view.isInEditMode) {
- SideEffect {
- val window = (view.context as Activity).window
- window.statusBarColor = colorScheme.primary.toArgb()
- WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme
- }
- }
-
- MaterialTheme(
- colorScheme = colorScheme,
- typography = Typography,
- content = content,
- )
-}
diff --git a/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Type.kt b/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Type.kt
deleted file mode 100644
index 395b614..0000000
--- a/modern-android-compose/section01/app/src/main/java/com/ocomwan/myapplication/ui/theme/Type.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.ocomwan.myapplication.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/modern-android-compose/section01/app/src/main/res/drawable/ic_launcher_background.xml b/modern-android-compose/section01/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 07d5da9..0000000
--- a/modern-android-compose/section01/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/modern-android-compose/section01/app/src/main/res/drawable/ic_launcher_foreground.xml b/modern-android-compose/section01/app/src/main/res/drawable/ic_launcher_foreground.xml
deleted file mode 100644
index 2b068d1..0000000
--- a/modern-android-compose/section01/app/src/main/res/drawable/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/res/drawable/img_kermit.jpg b/modern-android-compose/section01/app/src/main/res/drawable/img_kermit.jpg
deleted file mode 100644
index 8da345f..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/drawable/img_kermit.jpg and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/modern-android-compose/section01/app/src/main/res/mipmap-anydpi/ic_launcher.xml
deleted file mode 100644
index 6f3b755..0000000
--- a/modern-android-compose/section01/app/src/main/res/mipmap-anydpi/ic_launcher.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/modern-android-compose/section01/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
deleted file mode 100644
index 6f3b755..0000000
--- a/modern-android-compose/section01/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/modern-android-compose/section01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/modern-android-compose/section01/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
deleted file mode 100644
index b2dfe3d..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/modern-android-compose/section01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d6..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/modern-android-compose/section01/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
deleted file mode 100644
index 62b611d..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/modern-android-compose/section01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a307..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/modern-android-compose/section01/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
deleted file mode 100644
index 1b9a695..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/modern-android-compose/section01/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/modern-android-compose/section01/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9287f50..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/modern-android-compose/section01/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d642..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/modern-android-compose/section01/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9126ae3..0000000
Binary files a/modern-android-compose/section01/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/modern-android-compose/section01/app/src/main/res/values/colors.xml b/modern-android-compose/section01/app/src/main/res/values/colors.xml
deleted file mode 100644
index f8c6127..0000000
--- a/modern-android-compose/section01/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- #FFBB86FC
- #FF6200EE
- #FF3700B3
- #FF03DAC5
- #FF018786
- #FF000000
- #FFFFFFFF
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/res/values/strings.xml b/modern-android-compose/section01/app/src/main/res/values/strings.xml
deleted file mode 100644
index 5394625..0000000
--- a/modern-android-compose/section01/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
- My Application
- 커밋의 프로필 이미지
- Favorite
- HEADER
- 글씨 %1$s
- FOOTER
- 오늘 컴포즈
- 완료
- Hello
- World
- 클릭
- 입력 : %1$s
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/res/values/themes.xml b/modern-android-compose/section01/app/src/main/res/values/themes.xml
deleted file mode 100644
index e48770a..0000000
--- a/modern-android-compose/section01/app/src/main/res/values/themes.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/res/xml/backup_rules.xml b/modern-android-compose/section01/app/src/main/res/xml/backup_rules.xml
deleted file mode 100644
index fa0f996..0000000
--- a/modern-android-compose/section01/app/src/main/res/xml/backup_rules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/main/res/xml/data_extraction_rules.xml b/modern-android-compose/section01/app/src/main/res/xml/data_extraction_rules.xml
deleted file mode 100644
index 9ee9997..0000000
--- a/modern-android-compose/section01/app/src/main/res/xml/data_extraction_rules.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modern-android-compose/section01/app/src/test/java/com/ocomwan/myapplication/ExampleUnitTest.kt b/modern-android-compose/section01/app/src/test/java/com/ocomwan/myapplication/ExampleUnitTest.kt
deleted file mode 100644
index 23fb078..0000000
--- a/modern-android-compose/section01/app/src/test/java/com/ocomwan/myapplication/ExampleUnitTest.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.ocomwan.myapplication
-
-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/modern-android-compose/section01/build.gradle.kts b/modern-android-compose/section01/build.gradle.kts
deleted file mode 100644
index 5873551..0000000
--- a/modern-android-compose/section01/build.gradle.kts
+++ /dev/null
@@ -1,5 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-plugins {
- id("com.android.application") version "8.1.4" apply false
- id("org.jetbrains.kotlin.android") version "1.8.10" apply false
-}
\ No newline at end of file
diff --git a/modern-android-compose/section01/gradle.properties b/modern-android-compose/section01/gradle.properties
deleted file mode 100644
index 3c5031e..0000000
--- a/modern-android-compose/section01/gradle.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Project-wide Gradle settings.
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
-# AndroidX package structure to make it clearer which packages are bundled with the
-# Android operating system, and which are packaged with your app's APK
-# https://developer.android.com/topic/libraries/support-library/androidx-rn
-android.useAndroidX=true
-# Kotlin code style for this project: "official" or "obsolete":
-kotlin.code.style=official
-# Enables namespacing of each library's R class so that its R class includes only the
-# resources declared in the library itself and none from the library's dependencies,
-# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/modern-android-compose/section01/gradle/wrapper/gradle-wrapper.jar b/modern-android-compose/section01/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index e708b1c..0000000
Binary files a/modern-android-compose/section01/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/modern-android-compose/section01/gradle/wrapper/gradle-wrapper.properties b/modern-android-compose/section01/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index ba6ff91..0000000
--- a/modern-android-compose/section01/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Fri Nov 17 22:19:14 KST 2023
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/modern-android-compose/section01/gradlew b/modern-android-compose/section01/gradlew
deleted file mode 100644
index 4f906e0..0000000
--- a/modern-android-compose/section01/gradlew
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=`expr $i + 1`
- done
- case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=`save "$@"`
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-exec "$JAVACMD" "$@"
diff --git a/modern-android-compose/section01/gradlew.bat b/modern-android-compose/section01/gradlew.bat
deleted file mode 100644
index 107acd3..0000000
--- a/modern-android-compose/section01/gradlew.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/modern-android-compose/section01/settings.gradle.kts b/modern-android-compose/section01/settings.gradle.kts
deleted file mode 100644
index 579fe75..0000000
--- a/modern-android-compose/section01/settings.gradle.kts
+++ /dev/null
@@ -1,17 +0,0 @@
-pluginManagement {
- repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
- }
-}
-dependencyResolutionManagement {
- repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
- repositories {
- google()
- mavenCentral()
- }
-}
-
-rootProject.name = "My Application"
-include(":app")