TIL

24.01.19

re트 2024. 1. 19. 23:00
728x90

● 오늘 한 것

[kotlin 문제 풀이]

- 미로 탈출

https://retry-thinksubox.tistory.com/173

 

[팀프로젝트 5일차]

- 기능 구현 마무리 & 예외 처리 & 발표 준비

https://github.com/WorksWhale/WorksWhale

 

● 오늘 알게 된 것

[kotlin 문제 풀이]

- BFS 두번 돌리는 것도 되는 거구나

 

[팀프로젝트 4일차]

- 마지막날 기능 구현이 가장 바빴다.

- 예외는 마지막날 많이 터진다.

- 내 기능에서 문제 생기면 잠이 안 온다.

- 예전 팀원들과도 같이 잘 지내야한다.

 

완료한 것

sharedPreference를 이용하여 마이페이지 정보가 앱을 껐다가 켜도 유지되도록 함

  • requireContext().getSharedPreferences("sp", *MODE_PRIVATE*)
  • sharedPreference에 저장할 때는 이미지 처리가 가장 어려웠다.
  • 처음에 그냥 toString하고 받아서는 toInt 했는데 어림도 없지
  • Drawable 타입의 값은 drawable 폴더 내의 리소스 아이디 값이 아니더라ㅎㅎ
  • Drawable을 Bitmap으로 변화하고 그걸 Base64 문자열로 인코딩 후 저장
  • 가지고 와서는 Base64 문자열을 Bitmap으로 디코딩하고 그걸 그냥 바로 썼다.
  • 다른 정보는 그냥 String으로 넣고 받았다.

내 정보 수정에서 EditText 눌렀을 때 마이페이지 글자 사라지면서 공간조차 없어지는 거 해결

  • 글자가 사라지는 게 아니라 아래 탭바가 올라오는 거였다.(나는 이렇게는 전혀 생각하지 못했다.)
  • 튜터님께 물어보니까 액티비티 속성에 windowSoftInputMode 설정만 하면 된다고 하셨다.
  • windowSoftInputMode를 이용하면 키보드가 나타나고 사라졌을 때의 화면 변화 방식을 지정해 줄 수 있다.
  • 기본값은 adjustUnspecified라고 한다.(시스템이 알아서 설정)
  • 나는 키보드가 올라왔을 때 화면의 크기가 변하지 않기를 원하므로 adjustPan을 사용했다.
  • 해결완료!

알림 권한 설정

  • minSdk 31이라서 따로 설정하려고 했지만 마땅한 방법이 생각나지 않아서 minSdk를 33으로 올리고 requestPermissions를 이용하여 해결했다.

뒤로가기 버튼 기능 설정

  • 기존에 하던 방식을 변경하여 콜백함수를 사용했다.
  • ContactListFragment와 MyPageFragment가 떠있는 액티비티의 상황에서는 종료 다이얼로그를 띄우고
  • ContactDetailFragment가 떠있는 상황에서는 position값을넘기면서 현재 프래그먼트를 종료시켰다.
  • 좋아요 기능을 위해 ContactDetailFragment 좋아요 변경하고 위치값 전송 → MainActivity → ViewPagerAdapter → ContactListFragment → RecyclerViewAdapter → ContactListFragment 반영
  • 아직 못 한거는 상세페이지에서 다른 앱 갔다가 돌아왔을 때 였는데 onResume에 콜백 재등록하니까 원하는대로 구현이 되었다.

무한 정리

  • 인텐트 키, 상수 값, 문자열 정리 싹하고 코드 통일성을 넣은 다음 피드백 예정

좋아요 기능 바로 연동 안 되는 거

  • getInt 두번째 매개변수에 position 추가

상세 페이지에서 알림 값이 안 나오는 문제

  • 관련 함수가 연락처 추가 뒤에 있어서 빈 값이 저장되고 있었다.
  • 함수를 앞으로 옮기니까 해결

갤러리에서 가져온 이미지 Uri 권한 문제

  • 액티비티가 종료되고 다시 실행될 때 갤러리에서 가져온 이미지를 다시 찾아 세팅하려고 하면 권한이 없다는 에러가 뜨면서 앱이 종료되었다.
  • Uri 권한은 일시적인 거라 권한 연장이 필요한 상황이었는데 방법이 생각나지 않고 팀원들이 알려줘도 너무 당황해서 잘 이해되지 않더라
  • 예전 팀원과 연결이 되어서 잘 해결이 되었다.
  • 해결방법은 context.grantUriPermission(패키지명, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)이었다.
  • 특정 이미지에 대해 패키지 전체로 Uri 권한을 주는 걸 이미지를 처음 가져올 때 실행시켰다.

이미지 저장 형식 변경

  • 기존에 String으로 저장하던 걸 Uri로 변경했다.
  • Drawable을 Uri로 변환할 수 있었다.
  • Koil, Glide같은 라이브러리를 쓰는 방법도 있지만 나는 Uri.parse를 사용했다.
  • 그 안에는 Drawable 폴대 내의 이미지 경로를 쭉 쓰면 되는 거였다.
  • 그렇게 Drawable과 Uri를 따로 체크할 필요가 사라졌다.

● 오늘 총평

금요일 마지막 날 잘 지나갈 줄 알았지만 아니었다...

저녁이 되서야 터지는 문제들로 마음이 어지러웠지만 예전 팀원들 도움으로 잘 해결했다.

역시 인간관계가 중요하다.

영상만 찍으면 마무리라 그래도 마음이 편하다.

잠은 자자...

 

 

반응형

'TIL' 카테고리의 다른 글

24.01.23  (1) 2024.01.23
24.01.22  (0) 2024.01.22
24.01.18  (0) 2024.01.18
24.01.17  (0) 2024.01.17
24.01.16  (1) 2024.01.16