장바구니 담기 close

장바구니에 상품을 담았습니다.

플러터 앱 개발 첫걸음

플러터 앱 개발 첫걸음

  • 랩페인
  • |
  • 에이콘출판
  • |
  • 2020-06-23 출간
  • |
  • 308페이지
  • |
  • 188 X 235 X 18 mm
  • |
  • ISBN 9791161754239
판매가

25,000원

즉시할인가

22,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
22,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에 쏟아진 찬사 ★

“랩 페인의 책은 플러터로 멀티플랫폼 앱 개발을 시작하려는 개발자에게 필요한 정보가 가득한 멋진 안내서다.”
- 프레드릭 슈비게르(Frederik Schwieger)/ 국제 플러터 해커톤 주최자, 플러터 스쿨 설립자

“멋진 책이다! 이 책은 초보자가 원하는 내용은 물론 그 이상을 담고 있다. 플러터 자체를 설명할 뿐 아니라 플러터가 존재하는 이유까지도 설명한다. 또 개발 중에 흔히 일어나는 문제를 해결하는 멋진 팁도 제공한다. 강력히 추천한다.”
- 제로엔 “제이” 마이어(Jeroen “Jay” Meijer)/ 플러터 커뮤니티 깃허브 관리자

“랩의 책은 플러터를 시작하기에 아주 좋은 책이다. 앱을 처음 만드는 개발자에게 필요한 주제를 빼놓지 않고 다룰 뿐만 아니라 노련한 개발자에게도 값진 정보가 들어있다.”
- 노르베르트 코시어(Norbert Kozsir)/ 플러터 커뮤니티 편집자

“아름다운 앱을 만들 수 있는 재밌고 효율적인 방법을 찾는다면 플러터를 살펴보라. 플러터의 세계로 떠나는 여행 안내서를 찾고 있다면 이 책을 권한다.”
- 브라이언 이건(Brian Egan), flutter_architecture_samples, scoped_model, flutter_redux 개발자

“플러터를 시작하는 모든 개발자가 따라 하기 쉽도록 복잡한 정보를 단순하게 잘 나눠 설명한다. 노련한 개발자든 막 입문한 개발자든 플러터를 시작할 때 필요한 모든 것을 제공한다.“
- 내시 램디얼(Nash Ramdial), 미디엄의 플러터 커뮤니티 수석 편집자

“영어가 모국어가 아닌 독자로서 이 책의 간결한 설명과 지루할 틈 없이 이해할 수 있는 점에 감탄했다.”
- 라우프 라히쉬(Raouf Rahiche)/ 플러터 강연자, 개발자, 강사

“랩 페인은 얼리어답터이자 플러터 커뮤니티의 원년 멤버로서 플러터에 관한 세계 최고의 권위자 중 한 명이다. 랩은 엔지니어를 대상으로 문서를 작성하는 엔지니어로 고맙게도 다른 사람이 쉽게 이해할 수 있는 즐거운 문체로 책을 쓰는 사람이다.”
- 스캇 스톨(Scott Stoll)/ 플러터 코드베이스 기여자, 플러터 스터디 그룹의 공동 설립자


★ 이 책의 대상 독자 ★

