본문 바로가기

안드로이드 자바 코틀린 기초 지식/안드로이드 기초 지식

Activity와 Fragment

Activity : 

  • Activity는 Android의 4대 Component중 하나로 사용자에게 실제로 보이며, 사용자와 상호작용하는 화면을 말한다. Activity는 하나 이상의 View또는 ViewGroup을 반드시 가지고 있어야 하며, 한 번에 하나의 Activity만 Disaplay할 수 있다.
더보기

ViewGroup 과 View 란????

ViewGroup :

  • ViewGroup은 n개의 View를 포함할 수 있는 Container이다.
  • 우리가 자주 쓰는 레이아웃이 ViewGroup에 해당한다. ex) LinearLayout, ConstraintLayout ...

View :

  • 안드로이드에서 사용자가 눈으로 보는 모든 것은 View이다. 화면의 기본적인 컴포넌트라고 얘기 할 수 있다. TextView, ImageView, EditText, ... 등 자주 쓰는 모든 UI 관련된 컴포넌트는 View라는 클래스를 상속 받는다.

Fragment : 

  • Fragment는 간단하게 말하면 Activity + View라고 할 수 있다. View의 개념을 가지고 Activity위에 배치되지만, Activity의 개념을 가지고 그 위에 다른 VIew들을 배치할 수 있는 것이다.

Fragment가 나온 이유는 안드로이드가 여러 디바이스 (예 : 태블릿) 을 지원하면서 다양한 기기의 화면에 대응할 필요가 있어졌기 때문입니다. Fragment는 기본적으로 큰 화면에서 역동적이고 유연한 UI 디자인을 지원하는 것이 목적이었다.

 

Fragment를 사용하는 이유(장점) 

  • ​​액티비티는 무겁다. (Activity를 새로 띄우는 것 보다는 Activity 위에 Fragment를 올리는 것이 훨씬 빨리 처리되고 system resource도 적게 먹으므로 Fragment를 띄우는 것이 좀 더 가볍고, Activity는 무겁다고 표현하는 것.)
  • Activity 내에서 Fragment는 상대적으로 가볍게 추가/제거가 가능하다.
  • UI를 모듈화하여 재사용하고 화면 구성을 더욱 쉽게 할 수 있도록 도와준다.
  • Activity StackActivity를 쌓아두기보다 Fragment Backstack에서Fragment를 관리하는게 메모리 관리에서의 효율도 챙기고 화면 전환시에 Activity보다 더 순조롭다.

 

Activity Stack

Fragment의 단점:

  • 트랜잭션 내에서 문제가 발생한다면 오류 발생
  • Activity의 생명주기에 Fragment 생명주기까지 관리 필요

Fragment Activity의 차이점?

  1. Activity는 독립 활용 VS Fragment는 Activity에 종속.
  2. Activity전체화면을 차지 VS Fragment전체 화면 and 부분 (디자인에 많은 유연성 가짐)
  3. Activity는 자동적으로 스택에 넣어지고 Fragment는 트랜잭션을 통해서 요청해야 한다.

Activity 사용 예:

  • 만드려는 앱의 크기가 작고,
  • 기능이 복잡하지 않고 단순하고,
  • 스마트폰 자체에서만 사용할 것이라면 Activity

Fragment 사용 예:

  • 하나의 Activity 내에서 여러개의 화면을 구성하고 싶고,
  • 태블릿 등의 큰 화면에서 공간 낭비 없는 UI를 구성하고 싶다면 Fragment