Top

[Android fragment를 활용한]
반응형 안드로이드 앱 UI 개발

  • 원서명Creating Dynamic UI with Android Fragments (ISBN 9781783283095)
  • 지은이짐 윌슨(Jim Wilson)
  • 옮긴이김성일
  • ISBN : 9788960776661
  • 16,800원
  • 2015년 01월 23일 펴냄
  • 페이퍼백 | 160쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 모바일 프로그래밍

책 소개

요약

안드로이드 프래그먼트(fragment)를 이용하여 기대치 높은 오늘날의 사용자들이 만족할만한 모던 안드로이드 애플리케이션을 만드는 방법을 알려주는 책이다. 스와이프 기반(swipe-based)의 화면 이동과 같은 화려한 내비게이션을 포함하는 방법뿐만 아니라 스마트폰이나 최신 기종의 태블릿에서 애플리케이션이 적합하게 보이게 하는 적응형(adaptive) UI를 배울 수 있다.

이 책에서 다루는 내용

■ 프래그먼트의 역할과 기능

■ 안드로이드 스튜디오의 프래그먼트 지향적인 특징

■ 스마트폰과 태블릿에 효과적으로 작동하는 앱 UI 제작

■ 스와이프 기반의 화면 이동 등 프래그먼트를 활용해 만드는 매력적인 내비게이션

■ ListFragment와 DialogFragment처럼 특별한 목적을 가진 프래그먼트 클래스

■ FragmentTransaction 클래스를 이용한 동적인 프래그먼트 제어

■ 프래그먼트 간의 통신에 적합한 애플리케이션 디자인

■ 프래그먼트의 생성과 생명주기의 효율적 관리

■ 프래그먼트를 이용한 스레드 간 UI 제어

■ 싱글 액티비티에서 동작하는 멀티스크린 UI

이 책의 대상 독자

안드로이드 프로그래밍의 기본을 이해하고 애플리케이션의 외관이나 사용성을 향상시키고 싶은 모두를 위한 책이다. 또한, 좀 더 상호작용적인 사용자 경험(UX)을 만들고 싶거나, 동적으로 적응력 높은 UI를 만들고 싶거나, 하나의 앱으로 태블릿과 스마트폰을 더 잘 지원하게 하고 싶거나, 앱 UI 관리의 복잡도를 낮추고 싶거나, 단순히 당신의 UI 디자인 철학을 넓혀보고 싶은 분들에게 적합한 책이다.

이 책의 구성

1장, ‘프래그먼트와 UI 모듈화’에서는 프래그먼트와 UI 모듈화의 개념 그리고 모듈화된 UI 개발 시 프래그먼트의 역할을 소개한다. 1장에서 간단한 프래그먼트의 제작과 액티비티 속에서 프래그먼트를 정적으로 사용하는 것을 보여준다.

2장, ‘프래그먼트와 UI 유연성’에서는 디바이스 레이아웃에 따른 차이점을 해결하기 위해 1장에서 소개한 개념을 기반으로 한다. 2장은 다양한 디바이스 폼 팩터 지원을 위해 적응력 있는 액티비티 레이아웃 정의를 사용하는 방법을 설명한다. 이를 위해 현재의 디바이스 UI 요구사항을 기반으로 적은 수의 프래그먼트가 자동으로 위치를 재조정할 것이다.

3장, ‘프래그먼트의 생명주기와 특수성’에서는 액티비티에서의 프래그먼트 생명주기의 관계에 대해서 논하고 생명주기의 다양한 지점에서 적절한 프로그래밍 액션을 보여준다. 특별한 목적의 프래그먼트 클래스인 ListFragment와 DialogFragment를 소개하고 그들의 행동을 보여준다. 또한, 액티비티 생명주기에서의 행동에서 표준 프래그먼트와의 차이점을 깊이 있게 이해할 수 있다.

4장, ‘프래그먼트 트랜잭션’에서는 싱글 액티비티 내에서 다양한 화면을 만들 방법을 설명하기 위해 프래그먼트 트랜잭션을 이용해 동적으로 프래그먼트를 추가하고 삭제하는 것을 보여준다. 뒤로가기 버튼과 디바이스 특성의 차이에 따른 동적인 멀티 프래그먼트 UI 구현까지 다룬다.

5장, ‘프래그먼트로 다채로운 내비게이션 만들기’에서는 앞서 만든 모든 것을 종합해 다채로운 내비게이션 기능을 통해 유저의 경험을 향상할 수 있도록 프래그먼트를 사용하는 방법을 보여준다. 특히 스와이프 기반의 페이지 전환, 드롭다운 리스트 내비게이션을 통한 직접적인 화면 접근, 탭을 통한 무작위 화면 접근을 포함한 다양한 내비게이션 기능 구현방법을 이야기한다.

저자/역자 소개

저자 서문

