다트 3.0 최신 문법과 소셜 로그인, 슈파베이스 연동, 인증 그리고 광고와 배포까지 플러터 앱 개발, 이 책 한 권이면 충분하다혼자하는 앱 개발, 내가 과연 할 수 있을까? 망설여지나요? 걱정하지 마세요. 《코드팩토리의 플러터 프로그래밍》 그리고 저자 선생님과 함께라면 실무자 수준으로 실력 향상은 시간문제입니다. 이 책은 플러터 시작을 위한 다트 언어를 기초부터 객체지향, 비동기 프로그래밍, 신규 3.0 문법까지 4개 장에 걸쳐 다룹니다. 독자가 꼭 필요한 내용을 학습할 수 있도록 플러터 기본 위젯부터 현업에 유용한 기능을 담은 10가지 앱을 배울 수 있도록 구성했습니다. 개발, 인증, 연동, 광고, 배포까지 기능 실습에 부족함 없는 구성으로 학습을 마무리할 때쯤이면 실무자 수준의 실력을 갖출 수 있도록 했습니다. 열심히 책을 보고 공부하며 따라하지만 중간에 막힌다면 걱정하지 마세요. 저자가 운영하는 유튜브와 디스코드 채널, 오픈톡을 통해 그간의 문제 히스토리 그리고 친절한 답변까지 들을 수 있습니다.이 책의 특징_1 강의에서 검증받은 커리큘럼을 담았습니다. 먼저 책 목차를 만든 다음 온라인 강의를 만들었습니다. 많은 분이 수강해주셨고 인기 강의가 되었습니다. 수강자의 다양한 목소리를 책에 반영했습니다._2 배운 이론을 곧바로 써먹습니다. 이론을 모두 배우고 나서 앱을 만들려고 하면 정작 써먹어야 할 때 아무것도 기억나지 않습니다. 배운 이론을 곧바로 활용해야 익숙해지고 기억도 잘 납니다. 그래서 기초 지식을 1단계에서 탄탄히 다지고 나서, 2단계에서는 핵심 플러터 기능을 살펴본 후 앱 만들기로 돌입합니다. 앱마다 필요한 이론을 사전 지식으로 알려주고 곧바로 앱을 개발하기 때문에 효과적으로 학습할 수 있습니다._3 실무에 유용한 기능을 담은 앱을 만듭니다. 앱 종류만 많다고 스킬업을 할 수 있는 게 아닙니다. 현업에서 정말 유용한 기능을 다루냐가 중요합니다. 요즘 앱은 동영상 플레이, 채팅, QR 코드 인식, 서버와의 통신은 필수입니다. 총 10가지 앱 각각에서 유용한 기능을 다룹니다. 마지막 10번째 앱은 다양한 기능 실습과 높은 완성도로 총 8개 장으로 다루고 있어, 이 책을 모두 학습하고 나면 실무자 수준까지 실력이 향상되어 있을 겁니다_4 실제 프로젝트 현장에서 기능을 구현하듯이 만듭니다. 현업에서는 한 번에 기능을 구현하지 않습니다. 전체 구조를 잡고 동작을 임시로 구현하고 나서 점점 로직을 완성해나갑니다. 그래서 완성된 앱 소스를 가지고 설명하는 방식은 학습 효과가 떨어집니다. 이미 완성된 요리로 재료 손질법을 설명하는 방식이기 때문입니다. 이 책은 현업에서와 같은 방법으로 앱의 완성도를 점진적으로 높이는 방식을 사용합니다. 로직 하나하나를 업그레이드해 나가면서 개발하는 과정을 보여주기 때문에 학습자가 직접 따라하면서 어렵지 않게 앱 개발 과정을 체득할 수 있습니다. _5 변경하거나 수정한 코드를 확실하게 표시합니다. 지속적으로 코드를 수정해 완성하기 때문에 기존 코드 어디를 수정 혹은 삭제했는지 알 수 있어야 합니다. 편리하게 찾을 수 있게 변경 사항이 있는 코드를 삭제선과 노란 배경색으로 표시했습니다._6 체계적으로 알려주고 만듭니다. [프로젝트 소개] → [사전 지식] → [사전 준비]→[UI 구상하기] → [구현하기] → [테스트하기] 순서를 꼭 지켜서 앱을 만듭니다. 체계적으로 이끌어주기 때문에 코딩을 하다가 길을 잃을 염려가 없습니다._7 다트 기초 문법부터 앱 개발, 파이어베이스 & 슈파베이스 연동, 인증, 광고, 배포까지 모두 담았습니다. 플러터 개발의 토대인 다트 입문부터 다트 3.0 신규 문법을 통해 객체지향 언어에 대한 이해도 체계적으로 할 수 있습니다. 앱 개발 서비스인 파이어베이스와 슈파베이스 연동은 물론 JWT를 이용한 인증과 편리함을 주는 소셜 로그인까지 배웁니다. 최종적으로 앱 출시 과정까지 경험해보기 위해 마지막 단계에서는 광고를 붙이고 배포를 통해 모든 과정을 직접 진행해봅니다. 숫자로 보는 책의 특징_0부터 아무것도 몰라도 OK적어도 한 개 언어를 써봤다면 다트 언어와 플러터와 안드로이드를 전혀 몰라도 됩니다. 처음부터 배포까지 하나하나 알려드립니다._2가지 OS 개발 환경 대응윈도우, 맥OS 개발 환경을 구축하고 실습할 수 있게 안내합니다._3.13 플러터 버전2023년에 공개된 플러터 최신 버전을 사용합니다._4가지 난이도 프로젝트 제공입문 수준 ★ 하나부터 고난도 ★★★★ 수준 앱을 골고로 만들어봅니다._5단계 개발 및 배포최소 기능 제품으로 구현한 일정 관리 앱을 업그레이드하며 개발하고 배포합니다. 실무처럼 일하는 방법을 체험할 수 있습니다._10가지 유용한 앱 구현블로그 웹 앱, 전자액자(이미지), 만난 지 며칠 U&I, 디지털 주사위, 동영상 플레이어, 영상 통화, 오늘도 출첵, 포토 스티커, 코팩튜브, 일정 관리 앱을 만듭니다.이 책의 구성이 책은 학습 흐름을 끊지 않기 위해 개발 환경부터 미리 구축해놓은 후, 다음과 같이 총 4단계에 걸쳐 플러터로 안드로이드와 iOS 앱을 개발하는 방법을 공략합니다._1단계 : 다트 언어 마스터하기플러터는 다트 언어를 사용합니다. 플러터로 앱을 원활히 개발하려면 다트를 탄탄하게 아는 것이 중요합니다. 그래서 이 책은 또 다른 자료를 찾아보지 않아도 될 정도로 깊이 있게 다트를 다룹니다. 1장에서 기초 문법, 2장 객체지향 프로그래밍, 3장 비동기 프로그래밍, 4장 다트 3.0 신규 문법까지 학습합니다. _2단계 : 플러터 기본 다지기플러터 프레임워크, 기본 위젯, 앱을 만들려면 알아야 하는 기본 지식을 알아보겠습니다. 플러터는 ‘쉬운’에 상당한 무게를 두고 개발되었습니다. 얼마나 다루기 쉬운 프레임워크인지 직접 체험하는 시간이 될 겁니다._3단계 : 앱을 만들며 유용한 기능 익히기본격적으로 플러터 실력을 향상시켜봅시다. 직접 10가지 앱을 구현하면서 실전 기반으로 프로그래밍 지식을 습득해갑니다. 각 앱에서 사용하는 핵심 기능을 사전 지식으로 먼저 배우고 나서 곧바로 활용해 이론을 생생하게 살려 실습할 수 있게 구성했습니다._4단계 : 실전! 일정 관리 앱 개발 & 배포하기일정 관리 앱을 단계별로 발전시키며 개발하고 광고를 붙여 배포합니다. 17장은 일정 생성과 특정 날짜의 일정 조회 기능을, 18장은 드리프트를 사용해 로컬 데이터베이스 SQLite에 일정을 저장합니다. 19장은 서버와 통신을 통한 원격 데이터베이스 사용법과 20장은 파이어베이스의 파이어스토어를 사용해 데이터 저장을 배웁니다. 21장은 JWT를 활용한 인증, 22장은 소셜 로그인과 파이어베이스 인증, 23장은 슈파베이스를 다룹니다. 마지막으로 24장에서 광고를 붙이고 구글플레이와 애플 앱스토어에 배포하는 과정을 통해 실무적으로 활용도 높은 내용을 배우게 됩니다.
*목차
00장 개발 환경 구축<br/>__0.1 윈도우 개발 환경 구축하기<br/>__0.2 macOS 개발 환경 구축하기<br/>__0.3 안드로이드 스튜디오 설치하기<br/>__0.4 설치 문제 해결하기<br/>__0.5 깃허브에서 예제 코드 내려받기<br/><br/><b>[1단계] 다트 언어 마스터하기</B><br/><br/>01장 다트 마스터하기<br/>__1.1 다트 소개<br/>__1.2 문법 공부 환경 안내<br/>__1.3 기초 문법<br/>__1.4 컬렉션<br/>__1.5 연산자<br/>__1.6 제어문<br/>__1.7 함수와 람다<br/>__1.8 try...catch<br/>__학습 마무리<br/><br/>02장 다트 객체지향 프로그래밍<br/>__2.1 객체지향 프로그래밍의 필요성<br/>__2.2 객체지향 프로그래밍의 시작, 클래스<br/>__2.3 상속<br/>__2.4 오버라이드<br/>__2.5 인터페이스<br/>__2.6 믹스인<br/>__2.7 추상<br/>__2.8 제네릭<br/>__2.9 스태틱<br/>__2.10 캐스케이드 연산자<br/>__학습 마무리<br/><br/>03장 다트 비동기 프로그래밍<br/>__3.1 동기 vs. 비동기 프로그래밍<br/>__3.2 Future<br/>__3.3 async와 await<br/>__3.4 Stream<br/>__학습 마무리<br/><br/>04장 다트 3.0 신규 문법<br/>__4.1 레코드<br/>__4.2 구조 분해<br/>__4.3 switch문<br/>__4.4 클래스 제한자<br/>__학습 마무리<br/><br/><B>[2단계] 플러터 기본 다지기</B><br/><br/>05장 플러터 입문하기<br/>__5.1 플러터 소개<br/>__5.2 Hello Flutter 앱 만들기<br/>__5.3 실제 단말 테스트 환경 구축<br/>__학습 마무리<br/><br/>06장 기본 위젯 알아보기<br/>__6.1 위젯 소개<br/>__6.2 위젯 실습용 템플릿 작성<br/>__6.3 텍스트 관련 위젯<br/>__6.4 제스처 관련 위젯<br/>__6.5 디자인 관련 위젯<br/>__6.6 배치 관련 위젯<br/>__학습 마무리<br/><br/>07장 앱을 만들려면 알아야 하는 그 밖의 지식<br/>__7.1 앱 만들기 프로세스<br/>__7.2 플러그인 추가 방법<br/>__7.3 주변 장치 종류<br/>__7.4 연습용 앱 만들기 : 스프레드 플래시 앱<br/>__학습 마무리<br/><br/><B>[3단계] 앱을 만들며 유용한 기능 익히기</B><br/><br/>08장 [Project] 블로그 웹 앱<br/>__8.1 사전 지식 : 콜백 함수·웹뷰 위젯·안드로이드와 iOS 네이티브 설정<br/>__8.2 사전 준비<br/>__8.3 레이아웃 구상하기<br/>__8.4 구현하기<br/>__8.5 테스트하기<br/>__학습 마무리<br/><br/>09장 [Project] 전자액자<br/>__9.1 사전 지식 : 위젯 생명주기·타이머<br/>__9.2 사전 준비<br/>__9.3 레이아웃 구상하기<br/>__9.4 구현하기<br/>__9.5 테스트하기<br/>__학습 마무리<br/><br/>10장 [Project] 만난 지 며칠 U&I<br/>__10.1 사전 지식 : setState() 함수·showCupertinoDialog() 함수<br/>__10.2 사전 준비<br/>__10.3 레이아웃 구상하기<br/>__10.4 구현하기<br/>__10.5 테스트하기<br/>__학습 마무리<br/><br/>11장 [Project] 디지털 주사위<br/>__11.1 사전 지식 : 가속도계·자이로스코프·Sensor_Plus 패키지<br/>__11.2 사전 준비<br/>__11.3 레이아웃 구상하기<br/>__11.4 구현하기<br/>__11.5 테스트하기<br/>__학습 마무리<br/><br/>12장 [Project] 동영상 플레이어<br/>__12.1 사전 지식 : iOS 시뮬레이터 화면 회전하기·안드로이드 에뮬레이터 화면 회전하기·시간 변환 및 String 패딩<br/>__12.2 사전 준비<br/>__12.3 레이아웃 구상하기<br/>__12.4 구현하기<br/>__12.5 테스트하기<br/>__학습 마무리<br/><br/>13장 [Project] 영상 통화<br/>__13.1 사전 지식 : 카메라 플러그인·WebRTC·iOS 시뮬레이터와 안드로이드 에뮬레이터에서의 카메라 사용·내비게이션<br/>__13.2 사전 준비<br/>__13.3 레이아웃 구상하기<br/>__13.4 구현하기<br/>__13.5 테스트하기<br/>__학습 마무리<br/><br/>14장 [Project] 오늘도 출첵<br/>__14.1 사전 지식 : Geolocator 플러그인<br/>__14.2 사전 준비<br/>__14.3 레이아웃 구상하기<br/>__14.4 구현하기<br/>__14.5 테스트하기<br/>__학습 마무리<br/><br/>15장 [Project] 포토 스티커<br/>__15.1 사전 지식 : GestureDetector와 제스처<br/>__15.2 사전 준비 <br/>__15.3 레이아웃 구상하기<br/>__15.4 구현하기<br/>__15.5 테스트하기<br/>__학습 마무리<br/><br/>16장 [Project] 코팩튜브<br/>__16.1 사전 지식 : HTTP 요청·REST API·JSON<br/>__16.2 사전 준비<br/>__16.3 레이아웃 구상하기<br/>__16.4 구현하기<br/>__16.5 테스트하기<br/>__학습 마무리<br/><br/><b>[4단계] 실전! 일정 관리 앱 개발 & 인증 & 배포하기</B><br/><br/>17장 [Project #1] 일정 관리 앱 만들기<br/>__17.1 사전 지식 : table_calendar 플러그인<br/>__17.2 사전 준비<br/>__17.3 레이아웃 구상하기<br/>__17.4 구현하기<br/>__17.5 테스트하기<br/>__학습 마무리<br/><br/>18장 [Project #2] 데이터베이스 적용하기<br/>__18.1 사전 지식 : SQL, SQLite·드리프트 플러그인·Dismissible 위젯<br/>__18.2 구현하기<br/>__18.3 테스트하기<br/>__학습 마무리<br/><br/>19장 [Project #3] 서버와 연동하기<br/>__19.1 사전 지식 : 상태 관리·캐시와 긍정적 응답<br/>__19.2 사전 준비<br/>__19.3 구현하기<br/>__19.4 테스트하기<br/>__학습 마무리<br/><br/>20장 [Project #4] 파이어베이스 연동하기<br/>__20.1 사전 지식 : 파이어베이스·파이어스토어<br/>__20.2 사전 준비<br/>__20.3 구현하기<br/>__20.4 테스트하기<br/>__학습 마무리<br/><br/>21장 [Project #5] JWT를 이용한 인증하기<br/>__21.1 사전 지식 : 인증·JWT란?·엑세스 토큰과 리프레시 토큰·JWT를 이용한 인증 절차<br/>__21.2 사전 준비<br/>__21.3 구현하기<br/>__21.4 테스트하기<br/>__학습 마무리<br/><br/>22장 [Project #6] 소셜 로그인과 파이어베이스 인증하기<br/>__22.1 사전 지식 : 소셜 로그인과 OAuth 2.0·파이어베이스 인증·구글 로그인 세팅<br/>__22.2 사전 준비<br/>__22.3 레이아웃 구상하기<br/>__22.4 구현하기<br/>__22.5 테스트하기<br/>__학습 마무리<br/><br/>23장 [Project #7] 슈파베이스 연동하기<br/>__23.1 사전 지식 : 슈파베이스란?·행 수준 보안·슈파베이스 인증<br/>__23.2 사전 준비<br/>__23.3 레이아웃 구상하기<br/>__23.4 구현하기<br/>__23.5 테스트하기<br/>__학습 마무리<br/><br/>24장 [Project #8] 광고 및 배포하기<br/>__24.1 사전 지식 : 구글 애드몹<br/>__24.2 사전 준비<br/>__24.3 구현하기<br/>__24.4 배포하기 : 구글 스토어 & 애플 앱스토어<br/>__학습 마무리<br/><br/>[부록]<br/>__A 데이터베이스 종류와 하이브<br/>__B 앱 이름과 아이콘 설정 방법<br/>__C 코딩이 편해지는 안드로이드 스튜디오 편의 기능<br/>__D 흔히 마주하는 에러