Top

젯팩 컴포즈로 개발하는 안드로이드 UI

  • 원서명Android UI Development with Jetpack Compose: Bring declarative and native UIs to life quickly and easily on Android using Jetpack Compose (ISBN 9781801812160)
  • 지은이토마스 쿠네스(Thomas Künneth)
  • 옮긴이강경구
  • ISBN : 9791161757100
  • 30,000원
  • 2022년 12월 30일 펴냄
  • 페이퍼백 | 312쪽 | 188*235mm
  • 시리즈 : 모바일 프로그래밍

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

https://github.com/AcornPublishing/jetpack-compose

요약

젯팩 컴포즈는 안드로이드 UI 개발의 새로운 패러다임이다. 이 책은 젯팩 컴포즈를 통해 안드로이드 애플리케이션을 개발할 수 있도록 도와줄 것이다. 젯팩 컴포즈로 안드로이드를 처음 개발해보는 개발자는 물론이고, 기존에 개발한 안드로이드 애플리케이션에 젯팩 컴포즈를 적용하고자 하는 개발자에게도 유익하다.

이 책에서 다루는 내용

◆ 젯팩 컴포즈의 핵심 개념 이해
◆ 사용자 친화적이고 안정적인 UI 요소 개발
◆ 젯팩 컴포즈로 완전한 앱 만들기
◆ 기존 안드로이드 애플리케이션에 젯팩 컴포즈 추가
◆ 젯팩 컴포즈를 사용하는 앱 테스트 및 디버깅
◆ 다른 플랫폼에서의 젯팩 컴포즈 활용

이 책의 대상 독자

새로운 젯팩 컴포즈 프레임워크의 핵심 개념과 네이티브 개발의 장점을 이해하고자 하는 모든 모바일 개발자를 대상으로 한다. 코틀린 프로그래밍 언어에 대한 지식을 포함해 안드로이드 앱 개발에 대한 확실한 이해가 있다면 더욱 유익할 것이다. 책에서 다루는 개념을 효과적으로 이해하려면 기본적인 프로그래밍 지식이 필요하다.

이 책의 구성

1장, ‘컴포즈 앱 첫 빌드’에서는 여러분의 첫 번째 컴포즈 앱을 빌드하는 방법을 보여준다. 또한 컴포저블 함수와 미리 보기 같은 중요한 핵심 개념도 소개한다.
2장, ‘선언적 패러다임 이해’에서는 선언적 방식을 사용하기 전의 방식을 설명하고 오래된 접근 방식에서 오는 문제는 무엇인지 설명한다.
3장, ‘컴포즈 핵심 원칙 자세히 알아보기’에서는 젯팩 컴포즈가 의존하는 핵심 원칙을 소개한다. 이 내용은 잘 동작하는 컴포즈 앱을 작성하는 데 꼭 필요하다.
4장, ‘UI 요소 배치’에서는 제공되는 레이아웃 일부를 소개한다. 또한 커스텀 레이아웃을 구현하는 방법도 살펴본다.
5장, ‘컴포저블 함수 상태 관리’에서는 젯팩 컴포즈가 상태를 어떻게 관리하는지 살펴본다. 상태는 시간이 흐름에 따라 변할 수 있는 앱 데이터이며 컴포저블 함수는 상태를 출력하거나 변경한다.
6장, ‘조립’에서는 앞에서 배운 개념을 복습하고 앱에 포함해본다. 실제 코드로 개념을 확인하면 개념을 이해하는 데 도움이 되며 프로그램에서 이를 재사용하기가 더 쉬워진다.
7장, ‘팁, 트릭, 모범 사례’에서는 컴포즈를 사용할 때의 모범 사례를 알아본다. 여기에는 상태 유지 및 검색과 부수 효과로 불리는 동작의 사용법과 같은 주제가 포함된다.
8장, ‘애니메이션 적용’에서는 관련된 모든 API를 소개한다. 애니메이션과 트랜지션은 앱을 멋지게 만들어준다.
9장, ‘상호 운용 API 자세히 알아보기’에서는 앱 안에서 선언적 접근 방식과 명령적 접근 방식을 결합하는 전략을 살펴본다. 또한 기존 UI를 젯팩 컴포즈로 손쉽게 업데이트할 수 있는 마이그레이션 전략을 제공한다.
10장, ‘컴포즈 앱 테스트와 디버깅’에서는 컴포즈 앱을 위한 기본적인 테스트 시나리오를 소개한다. 컴포즈 앱의 사용자 기반 인터페이스 테스트는 뷰 기반의 UI 테스트와는 다르게 동작한다.
11장, ‘결론과 다음 단계’에서는 이후에 시도할 수 있는 것들을 안내하며 책을 마무리한다. 또한 젯팩 컴포즈의 미래를 예측해보고 인접해 있는 플랫폼들을 살펴보면서 어떠한 이점을 얻을 수 있을지 알아본다.

