Skip to content

Commit

Permalink
[AN/USER] feat: 홈 화면 인기 축제 목록 구현 및 Presentation 모듈 분리(#656) (#664)
Browse files Browse the repository at this point in the history
* chore: 모듈명 변경 presentation-legacy, data-legacy

* chore: 새로운 presentation 모듈 생성

* feat: 바텀 네비게이션 디자인 구현

* feat: 시스템 상태 바, 네비게이션 바, 디폴드 배경 색상 하얀색으로 통일

* feat: 바텀 프레그먼드 변경 로직 구현

* feat: gradle ktlint 추가

* feat: bindingAdapter 작성

* feat: textStyle 및 textColor 추가

* feat: 인기 축제 uiState 정의

* feat: 인기 축제 foreground ListAdapter 정의

* feat: 인기 축제 background ListAdapter 정의

* feat: 커스텀 viewpager festival adapter 정의

* feat: 축제 목록 화면 Fragment 정의

* feat: 홈 화면 프레그먼트간 이동 액티비티 정의

* feat: uiState 이름 변경

* feat: FestivalList viewModel 생성 및 상태 정의

* feat: 축제 목록 앱바 정의

* feat: 홈화면 세로 고정

* refactor: ktlint check

* refactor: dimens 제거 및 off screen limit 3으로 변경

* refactor: dimens 파일 제거

* fix: dp to px 변환으로 원한는대로 비율 조정

* chore: 사용하지 않는 테스트 제거

* refactor: data 위치 변경

* chore: 모듈 이름 순서 정리

* refactor: 이름 카멜 케이스로 변경

* feat: 이미지 사이즈가 디바이스 가로 길이에 따라 변경되도록 대응

* feat: 가로 마진을 24dp 의 절반 12 만큼 제한

* feat: 가로 마진 제거
  • Loading branch information
SeongHoonC authored Jan 21, 2024
1 parent 8bf7300 commit 5e52130
Show file tree
Hide file tree
Showing 279 changed files with 3,274 additions and 1,438 deletions.
3 changes: 2 additions & 1 deletion android/festago/.idea/gradle.xml

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

2 changes: 1 addition & 1 deletion android/festago/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ kapt {
}

dependencies {
implementation(project(":data"))
implementation(project(":data-legacy"))
implementation(project(":presentation"))

// hilt
Expand Down
4 changes: 2 additions & 2 deletions android/festago/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_festago_logo"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_festago_logo_round"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Festago"
android:usesCleartextTraffic="true"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,24 @@
package com.festago.festago

import android.app.Application
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import com.festago.festago.presentation.R
import com.festago.festago.presentation.fcm.FcmMessageType
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class FestagoApplication : Application() {

override fun onCreate() {
super.onCreate()
initNotificationChannel()
// initNotificationChannel()
}

private fun initNotificationChannel() {
val channel = NotificationChannel(
FcmMessageType.ENTRY_ALERT.channelId,
getString(R.string.entry_alert_channel_name),
NotificationManager.IMPORTANCE_DEFAULT,
)
val notificationManager =
getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(channel)
}
// private fun initNotificationChannel() {
// val channel = NotificationChannel(
// FcmMessageType.ENTRY_ALERT.channelId,
// getString(R.string.entry_alert_channel_name),
// NotificationManager.IMPORTANCE_DEFAULT,
// )
// val notificationManager =
// getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
// notificationManager.createNotificationChannel(channel)
// }
}
4 changes: 4 additions & 0 deletions android/festago/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ plugins {

id("org.jetbrains.kotlin.plugin.serialization") version "1.8.10" apply false
}

allprojects {
apply(plugin = "org.jlleitschuh.gradle.ktlint")
}
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ class ReservationTicketRetrofitServiceTest {
remainAmount = 212,
),

),
),
),
ReservationStageResponse(
id = 2,
Expand Down
1 change: 1 addition & 0 deletions android/festago/presentation-legacy/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
134 changes: 134 additions & 0 deletions android/festago/presentation-legacy/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties

plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
id("kotlin-parcelize")
id("kotlin-kapt")
id("org.jlleitschuh.gradle.ktlint")
id("com.google.dagger.hilt.android")
}

