✨ 오늘 공부한 것
- 알고리즘 삼각 달팽이 풀이 - 개인 과제 마무리 - 실시간 강의 듣기
*한은행 앱 화면이다. 상단에 결제/뱅킹, 멤버십, 전자문서 등 탭 메뉴가 있는 걸 볼 수 있다. 우리는 이런 탭 메뉴를 누를 때 빠릿빠릿하게 중간 화면만이 바뀌는 동작을 기대하고, 실제로 많은 앱들이 그렇게 동작한다.
만약 이걸 액티비티 여러 개로 구현한다면 어떻게 될까? 액티비티는 하나의 화면을 의미하며 화면 전체가 변경되기 때문에 일단 느리다. 그리고 각각의 탭마다 액티비티를 만들게 되면 파일도, 코드도 더 복잡해질 수 밖에 없다.
그래서!
프래그먼트를 사용해 액티비티의 일부분만을 슉슉 바꾸는 것이다. 조금 더 정리된 문장으로 얘기하면 다음과 같다.
액티비티와 프래그먼트는 데이터 전달 방식이 다르다. 우리가 액티비티에서 데이터를 전달할 때, 메시징 객체인 Intent를 사용했었다. 프래그먼트는 액티비티 매니저에서 메소드를 통해 데이터를 전달한다. 예를 들어, Bundle이나 Fragment Result API, ViewModel(Shared ViewModel), Coroutine EventBus 등의 방법이 있겠다.
사전 캠프 때 MBTI 테스트 앱을 만들어보며 잠깐 사용했었는데, 당시에는 아직 안드로이드의 ㅇ자도 모르는 상태라 코드만 보고 따라쳤었다. 이번에 실시간 강의와 영상 강의를 봤더니 조금 이해되는 것 같기도..? 화이팅