Must Have 코드팩토리의 플러터 프로그래밍(3판)
책 소개
★ 생성형 AI 기술을 사용한 〈AI 챗봇〉 앱 개발 예제 추가!
★ 인프런 NO.1 플러터 강사와 함께 현업 수준으로 실력 끌어올려보세요!
앱 개발, 관심은 많지만 시작하기 어렵나요? 코드팩토리의 플러터 프로그래밍 한 권이면 앱 개발을 마스터한 자신을 마주하게 될 것입니다. 이 책은 왕초보 실력을 현업 수준으로 끌어올리는 것이 목표로써, 실무에 유용한 기능을 담은 앱을 배운 이론을 활용하여 만들며 익힐 수 있도록 구성했습니다. 모든 앱은 결과가 아니라 실제 프로젝트 현장에서 구현하듯이 과정을 보여주며 만듭니다.
[프로젝트 소개] ? [사전 지식] ? [사전 준비] ? [UI 구상하기] ? [구현하기] ? [테스트하기] 순서로 앱 개발을 체계적으로 이끌어줍니다. 초보자 눈높이에 맞추면서, 다트 언어 입문부터 3.0 신규 문법, 인증과 파이어베이스, 슈파베이스 연동, 광고와 배포까지 필요한 것은 빠짐없이 모두 담았습니다. 3판에서는 이제 꼭 알아야 하는 생성형 AI 제미나이 API를 활용하는 방법으로 〈AI 챗봇〉 예제를 추가했습니다. 현업에 도움이 될 실무적이고 활용도 높은 노하우를 담아 설명했기 때문에 탄탄하면서도 빠르게 스킬업되는 자신을 체감하게 될 겁니다.
★ 개정판, 이렇게 초강력 업그레이드되었습니다!
이번 3판에서는 생성형 AI의 일종인 구글 제미나이를 활용하여 AI 챗봇을 개발하는 프로젝트를 새롭게 추가했습니다. 구글 제미나이는 구글이 개발한 첨단 인공지능 모델로, 자연어 이해와 생성 능력이 뛰어나 다양한 응용 프로그램에 효과적으로 적용될 수 있습니다. 또한, iOS 기반 개발 환경에서 더 쉽게 개발할 수 있도록 각종 상세한 안내를 추가하였으며, 최신 버전의 소프트웨어와 호환되도록 모든 앱을 업데이트하고 수정했습니다.
직전 2판에서는 변화의 폭이 더욱 컸습니다. 다트 3.0에 새롭게 추가된 문법 요소들을 상세히 설명하여 개발자들이 최신 언어 기능을 효과적으로 활용할 수 있도록 도왔습니다. 또한 JWT(JSON Web Token)를 이용한 인증 방식을 도입하여 애플리케이션의 보안을 한층 강화했습니다. 구글 소셜 로그인 기능을 구현하는 방법도 다루어 사용자 인증 과정을 간편하고 안전하게 처리할 수 있도록 하였습니다. 더불어, 최신 개발 트렌드에 발맞추어 데이터베이스 및 백엔드 서비스로 슈파베이스(Supabase)를 사용하는 방법을 새롭게 추가했습니다. 슈파베이스는 오픈 소스 백엔드 플랫폼으로, 실시간 데이터베이스, 인증, 스토리지 등 다양한 기능을 손쉽게 통합할 수 있어 인기가 높아지고 있습니다.
★ Must Have 시리즈 안내
Must Have 시리즈는 내 것으로 만드는 시간을 드립니다. 명확한 학습 목표와 핵심 정리를 제공하고, 간단명료한 설명과 다양한 그림으로 학습 효과를 극대화합니다. 설명과 예제를 제공해 응용력을 키워줍니다. 할 수 있습니다. 포기는 없습니다. 지금 당장 밑 줄 긋고 메모하고 타이핑하세요! Must Have가 여러분의 성장을 돕겠습니다.
임페리얼 칼리지 런던을 졸업하고 계리 컨설팅 회사 밀리만(Milliman) 한국 지사에서 소프트웨어 엔지니어로 일했다. 현재 주식회사 코드팩토리를 창업하여 개발을 하면서 초보자뿐만 아니라 현직 개발자에게도 유용한 개발 강의를 제작한다. 2022 인프런 Rookie of the Year, 2023 베스트셀러, 2024 패스트캠퍼스 어워드를 수상했으며 2024년 기준 2만 명이 넘는 수강생을 보유하고 있다.
목차
00장 개발 환경 구축
__0.1 윈도우 개발 환경 구축하기
__0.2 macOS 개발 환경 구축하기
__0.3 안드로이드 스튜디오 설치하기
__0.4 설치 문제 해결하기
__0.5 깃허브에서 예제 코드 내려받기
[1단계] 다트 언어 마스터하기
01장 다트 마스터하기
__1.1 다트 소개
__1.2 문법 공부 환경 안내
__1.3 기초 문법
__1.4 컬렉션
__1.5 연산자
__1.6 제어문
__1.7 함수와 람다
__1.8 try...catch
__학습 마무리
02장 다트 객체지향 프로그래밍
__2.1 객체지향 프로그래밍의 필요성
__2.2 객체지향 프로그래밍의 시작, 클래스
__2.3 상속
__2.4 오버라이드
__2.5 인터페이스
__2.6 믹스인
__2.7 추상
__2.8 제네릭
__2.9 스태틱
__2.10 캐스케이드 연산자
__학습 마무리
03장 다트 비동기 프로그래밍
__3.1 동기 vs. 비동기 프로그래밍
__3.2 Future
__3.3 async와 await
__3.4 Stream
__학습 마무리
04장 다트 3.0 신규 문법
__4.1 레코드
__4.2 구조 분해
__4.3 switch문
__4.4 클래스 제한자
__학습 마무리
[2단계] 플러터 기본 다지기
05장 플러터 입문하기
__5.1 플러터 소개
__5.2 Hello Flutter 앱 만들기
__5.3 실제 단말 테스트 환경 구축
__학습 마무리
06장 기본 위젯 알아보기
__6.1 위젯 소개
__6.2 위젯 실습용 템플릿 작성
__6.3 텍스트 관련 위젯
__6.4 제스처 관련 위젯
__6.5 디자인 관련 위젯
__6.6 배치 관련 위젯
__학습 마무리
07장 앱을 만들려면 알아야 하는 그 밖의 지식
__7.1 앱 만들기 프로세스
__7.2 플러그인 추가 방법
__7.3 주변 장치 종류
__7.4 연습용 앱 만들기 : 스프레드 플래시 앱
__학습 마무리
[3단계] 앱을 만들며 유용한 기능 익히기
08장 [Project] 블로그 웹 앱
__8.1 사전 지식 : 콜백 함수?웹뷰 위젯?안드로이드와 iOS 네이티브 설정
__8.2 사전 준비
__8.3 레이아웃 구상하기
__8.4 구현하기
__8.5 테스트하기
__학습 마무리
09장 [Project] 전자액자
__9.1 사전 지식 : 위젯 생명주기?타이머
__9.2 사전 준비
__9.3 레이아웃 구상하기
__9.4 구현하기
__9.5 테스트하기
__학습 마무리
10장 [Project] 만난 지 며칠 U&I
__10.1 사전 지식 : setState() 함수?showCupertinoDialog() 함수
__10.2 사전 준비
__10.3 레이아웃 구상하기
__10.4 구현하기
__10.5 테스트하기
__학습 마무리
11장 [Project] 디지털 주사위
__11.1 사전 지식 : 가속도계?자이로스코프?Sensor_Plus 패키지
__11.2 사전 준비
__11.3 레이아웃 구상하기
__11.4 구현하기
__11.5 테스트하기
__학습 마무리
12장 [Project] 동영상 플레이어
__12.1 사전 지식 : iOS 시뮬레이터 화면 회전하기?안드로이드 에뮬레이터 화면 회전하기?시간 변환 및 String 패딩
__12.2 사전 준비
__12.3 레이아웃 구상하기
__12.4 구현하기
__12.5 테스트하기
__학습 마무리
13장 [Project] 영상 통화
__13.1 사전 지식 : 카메라 플러그인?WebRTC?iOS 시뮬레이터와 안드로이드 에뮬레이터에서의 카메라 사용?내비게이션
__13.2 사전 준비
__13.3 레이아웃 구상하기
__13.4 구현하기
__13.5 테스트하기
__학습 마무리
14장 [Project] 오늘도 출첵
__14.1 사전 지식 : Geolocator 플러그인
__14.2 사전 준비
__14.3 레이아웃 구상하기
__14.4 구현하기
__14.5 테스트하기
__학습 마무리
15장 [Project] 포토 스티커
__15.1 사전 지식 : GestureDetector와 제스처
__15.2 사전 준비
__15.3 레이아웃 구상하기
__15.4 구현하기
__15.5 테스트하기
__학습 마무리
16장 [Project] AI 채팅봇, 소울챗
__16.1 사전 지식 : HTTP 요청?REST API?JSON ? 제미나이 API ? Isar 데이터베이스
__16.2 사전 준비
__16.3 레이아웃 구상하기
__16.4 구현하기
__16.5 테스트하기
__학습 마무리
[4단계] 실전! 일정 관리 앱 개발 & 인증 & 배포하기
17장 [Project #1] 일정 관리 앱 만들기
__17.1 사전 지식 : table_calendar 플러그인
__17.2 사전 준비
__17.3 레이아웃 구상하기
__17.4 구현하기
__17.5 테스트하기
__학습 마무리
18장 [Project #2] 데이터베이스 적용하기
__18.1 사전 지식 : SQL, SQLite?드리프트 플러그인?Dismissible 위젯
__18.2 구현하기
__18.3 테스트하기
__학습 마무리
19장 [Project #3] 서버와 연동하기
__19.1 사전 지식 : 상태 관리?캐시와 긍정적 응답
__19.2 사전 준비
__19.3 구현하기
__19.4 테스트하기
__학습 마무리
20장 [Project #4] 파이어베이스 연동하기
__20.1 사전 지식 : 파이어베이스?파이어스토어
__20.2 사전 준비
__20.3 구현하기
__20.4 테스트하기
__학습 마무리
21장 [Project #5] JWT를 이용한 인증하기
__21.1 사전 지식 : 인증?JWT란??엑세스 토큰과 리프레시 토큰?JWT를 이용한 인증 절차
__21.2 사전 준비
__21.3 구현하기
__21.4 테스트하기
__학습 마무리
22장 [Project #6] 소셜 로그인과 파이어베이스 인증하기
__22.1 사전 지식 : 소셜 로그인과 OAuth 2.0?파이어베이스 인증?구글 로그인 세팅
__22.2 사전 준비
__22.3 레이아웃 구상하기
__22.4 구현하기
__22.5 테스트하기
__학습 마무리
23장 [Project #7] 슈파베이스 연동하기
__23.1 사전 지식 : 슈파베이스란??행 수준 보안?슈파베이스 인증
__23.2 사전 준비
__23.3 레이아웃 구상하기
__23.4 구현하기
__23.5 테스트하기
__학습 마무리
24장 [Project #8] 광고 및 배포하기
__24.1 사전 지식 : 구글 애드몹
__24.2 사전 준비
__24.3 구현하기
__24.4 배포하기 : 구글 스토어 & 애플 앱스토어
__학습 마무리
[부록]
__A 데이터베이스 종류와 하이브
__B 앱 이름과 아이콘 설정 방법
__C 코딩이 편해지는 안드로이드 스튜디오 편의 기능
__D 흔히 마주하는 에러