본문 바로가기

안드로이드

[9]Fragment에 대한 기본적인 고찰

1)유래

안드로이드 태블릿이 나오면서, 해상도의 차이(화면크기)를 극복하기 위해 FragMent라는 레이아웃이 나왔다.

 

모바일 에서 보여주던 방식으로 화면을 꽉채우는 형식의 뷰를 제공한다면,  태블릿의 큰화면 생산성이 떨어지게 되는것이다. 그래서 화면을 Fragment를 조합하여 보여주게 되었다.

 

 

 

 

 

2) 장점

[ 데이터 공유 ]

Activity를 여러개 사용하여 앱을 구성할시 , Intent를 이용해서 특정class 를 지정해둔후 데이터들을 전송하였다. 이 때, 여러개 액티비티 사이의 데이터전송은 까다로워지고 , 복잡해진다.

하지만, Fragment 는 한개의 Activity를 부모로 두고 여러개의 자식 Fragment가 존재하게 되므로, 

    즉, 하나의 Activity Context안에 Fragment들이 존재하므로 Fragment 간의 데이터 공유가 쉬워진다.

 

[ UserInterface 구성의 질적 향상 ]

탭과 드롭다운 리스트를 이용한 화면 전환 구성이 쉽다.

 ViewPager 와 FragmentPagerAdapter를 이용하여 Swipe 스타일 구성이 쉽다.

 

[ LifeCycle 관리 ]

Backstack 관리 ( 뒤로가기를 눌러 이전 프래그먼트,액티비티로 돌아가는 기능 ) 가 쉽다.

(Transaction)

 

만약 뷰(View)로 화면을 분할 또는 중첩하여 구성하였다면 Backstack 관리는 사실상 불가능하다.

Backstack관리가 필요없는 App이라면 View만으로 구성하면 더 좋은 효율을 낼 수 있다.

그리고 진행하였던 Activity로부터 돌아왔을 때 startActivityForResult를 통해 Result를 바로 받을 수 있으므로 재사용하여 구성하기 쉽다. 뷰는.. 직접 받을 수 없으므로 Activity를 거쳐 전달받아야 하고 재사용이 어렵거나 손이 많이 가게된다.

 

 

 

 

 

3) 단점

 > 모든 곳에 적용하기에는 코드적인 오버헤드가 크다, 그에비해 커스텀 뷰를 사용하면 가볍고 만들기 쉽다.

 

  > Mini Activity라 볼 수 있으며 생성에 드는 비용이 매우 크다. 메모리 및 속도면에서 모두 부하가 있다.