● 오늘 한 것
[최종 팀 프로젝트 17일차]
- 예외처리 및 UI 수정
https://www.notion.so/5-e2be3ec1596c481d80a0d1ed82d2a9b9
[협력사 세션]
- 18:00 ~ 19:00
● 오늘 알게 된 것
[최종 팀 프로젝트 17일차]
- 바텀네비게이션뷰를 사용하여 프래그먼트들을 왔다갔다할 때 프래그먼트들이 다 재생성되더라
처음에 이거에 대해서 인지했던 타이밍은 '알림 기능을 구현할 때 onResume에 관련 함수를 넣어서 두번 실행되나?'에서부터 시작됐다. 하지만 디버깅을 해보니 프래그먼트가 완전 재생성됨을 알 수 있었다.(onCreateView부터 시작하더라...) 그래서 이런 결론을 얻게 되었고 이 부분으로 인한 원치않는 결과를 막기위해 SharedPreference를 사용했다.(혹시 이거에 대한 답을 아시는 분은 댓글 좀...)
- Splash Scree을 적용만 하기 원할 때 쓸 수 있는 편법을 알게 되었다.
개발자 콘솔에서 Splash Screen을 안 썼다고 경고창을 띄운다는 말을 콘솔을 맡고 있으신 팀원한테 들었다. 그래서 넣기로 하고 넣는데 뭔가 아이콘의 위치가 스플래시 액티비티랑 다르고 아래에 텍스트도 넣을 수가 없어서 어떻게 할까 하다가 '그냥 아이콘을 안 넣고 넘어갈 수는 없을까?'라는 생각이 들어서 구글링을 해보니까 방법이 있었다. 거기랑 완전히 동일한 방법은 아니지만 비슷하게 적용하여 적용은 했지만 티는 거~~의 안 나는 방식으로 구현했다. 아마 이제 개발자 콘솔에서는 경고창이 안 뜨지 않을까 싶다.
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/total_background</item>
<item name="windowSplashScreenAnimatedIcon">@color/total_background</item>
<item name="windowSplashScreenAnimationDuration">500</item>
<item name="postSplashScreenTheme">@style/Theme.SeoulPublicService</item>
</style>
가장 중요했던 건 windowSplashScreenAnimatedIcon 값을 그냥 색으로 준 것이다. 이렇게 배경색과 동일하게 맞춰 그냥 배경색만 나오는 것처럼 넘어가는 거다..!! 물론 아래의 windowSplashScreenAnimationDuration 값이 Splash Screen 지속시간인줄 알았지만 애니메이션을 넣었을 때 상한시간이란 걸 알고 약간 아쉬웠긴 했다. 이건 API 31 이전에서도 적용될 수 있도록 라이브러리를 사용했다.
implementation("androidx.core:core-splashscreen:1.0.1")
가장 처음 실행되는 액티비티의 setContentView(binding.root) 전에 installSplashScreen()를 작성하는 것과 AndroidManifest.xml에서 액티비티의 테마에 만든 스타일을 적용시키는 것으로 마무리가 됐다.
[협력사 세션]
- 소통에 더욱 능해져야겠다.
- 한 거는 열심히 정리하고 모르는 것도 공부해서 열심히 정리하자
- 물어볼 때는 고민을 하고, 할말을 정리해서 가자
- 가려는 분야의 특색있는, 눈이 가는 부분을 챙겨놔야겠다.
● 오늘 총평
뭔가 오늘은 개발을 하기에 집중하기 좋은 날이 아니었다.
그래도 뭔가 알아가는 게 있었고 궁금증이 생기는 하루였기에 나쁘지 않았던 거 같다.
물론 진도는 별로 빼지 못 한 거 같긴 하다.