[서평] 플러터 인 액션 - 한빛 미디어

728x90

인 액션 시리즈는 개인적으로 매우 좋아하는 책이다. 정확한 이유는 설명하기 어렵지만, 아마도 모던 자바 인 액션을 처음 읽고 느꼈던 모던 자바(자바17이 나온 시점에, 자바8을 모던이라 표현하는게 웃기긴하지만)를 접했을 때의 신선한 충격을 받았던 그 기억이 아직도 생생하게 남아서 그런 것이 아닐까 싶다. 사실 플러터에는 크게 관심은 없지만.... 크로스 플랫폼에는 관심이 있기에(적고보니 모순적이지만...) 이번 서평 도서로 받게 된 플러터 인 액션 또한 기대됐다. 항상 그랬듯이 목차부터 언급하면 좋을 것 같다.

목차

PART I 플러터와 다트

chapter 1 플러터

1.1 플러터에서 다트를 사용하는 이유
1.2 다트
1.3 누가 플러터를 사용할까?
1.4 플러터 사용 권장 대상
1.5 대상 독자
1.6 다른 모바일 개발 옵션
1.7 플러터의 장점
1.8 플러터가 앞으로 제공하는 혜택: 웹 앱과 데스크톱 앱
1.9 플러터 동작 원리 간단 소개
1.10 플러터 렌더링: 내부 동작 원리
1.11 마치며

chapter 2 다트

2.1 Hello, Dart!
2.2 다트의 프로그래밍 개념
2.3 제어 흐름
2.4 함수
2.5 다트의 객체지향 프로그래밍
2.6 마치며

chapter 3 플러터의 세계로

3.1 카운터 앱 소개
3.2 위젯 트리와 형식, State 객체
3.3 BuildContext
3.4 중요한 위젯을 추가해 카운터 앱 개선하기
3.5 상속보다 조합을 선호하는 플러터
3.6 플러터 레이아웃
3.7 요소 트리
3.8 마치며

PART II 사용자 상호작용과 스타일, 애니메이션

chapter 4 플러터 UI: 주요 위젯, 테마, 레이아웃

4.1 앱 구현과 설정
4.2 구조 위젯과 기타 설정
4.3 스타일링과 테마
4.4 자주 사용하는 레이아웃과 UI 위젯
4.5 ListView와 빌더
4.6 마치며

chapter 5 사용자 입력: 폼과 제스처

5.1 사용자 상호작용과 제스처
5.2 플러터 폼
5.3 FormField 위젯
5.4 Form UI와 포커스 작업
5.5 폼 메서드로 폼 상태 관리하기
5.6 마치며

chapter 6 픽셀 제어: 플러터 애니메이션과 캔버스 사용하기

6.1 플러터 애니메이션
6.2 CustomPainter와 캔버스
6.3 내장 애니메이션, 단계별 애니메이션, TweenSequence
6.4 재사용할 수 있는 커스텀 색 변화 위젯
6.5 마치며

PART III 상태 관리와 비동기 작업

chapter 7 플러터 라우팅

7.1 라우팅
7.2 선언형 라우팅과 기명 라우트
7.3 즉석 라우팅
7.4 라우팅 애니메이션
7.5 마치며

chapter 8 상태 관리

8.1 StatefulWidget 자세히 살펴보기
8.2 순수 플러터 상태 관리: InheritedWidget
8.3 블록
8.4 마치며

chapter 9 비동기 다트와 플러터 그리고 무한 스크롤

9.1 비동기 다트
9.2 싱크와 스트림 그리고 StreamController
9.3 블록에 스트림 사용하기
9.4 비동기 플러터: StreamBuilder
9.5 무한, 커스텀 스크롤 위젯
9.6 마치며

PART IV 기초를 넘어

chapter 10 데이터 처리: HTTP, 파이어스토어, JSON

10.1 HTTP와 Flutter
10.2 JSON 직렬화
10.3 플러터로 파이어베이스 사용하기
10.4 의존성 주입
10.5 마치며

chapter 11 플러터 앱 테스트

11.1 플러터 테스트
11.2 Semantics 위젯의 접근성
11.3 다음 여정
11.4 마치며

PART V 부록

부록 A 다트 2와 플러터 설치
부록 B Pub 패키지 관리자
부록 C 웹 개발자를 위한 플러터
부록 D iOS 개발자를 위한 플러터
부록 E 안드로이드 개발자를 위한 플러터

개발 공부를 하면서 느낀 것이 Why(왜?)하고 고민하는 것이라 생각했는데, 시작부터 마음에 든다. 왜 플러터는 그 많은 언어 중에서 다트라는 언어를 사용할까? 플러터가 구글에서 만든 오픈소스이고, 다트 또한 구글이 만들었고 유지보수하기 때문일까? 물론 영향이 없지는 않겠지만, 그것보다는 다트라는 언어의 특성 때문이다. 책의 내용을 읽으면 쉽게 이해할 수 있을 것이다. 설령 설명이 이해가 안되더라도 이 이후에 다트를 자세히 다루면서 몸소 느낄 수 있게 될 것이다. 모던 자바인 액션책을 본 독자라면, 이 책이 기본 문법을 모르는 상태에서 못 보는 책이라고 오해할 수 있을 것 같다(내가 그랬다). 하지만 다행히도 다트의 기초도 포함하고 있기 때문에, 필자보다도 더 다트가 생소한 개발자들이 봐도 충분히 따라갈 수 있으리라 생각한다. 플러터의 기초적인 내용을 다룬 이후에는, 크게 플러터로 사용자와 상호작용을 하기 위한 방법, 상태관리와 비동기 작업을 하는 방법론을 학습할 수 있다. (다트 또한 객체지향언어로써 객체지향 프로그래밍이 가능하고, 최신 패러다임인 리액티브 프로그래밍에 함수형 프로그래밍도 할 수 있다! 이것만으로도 나의 호기시심을 자극하기에는 충분했다!! )

또한 11장에서 플러터 앱을 테스트하는 방식을 유닛 테스트 부터 시작해서 모기토를 이용한 목 객체를 활용한 테스트라던지 모바일 앱 특성의 테스트 그리고 통합테스트, 성능 프로파일링 등 플러터로 프로그래밍하면서 필요할만한 테스트를 모두 다뤘다고 생각한다. 테스트가 없는 코드에 불안감을 느끼는 나에게 11장의 내용들은 이 책은 좋은책이다! 라고 느끼게 해주었다.
image

728x90