자바, C#, C++, 오브젝티브C같은 객체지향 언어를 경험해봤고, 플러터로 안드로이드 앱, iOS 앱, 웹 앱을 만들고 싶은 개발자를 대상으로 한다. 플러터가 처음이고 여러 플랫폼에서 실행할 앱을 만들고 싶다면 이 책은 최고의 선택이다.
플러터 경험이 있는 개발자에게도 물론 도움되겠지만, 플러터에 관한 사전 지식이나 경험이 없어도 충분히 읽을 수 있다. 이 책은 독자가 플러터를 완전히 처음 접한다는 생각으로 썼다.
iOS, 안드로이드, 웹 개발에 관해 알고 있다면 책의 내용을 이해하기 더 쉬울 수 있다. 플러터와 비슷한 점이 많기 때문이다. 특히 자바스크립트와 리액트를 잘 안다면 더 좋다. 모른다 해도 조바심을 느낄 필요는 없다. 몰라도 상관없다.
다트 언어에 관한 지식도 도움이 된다. 다트는 분명 독특한 면이 있지만 객체 지향의 개념을 이해한다면 매우 쉽게 받아들일 수 있다. 자바나 C#을 안다면 별 다른 설명 없이도 책의 코드를 대부분 이해할 수 있다. 조금만 읽어봐도 바로 코드를 작성할 수 있을 정도다.
동시에 다트에는 모범 사례로 여길 만한 독특하면서도 멋진 기능이 몇 가지 있다. 이런 모범 사례를 사용하지 않고 자바 개발자가 이해하기 쉽게 코드를 간소화할 수도 있었지만, 장기적으로 볼 때 별 도움이 안 된다고 생각했다. 따라서 모범 사례를 적극적으로 활용했고 설명은 부록 A, ‘다트 언어 개요’에 수록했다. 부록을 통해 코드를 작성할 때 참고할 수 있을 정도의 커닝페이퍼와 함께 다른 언어의 개발자가 예상치 못한 특징에 관한 깊이 있는 설명을 제공한다. ‘다트의 예상치 못한 특징’ 절을 특히 주의 깊게 보기 바란다.


★ 이 책의 구성 ★

이 책은 iOS, 안드로이드, 웹에서 제대로 동작하는 기능이 풍부한 앱을 만드는 방법을 크게 세 부분으로 나눠서 알려준다.

1부: 플러터 소개
1장. ‘헬로 플러터’에서는 이 책을 시작하는 데 필요한 기본 내용을 다루며, 이 책을 선택한 이유를 확인할 수 있다. 플러터로 풀 수 있는 문제점과 개발 책임자가 플러터와 다른 솔루션을 놓고 고민하는 이유를 알려준다.
플러터는 독특하고 다양한 툴을 지니고 있다. 하지만 각 툴의 역할과 사용법이 항상 간단하지만은 않다. 2장. ‘플러터 개발’에서는 코드 작성, 디버깅, 테스트, 실행에 이르는 과정을 안내한다. 설치와 업데이트를 포함해서 개발 툴을 준비하는 방법도 배운다.

2부: 플러터의 기초
위젯은 모든 플러터 앱의 핵심 구성 요소다. 3장. ‘위젯이 전부다’에서는 위젯이 중요한 이유를 보여주고, 위젯을 만들 의욕을 불러 일으키며, 위젯을 만드는 기본적인 방법을 소개한다. UI도 코드로 만드는 플러터의 특징, 위젯의 종류, 키, 상태가 없는 위젯과 상태를 지니는 위젯의 비교 등을 주제로 한다.
4장. ‘값 위젯’에서는 값을 유지하는 위젯, 특히 사용자 입력 필드를 깊이 파고든다. pubspec.yaml 파일과 Text, Image, Icon 위젯, 플러터에서 폼을 만드는 방법을 다룬다.
5장. ‘제스처 대응’에서는 탭, 스와이프, 핀치 같은 사용자의 동작에 대응하는 방법을 보여준다. 다양한 버튼과 GestureDetector 위젯을 소개한다.
6장. ‘위젯 레이아웃’에서는 화면에 위젯을 배치하는 방법, 위젯을 양옆이나 위아래로 나란히 배치하는 방법, 위젯 사이의 간격을 정의하는 방법, 위젯을 가로, 세로로 정렬하는 방법을 배운다.
내비게이션은 사용자의 행동에 대응해서 위젯을 감추고 다른 위젯을 보여준다. 이렇게 해서 다른 화면으로 넘어가는 느낌을 준다. 7장. ‘내비게이션과 라우팅’에서는 스택 내비게이션, 탭 내비게이션, 드로어 내비게이션을 설명한다.
8장. ‘위젯 꾸미기’에서는 색상, 테두리, 장식, 형태 등 위젯의 표현과 관련 있는 속성을 제어하는 방법을 살펴본다. 이미 앞장에서 여러 위젯을 소개하면서 가벼운 꾸미기를 적용해봤다. 하지만 이 장에서는 실제 앱을 보기 좋게 꾸미고 전체적인 일관성을 유지하는 데 필요한 모든 질문에 대한 답변을 볼 수 있다.
9장. ‘상태 관리’에서는 다른 위젯의 데이터를 가져오는 방법과 가져온 데이터를 변경하는 방법을 알려준다. StatefulWidgets를 만드는 방법과 가장 좋은 설계 방법을 설명한다. 또 실제로 복잡한 상태 관리를 처리하는 다양한 툴을 개략적으로 살펴본다.