저자/역자 소개

지은이의 말

젯팩 컴포즈(Jetpack Compose)는 빠르고 아름다우며 신뢰할 수 있는 네이티브 사용자 인터페이스를 개발하기 위한 안드로이드의 새로운 프레임워크다. 선언적 접근 방식을 사용해 안드로이드 UI 개발을 단순화했을 뿐만 아니라 UI 개발 속도도 크게 개선시켰다. 젯팩 컴포즈를 실습하거나 안드로이드 애플리케이션을 개발하는 최신 방식을 적용하고자 하는 개발자에게 도움이 될 것이다. 이 책은 안드로이드 개발에 대한 기본서가 아니며 안드로이드 앱을 어떻게 개발하는지는 여러분의 지식에 달렸다.
여러분은 실습 가능한 튜토리얼과 프로젝트가 완벽히 준비돼 있는 따라 하기 쉬운 가이드를 통해 상태 호이스팅, 단방향 데이터 흐름, 상속보다 컴포지션을 활용하는 방법 같은 최신 젯팩 컴포지션의 핵심 개념을 익힐 수 있다. 또한 컴포즈를 사용해 자신만의 안드로이드 앱을 개발하는 데도 도움이 될 것이다. 테스트와 애니메이션, 기존 안드로이드 UI 툴킷과의 상호 운용 같은 개념도 다룬다.
책을 끝내고 나면 젯팩 컴포즈를 사용해 자신만의 안드로이드 앱을 작성할 수 있을 것이다.

지은이 소개

토마스 쿠네스(Thomas Künneth)

안드로이드 GDE(Google Developer Expert)며 안드로이드와 관련해 여러 국제 콘퍼런스에서 연사와 토론자로 활동해왔다. 첫 번째 안드로이드 앱은 2010년에 출시됐으며 100,000건의 다운로드 수를 기록했다. 현재 MATHEMA GmbH에서 수석 컨설턴트이자 모바일 책임자로 근무하고 있으며 소프트웨어 아키텍처와 안드로이드 개발자로서 경험을 쌓아가고 있다. 수많은 글을 기고해왔을 뿐만 아니라 독일에서 가장 많이 팔린 안드로이드 책(현재 6판)의 저자이기도 하다. 또한 다양한 오픈소스 프로젝트에도 자주 기여해왔다.

옮긴이의 말

