From 4b3e1519c8c73af9cf4422b49f3807131edfa7b0 Mon Sep 17 00:00:00 2001 From: LEEMINSEO Date: Thu, 1 Aug 2024 01:55:08 +0900 Subject: [PATCH 1/4] docs: README.md --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 99676874..3b57a27e 100644 --- a/README.md +++ b/README.md @@ -1 +1,17 @@ # android-map-notification +## Step 1. Splash Screen +### 구현 기능 목록 + +1. 초기 진입 화면 추가 +2. Firebase의 Remote Config 설정 + - 서비스 상태 나타내는 매개변수 각각 등록 + - 매개변수 이름: serviceState, serviceMessage +3. 매개변수 serviceState 값 = ON_SERVICE + - 초기 진입 화면 -> 지도 화면 +4. 매개변수 serviceState 값 != ON_SERVICE + - 지도 화면 진입 X + - serviceMessage 값 -> 초기 진입 화면 하단에 표시 +5. 상태 관리 + - 서버 상태 + - UI 로딩 +6. MVVM 아키텍처 패턴 적용 \ No newline at end of file From 0bfc0ad5a4b195b82153f26aa69fbbaa498f0464 Mon Sep 17 00:00:00 2001 From: LEEMINSEO Date: Thu, 1 Aug 2024 08:02:21 +0900 Subject: [PATCH 2/4] feat: Firebase Remote Config and splash screen --- app/src/main/AndroidManifest.xml | 3 +- .../campus/tech/kakao/map/SplashActivity.kt | 44 ++++++++++++++++++ .../campus/tech/kakao/map/SplashViewModel.kt | 39 ++++++++++++++++ app/src/main/res/drawable/splash.png | Bin 0 -> 34625 bytes app/src/main/res/layout/activity_splash.xml | 41 ++++++++++++++++ 5 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/campus/tech/kakao/map/SplashActivity.kt create mode 100644 app/src/main/java/campus/tech/kakao/map/SplashViewModel.kt create mode 100644 app/src/main/res/drawable/splash.png create mode 100644 app/src/main/res/layout/activity_splash.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1bcad68b..c6757f38 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,7 @@ android:theme="@style/Theme.Map" tools:targetApi="31"> @@ -27,6 +27,7 @@ + diff --git a/app/src/main/java/campus/tech/kakao/map/SplashActivity.kt b/app/src/main/java/campus/tech/kakao/map/SplashActivity.kt new file mode 100644 index 00000000..876ec9aa --- /dev/null +++ b/app/src/main/java/campus/tech/kakao/map/SplashActivity.kt @@ -0,0 +1,44 @@ +package campus.tech.kakao.map + +import android.content.Intent +import android.os.Bundle +import android.util.Log +import androidx.activity.viewModels +import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.Observer +import campus.tech.kakao.map.databinding.ActivitySplashBinding +import campus.tech.kakao.map.view.MapActivity +import com.google.firebase.remoteconfig.FirebaseRemoteConfig +import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings + +class SplashActivity : AppCompatActivity() { + + private val viewModel: SplashViewModel by viewModels() + private lateinit var binding: ActivitySplashBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivitySplashBinding.inflate(layoutInflater) + setContentView(binding.root) + + val remoteConfig: FirebaseRemoteConfig = FirebaseRemoteConfig.getInstance() + val configSettings = FirebaseRemoteConfigSettings.Builder() + .setMinimumFetchIntervalInSeconds(0) // 개발용 + .build() + remoteConfig.setConfigSettingsAsync(configSettings) + + viewModel.fetchRemoteConfig(remoteConfig) + + viewModel.fetchSuccess.observe(this, Observer { success -> + if (success) { + if (viewModel.serviceState.value == "ON_SERVICE") { + startActivity(Intent(this, MapActivity::class.java)) + finish() + } else { + Log.d("SplashActivity", "Observed serviceMessage: ${viewModel.serviceMessage.value}") + binding.serviceMessageTextView.text = viewModel.serviceMessage.value + } + } + }) + } +} diff --git a/app/src/main/java/campus/tech/kakao/map/SplashViewModel.kt b/app/src/main/java/campus/tech/kakao/map/SplashViewModel.kt new file mode 100644 index 00000000..767a8180 --- /dev/null +++ b/app/src/main/java/campus/tech/kakao/map/SplashViewModel.kt @@ -0,0 +1,39 @@ +package campus.tech.kakao.map + +import android.app.Application +import android.util.Log +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import com.google.firebase.remoteconfig.FirebaseRemoteConfig + +class SplashViewModel(application: Application) : AndroidViewModel(application) { + + private val _serviceState = MutableLiveData() + val serviceState: LiveData get() = _serviceState + + private val _serviceMessage = MutableLiveData() + val serviceMessage: LiveData get() = _serviceMessage + + private val _fetchSuccess = MutableLiveData() + val fetchSuccess: LiveData get() = _fetchSuccess + + fun fetchRemoteConfig(remoteConfig: FirebaseRemoteConfig) { + remoteConfig.fetchAndActivate() + .addOnCompleteListener { task -> + if (task.isSuccessful) { + val serviceStateValue = remoteConfig.getString("serviceState") + val serviceMessageValue = remoteConfig.getString("serviceMessage") + + Log.d("SplashViewModel", "serviceState: $serviceStateValue") + Log.d("SplashViewModel", "serviceMessage: $serviceMessageValue") + + _serviceState.value = serviceStateValue + _serviceMessage.value = serviceMessageValue + _fetchSuccess.value = true + } else { + _fetchSuccess.value = false + } + } + } +} diff --git a/app/src/main/res/drawable/splash.png b/app/src/main/res/drawable/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a97d9de95dc40d3e38253f9cf6b6ce18d518b4 GIT binary patch literal 34625 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml new file mode 100644 index 00000000..cef6593c --- /dev/null +++ b/app/src/main/res/layout/activity_splash.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + From 24dc83e1fa8ee54c2fbde82b8f049727812c162a Mon Sep 17 00:00:00 2001 From: LEEMINSEO Date: Thu, 1 Aug 2024 08:04:28 +0900 Subject: [PATCH 3/4] refactor: change package structure_SplashActivity.kt and SplashViewModel --- app/src/main/AndroidManifest.xml | 2 +- .../java/campus/tech/kakao/map/{ => view}/SplashActivity.kt | 4 ++-- .../campus/tech/kakao/map/{ => viewmodel}/SplashViewModel.kt | 2 +- app/src/main/res/layout/activity_splash.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename app/src/main/java/campus/tech/kakao/map/{ => view}/SplashActivity.kt (94%) rename app/src/main/java/campus/tech/kakao/map/{ => viewmodel}/SplashViewModel.kt (97%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c6757f38..e3c6c84d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,7 @@ android:theme="@style/Theme.Map" tools:targetApi="31"> diff --git a/app/src/main/java/campus/tech/kakao/map/SplashActivity.kt b/app/src/main/java/campus/tech/kakao/map/view/SplashActivity.kt similarity index 94% rename from app/src/main/java/campus/tech/kakao/map/SplashActivity.kt rename to app/src/main/java/campus/tech/kakao/map/view/SplashActivity.kt index 876ec9aa..ba67900c 100644 --- a/app/src/main/java/campus/tech/kakao/map/SplashActivity.kt +++ b/app/src/main/java/campus/tech/kakao/map/view/SplashActivity.kt @@ -1,4 +1,4 @@ -package campus.tech.kakao.map +package campus.tech.kakao.map.view import android.content.Intent import android.os.Bundle @@ -6,8 +6,8 @@ import android.util.Log import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer +import campus.tech.kakao.map.viewmodel.SplashViewModel import campus.tech.kakao.map.databinding.ActivitySplashBinding -import campus.tech.kakao.map.view.MapActivity import com.google.firebase.remoteconfig.FirebaseRemoteConfig import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings diff --git a/app/src/main/java/campus/tech/kakao/map/SplashViewModel.kt b/app/src/main/java/campus/tech/kakao/map/viewmodel/SplashViewModel.kt similarity index 97% rename from app/src/main/java/campus/tech/kakao/map/SplashViewModel.kt rename to app/src/main/java/campus/tech/kakao/map/viewmodel/SplashViewModel.kt index 767a8180..c43d294b 100644 --- a/app/src/main/java/campus/tech/kakao/map/SplashViewModel.kt +++ b/app/src/main/java/campus/tech/kakao/map/viewmodel/SplashViewModel.kt @@ -1,4 +1,4 @@ -package campus.tech.kakao.map +package campus.tech.kakao.map.viewmodel import android.app.Application import android.util.Log diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index cef6593c..23828791 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -7,7 +7,7 @@ + type="campus.tech.kakao.map.viewmodel.SplashViewModel" /> From 12b791c4f7c3f75ecdc1d30492ab871374864fa2 Mon Sep 17 00:00:00 2001 From: LEEMINSEO Date: Thu, 1 Aug 2024 08:32:01 +0900 Subject: [PATCH 4/4] refactor: modify SplashActivity.kt_use Kotlin DSL style for Remote Config --- .../campus/tech/kakao/map/view/SplashActivity.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/campus/tech/kakao/map/view/SplashActivity.kt b/app/src/main/java/campus/tech/kakao/map/view/SplashActivity.kt index ba67900c..796ed2f5 100644 --- a/app/src/main/java/campus/tech/kakao/map/view/SplashActivity.kt +++ b/app/src/main/java/campus/tech/kakao/map/view/SplashActivity.kt @@ -8,8 +8,10 @@ import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer import campus.tech.kakao.map.viewmodel.SplashViewModel import campus.tech.kakao.map.databinding.ActivitySplashBinding +import com.google.firebase.ktx.Firebase import com.google.firebase.remoteconfig.FirebaseRemoteConfig -import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings +import com.google.firebase.remoteconfig.ktx.remoteConfig +import com.google.firebase.remoteconfig.ktx.remoteConfigSettings class SplashActivity : AppCompatActivity() { @@ -21,10 +23,10 @@ class SplashActivity : AppCompatActivity() { binding = ActivitySplashBinding.inflate(layoutInflater) setContentView(binding.root) - val remoteConfig: FirebaseRemoteConfig = FirebaseRemoteConfig.getInstance() - val configSettings = FirebaseRemoteConfigSettings.Builder() - .setMinimumFetchIntervalInSeconds(0) // 개발용 - .build() + val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig + val configSettings = remoteConfigSettings { + minimumFetchIntervalInSeconds = 0 + } remoteConfig.setConfigSettingsAsync(configSettings) viewModel.fetchRemoteConfig(remoteConfig)