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
프래그먼트 | Android 개발자 | Android Developers
A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section
developer.android.com
[안드로이드] 싱글액티비티 구조를 언제 쓰면 좋을까?
미리 보는 결론 UI 컴포넌트를 바꿔야할 때는 프래그먼트를 사용해서 앱 반응속도를 개선한다. 안드로이드 리소스 (비디오 플레이어, 브라우저 등)를 쓸 때는 액티비티를 사용한다. 필요한 스펙
collectingbuttons.tistory.com
a Single Activity vs Multiple Activities Architecture
In the dynamic world of Android app development, developers are faced with crucial decisions that shape the user experience and the…
medium.com
'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 |