유데미 STARTERS(스타터스) 취업 부트캠프 2기 - 프론트엔드(Android, 안드로이드) 7주차 학습 일지

Delight Yoon·2022년 11월 27일
1

웅진X유데미 STARTERS

목록 보기
9/16
post-thumbnail

Week 7 - 스프린트 1 시작


팀 프로젝트 첫 번째 스프린트 기간이 시작되었다.

너무 오랜만에 프로젝트를 하는 것이라 잘 해내지 못할까봐 떨리기도 하였고, 조금은 설레기도 하였다.

이번 주는 주로 GIthub를 사용하여 협업하는 과정을 익히고, 스프린트 1에서 진행할 이슈들을 뽑았으며, 조금의 이슈를 해결해가는 과정이 있었다.

우선 나를 포함한 우리 팀 프론트엔드(안드로이드)는 첫 스프린트에서 서버 API가 다 구현되지 않았기 때문에 API 구현을 기다리기까지는 UI쪽으로 작업을 하기로 하였고, 더미 데이터를 사용하여 화면에 출력해보는 정도까지 구현을 목표로 하였다.

Splash Screen

이번 주차에 진행하였던, 스플래시 스크린을 제작하는 이슈를 진행하였다.

Android12 부터는 구글에서 새로운 Splash Screen API 를 제공한다.
( 대신 이 API를 적용하기 위해서 minSdk가 31이상이어야 한다. )

지금까지는 주로, 레이아웃 파일과 액티비티를 생성하고, Handler를 사용하여 지연시간을 설정시켜 스플래시 화면을 보여주는 방식을 사용하였다.

하지만, 이러한 부분은 고정된 지연시간동안 모든 사용자의 스플래시 화면을 지연시켜야하고, 사용자 친화적이지 않다. (추가적으로 Handler는 Deprecated 될 예정이다.)

사용자들은, 초기 데이터를 불러오는 과정을 마치면 스플래시 화면을 더 길게 마주할 필요가 없다. 초기 데이터를 처리하는 과정이 끝나는 즉시, 메인화면으로 넘어가야 할 필요가 있다. 따라서 이 API를 사용하면 다음과 같은 이점을 얻을 수 있는 것이었다.

이러한 API를 처음 사용하는 과정에서, 다음과 같은 어려움들이 있었다.

  1. 스플래시 화면 이 후, 앱이 종료되거나 다음 화면으로 넘어가지 않았었다.
Manifest 파일의 theme 설정이 문제였다.

<application> 
	android:theme = "프로젝트의 theme"
</application> 

<activity>
	스플래시 액티비티의 android:theme = "새로 생성한 스플래시 theme"
</activity>

다음과 같이 설정해주고, 스플래시 이 후 보일 화면의 테마를 지정하는 postSplashScreenTheme 을 프로젝트의 Theme으로 지정해주면 해결이 된다.

  1. 스플래시 아이콘이 전체가 보이지 않고 잘려서 보였다.
Vector Asset 파일의 path 태그들을 <group> </group> 태그를 묶어서 해결하였다.

 <group
      android:scaleX="0.6"
      android:scaleY="0.6"
      android:translateX="120"
      android:translateY="140"
      android:pivotX="12"
      android:pivotY="12">
      
      <path
      	...
        	/>
            
      <path
      	...
        	/>
            
            
       <path
      	...
        	/>
      
 </group>

다음과 같은 scale X,Y , translate X,Y , pivot X,Y 속성을 조정하며 아이콘의 위치를 조정해보면 해결할 수 있을 것이다.

Custom Dialog

다이얼로그를 만드는 과정이 포함된 이슈를 진행 중, 다음과 같이 커스텀 레이아웃을 만들어 다이얼로그를 적용해보려고 하였는데 background drawable이 적용되지 않았었다.

다음과 같은 코드를 다이얼로그 뷰에 추가해주었더니 background가 적용이 되었다.

val dialog = findViewById() 를 사용하거나 binding을 사용하여 참조하면 된다.
dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))

마무리

이번 프로젝트를 진행하면서 위와 같은 많은 시행착오들이 있었고, Github를 사용하는 데에 많은 어려움이 있었는데, 그 때마다 혼자서도 고민해보았지만 결국 해결하지 못하고, 팀원에게 도움을 요청하여 해결을 하였다.

다음 주차에서도 물론 어려움이 있을 경우, 필요에 따라서는 팀원과 같이 해결해나가야 하겠지만, 좀 더 주도적으로 문제들을 해결해보고자 한다.

회원 쪽 로그인, 회원가입 UI는 완성되었지만, 아직까지 서버와 연동하여 사용자 데이터를 암호화하고 저장하는 과정이 완성되지 않아 조금 불안한 부분이 있다. 다음 주 금요일에 이번 스프린트 1을 데모하게 되는데 이 전까지는 계획했던 이슈들을 모두 해결하고 회원부분을 무조건 완성해야 할 것같다는 생각이 든다.. 내일부터는 좀 더 박차를 가해야겠다 :)


💡 본 후기는 유데미-웅진씽크빅 취업 부트캠프 2기 - 프론트엔드&백엔드 과정 학습 일지 리뷰로 작성되었습니다.

profile
Yoon's Dev Blog

2개의 댓글

comment-user-thumbnail
2022년 11월 27일

글 잘 읽었습니다~ splash screen이 피땀눈물로 젖어있네요

1개의 답글