최근 모바일 프로그래밍의 가장 뜨거운 주제를 고르라면 단연 선언적 UI라고 할 수 있다. 구글은 플러터를 통해 선언적 UI를 선보이는 데 그치지 않고 2021년 안드로이드 네이티브 UI 개발이 가능한 선언적 UI 프레임워크인 젯팩 컴포즈(Jetpack Compose)를 출시했다. 젯팩 컴포즈는 출시 이후 빠르게 성장하고 있으며 안드로이드뿐만 아니라 데스크탑, 웹은 물론 iOS 앱 개발에도 젯팩 컴포즈를 사용하는 것을 목표로 하고 있다. 이를 통해 안드로이드 개발자는 모바일 애플리케이션 개발뿐만 아니라 다른 플랫폼에서도 동일한 환경을 사용해 GUI 애플리케이션을 개발할 수 있게 될 것이다.
이 책은 젯팩 컴포즈를 처음 접하거나 빠르게 익히고자 하는 개발자를 위한 책이다. 저자는 프레임워크가 지원하는 여러 UI 컴포넌트를 소개하는 데서 그치지 않고 젯팩 컴포즈의 동작 원리는 물론, 실무에서 컴포즈를 어떻게 적용할 수 있는지, 기존 View 기반의 애플리케이션에 컴포즈를 어떻게 적용할 수 있는지도 설명하고 있다. 이를 통해 단순히 책을 읽는 데 그치지 않고 바로 실무에서 적용할 수 있게 도와준다.
저자는 빠르게 발전하는 젯팩 컴포즈 버전에 맞춰 예제를 꾸준히 업데이트하면서 독자에게 최신 정보를 주고자 노력하고 있다. 원서의 예제는 컴포즈 1.0.5 버전을 기준으로 작성됐으나 번역 과정에서 저자는 1.2.1 버전까지 업데이트했다. 이 한국어판은 저자가 작성한 가장 최신 버전인 1.2.1을 적용했고, 사용하는 라이브러리나 안드로이드 스튜디오 버전 역시 최신 버전을 사용해 독자로 하여금 최신 환경에서도 원활하게 예제를 따라 할 수 있도록 했다. 최신 버전에서 예제를 작성하다 막히는 부분이 있다면 책에 있는 깃허브 링크를 확인해 최신 버전의 코드를 참고할 것을 추천한다. 유튜브 채널의 ‘Code In Action’에서 예제 코드를 설명하는 영상도 있으니 함께 참고해보면 도움이 될 것이다.

옮긴이 소개

강경구

모바일 개발자로 일하고 있으며 새로운 기술이나 언어에 관심이 많다. 여러 패러다임을 실무에 적용하고자 노력하고 있으며, 다른 이들과 지식을 교류하고자 노력한다.

목차

