Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Design] : 즐겨찾기 화면 디자인 및 연결 #93

Closed
Closed
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions build-logic/bin/main/Iguana_android_applicationPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Precompiled [iguana.android.application.gradle.kts][Iguana_android_application_gradle] script plugin.
*
* @see Iguana_android_application_gradle
*/
public
class Iguana_android_applicationPlugin : org.gradle.api.Plugin<org.gradle.api.Project> {
override fun apply(target: org.gradle.api.Project) {
try {
Class
.forName("Iguana_android_application_gradle")
.getDeclaredConstructor(org.gradle.api.Project::class.java, org.gradle.api.Project::class.java)
.newInstance(target, target)
} catch (e: java.lang.reflect.InvocationTargetException) {
throw e.targetException
}
}
}
18 changes: 18 additions & 0 deletions build-logic/bin/main/Iguana_android_composePlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Precompiled [iguana.android.compose.gradle.kts][Iguana_android_compose_gradle] script plugin.
*
* @see Iguana_android_compose_gradle
*/
public
class Iguana_android_composePlugin : org.gradle.api.Plugin<org.gradle.api.Project> {
override fun apply(target: org.gradle.api.Project) {
try {
Class
.forName("Iguana_android_compose_gradle")
.getDeclaredConstructor(org.gradle.api.Project::class.java, org.gradle.api.Project::class.java)
.newInstance(target, target)
} catch (e: java.lang.reflect.InvocationTargetException) {
throw e.targetException
}
}
}
18 changes: 18 additions & 0 deletions build-logic/bin/main/Iguana_android_featurePlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Precompiled [iguana.android.feature.gradle.kts][Iguana_android_feature_gradle] script plugin.
*
* @see Iguana_android_feature_gradle
*/
public
class Iguana_android_featurePlugin : org.gradle.api.Plugin<org.gradle.api.Project> {
override fun apply(target: org.gradle.api.Project) {
try {
Class
.forName("Iguana_android_feature_gradle")
.getDeclaredConstructor(org.gradle.api.Project::class.java, org.gradle.api.Project::class.java)
.newInstance(target, target)
} catch (e: java.lang.reflect.InvocationTargetException) {
throw e.targetException
}
}
}
18 changes: 18 additions & 0 deletions build-logic/bin/main/Iguana_android_libraryPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Precompiled [iguana.android.library.gradle.kts][Iguana_android_library_gradle] script plugin.
*
* @see Iguana_android_library_gradle
*/
public
class Iguana_android_libraryPlugin : org.gradle.api.Plugin<org.gradle.api.Project> {
override fun apply(target: org.gradle.api.Project) {
try {
Class
.forName("Iguana_android_library_gradle")
.getDeclaredConstructor(org.gradle.api.Project::class.java, org.gradle.api.Project::class.java)
.newInstance(target, target)
} catch (e: java.lang.reflect.InvocationTargetException) {
throw e.targetException
}
}
}
18 changes: 18 additions & 0 deletions build-logic/bin/main/Iguana_kotlin_libraryPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Precompiled [iguana.kotlin.library.gradle.kts][Iguana_kotlin_library_gradle] script plugin.
*
* @see Iguana_kotlin_library_gradle
*/
public
class Iguana_kotlin_libraryPlugin : org.gradle.api.Plugin<org.gradle.api.Project> {
override fun apply(target: org.gradle.api.Project) {
try {
Class
.forName("Iguana_kotlin_library_gradle")
.getDeclaredConstructor(org.gradle.api.Project::class.java, org.gradle.api.Project::class.java)
.newInstance(target, target)
} catch (e: java.lang.reflect.InvocationTargetException) {
throw e.targetException
}
}
}
47 changes: 47 additions & 0 deletions build-logic/bin/main/com/iguana/notai/AndroidRoomPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.iguana.notai

/*
* Copyright 2022 The Android Open Source Project
*
* 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.
*/


import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType

fun Project.configureAndroidRoom() {
with(pluginManager) {
apply("org.jetbrains.kotlin.kapt")
}
val versionCatalog = extensions.getByType<VersionCatalogsExtension>()
val libs = versionCatalog.named("libs")

dependencies {
"implementation"(libs.findLibrary("room-runtime").get())
"implementation"(libs.findLibrary("room-ktx").get())
"kapt"(libs.findLibrary("room-compiler").get())
}
}

class AndroidRoomPlugin : Plugin<Project> {

override fun apply(target: Project) {
with(target) {
configureAndroidRoom()
}
}
}
35 changes: 35 additions & 0 deletions build-logic/bin/main/com/iguana/notai/ComposeAndroid.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.iguana.notai

import com.android.build.gradle.BaseExtension
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType

