TIL

[TIL] Kotlin 단일 Activity ( Single Activity )

정상호소인 2023. 11. 19. 22:27

Topic =  단일 Activity를 왜 사용하는지에 대해서 학습해보자

 

 


 

단일 액티비티 ( Single Activity ) 

 

[ 단일 액티비티 개념 및 특징 ]

  • 단일 액티비티 아키텍쳐는 Android 앱 개발에서 일반적으로 사용되는 패턴으로 앱의 모든 화면을 하나의 액티비티 내부에서 액티비티의 레이아웃의 Fragment 컨테이너를 통해 여러 Fragment를 화면 전환과 상호작용을 통해 관리하는 것을 말한다.
  • Fragment 간의 화면 전환은 Fragment Manager의 Transaction 을 통해 이루어지며 Fragment 추가, 제거, 교체, 숨기기 등의 작업을 수행하며 setCustomAnimation() 메서드를 사용하는 등 화면 전환 애니메이션 효과를 적용할 수 있다.
  • 하나의 액티비티 내부에 Fragment가 여러개가 존재하고 있는 것이므로 액티비티를 매개체로 Fragment 끼리의 데이터를 데이터를 공유할 수 있다. ( Shared ViewModel )
  • 하나의 화면 안에서 부분적인 UI 요소를 그릴 수 있다 예를 들어 테블릿의 경우 하나의 Activity 화면 안에서 여러 Fragment를 같이 띄워줄 수 있게 된다.

https://developer.android.com/guide/components/fragments?hl=ko

 

 

[ 단일 액티비티 장점 ]

  • 향상된 성능
    • 여러 인스턴스를 관리하는 데 드는 *오버헤드가 적기 때문에 성능이 향상될 수 있다.
  • 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