티스토리 뷰

안드로이드(Android)의 Fragment는 앱 개발에 항상 써 오고 있지만 왜 써야 하는지 이야기 해 보라면 잘 정리되지 않는다. 정리해 보도록 하자.

장점 : 

단점을 커버할 만한 몇가지 중요한 장점을 지니고 있다.

디바이스 차이를 다루기 위해 

태블릿은 커다란 화면을 가지고 있고 모바일에서 보여주던 그대로 보여줄 경우 넓은 화면을 제대로 활용하지 못한다는 느낌을 줄 수 있다. 때문에 이중 분할과 같은 형태로 카테고리 뷰와 컨텐츠 뷰를 보여준다던지 하는 방식으로 화면을 채워볼 수 있다. 이 때 사용할 수 있는 것이 Fragment이다. 간단히 말하자면 태블릿과 폰 간의 화면 크기 차이로 화면 영역을 Fragment로 분리하고 이를 조합하여 보여준다고 할 수 있다.

화면 사이에 데이터 전달

분리된 Activity 간에는 데이터를 전달하는 것이 어렵다. 일반적으로 인텐트에 데이터를 담아 사용해야 하는데 이 경우에는 정해진 Class만 쓸 수 있고 담을 수 있는 용량에도 제한적이다. 그러나 Fragment를 쓰면 말끔히 해결할 수 있다! Fragment는 하나의 Activity의 컨텍스트 안에 있으므로 데이터를 쉽게 공유 가능하다.

향상된 User interface 구성

탭과 드롭다운 리스트를 이용한 화면 전환 구성이 쉽다. ViewPager와 FragmentPagerAdapter를 이용하여 Swipe 스타일 구성이 쉽다.

Life Cycle 관리

Backstack 관리에 용이하다.(Transaction) 만약 뷰(View)로 화면을 분할 또는 중첩하여 구성하였다면 Backstack 관리는 사실상 불가능하다.(물론 때로는 Backstack이 필요 없기도 한데, 이러면 뷰가 가볍고 구현하기 쉬우므로 장점이 있겠다)

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

단점 : 

  • 모든 곳에 적용하기에는 코드적인 오버헤드가 크다, 그에비해 커스텀 뷰를 사용하면 가볍고 만들기 쉽다.
  • Mini Activity라 볼 수 있으며 생성에 드는 비용이 매우 크다. 메모리 및 속도면에서 모두 부하가 있다.

Reference


댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday