Description
★ 생성형 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)한국지사에서소프트웨어엔지니어로일했습니다.현재주식회사코드팩토리를창업하여개발을하면서초보자뿐만아니라현직개발자에게도유용한개발강의를제작합니다.밀리의서재플러터전환차세대프로젝트를리드했습니다.
(유튜브채널youtube.com/@codefactory_official)

목차


00장개발환경구축
__0.1윈도우개발환경구축하기
__0.2macOS개발환경구축하기
__0.3안드로이드스튜디오설치하기
__0.4설치문제해결하기
__0.5깃허브에서예제코드내려받기

[1단계]다트언어마스터하기

01장다트마스터하기
__1.1다트소개
__1.2문법공부환경안내
__1.3기초문법
__1.4컬렉션
__1.5연산자
__1.6제어문
__1.7함수와람다
__1.8try...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.2Future
__3.3async와await
__3.4Stream
__학습마무리

04장다트3.0신규문법
__4.1레코드
__4.2구조분해
__4.3switch문
__4.4클래스제한자
__학습마무리

[2단계]플러터기본다지기

05장플러터입문하기
__5.1플러터소개
__5.2HelloFlutter앱만들기
__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요청·RESTAPI·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사전지식:소셜로그인과OAuth2.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흔히마주하는에러

출판사 서평

★생성형AI기술을사용한〈AI챗봇〉앱개발예제추가!
★인프런NO.1플러터강사와함께현업수준으로실력끌어올려보세요!
앱개발,관심은많지만시작하기어렵나요?코드팩토리의플러터프로그래밍한권이면앱개발을마스터한자신을마주하게될것입니다.이책은왕초보실력을현업수준으로끌어올리는것이목표로써,실무에유용한기능을담은앱을배운이론을활용하여만들며익힐수있도록구성했습니다.모든앱은결과가아니라실제프로젝트현장에서구현하듯이과정을보여주며만듭니다.

[프로젝트소개]-[사전지식]-[사전준비]-[UI구상하기]-[구현하기]-[테스트하기]순서로앱개발을체계적으로이끌어줍니다.초보자눈높이에맞추면서,다트언어입문부터3.0신규문법,인증과파이어베이스,슈파베이스연동,광고와배포까지필요한것은빠짐없이모두담았습니다.3판에서는이제꼭알아야하는생성형AI제미나이API를활용하는방법으로〈AI챗봇〉예제를추가했습니다.현업에도움이될실무적이고활용도높은노하우를담아설명했기때문에탄탄하면서도빠르게스킬업되는자신을체감하게될겁니다.

★개정판,이렇게초강력업그레이드되었습니다!
이번3판에서는생성형AI의일종인구글제미나이를활용하여AI챗봇을개발하는프로젝트를새롭게추가했습니다.구글제미나이는구글이개발한첨단인공지능모델로,자연어이해와생성능력이뛰어나다양한응용프로그램에효과적으로적용될수있습니다.또한,iOS기반개발환경에서더쉽게개발할수있도록각종상세한안내를추가하였으며,최신버전의소프트웨어와호환되도록모든앱을업데이트하고수정했습니다.
직전2판에서는변화의폭이더욱컸습니다.다트3.0에새롭게추가된문법요소들을상세히설명하여개발자들이최신언어기능을효과적으로활용할수있도록도왔습니다.또한JWT(JSONWebToken)를이용한인증방식을도입하여애플리케이션의보안을한층강화했습니다.구글소셜로그인기능을구현하는방법도다루어사용자인증과정을간편하고안전하게처리할수있도록하였습니다.더불어,최신개발트렌드에발맞추어데이터베이스및백엔드서비스로슈파베이스(Supabase)를사용하는방법을새롭게추가했습니다.슈파베이스는오픈소스백엔드플랫폼으로,실시간데이터베이스,인증,스토리지등다양한기능을손쉽게통합할수있어인기가높아지고있습니다.

★MustHave시리즈안내
MustHave시리즈는내것으로만드는시간을드립니다.명확한학습목표와핵심정리를제공하고,간단명료한설명과다양한그림으로학습효과를극대화합니다.설명과예제를제공해응용력을키워줍니다.할수있습니다.포기는없습니다.지금당장밑줄긋고메모하고타이핑하세요!MustHave가여러분의성장을돕겠습니다.

★다트3.0최신문법과AIAPI활용,소셜로그인,슈파베이스연동,인증그리고광고수익화까지!
★플러터앱개발,이책한권이면충분합니다
이책은플러터시작을위한다트언어를기초부터객체지향,비동기프로그래밍,신규3.0문법까지4개장에걸쳐다룹니다.독자가꼭필요한내용을학습할수있도록플러터기본위젯부터현업에유용한기능을담은10가지앱을배울수있도록구성했습니다.개발,인증,연동,광고,배포까지기능실습에부족함없는구성으로학습을마무리할때쯤이면실무자수준의실력을갖출수있도록했습니다.열심히책을보고공부하며따라하지만중간에막힌다면걱정하지마세요.저자가운영하는유튜브와디스코드채널,오픈톡을통해그간의문제히스토리그리고친절한답변까지들을수있습니다.

★SQLite,파이어베이스,슈파베이스,Isar까지
★데이터베이스선택고민은이제끝!
데이터베이스는서비스용도에알맞은것을선택해야합니다.늘쓰던것만쓰면서비스에맞지않는상황이발생해나중에손이가게되죠.그래서이책은상황별로적절한선택을할수있도록총4가지데이터베이스를사용합니다.로컬데이터베이스부터원격데이터베이스까지!개발하는서비스에꼭맞는선택에도움이되길희망합니다.

[이책의특징]
_1강의에서검증받은커리큘럼을담았습니다.먼저책목차를만든다음온라인강의를만들었습니다.많은분이수강해주셨고인기강의가되었습니다.수강자의다양한목소리를책에반영했습니다.

_2배운이론을곧바로써먹습니다.이론을모두배우고나서앱을만들려고하면정작써먹어야할때아무것도기억나지않습니다.배운이론을곧바로활용해야익숙해지고기억도잘납니다.그래서기초지식을1단계에서탄탄히다지고나서,2단계에서는핵심플러터기능을살펴본후앱만들기로돌입합니다.앱마다필요한이론을사전지식으로알려주고곧바로앱을개발하기때문에효과적으로학습할수있습니다.

_3실무에유용한기능을담은앱을만듭니다.앱종류만많다고스킬업을할수있는게아닙니다.현업에서정말유용한기능을다루냐가중요합니다.요즘앱은동영상플레이,채팅,QR코드인식,서버와의통신은필수입니다.총10가지앱각각에서유용한기능을다룹니다.마지막10번째앱은다양한기능실습과높은완성도로총8개장으로다루고있어,이책을모두학습하고나면실무자수준까지실력이향상되어있을겁니다

_4실제프로젝트현장에서기능을구현하듯이만듭니다.현업에서는한번에기능을구현하지않습니다.전체구조를잡고동작을임시로구현하고나서점점로직을완성해나갑니다.그래서완성된앱소스를가지고설명하는방식은학습효과가떨어집니다.이미완성된요리로재료손질법을설명하는방식이기때문입니다.이책은현업에서와같은방법으로앱의완성도를점진적으로높이는방식을사용합니다.로직하나하나를업그레이드해나가면서개발하는과정을보여주기때문에학습자가직접따라하면서어렵지않게앱개발과정을체득할수있습니다.

_5변경하거나수정한코드를확실하게표시합니다.지속적으로코드를수정해완성하기때문에기존코드어디를수정혹은삭제했는지알수있어야합니다.편리하게찾을수있게변경사항이있는코드를삭제선과노란배경색으로표시했습니다.

_6체계적으로알려주고만듭니다.[프로젝트소개]→[사전지식]→[사전준비]→[UI구상하기]→[구현하기]→[테스트하기]순서를꼭지켜서앱을만듭니다.체계적으로이끌어주기때문에코딩을하다가길을잃을염려가없습니다.

_7다트기초문법부터앱개발,구글제미나이API,파이어베이스&슈파베이스연동,인증,광고,배포까지모두담았습니다.플러터개발의토대인다트입문부터다트3.0신규문법을통해객체지향언어에대한이해도체계적으로할수있습니다.앱개발서비스인파이어베이스와슈파베이스연동은물론JWT를이용한인증과편리함을주는소셜로그인까지배웁니다.최종적으로앱출시과정까지경험해보기위해마지막단계에서는광고를붙이고배포를통해모든과정을직접진행해봅니다.

[숫자로보는책의특징]
_0부터아무것도몰라도OK
적어도한개언어를써봤다면다트언어와플러터와안드로이드를전혀몰라도됩니다.처음부터배포까지하나하나알려드립니다.

_2가지OS개발환경대응
윈도우,맥OS개발환경을구축하고실습할수있게안내합니다.

_3.13플러터버전
2023년에공개된플러터최신버전을사용합니다.

_4가지데이터베이스대응
SQLite,파이어베이스,슈파베이스,Isar까지!DB고민을확풀어드려요.

_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장에서광고를붙이고구글플레이와애플앱스토어에배포하는과정을통해실무적으로활용도높은내용을배우게됩니다.

추천사
“플러터최신버전에대응되는프레임워크를기반으로,누구나쉽게플러터와다트언어를학습할수있게구성되어있어요.정말배경지식이없더라도쉽게익혀갈수있게말예요.”독자5***o

“이론설명뿐만아니라실무에서유용한기능에대해설명해주고,유용한예제가많아서도움이많이되었습니다.앱개발부터광고와배포까지모두담고있기때문에모바일앱을개발하는분들이라면한번쯤읽어보면좋을것같습니다.”독자c***7

“iOS와안드로이드를같이개발하려고플러터에입문했는데내용이괜찮습니다.다른사이트에서인강을듣고부족한부분보충이나필요한부분을찾는데잘활용하고있습니다.”독자d***8

“이만한플러터책은없습니다.최신플러터버전으로,Dart언어에대한기초부터,상용급프로젝트예시를진행하면서플러터에빠르게안착할수있게체계적으로알려줍니다.카톡방과디스코드에서저자그리고다른개발자분들과소통을할수있다는장점도제공합니다.”독자sp*****