internal fun Project.configureComposeAndroid() {
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
val android = extensions.getByName("android") as BaseExtension

android.apply {
buildFeatures.compose = true
composeOptions {
kotlinCompilerExtensionVersion =
libs.findVersion("androidxComposeCompiler").get().toString()
}

dependencies {
val bom = libs.findLibrary("androidx-compose-bom").get()
add("implementation", platform(bom))
add("androidTestImplementation", platform(bom))

add("implementation", libs.findLibrary("androidx.compose.material3").get())
add("implementation", libs.findLibrary("androidx.compose.ui").get())
add("implementation", libs.findLibrary("androidx.compose.ui.tooling.preview").get())
add("androidTestImplementation", libs.findLibrary("androidx.test.ext").get())
add("androidTestImplementation", libs.findLibrary("androidx.test.espresso.core").get())
add("androidTestImplementation", libs.findLibrary("androidx.compose.ui.test").get())
add("debugImplementation", libs.findLibrary("androidx.compose.ui.tooling").get())
add("debugImplementation", libs.findLibrary("androidx.compose.ui.testManifest").get())
}
}
}
22 changes: 22 additions & 0 deletions build-logic/bin/main/com/iguana/notai/CoroutineAndroid.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.iguana.notai

import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType

internal fun Project.configureCoroutineAndroid() {
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
configureCoroutineKotlin()
dependencies {
"implementation"(libs.findLibrary("coroutines.android").get())
}
}

internal fun Project.configureCoroutineKotlin() {
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependencies {
"implementation"(libs.findLibrary("coroutines.core").get())
"testImplementation"(libs.findLibrary("coroutines.test").get())
}
}
8 changes: 8 additions & 0 deletions build-logic/bin/main/com/iguana/notai/Extension.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.iguana.notai

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType

30 changes: 30 additions & 0 deletions build-logic/bin/main/com/iguana/notai/HiltAndroid.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.iguana.notai

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType

internal fun Project.configureHiltAndroid() {
with(pluginManager) {
apply("dagger.hilt.android.plugin")
apply("org.jetbrains.kotlin.kapt")
}

val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependencies {
"implementation"(libs.findLibrary("hilt.android").get())
"kapt"(libs.findLibrary("hilt.android.compiler").get())
"kaptAndroidTest"(libs.findLibrary("hilt.android.compiler").get())
}
}

internal class HiltAndroidPlugin : Plugin<Project> {

override fun apply(target: Project) {
with(target) {
configureHiltAndroid()
}
}
}
27 changes: 27 additions & 0 deletions build-logic/bin/main/com/iguana/notai/HiltKotlin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.iguana.notai

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType

internal fun Project.configureHiltKotlin() {
with(pluginManager) {
apply("org.jetbrains.kotlin.kapt")
}
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependencies {
"implementation"(libs.findLibrary("hilt-core").get())
"kapt"(libs.findLibrary("hilt-compiler").get())
}
}

internal class HiltKotlinPlugin : Plugin<Project> {

override fun apply(target: Project) {
with(target) {
configureHiltKotlin()
}
}
}
20 changes: 20 additions & 0 deletions build-logic/bin/main/com/iguana/notai/KotestAndroid.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.iguana.notai

import com.android.build.gradle.BaseExtension
import org.gradle.api.Project
import org.gradle.kotlin.dsl.getByName

internal fun Project.configureKotestAndroid() {
configureKotest()
configureJUnitAndroid()
}

internal fun Project.configureJUnitAndroid() {
// android 블록에 접근
val android = extensions.getByName<BaseExtension>("android")
android.apply {
testOptions {
unitTests.all { it.useJUnitPlatform() }
}
}
}
23 changes: 23 additions & 0 deletions build-logic/bin/main/com/iguana/notai/KotestKotlin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.iguana.notai

import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType
import org.gradle.kotlin.dsl.withType

internal fun Project.configureKotest() {
configureJUnit()
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependencies {
"testImplementation"(libs.findLibrary("kotest.runner").get())
"testImplementation"(libs.findLibrary("kotest.assertions").get())
}
}

internal fun Project.configureJUnit() {
tasks.withType<Test>().configureEach {
useJUnitPlatform()
}
}
73 changes: 73 additions & 0 deletions build-logic/bin/main/com/iguana/notai/KotlinAndroid.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
@file:Suppress("UnstableApiUsage")

package com.iguana.notai

import com.android.build.gradle.BaseExtension
import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByName
import org.gradle.kotlin.dsl.getByType
import org.gradle.kotlin.dsl.provideDelegate
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

/**
* https://github.com/android/nowinandroid/blob/main/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt
*/
internal fun Project.configureKotlinAndroid() {
// Plugins
pluginManager.apply("org.jetbrains.kotlin.android")

// Android settings
val android = extensions.getByName<BaseExtension>("android")
android.apply {
compileSdkVersion(34)

defaultConfig {
minSdk = 26
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
isCoreLibraryDesugaringEnabled = true
}

buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}

configureKotlin()

val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")

dependencies {
add("coreLibraryDesugaring", libs.findLibrary("android.desugarJdkLibs").get())
// Material Components 추가
add("implementation", libs.findLibrary("material").get())
}
}

internal fun Project.configureKotlin() {
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
// Treat all Kotlin warnings as errors (disabled by default)
// Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties
val warningsAsErrors: String? by project
allWarningsAsErrors = warningsAsErrors.toBoolean()
freeCompilerArgs = freeCompilerArgs + listOf(
"-opt-in=kotlin.RequiresOptIn",
)
}
}
}
Loading