Topic = 단일 Activity를 왜 사용하는지에 대해서 학습해보자
단일 액티비티 ( Single Activity )
[ 단일 액티비티 개념 및 특징 ]
- 단일 액티비티 아키텍쳐는 Android 앱 개발에서 일반적으로 사용되는 패턴으로 앱의 모든 화면을 하나의 액티비티 내부에서 액티비티의 레이아웃의 Fragment 컨테이너를 통해 여러 Fragment를 화면 전환과 상호작용을 통해 관리하는 것을 말한다.
- Fragment 간의 화면 전환은 Fragment Manager의 Transaction 을 통해 이루어지며 Fragment 추가, 제거, 교체, 숨기기 등의 작업을 수행하며 setCustomAnimation() 메서드를 사용하는 등 화면 전환 애니메이션 효과를 적용할 수 있다.
- 하나의 액티비티 내부에 Fragment가 여러개가 존재하고 있는 것이므로 액티비티를 매개체로 Fragment 끼리의 데이터를 데이터를 공유할 수 있다. ( Shared ViewModel )
- ⭐하나의 화면 안에서 부분적인 UI 요소를 그릴 수 있다 예를 들어 테블릿의 경우 하나의 Activity 화면 안에서 여러 Fragment를 같이 띄워줄 수 있게 된다.
[ 단일 액티비티 장점 ]
- 향상된 성능
- 여러 인스턴스를 관리하는 데 드는 *오버헤드가 적기 때문에 성능이 향상될 수 있다.
- Acitivty 구성요소들 간의 데이터 이동이 용이하다.
- SharedViewModel을 사용하여 Fragment 간의 데이터 이동이 가능하다
- 화면 전환을 효과적으로 제어할 수 있다.
- Fragment는 Activity 내에서 동작하며, Activity 보다 화면 전환이 가볍고 유연하게 사용할 수 있다.
- Activity간의 화면 전환보다 적은 메모리를 소모하기 때문에 애니메이션 및 UI 업데이트가 더 부드럽다.
- Fragment View의 재사용과 상태 관리가 용이하다.
- 모든 UI 구성 요소가 한 곳에 있기 때문에 코드베이스가 더 체계화될 수 있다.
[ 오버헤드 ( Overhead ) ]
- 오버헤드란 어떤 작업을 수행하기 위해 추가적으로 소비되는 비용, 시간, 자원 등을 의미하는 것으로 Single Activity의 경우 여러 Fragment가 하나의 Activity 내에서 관리되기 때문에 Activity가 메모리를 할당받을 때 함께 할당받게 되는데 Multiple Activities의 경우 Android에서는 각 Activity마다 메모리를 할당해야 하므로 전체적으로 더 많은 메모리가 사용될 수 있다.
[ A. 오늘 복습한 내용 / B. 다음에 학습할 내용 ]
A. Fragment 추가 학습
B. 태블릿 화면에서 하나의 액티비티로 여러 Fragment 보이도록 하기
B. 기존에는 지도 Fragment 만 화면에 보이도록 했었는데 부가적인 요소를 가진 Fragment 추가해보기.
[오류,에러 등등]
1. 이론 공부 위주로 특별한 오류는 없었다.
[느낀 점]
1. 기존에 학습하던 캠프가 끝나서 기분이 붕 뜬 느낌이 있는 것 같은데 다시 학습에 집중하는 시간을 높이도록 해야겠다.
[Reference]
// singleActivity , multipleActivities
'TIL' 카테고리의 다른 글
[TIL] Kotlin delegate Pattern 위임자 패턴 ( by lazy, by remember ... ) (0) | 2024.01.26 |
---|---|
[TIL] Kotlin SharedViewModel 개념 (0) | 2023.11.21 |
[TIL] Github Readme 작성하기 마크다운 HTML 비교 [ 기본편 ] (2) | 2023.11.14 |
[TIL] Kotlin 의존성 주입 ( Dependency Injection ) 개념편 (2) | 2023.11.13 |
[TIL] Android 이미지 포맷 형식 ( JPEG, PNG, AVIF, SVG ) (2) | 2023.11.11 |