멋쟁이 사자처럼에서 진행하는 안드로이드 앱 스쿨에서 멘토링을 받고 배운 지식들을 정리하는 글입니다.
👩💻 오늘의 할 말
어제에 이어 오늘도 멘토링을 받았습니다. 개인 멘토링은 아니었구 스터디분들과 팀 멘토링을 신청했는데 궁금한게 생겨서 팀 멘토링 후에 따로 개인 질문 시간을 요청했습니다. 어쩌다 보니까 이번주엔 멘토 세분 모두에게 멘토링을 받았네요 아주 고냥 좋아 죽어요 👼
📖 확장 함수를 사용해 권한 요청하기
제가 계속해서 찾고 찾던 확장 함수를 사용해 권한 요청하는 법을 드디어 알았습니다! 진짜 쉽고 간단한데 너무 신기하더라구요. 먼저 코드 부터 보시죠! 원리는 액티비티는 모두 Context를 가지고 있기 때문에 이를 이용해 확장 함수로 만들어주면 액티비티 내에서도 자유롭게 호출이 가능했습니다.
실제 액티비티에선 이렇게 호출할 수 있습니다. 여기서 this는 생략이 가능해요!
권한들은 따로 싱글톤 클래스에 만들어 주었습니다.
📖 repeatOnLifeCycle 파해치기
질문
repeatOnLifeCycle을 사용하면 코루틴 안에 또 다른 코루틴이 생성? 되는것일까요? 또한 StateFlow는 메모리 릭을 방지하기 위해 반드시 repeatOnLifeCycle이 동반되어야 하는지 아니면 사용하지 않아도 되는 케이스가 있는지 궁금합니당 🙂
repeatOnLifeCycle은 두 가지 매개변수를 전달 받습니다. 첫 번째 매개변수는 실행을 반복할 수명 주기 입니다. 두 번째 매개 변수는 람다식이기 때문에 { } 를 통해 코루틴 블럭을 생성합니다. repeatOnLifeCycle은 액티비티 같이 생명주기가 존재하는곳에 있는곳에서는 사용해야 안전하고 뷰 모델처럼 생명 주기에 큰 영향을 받지 않는 곳에선 사용하지 않아도 됩니다.
viewLifecycleOwner.lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {
}
}
🙇♂️ 후기
오늘도 중요한걸 배웠습니다. 이런 알기 어려운 것들을 알아갈 수 있는게 멘토링의 장점인것 같아요. 팀 멘토링 시간에 스터디에 방향성에 대해 정하게 되었습니다. 원래 제가 무언갈 주도적으로 하는 성격도 아니고 MBTI 도 특대문자 I에 내향인 비율이 거의 90%가 다되는데 스터디나 점점 공부를 하면서 뭔갈 주도적으로 해야될 필요성을 느껴서 성격을 고처먹는 중입니다. 그래서 총대매고 스터디 계획을 짰어요.
사실 스터디가 만들어진지 한 달이 넘었는데 뭔갈 특별히 하지 않았어서 이대론 안되겠다 싶더라구요. 전 제가 사람 만나는걸 싫어하는 줄 알았는데 아니였던거 같아요. 테킷을 시작하고 다른 사람들과 함께 공부하고, 스터디를 통해 또 친해지고 멘토님들과 얘기하면서 많은 것을 배우는게 정말 너무 좋은 즐겁더라구요. 나이 28먹고 이제야 사회화가 되는 느낌인데... 😭 암튼 요새 너무 즐겁네요 하하 나중에 스터디 관련한 글도 써보려 합니다 그럼 안농~
'TEKHIT ANDROID SCHOOL' 카테고리의 다른 글
[TEKHIT] 오늘의 멘토링 (1) | 2024.02.14 |
---|---|
[TEKHIT] 오늘의 멘토링 (0) | 2024.02.13 |
[TEKHIT] 오늘의 멘토링 (1) | 2024.02.07 |
[TECKHIT] Material3 Text fields (0) | 2024.01.22 |
[TECKHIT] Material3 Button (1) | 2024.01.21 |