3부: 플러터 활용
10장. ‘파일을 사용하는 플러터 앱 개발’에서는 라이브러리 사용법과 Future, async, await, 앱에 파일을 추가하는 방법, 파일을 읽고 쓰는 방법, JSON 직렬화를 설명한다.
11장. ‘HTTP로 RESTful API 호출’에서는 HTTP API 서버를 통해 데이터를 읽고 쓸 때 필요한 GET, POST, PUT, DELETE, PATCH 요청을 만드는 방법을 설명한다.
12장. ‘플러터에서 파이어베이스 활용’에서는 구글이 제공하는 강력한 클라우드 솔루션인 파이어베이스와 플러터를 실제로 함께 사용하는 방법을 보여준다.


목차


1부. 플러터 소개

1장. 헬로 플러터
__플러터란?
__플러터를 선택해야 하는 이유
__다른 선택지
__네이티브 솔루션
__마무리

2장. 플러터 개발
__플러터 툴체인
____플러터 SDK
____IDE
____IDE DevTools
____에뮬레이터
____개발 툴 업데이트
__플러터 개발 과정
____자동으로 만들어지는 앱과 파일
____앱 실행
__마무리

2부. 플러터의 기초

3장. 위젯이 전부다
__UI도 코드로
__플러터의 기본 위젯
__값 위젯
__레이아웃 위젯
__내비게이션 위젯
__기타 위젯
__상태가 없는 위젯을 만드는 방법
____키를 지니는 위젯
____위젯으로 값 전달
__상태가 없는 위젯과 상태를 지니는 위젯
____둘 중 어떤 위젯을 만들어야 할까?
__마무리

4장. 값 위젯
__Text 위젯
__Icon 위젯
__Image 위젯
____내장 이미지
____네트워크 이미지
____이미지 크기 변경
__입력 위젯
____텍스트 필드
____폼 위젯에 함께 배치
____Form 위젯
____FormField 위젯
____Form 예제
__마무리

5장. 제스처 대응
__다양한 버튼
____레이즈드 버튼: RaisedButton
____플랫 버튼과 아이콘 버튼: FlatButton, IconButton
____플로팅 액션 버튼: FloatingActionButton
____쿠퍼티노 버튼: CupertinoButton
__디스미서블: Dismissible
__커스텀 제스처
____과정 1: 제스처와 동작 결정
____과정 2: 커스텀 위젯 생성
____과정 3: GestureDetector 위젯 추가
____과정 4: 제스처와 동작 연결
__예제 1: 길게 누르기에 대응
__예제 2: 핀치로 새로운 항목 추가
__예제 3: 왼쪽이나 오른쪽으로 스와이프
__동시에 두 개 이상의 제스처가 일어날 때
__마무리

