Skip to content
Merged
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
55 changes: 9 additions & 46 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,59 +1,22 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.bitnagil.android.application)
alias(libs.plugins.bitnagil.android.hilt)
alias(libs.plugins.kotlin.serialization)
}

android {
namespace = "com.threegap.bitnagil"
compileSdk = 35

defaultConfig {
applicationId = "com.threegap.bitnagil"
minSdk = 28
targetSdk = 35
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
}
kotlinOptions {
jvmTarget = "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.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
implementation(projects.core.datastore)
implementation(projects.core.designsystem)
implementation(projects.core.network)
implementation(projects.data)
implementation(projects.domain)
implementation(projects.presentation)
}

This file was deleted.

3 changes: 3 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />

<application
android:name=".BitnagilApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/com/threegap/bitnagil/BitnagilApplication.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.threegap.bitnagil

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

@HiltAndroidApp
class BitnagilApplication : Application() {
override fun onCreate() {
super.onCreate()
}
}
40 changes: 7 additions & 33 deletions app/src/main/java/com/threegap/bitnagil/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,21 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.threegap.bitnagil.ui.theme.BitnagilTheme
import com.threegap.bitnagil.designsystem.BitnagilTheme
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
val mainNavigator = rememberMainNavigator()
BitnagilTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding),
)
}
MainScreen(
navigator = mainNavigator,
)
}
}
}
}

@Composable
fun Greeting(
name: String,
modifier: Modifier = Modifier,
) {
Text(
text = "Hello $name!",
modifier = modifier,
)
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
BitnagilTheme {
Greeting("Android")
}
}
30 changes: 30 additions & 0 deletions app/src/main/java/com/threegap/bitnagil/MainNavHost.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.threegap.bitnagil

import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import com.threegap.bitnagil.presentation.home.HomeScreen
import com.threegap.bitnagil.presentation.login.LoginScreen

@Composable
fun MainNavHost(
navigator: MainNavigator,
modifier: Modifier = Modifier,
) {
NavHost(
navController = navigator.navController,
startDestination = navigator.startDestination,
modifier = modifier,
) {
composable<Route.Login> {
LoginScreen(
onLoginClick = { navigator.navController.navigate(Route.Home) },
)
}

composable<Route.Home> {
HomeScreen()
}
}
}
18 changes: 18 additions & 0 deletions app/src/main/java/com/threegap/bitnagil/MainNavigator.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.threegap.bitnagil

import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController

class MainNavigator(
val navController: NavHostController,
) {
val startDestination = Route.Login
}

@Composable
fun rememberMainNavigator(navController: NavHostController = rememberNavController()): MainNavigator =
remember(navController) {
MainNavigator(navController)
}
22 changes: 22 additions & 0 deletions app/src/main/java/com/threegap/bitnagil/MainScreen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.threegap.bitnagil

import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier

@Composable
fun MainScreen(
navigator: MainNavigator,
modifier: Modifier = Modifier,
) {
Scaffold(
modifier = modifier.fillMaxSize(),
) { innerPadding ->
MainNavHost(
navigator = navigator,
modifier = Modifier.padding(innerPadding),
)
}
}
12 changes: 12 additions & 0 deletions app/src/main/java/com/threegap/bitnagil/Route.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.threegap.bitnagil

import kotlinx.serialization.Serializable

@Serializable
sealed interface Route {
@Serializable
data object Login : Route

@Serializable
data object Home : Route
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
2 changes: 1 addition & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<resources>
<string name="app_name">Bitnagil</string>
<string name="app_name">빛나길</string>
</resources>
16 changes: 0 additions & 16 deletions app/src/test/java/com/threegap/bitnagil/ExampleUnitTest.kt

This file was deleted.

1 change: 1 addition & 0 deletions build-logic/convention/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
50 changes: 50 additions & 0 deletions build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
plugins {
`kotlin-dsl`
}

group = "com.threegap.bitnagil.convention"

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}

kotlin {
jvmToolchain(17)
}

dependencies {
compileOnly(libs.android.gradle.plugin)
compileOnly(libs.kotlin.gradle.plugin)
compileOnly(libs.compose.compiler.gradle.plugin)
}
Comment thread
l5x5l marked this conversation as resolved.

gradlePlugin {
plugins {
register("androidApplication") {
id = "bitnagil.android.application"
implementationClass = "com.threegap.bitnagil.convention.AndroidApplicationPlugin"
}

register("androidLibrary") {
id = "bitnagil.android.library"
implementationClass = "com.threegap.bitnagil.convention.AndroidLibraryPlugin"
}

register("androidComposeLibrary") {
id = "bitnagil.android.compose.library"
implementationClass = "com.threegap.bitnagil.convention.AndroidComposePlugin"
}

register("androidHilt") {
id = "bitnagil.android.hilt"
implementationClass = "com.threegap.bitnagil.convention.HiltPlugin"
}

register("kotlin") {
id = "bitnagil.kotlin"
implementationClass = "com.threegap.bitnagil.convention.KotlinJvmPlugin"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.threegap.bitnagil.convention

import com.android.build.api.dsl.ApplicationExtension
import com.threegap.bitnagil.convention.extension.configureComposeAndroid
import com.threegap.bitnagil.convention.extension.configureKotlinAndroid
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.getByType
import org.gradle.kotlin.dsl.configure

class AndroidApplicationPlugin : Plugin<Project> {
override fun apply(target: Project): Unit = with(target) {
pluginManager.apply {
apply("com.android.application")
apply("org.jetbrains.kotlin.android")
apply("org.jetbrains.kotlin.plugin.compose")
}

val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
extensions.configure<ApplicationExtension> {
configureKotlinAndroid(this)
configureComposeAndroid(this)
with(defaultConfig) {
targetSdk = libs.findVersion("targetSdk").get().requiredVersion.toInt()
versionCode = libs.findVersion("versionCode").get().requiredVersion.toInt()
versionName = libs.findVersion("versionName").get().requiredVersion
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.threegap.bitnagil.convention

import com.android.build.gradle.LibraryExtension
import com.threegap.bitnagil.convention.extension.configureComposeAndroid
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure

class AndroidComposePlugin : Plugin<Project> {
override fun apply(target: Project): Unit = with(target) {
pluginManager.apply {
apply("org.jetbrains.kotlin.plugin.compose")
}

extensions.configure<LibraryExtension> {
configureComposeAndroid(this)
}
}
}
Loading