android {
namespace = "com.festago.festago.presentation"
compileSdk = 34

defaultConfig {
minSdk = 28

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

buildConfigField("String", "KAKAO_NATIVE_APP_KEY", getSecretKey("kakao_native_app_key"))
resValue("string", "kakao_redirection_scheme", getSecretKey("kakao_redirection_scheme"))
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro",
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}

dataBinding {
enable = true
}
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().all {
kotlinOptions {
jvmTarget = "17"
}
}

dependencies {
implementation(project(":common"))
implementation(project(":domain"))

// android
implementation("androidx.core:core-ktx:1.10.1")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.9.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")

// hilt
implementation("com.google.dagger:hilt-android:2.44")
kapt("com.google.dagger:hilt-android-compiler:2.44")
// hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" }
implementation("com.google.dagger:hilt-android-testing:2.44")

// recyclerview
implementation("androidx.recyclerview:recyclerview:1.3.1-rc01")

// lifecycle
implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")

// glide
implementation("com.github.bumptech.glide:glide:4.15.1")

// retrofit
implementation("com.squareup.retrofit2:retrofit:2.9.0")

// junit4
testImplementation("junit:junit:4.13.2")
testImplementation("androidx.test.ext:junit:1.1.5")
testImplementation("androidx.test:runner:1.5.2")

// assertJ
testImplementation("org.assertj:assertj-core:3.22.0")

// android-test
testImplementation("androidx.arch.core:core-testing:2.2.0")

// mock
testImplementation("io.mockk:mockk-android:1.13.5")

// espresso
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation("androidx.test.ext:junit:1.1.5")

// coroutine
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.4")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4")

// viewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
implementation("androidx.activity:activity-ktx:1.7.2")
implementation("androidx.fragment:fragment-ktx:1.6.0")

// zxing
implementation("com.journeyapps:zxing-android-embedded:4.3.0")

// firebase
implementation("com.google.firebase:firebase-messaging-ktx:23.4.0")

// swiperefreshlayout
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")

// kakao login
implementation("com.kakao.sdk:v2-user:2.12.0")

// turbine
testImplementation("app.cash.turbine:turbine:1.0.0")

// inApp Update
implementation("com.google.android.play:app-update-ktx:2.1.0")

// splash
implementation("androidx.core:core-splashscreen:1.1.0-alpha02")
}

fun getSecretKey(propertyKey: String): String {
return gradleLocalProperties(rootDir).getProperty(propertyKey)
}
21 changes: 21 additions & 0 deletions android/festago/presentation-legacy/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 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
64 changes: 64 additions & 0 deletions android/festago/presentation-legacy/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application>
<activity
android:name=".ui.splash.SplashActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.selectschool.SelectSchoolActivity"
android:exported="false" />
<activity
android:name=".ui.studentverification.StudentVerificationActivity"
android:exported="false" />
<activity
android:name=".ui.signin.SignInActivity"
android:exported="false" />
<activity
android:name=".ui.reservationcomplete.ReservationCompleteActivity"
android:exported="false" />
<activity
android:name=".ui.home.HomeActivity"
android:exported="false" />
<activity
android:name=".ui.ticketreserve.TicketReserveActivity"
android:exported="false" />
<activity
android:name=".ui.ticketentry.TicketEntryActivity"
android:exported="false" />
<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="oauth"
android:scheme="@string/kakao_redirection_scheme" />
</intent-filter>
</activity>
<activity
android:name=".ui.tickethistory.TicketHistoryActivity"
android:exported="false" />

<service
android:name=".fcm.TicketEntryService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>

</manifest>
Loading

0 comments on commit 5e52130

Please sign in to comment.