Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/migrations.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

75 changes: 16 additions & 59 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
alias(libs.plugins.pohahang.android.application)
alias(libs.plugins.pohahang.android.application.compose)
alias(libs.plugins.pohahang.android.feature)
alias(libs.plugins.pohahang.android.hilt)
}

android {
namespace = "com.koreatech.kwanhee_jo_compose_study"
compileSdk = 34

defaultConfig {
applicationId = "com.koreatech.kwanhee_jo_compose_study"
minSdk = 26
targetSdk = 34
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
Expand All @@ -29,57 +26,17 @@ android {
)
}
}
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.9.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
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")

// orbit
implementation("org.orbit-mvi:orbit-core:6.1.1")
implementation("org.orbit-mvi:orbit-viewmodel:6.1.1")
implementation("org.orbit-mvi:orbit-compose:6.1.1")
testImplementation("org.orbit-mvi:orbit-test:6.1.1")

// viewmodel
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1")

// Navigation Compose
implementation ("androidx.navigation:navigation-compose:2.4.2")

// coil
implementation("io.coil-kt:coil-compose:2.6.0")
}
implementation(project(mapOf("path" to ":core:network")))
implementation(project(mapOf("path" to ":core:data")))

implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.hilt.navigation.compose)
implementation(libs.androidx.navigation.compose)
testImplementation(libs.junit4)
testImplementation(libs.orbit.test)
androidTestImplementation(libs.androidx.test.ext)
androidTestImplementation(libs.androidx.test.espresso)
Comment on lines +35 to +41

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

어우 귀찮았을텐데 고생하셨슴다

}
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<uses-permission android:name="android.permission.INTERNET" />

<application
android:name=".PohahangApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,170 +3,22 @@ package com.koreatech.kwanhee_jo_compose_study
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import com.koreatech.kwanhee_jo_compose_study.Constants.ID
import com.koreatech.kwanhee_jo_compose_study.Constants.NICKNAME
import com.koreatech.kwanhee_jo_compose_study.Constants.PASSWORD
import com.koreatech.kwanhee_jo_compose_study.ui.SoptApp
import com.koreatech.kwanhee_jo_compose_study.ui.theme.KwanheeTheme
import com.koreatech.kwanhee_jo_compose_study.view.home.HomePage
import com.koreatech.kwanhee_jo_compose_study.view.home.HomeViewModel
import com.koreatech.kwanhee_jo_compose_study.view.login.LoginPage
import com.koreatech.kwanhee_jo_compose_study.view.login.LoginSideEffect
import com.koreatech.kwanhee_jo_compose_study.view.login.LoginViewModel
import com.koreatech.kwanhee_jo_compose_study.view.navi.BottomNavigationBar
import com.koreatech.kwanhee_jo_compose_study.view.navi.serach.SearchPage
import com.koreatech.kwanhee_jo_compose_study.view.navi.setting.SettingPage
import com.koreatech.kwanhee_jo_compose_study.view.signup.SignupPage
import com.koreatech.kwanhee_jo_compose_study.view.signup.SignupSideEffect
import com.koreatech.kwanhee_jo_compose_study.view.signup.SignupViewModel
import org.orbitmvi.orbit.compose.collectAsState
import org.orbitmvi.orbit.compose.collectSideEffect
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
KwanheeTheme {
SoptApp()
// val navController = rememberNavController()
// val context = LocalContext.current
// val currentRoute by navController.currentBackStackEntryAsState()
// val bottomNaviItems = listOf(
// Screen.BottomNavItem.Home.route,
// Screen.BottomNavItem.Search.route,
// Screen.BottomNavItem.Setting.route
// )
//
// Scaffold(
// bottomBar = {
// if (currentRoute?.destination?.route in bottomNaviItems) {
// BottomNavigationBar(navController = navController)
// }
// }
// ) { paddingValues ->
// NavHost(
// navController = navController,
// startDestination = Screen.Login.route,
// modifier = Modifier.padding(paddingValues)
// ) {
// composable(route = Screen.Login.route) { entry ->
// val loginViewModel: LoginViewModel = viewModel()
// val loginState by loginViewModel.collectAsState()
//
// entry.savedStateHandle.apply {
// loginViewModel.updateLoginSavedStateHandle(
// id = get<String>(ID) ?: "",
// password = get<String>(PASSWORD) ?: "",
// nickname = get<String>(NICKNAME) ?: ""
// )
// }
//
// loginViewModel.collectSideEffect {
// when (it) {
// is LoginSideEffect.MoveToHomePage -> {
// navController.navigate(route = Screen.BottomNavItem.Home.route) {
// popUpTo(navController.graph.id) {
// inclusive = true
// }
// }
// navController.currentBackStackEntry?.savedStateHandle?.apply {
// set(ID, loginViewModel.id)
// set(PASSWORD, loginViewModel.password)
// set(NICKNAME, loginViewModel.nickname)
// }
// }
//
// is LoginSideEffect.MoveToSignUpPage -> {
// navController.navigate(route = Screen.Signup.route)
// }
// }
// }
//
// LoginPage(
// onClickLoginButton = { id, password ->
// loginViewModel.login(id, password)
// }
// ) {
// loginViewModel.signUp()
// }
// }
// composable(route = Screen.Signup.route) {
// val signUpViewModel: SignupViewModel = viewModel()
// val signUpState by signUpViewModel.collectAsState()
//
// signUpViewModel.collectSideEffect {
// when (it) {
// is SignupSideEffect.MoveToLoginPage -> {
// navController.previousBackStackEntry?.savedStateHandle?.apply {
// set(ID, it.id)
// set(PASSWORD, it.password)
// set(NICKNAME, it.nickname)
// }
// navController.popBackStack()
// }
// }
// }
//
// SignupPage { id, password, nickname ->
// signUpViewModel.signup(id, password, nickname)
// }
// }
// composable(
// route = Screen.BottomNavItem.Home.route
// ) {
// val homeViewModel: HomeViewModel = composableActivityViewModel()
// val homeState by homeViewModel.collectAsState()
//
// it.savedStateHandle.apply {
// if (get<String>(ID)?.isNotEmpty() == true) {
// homeViewModel.updateHomeData(
// id = get<String>(ID) ?: "",
// password = get<String>(PASSWORD) ?: "",
// nickname = get<String>(NICKNAME) ?: ""
// )
// }
// }
//
// homeViewModel.collectSideEffect {
// when (it) { }
// }
//
// HomePage(
// context = context,
// id = homeViewModel.id,
// password = homeViewModel.password,
// nickname = homeViewModel.nickname,
// modifier = Modifier
// .padding(16.dp)
// .fillMaxSize()
// )
// }
// composable(Screen.BottomNavItem.Search.route) {
// val homeViewModel: HomeViewModel = composableActivityViewModel()
// SearchPage()
// }
// composable(Screen.BottomNavItem.Setting.route) {
// SettingPage()
// }
// }
//
// }
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.koreatech.kwanhee_jo_compose_study

import android.app.Application
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class PohahangApplication: Application() {
override fun onCreate() {
super.onCreate()
}
}
Loading