6장. 위젯 레이아웃
__전체 화면 레이아웃
____머티리얼 앱 위젯: MaterialApp
____스캐폴드 위젯: Scaffold
____앱 바 위젯: AppBar
____안전 영역 위젯: SafeArea
____스낵 바 위젯: SnackBar
__플러터가 위젯의 크기를 정하는 방법
____무서운 “unbounded height” 에러
____플러터의 레이아웃 알고리즘
__위젯을 다른 위젯의 옆이나 아래에 놓는 방법
__위젯은 절대로 맞아 떨어지지 않는다!
__공간이 남을 때
____mainAxisAlignment
____crossAxisAlignment
____Expanded 위젯
__공간이 부족할 때
____ListView 위젯
__Container 위젯과 박스 모델
____컨테이너 안에서 정렬과 위치 지정
____컨테이너의 크기를 정하는 방법
__특별한 레이아웃 위젯
____Stack 위젯
____GridView 위젯
____Table 위젯
__마무리

7장. 내비게이션과 라우팅
__스택 내비게이션
____앞뒤로 내비게이션
____씬을 닫은 뒤에 결과 획득
__드로어 내비게이션
____Drawer 위젯
____드로어 채우기
__탭 내이게이션
____TabController
____TabBarView
____탭 바와 탭
____화면 아래쪽의 탭 바
__다이얼로그 위젯
____showDialog( )와 AlertDialog
____다이얼로그의 응답 처리
__내비게이션 방식의 조합

8장. 위젯 꾸미기
__플러터의 꾸미기
__색상
__텍스트 꾸미기
____TextStyle
____커스텀 폰트
__컨테이너 꾸미기
____테두리
____BorderRadius
____BoxShape
__위젯 쌓기
____Positioned 위젯
__Card 위젯
__테마
____theme 속성 적용
__마무리

9장. 상태 관리
__상태의 의미
__StatefulWidget 안에서 벌어지는 일
__상태의 가장 중요한 규칙
__상태를 아래로 전달
__상태 끌어 올리기
__상태 관리 예제
__상태를 사용해야 할 때
__고급 상태 관리
____InheritedWidget
____BLoC
____ScopedModel
____훅
____Provider
____Redux
____상태 관리 패키지의 다양함
__마무리

3부. 플러터 활용

10장. 파일을 사용하는 플러터 앱 개발
__플러터 앱에 라이브러리 추가
____라이브러리 검색
____pubspec.yaml에 라이브러리 추가
____라이브러리 임포트
____라이브러리 사용
__Future, async, await
____대기해야 하는 이유
____Future에서 데이터를 얻는 방법
____await
____async
__앱에 파일 추가
__파일 생성
____그리고 읽기
__JSON 형식
____앱의 메모리를 JSON으로 저장
____앱의 메모리로 JSON 읽기
__공유 환경 설정
____설정 저장
____설정 읽기
__마무리

11장. HTTP로 RESTful API 호출
__API 호출의 뜻
__API 요청의 종류
__HTTP GET, DELETE 요청 생성
__HTTP PUT, POST, PATCH 요청 생성
__HTTP응답을 위젯과 결합
____가장 간단한 방법인 무차별 대입
____깔끔한 방법인 FutureBuilder
__강력한 형식의 클래스
____비즈니스 클래스 생성
____.fromJSON( ) 메서드 작성
____.fromJSON( )로 객체 수화
__API 호출 예제
____서버 설정
____플러터 앱 생성
____강력한 형식의 비즈니스 클래스 생성
____PeopleList.dart
____플러터에서 GET 요청
____플러터에서 DELETE 요청
____PeopleUpsert.dart
____플러터에서 POST와 PUT 요청
__마무리

12장. 플러터에서 파이어베이스 활용
__파이어베이스 소개
____클라우드 파이어스토어
____클라우드 함수
____인증
__파이어베이스 설정
____(1) 파이어베이스 프로젝트 생성
____(2) 데이터베이스 생성
____(3) iOS 앱 추가
____(4) 안드로이드 앱 추가
____(5) FlutterFire 플러그인 추가
__파이어스토어 사용
____컬렉션 GET
____쿼리
____업서트
____삭제
__앞으로 가야 할 방향

부록 A. 다트 언어 개요

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.