이 책은 기대치 높은 오늘날의 사용자들이 만족할만한 모던 안드로이드 애플리케이션을 만드는 방법을 알려준다. 스와이프 기반(swipe-based)의 화면 이동과 같은 화려한 내비게이션 기능을 넣고, 저가의 스마트폰이나 최신 기종의 태블릿 등 어디에서나 멋진 애플리케이션으로 동작하게 하는 적응형(adaptive) UI를 배울 수 있다.

또한, 이 책에서는 안드로이드 UI 디자인에서 프래그먼트의 영향력을 강조하는 한편, 수많은 보편적 UI의 부담을 줄이고 풍부한 UI 반응을 제공하기 위한 새로운 방법인 프래그먼트의 역할에 집중했다. 다양한 디바이스에서 저절로 모양이 적응하는 UI를 만들기 위한 프래그먼트 사용법도 익히며, 프래그먼트 트랜잭션의 역할과 안드로이드 백 스택의 동작에 관해서도 자세히 알 수 있다. 이와 같은 이해를 바탕으로, ListFragment와 DialogFragment처럼 특화된 프래그먼트 관련 클래스뿐만 아니라 스와이프 기반의 화면 이동과 같은 화려한 내비게이션을 살펴보게 된다.

저자 소개

짐 윌슨(Jim Wilson)

안드로이드, iOS, 마이크로소프트 플랫폼을 전문 컨설팅하는 주식회사 JW 헤지호그(JW Hedgehog)의 대표이사다. 거의 30년 가까이 소프트웨어 엔지니어링 경력을 갖고 있으며 지난 13년간은 모바일 디바이스와 지역 기반 솔루션 제작에 집중했다. 그 후 약 10년간 마이크로소프트 디바이스 애플리케이션 개발 MVP로 활동했고, 지금은 안드로이드와 iOS 애플리케이션 개발에 몰두하고 있다.

