이미 소장하고 있다면 판매해 보세요.
|
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. 다트 언어 개요 |
Rap Payne
김홍중의 다른 상품
|
★ 이 책의 대상 독자 ★
자바, 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장. ‘플러터에서 파이어베이스 활용’에서는 구글이 제공하는 강력한 클라우드 솔루션인 파이어베이스와 플러터를 실제로 함께 사용하는 방법을 보여준다. ★ 옮긴이의 말 ★ 모바일 플랫폼의 발전과 함께 크로스 플랫폼 모바일 앱 개발 프레임워크의 수요는 꾸준히 증가해왔다. 실제로 폰갭, 센차, 코로나, 모노, 자마린, 어플로즈, 아쿠아, 타브리스, 앱센드 등 수많은 프레임워크가 시장에 선을 보였다. 생산성을 장점으로 내세워 한때 큰 유행처럼 번지기도 했지만, 모두 성능이라는 단 하나의 문제를 극복하지 못하고 네이티브 개발을 대체하기는커녕 하나둘씩 사라져갔다. 하지만 최근 리액트 네이티브가 큰 성공을 거두면서 다시 크로스 플랫폼 앱 개발이 큰 주목을 받고 있고, 때마침 구글도 플러터라는 개발 프레임워크를 내놓았다. 플러터를 사용하려면 다트라는 프로그래밍 언어를 새로 익혀야 한다는 약간의 부담이 따른다. 하지만 기기 자체의 네이티브 컨트롤을 사용하지 않고 독자적인 엔진을 통해 UI를 렌더링하는 등 구글이 고심해서 내놓은 혁신적인 기술이 들어 있는 플러터는 충분히 매력적인 개발 프레임워크다. 그리고 무엇보다도 플러터는 구글의 전폭적인 지원과 개발 커뮤니티의 활발한 참여를 통해 급격하게 성장하고 있다. 카메라, 가속도계 등 주변 기기 지원은 아직 부족한 면이 있고 서드파티 라이브러리도 부족한 편이지만, 급성장 중인 생태계라 금방 답을 찾을 수 있으리라 믿는다. 앞으로 크로스 플랫폼 앱 개발을 계획 중이라면 플러터가 하나의 선택지일 수 있다는 점을 잊지 말기 바란다. 그리고 플러터로 앱을 개발하는 방법과 개발에 필요한 기본 지식을 제공하는 이 책이 플러터 개발의 첫걸음을 내딛는 데 도움이 되길 바란다. |
|
“랩 페인의 책은 플러터로 멀티플랫폼 앱 개발을 시작하려는 개발자에게 필요한 정보가 가득한 멋진 안내서다.” - 프레드릭 슈비게르 (Frederik Schwieger, 국제 플러터 해커톤 주최자, 플러터 스쿨 설립자)
|
|
“멋진 책이다! 이 책은 초보자가 원하는 내용은 물론 그 이상을 담고 있다. 플러터 자체를 설명할 뿐 아니라 플러터가 존재하는 이유까지도 설명한다. 또 개발 중에 흔히 일어나는 문제를 해결하는 멋진 팁도 제공한다. 강력히 추천한다.” - 제로엔 “제이” 마이어 (Jeroen “Jay” Meijer, 플러터 커뮤니티 깃허브 관리자)
|
|
“랩의 책은 플러터를 시작하기에 아주 좋은 책이다. 앱을 처음 만드는 개발자에게 필요한 주제를 빼놓지 않고 다룰 뿐만 아니라 노련한 개발자에게도 값진 정보가 들어있다.” - 노르베르트 코시어 (Norbert Kozsir, 플러터 커뮤니티 편집자)
|
|
“아름다운 앱을 만들 수 있는 재밌고 효율적인 방법을 찾는다면 플러터를 살펴보라. 플러터의 세계로 떠나는 여행 안내서를 찾고 있다면 이 책을 권한다.” - 브라이언 이건 (Brian Egan, flutter_architecture_samples, scoped_model, flutter_redux 개발자)
|
|
“플러터를 시작하는 모든 개발자가 따라 하기 쉽도록 복잡한 정보를 단순하게 잘 나눠 설명한다. 노련한 개발자든 막 입문한 개발자든 플러터를 시작할 때 필요한 모든 것을 제공한다.“ - 내시 램디얼 (Nash Ramdial, 미디엄의 플러터 커뮤니티 수석 편집자)
|
|
“영어가 모국어가 아닌 독자로서 이 책의 간결한 설명과 지루할 틈 없이 이해할 수 있는 점에 감탄했다.” - 라우프 라히쉬 (Raouf Rahiche, 플러터 강연자, 개발자, 강사)
|
|
“랩 페인은 얼리어답터이자 플러터 커뮤니티의 원년 멤버로서 플러터에 관한 세계 최고의 권위자 중 한 명이다. 랩은 엔지니어를 대상으로 문서를 작성하는 엔지니어로 고맙게도 다른 사람이 쉽게 이해할 수 있는 즐거운 문체로 책을 쓰는 사람이다.” - 스캇 스톨 (Scott Stoll, 플러터 코드베이스 기여자, 플러터 스터디 그룹의 공동 설립자)
|