『핸즈온 플러터』는 구글이 개발한 크로스 플랫폼 프레임워크인 플러터의 기본 개념부터 실무 환경에서의 구현까지 단계별로 다루는 종합 가이드이다. 플러터는 다양한 위젯을 조합하여 애플리케이션을 만들 수 있게 도와주는 강력한 도구이다. 플러터를 활용하면 하나의 코드베이스로 iOS와 안드로이드 애플리케이션을 개발할 수 있어 시간과 비용을 절약할 수 있다.
이 책은 플러터의 기본 개념과 실무에서 활용할 수 있는 다양한 기술을 배울 수 있도록 도와준다. 특히 클론 코딩 프로젝트를 통해 플러터의 여러 기능을 익힐 수 있으며, 복잡한 애플리케이션을 효율적으로 개발하는 팁과 사용자에게 최고의 경험을 제공하는 데 필요한 모든 것을 배울 수 있다. 『핸즈온 플러터』로 크로스 플랫폼 개발의 효율성을 직접 느끼면서, 다양한 도구와 라이브러리를 사용하여 매력적인 애플리케이션을 만들어보자.
Contents
1부 플러터 기초 다지기
1장 플러터 소개
1.1 플러터가 등장하게 된 배경
1.2 플러터의 장단점
1.3 플러터를 도입한 기업들
1.4 마치며
2장 개발 환경 설정하기
2.1 깃 설치
2.2 플러터 SDK 설치
2.3 IDE 설치
2.4 유용한 VSCode 확장 패키지 및 단축키 설정
3장 다트 이해하기
3.1 다트의 탄생 배경과 향후 발전 가능성
3.2 변수
3.3 변수 초기화
3.4 Late 변수
3.5 Final과 Const
3.6 내장 변수 타입
3.7 연산자
3.8 분기와 반복문
3.9 함수
3.10 객체 지향 프로그래밍
3.11 다트 3.0 이후 업데이트된 기능
4장 플러터 필수 개념 이해하기
4.1 플러터 아키텍처
4.2 위젯이란?
4.3 라이프사이클
4.4 레이아웃 구성을 위한 위젯
4.5 애니메이션
4.6 라우팅
5장 상태 관리 라이브러리
5.1 플러터의 상태란?
5.2 다양한 상태 관리 라이브러리
5.3 BLoC의 사용법
5.4 스트림 이해하기
5.5 플러터 BLoC 위젯 알아보기
5.6 GetX 사용법
5.7 상태 관리
6장 API 통신
6.1 API란?
6.2 http 패키지
6.3 API 데이터 확인
6.4 Dio 라이브러리
6.5 Dio 고급 구성
6.6 Firebase
6.7 Firestore
7장 배포
7.1 버전 관리
7.2 앱 아이콘 만들기
7.3 개인정보취급방침 만들기
7.4 안드로이드에서의 배포
7.5 iOS에서의 배포
2부 당근마켓 클론 코딩 프로젝트
8장 프로젝트 설정
8.1 프로젝트 생성
8.2 기본 프로젝트 프레임 잡기
8.3 Assets 구성
8.4 프로젝트 초기 라이브러리 설치
8.5 GetX 라우트 설정
8.6 앱 테마 설정
9장 Firebase 프로젝트 연동
9.1 프로젝트 연동
9.2 라이브러리 설정
10장 첫 페이지 진입 처리
10.1 shared_preferences 라이브러리 사용
10.2 최초 앱 화면 퍼블리싱
11장 스플래시 페이지
11.1 스플래시 페이지의 목적
11.2 SplashController 생성
11.3 데이터 로드
11.4 인증 체크
11.5 스플래시 퍼블리싱
12장 인증 프로세스
12.1 인증 흐름 설명
12.2 인증 프로세스 개발
12.3 구글 로그인
12.4 애플 로그인
12.5 AuthenticationController 개발
12.6 로그인 페이지 퍼블리싱
12.7 LoginController 개발
12.8 Firebase Authentication 활성화
12.9 회원 조회 및 라우트 처리
12.10 Firebase 데이터베이스 만들기
12.11 회원 가입 페이지 만들기
13장 앱 Root 레이아웃 구성
13.1 화면 구성
13.2 BottomNavigationBar 메뉴 상태 관리 controller 만들기
13.3 메뉴별 페이지 연결을 위한 TabBarView 구성
14장 홈 화면 구성
14.1 헤더 구성
14.2 보디 구성
14.3 레이어 버튼 구성
15장 상품 등록 페이지 개발 1
15.1 화면 구성
15.2 보디
15.3 Controller 생성 및 의존성 설정
15.4 이미지 제어 기능
15.5 글 제목 상태 관리
15.6 카테고리 선택 기능 및 상태 관리
15.7 가격 상태 관리
15.8 설명 상태 관리
15.9 거래 희망 장소 상태 관리
16장 상품 등록 페이지 개발 2
16.1 입력 필드 유효성 검사
16.2 상품 등록 데이터 저장
16.3 개선 사항
17장 홈 화면 상품 리스트
17.1 HomeController 생성 및 의존성 설정
17.2 데이터 로드
17.3 상품 리스트 상태 관리 및 화면 처리
17.4 가격 표기 위젯 생성
17.5 상품 등록 후 화면 갱신 처리
17.6 페이징 처리
18장 상품 상세 페이지
18.1 상품 페이지 라우트 연결
18.2 상세 페이지 상태 관리 설정
18.3 상품 이미지 영역
18.4 프로필 영역
18.5 판매 상품 정보 영역
18.6 거래 희망 장소 영역
18.7 판매자의 다른 상품 영역
18.8 판매 가격과 채팅 영역
18.9 상세 페이지 레이아웃
18.10 더 보기 메뉴 설정
18.11 즐겨찾기·관심 기능 개발
18.12 조회수 업데이트 기능
18.13 상품 삭제 기능
18.14 상품 정보 수정 기능
19장 채팅 페이지
19.1 라우트 설정
19.2 ChatController 관리
19.3 채팅에 연결된 상품 정보 표시
19.4 채팅 AppBar 정보 표시
19.5 채팅 TextField 영역
19.6 채팅 모델 설계
19.7 채팅 메시지 스트림 처리
19.8 판매자 입장의 채팅 페이지 구현하기
19.9 채팅 리스트 개발
19.10 채팅방 개선 사항
20장 하단 채팅 메뉴 페이지
20.1 소스코드 리팩터링
20.2 개선 사항
Author
김성덕
개발 관련 유튜브 채널인 ‘개발하는남자’를 운영하며 8천 명이 넘는 구독자에게 유익한 콘텐츠를 제공하고 있다. 또한, 인프런에서 플러터 강의를 진행하고 있다. 교육에 대한 열정이 가득해 다양한 채널로 많은 사람에게 영감을 주는 지식 공유 활동을 하고 싶다.
개발 관련 유튜브 채널인 ‘개발하는남자’를 운영하며 8천 명이 넘는 구독자에게 유익한 콘텐츠를 제공하고 있다. 또한, 인프런에서 플러터 강의를 진행하고 있다. 교육에 대한 열정이 가득해 다양한 채널로 많은 사람에게 영감을 주는 지식 공유 활동을 하고 싶다.