소프트웨어 개발자들을 가르치고 조언하는 것에 열정이 있으며 플루럴사이트Pluralsight(http://training.jwhh.com)에 정기적으로 안드로이드와 관련된 교육자료를 기부하는 온라인 개발 교육의 선도자라 할 수 있다. 30편이 넘게 디바이스 애플리케이션 개발에 관한 저술을 했고 몇 개의 단체를 위해 모빌리티(mobility)와 스마트 클라이언트 커리큘럼을 개발하고 있다. AnDevCon, Microsoft Professional Developers Conference, Tech Ed, VS Live, Mobile and Embedded Developers Conference를 포함한 다양한 산업의 컨퍼런스에서 그의 연설을 찾을 수 있을 것이다.

짐은 아내와 몇 마리 고양이와 함께 플로리다 셀러브레이션에 살고 있다(월트 디즈니 월드와 고작 3마일 떨어져 있다). 그의 블로그(http://blog.jwhh.com)에서 모바일 소프트웨어 개발 이슈에 관한 다양한 이야기뿐만 아니라 디즈니 월드 가까운 곳에 사는 즐거운 인생에 대해서도 찾아볼 수 있다. 연락하고 싶다면 androidtraining@jwhh.com로 이메일을 보내면 된다.

옮긴이의 말

요즘 개발자들은 공부해야 할 것이 정말 많다. 하루가 멀다 하고 쏟아져 나오는 새로운 기술과 언어들은 멋지고 훌륭하지만, 개발자들에게는 좌절을 안겨주기도 한다. 심지어 방금 학원수강을 마친 초급개발자와 수년의 경력이 있는 경력개발자들이 신기술 앞에서는 별반 다르지 않음에 미래를 걱정하기도 한다. 이런 걱정이 있는 친구들을 볼 때면 장인정신(?)을 발휘할 수 있는 다른 분야를 추천한다는 농담 아닌 농담을 한다. 하지만, 나는 호기심 인자를 지닌 개발자들의 세상이 온다고 믿고 있다. 순수과학에만 호기심을 가진 사람이 필요한 것이 아니라 응용개발자들에게도 새로운 기술에 대한 호기심이 필요하고 이것이 능력을 평가하는 또 다른 요소가 되리라 생각한다.

그 친구들 말처럼 안드로이드 개발에서도 똑같은 기술로 평생 먹고살 수 있으면 얼마나 좋을까? 하드웨어와 IT는 발전하고 있고 이에 덩달아 올라가는 소비자의 눈높이를 채워주기 위해 우리는 공부를 계속해야 한다. 사실, 내 경우 기본서 한 권을 본 후 직접 부딪쳐보는 막무가내 스타일이다. 안드로이드 기본서에서도 프래그먼트의 언급을 본 적은 있었지만, 그 두꺼운 책을 보고 프래그먼트의 중요성을 기억하는 사람이 얼마나 될까? 각설하고, 한때 나는 프래그먼트의 중요성을 몰랐기 때문에 통일한 콘텐츠로 태블릿과 스마트폰의 다른 두 개의 앱을 만들었고 그 뒤의 참사는 더 언급하지 않겠다.

이 책은 안드로이드 기본서를 한 번이라도 읽어보고 직접 안드로이드 앱을 만들어본 경험이 있는 사람들에게 매우 유용할 것으로 생각한다. 물론 나처럼 실수한 경험이 있는 사람이라면 더욱 추천한다.

옮긴이 소개

김성일

전자공학을 전공했지만, 소프트웨어에 대한 호기심이 많다. 대학 시절 프리랜서로 공공기관 및 기업 SI 프리랜서를 하며 실무형으로 경험을 쌓았다. 디자인에도 관심이 많아 웹디자이너 생활도 했으며 중소기업청 예비기술창업 중점과제에 선정되어 ‘모바일 광고 플랫폼’ 스타트업 대표로서 활동했다. 현재는 삼성SDS 연구소에서 신사업 솔루션 개발에 박차를 가하고 있다. ‘모든 것은 하나로 통한다’는 신념으로 다양한 경험하기를 좋아하며, 언젠가 올 그 날을 위해 항상 준비하고 공부하는 중이다.

목차

목차
  • 1장. 프래그먼트와 UI 모듈화
    • UI 제작에 관한 새로운 접근의 필요성
      • 프래그먼트의 폭넓은 플랫폼 지원
      • 일반적인 안드로이드 태스크를 간단하게 하는 프래그먼트
      • 프래그먼트와 액티비티의 관계
    • 프래그먼트로의 전환
      • 액티비티 지향적인 낡은 생각
        • 액티비티의 외형 정의
        • 액티비티 UI 나타내기
      • 프래그먼트 지향적인 새로운 생각
        • 프래그먼트 레이아웃 리소스 제작
        • 프래그먼트 클래스 제작
        • 프래그먼트 사용을 위한 액티비티 수정
    • 요약

  • 2장. 프래그먼트와 UI 유연성
    • 유연한 UI 제작
      • 동적 프래그먼트 레이아웃 선택
        • 대안적인 레이아웃 리소스 추가
        • 스크린 사이즈로 프래그먼트 레이아웃 다루기
        • 중복 제거
      • 유연성을 위한 프래그먼트 디자인
        • 견고한 결합의 회피
        • 프래그먼트 관계 추상화
        • 프래그먼트 실행의 캡슐화
        • 느슨하게 조각들을 연결하기
    • 예상치 못한 상황에 대비한 프래그먼트 보호
      • 레이아웃 리소스의 발전
      • 책 상세설명을 위한 액티비티 생성
      • MainActivity 클래스를 적응력 높게 만들기
    • 요약

  • 3장. 프래그먼트의 생명주기와 특수성
    • 프래그먼트 생명주기의 이해
      • 프래그먼트 설정과 디스플레이
        • 메소드 이름 혼동 피하기
      • 프래그먼트의 숨기기와 해제
      • 사용 가능한 리소스의 최대화
        • 프래그먼트 상태 관리
    • 특별한 목적의 프래그먼트 클래스
      • 리스트 프래그먼트
        • 데이터와 리스트의 연결
        • 디스플레이로부터 데이터 분리
      • DialogFragment
        • 스타일
        • 레이아웃
        • DialogFragment 디스플레이
        • 이벤트 핸들링
        • 다이얼로그 정체성
    • 요약

  • 4장. 프래그먼트 트랜잭션
    • 의도적인 스크린 관리
    • 동적 프래그먼트 관리
      • 트랜잭션 변화의 실행 유보
      • 프래그먼트 추가와 삭제
      • 뒤로가기 버튼 지원
    • 유연한 레이아웃 제작
      • 동적 프래그먼트를 지원하도록 레이아웃 업데이트
      • 다양한 기기에 적용
      • 처음부터 동적인 프래그먼트 로드
      • 프래그먼트끼리 이동하기
        • 불필요한 처리 제거
        • 즉각적인 프래그먼트 생성
        • 비동기적 생성 관리
        • 통합
    • 요약

  • 5장. 프래그먼트로 다채로운 내비게이션 만들기
    • 놀라운 신세계
    • 스와이프로 내비게이션을 재미있게 만들기
      • 스와이프 내비게이션 구현
        • 스와이프 프래그먼트 관리
        • 스와이프 UI 적용
        • 안드로이드 스튜디오와 스와이프 내비게이션
    • 액션바로 내비게이션 향상시키기
      • 탭으로 한 번에 이동하기
        • 탭 선택 관리
        • 프래그먼트를 탭에 연결하기
      • 드롭다운 리스트 내비게이션에 바로 접근하도록 제공하기
        • 프래그먼트 선택 관리
        • 내비게이션 선택사항 제공
        • 안드로이드 스튜디오와 드롭다운 리스트 내비게이션
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

2015.3.6. 수정사항

[p.103 : 4행]
ragmentTransactions -> FragmentTransactions

2015. 8. 12. 수정사항

[p.52 : 4행]
larget 스크린 사이즈 -> large 스크린 사이즈

[p.56 : 아래에서 4행(따옴표 오류)]