목차
  • 01장. 컴포즈 앱 첫 빌드
    • 기술 요구 사항
    • 컴포저블 함수와 인사
      • 환영 인사 나타내기
      • 열, 텍스트 필드, 버튼 사용
      • 인사말 출력
    • 미리 보기 사용
      • 미리 보기 매개변수
      • 미리 보기 설정
      • 미리 보기 그룹화
    • 컴포즈 앱 실행
      • 컴포저블 함수 배포
      • 액티비티에서 컴포저블 함수 사용
      • 내부 살펴보기
      • 플레이 버튼 누르기
    • 요약
    • 참고 도서

  • 02장. 선언적 패러다임 이해
    • 기술 요구 사항
    • 안드로이드 뷰 시스템 살펴보기
      • 레이아웃 파일 인플레이팅
      • UI 수정
    • 컴포넌트에서 컴포저블 함수로 이동
      • 컴포넌트 계층 구조
      • 컴포넌트 계층 구조의 한계
      • 함수를 사용해 UI 조합
    • 아키텍처 관점에서 설명
      • 클릭 동작에 반응
      • UI 요소 크기 조절과 배치
    • 요약

  • 03장. 컴포즈 핵심 원칙 자세히 알아보기
    • 기술 요구 사항
    • 컴포저블 함수 자세히 살펴보기
      • 컴포저블 함수의 구성 요소
      • UI 요소 내보내기
      • 값 반환
    • UI 구성 또는 재구성
      • 컴포저블 함수 간 상태 공유
      • 크기 제어
      • 액티비티 내에서 컴포저블 계층 구조 나타내기
    • 컴포저블 함수의 행위 수정
      • 변경자 동작 이해
      • 커스텀 변경자 구현
    • 요약

  • 04장. UI 요소 배치
    • 기술 요구 사항
    • 미리 정의된 레이아웃 사용
      • 기본 구성 요소 조합
      • 제약 조건을 기반으로 하는 레이아웃 생성
    • 단일 측정 단계의 이해
      • 측정 정책 정의
    • 커스텀 레이아웃 작성
      • 커스텀 측정 정책 구현
    • 요약

  • 05장. 컴포저블 함수 상태 관리
    • 기술 요구 사항
    • 상태를 갖거나 갖지 않는 컴포저블 함수 이해
      • 컴포저블 함수에서 상태 사용
      • 상태를 갖지 않는 컴포저블 함수 작성
    • 상태 호이스팅과 이벤트 전달
      • 라디오 버튼 그룹 생성
    • 환경설정 변경에도 데이터 유지
      • ViewModel 사용
    • 요약

  • 06장. 조립
    • 기술 요구 사항
    • 컴포즈 앱 스타일링
      • 색상, 모양, 텍스트 스타일 정의
      • 리소스 기반의 테마 사용
    • 툴바와 메뉴 통합
      • 화면 구조화를 위해 Scaffold() 사용
      • 상단 앱 바 생성
    • 내비게이션 추가
      • 화면 정의
      • NavHostController와 NavHost() 사용
    • 요약

  • 07장. 팁, 트릭, 모범 사례
    • 기술 요구 사항
    • 상태 유지와 검색
      • ViewModel에 객체 주입
      • 팩토리 사용
    • 컴포저블을 반응성 있게 유지
      • ViewModel 인스턴스와 소통
      • 장기간 동작하는 작업 처리
    • 부수 효과의 이해
      • 중단 함수 호출
      • DisposableEffect()으로 정리
    • 요약

  • 08장. 애니메이션 적용
    • 기술 요구 사항
    • 애니메이션을 사용한 상태 변화 시각화
      • 한 가지 값을 변경하는 애니메이션
      • 여러 값을 변경하는 애니메이션
    • 애니메이션을 사용해 UI 요소를 노출하거나 숨기기
      • AnimatedVisibility()의 이해
      • 크기 변경 애니메이션
    • 시각 효과를 통한 트랜지션 향상
      • 크로스페이드 컴포저블 함수
      • 애니메이션 사양의 이해
    • 요약

  • 09장. 상호 운용 API 자세히 알아보기
    • 기술 요구 사항
    • 컴포즈 앱에서 뷰 나타내기
      • 컴포즈 앱에 커스텀 컴포넌트 추가
      • AndroidViewBinding()으로 뷰 계층 구조 인플레이팅
    • 뷰와 컴포저블 함수 간 데이터 공유
      • ViewModel 다시 보기
      • 뷰 바인딩과 ViewModel 조합
    • 뷰 계층 구조에 컴포저블 임베디드
    • 요약

  • 10장. 컴포즈 앱 테스트와 디버깅
    • 기술 요구 사항
    • 환경설정과 테스트 작성
      • 유닛 테스트 구현
      • 컴포저블 함수 테스트
    • 시맨틱 이해
      • 시맨틱 노드로 작업
      • 커스텀 시맨틱 프로퍼티 추가
    • 컴포즈 앱 디버깅
      • 로깅과 디버깅을 위해 커스텀 변경자 사용
    • 요약
    • 더 읽을거리

  • 11장. 결론과 다음 단계
    • 기술 요구 사항
    • 미래 탐험
      • 노출된 드롭다운 메뉴 나타내기
      • NavigationRail() 사용
    • 머티리얼 유로 이관
      • 컴포즈에서 머티리얼 2와 머티리얼 3 간의 차이점
    • 안드로이드를 넘어서
      • 샘플 프로젝트 설정
    • 결론

도서 오류 신고

도서 오류 신고

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

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

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