프레그먼트의 디자인 철학(Design Philosophy)



태블릿과 같은 큰 화면에서 동적이면서 유연성있는 UI 디자인을 지원하기 위해 안드로이드 3.0(API Level 11)부터 프레그먼트를 지원한다. 태블릿은 스마트폰보다 화면 사이즈가 크기때문에 UI 요소를 통합하거나 교체할 수 있는 여유 공간이 있다. 프레그먼트는 뷰계층의 복잡한 변경을 관리하지 않고도 화면을 설계할 수 있게 해준다. 액티비티의 레이아웃을 프레그먼트 단위로 나눌 수 있게되면서 우리는 런타임시에도 액티비티의 외관을 변경할 수 있고 또한, 변경된 내용을 액티비티가 관리하는 백스택으로 보존할 수도 있게 되었다.


예를 들면, 뉴스 앱에서 왼쪽 프레그먼트에는 뉴스 목록을, 오른쪽에는 해당 기사 내용을 보여줄 수 있다. 자세히 설명하면 두 프레그먼트를 하나의 액티비티에서 나란히 보여주고 각각의 프레그먼트는 자신의 생명주기 콜백함수를 정의해서 사용자 입력 이벤트를 직접 처리할 수 있다. 그래서, 아래 그림과 같이 한 액티비티에서는 뉴스 목록을 보여주고 다른 액티비티에서 선택된 뉴스 기사를 보도록 구현하는 대신 사용자는 목록을 선택하고 같은 액티비티에서 바로 기사를 읽도록 구성할 수 있다.



프레그먼트로 정의된 두 개의 UI 모듈이 태블릿에서는 결합된 형태로, 스마트폰에서는 분리된 형태로 보여주는  예시

[이미지 출처 : http://developer.android.com/guide/components/fragments.html#Design]


앱이 태블릿에서 실행될 때는 액티비티A에 두 개의 프레그먼트를 넣을 수 있다. 반면에 스마트폰에서는 공간의 여유가 없기 때문에 액비티비A에는 뉴스목록을 위한 프레그먼트만 넣고 사용자가 항목을 선택했을 때 액티비티B를 띄우면서 그 안에 뉴스 기사를 위한 프레그먼트를 넣도록 구현한다. 결과적으로 앱은 다양한 결합방법을 통해 프레그먼트를 재사용해서 태블릿과 스마트폰을 동시에 지원할 수 있다.



[원문보기]


Posted by 데브로망스

댓글을 달아 주세요

  1. 어제전화받은사람 2014.01.10 18:09  댓글주소  수정/삭제  댓글쓰기

    ㅋㅋㅋ

  2. 데브로망스 2014.01.10 18:30 신고  댓글주소  수정/삭제  댓글쓰기

    @어제전화받은그사람 웰컴! ㅎㅎㅎ