책 소개
이 책은 플러터 2.x 최신 버전을 사용했으며 Flutter와 Dart 기초부터 7가지 유형의 앱/웹 UI를 직접 만들면서 배운다!
플러터(Flutter)와 Dart 다트 언어를 익힌 후 7가지 앱/웹 UI를 직접 만들기를 다음과 같이 3단계 과정으로 진행된다.
▶ 1단계 : 플러터 이해와 시작하기
- 플러터, Dart 언어의 특징, 엔진, 아키텍처, 플러터 2.0 이해한다.
- Flutter SDK 설치, 안드로이드 스튜디오 설정과 플러터 프로젝트 생성 및 실행, Hot Reload를 체험해본다.
▶ 2단계 : Dart 다트 문법 익히기
- DartPad 사용법부터 변수, 연산자, 조건문, 함수, 클래스, 상속, Mixin, 추상 클래스, 컬렉션, 반복문, final과 const, Null Safety 등 Dart 다트 문법을 익힌다.
▶ 3단계 : 7가지 앱/웹 만들기
다양한 앱/웹을 직접 만들어본다.
- 스토어 앱 만들기
- 레시피 앱 만들기
- 프로필 앱 만들기
- 로그인 앱 만들기
- 쇼핑카트 앱 만들기
- 모두의숙소 웹 만들기
- 모두의채팅 앱 만들기
이 책의 예제 소스 코드, 저자에게 질문하는 방법은 “5, 8쪽”을 참고하고, 이 책의 실습 내용 관련 동영상은 6~7쪽을 참고한다.
작가 소개
최주호
현) blog.naver.com/getinthere 운영
현) jspstudy.co.kr 운영
현) 유튜브 데어프로그래밍 채널 운영
현) 프리랜서 강사
현) 온라인 컨텐츠 제작(이지업, 구름에듀, 한국공개SW협회, 한국융합인재교육협회)
현) 노마드랩 개발 팀장
(저서)
AWS로 구현하는 CI/CD 배포 입문 (앤써북)
모두가 할 수 있는 플러터 UI 실전 (앤써북)
모두가 할 수 있는 플러터 UI 입문 (앤써북)
IoT 사물인터넷을 위한 라즈베리파이 4 정석 (앤써북)
JSPStudy의 JSP & Servlet 웹 프로그래밍 입문 + 활용 (앤써북)
그누위즈의 PHP&MySQL 웹 프로그래밍 입문 + 활용 (전면 개정판) (앤써북)
목 차
Chapter 01 플러터 이해하기
01_1 플러터 시작하기 플러터란?
UI란?
프레임워크란?
01_2 플러터의 특징
01_3 Dart 언어의 특징
01_4 지금 당장 앱을 만들어야 한다면?
01_5 Skia 엔진
01_6 AOT와 JIT지원
AOT
JIT
01_7 Swift UI와 Android JetPack Compose
01_8 플러터 아키텍처
01_9 플러터 2.0
Chapter 02 Flutter SDK 설치하기
02_1 Flutter SDK 다운로드
Flutter SDK 압축 해제 및 폴더 설정
Flutter 환경변수 설정
02_2 안드로이드 스튜디오 설치하기
안드로이드 스튜디오 다운로드
안드로이드 스튜디오 설치하기
Flutter, Dart 플러그인 설치
Flutter 프로젝트 생성하기
Flutter Doctor
버전 확인 해보기
02_3 안드로이드 스튜디오 환경 설정
자동정렬 설정
글자 크기 및 폰트 설정
02_4 Flutter 에뮬레이터로 first_app 프로젝트 실행하기
02_5 Hot Reload 체험해보기
Chapter 03 Dart 문법 익히기
03_1 DartPad 사용해보기
DartPad 사이트 접속하기
Dart로 HTML 코딩하기
Flutter로 앱 코딩하기
순수 Dart 언어 작성하기
03_2 Dart 변수
변수
타입 확인
타입 추론
03_3 연산자 알아보기
산술 연산자
비교 연산자
논리 연산자
03_4 조건문
If문
삼항 연산자
null 대체 연산자
03_5 함수
함수
익명함수와 람다식 클래스
03_6 클래스란?
객체(Object)란?
객체 지향 프로그래밍
생성자
선택적 매개변수
cascade 연산자
03_7 상속
다형성
슈퍼(super) 키워드
final 키워드와 이니셜 라이저(:) 키워드
03_8 Mixin
03_9 추상 클래스
추상 클래스란?
03_10 컬렉션
List
Map
Set
03_11 반복문
for문
map 함수
스프레드 연산자
03_12 final과 const
03_13 Null Safety
required
Null Safety(?) 적용하기
Chapter 04 스토어 앱 만들기
04_1 스토어 앱 구조보기
화면 구조보기
MaterialApp vs CupertinoApp
Scaffold
필요한 위젯 살펴보기
플러터 프로젝트 생성하기
04_2 스토어 앱 뼈대 만들기
04_3 스토어 앱 만들어보기
기본 코드 작성하기
Column 위젯
Row 위젯
Text 위젯
SafeArea 위젯
Text 위젯의 Style 속성
Open Flutter Devtools
Spacer 위젯
Debug 배너 해제
Padding 위젯
Image 위젯
Expanded 위젯 - Column 방향
SizedBox 위젯
전체코드
Chapter 05 레시피 앱 만들기
05_1 프로필 앱 만들기 레시피 앱 구조보기
화면 구조보기
필요한 위젯 살펴보기
플로터 프로젝트 생성하기
05_2 레시피 앱 뼈대 구성하기
05_3 레시피 앱 만들어보기
기본 코드 작성하기
AppBar 위젯의 action 속성에 Icon 위젯 추가하기
RecipeTitle 커스텀 위젯 만들기
Theme에 Font 적용하기
Container 위젯을 활용한 RecipeMenu 커스텀 위젯 만들기
재사용 가능한 레시피 리스트 아이템 만들기 - 클래스 생성자 활용
ListView 위젯을 활용하여 세로 스크롤 달기
AspectRatio로 이미지 비율 정하기
ClipRRect 위젯으로 이미지 모서리에 곡선 주기
Chapter 06 프로필 앱 만들기
06_1 프로필 앱 구조보기
화면 구조보기
필요한 위젯 살펴보기
플로터 프로젝트 생성하기
플로터 2.0 업그레이드
Dart 2.12 버전 적용하기
06_2 프로필 앱 뼈대 구성하기
프로젝트 구조 세팅하기
기본 코드 작성하기
06_3 프로필 앱 위젯 구성하기
AppBar 위젝과 Scaffold의 endDrawer 속성 활용하기
CircleAvatar 위젯
Column 위젯의 CrossAxisAligment 속성 활용하기
재사용 가능한 함수 만들기
InkWell 위젯을 사용하여 ProfileButtons 클래스 만들기
TabBar 위젯과 TabBarView 위젯 사용하기
GridView 위젯과 Image.network
Chapter 07 로그인 앱 만들기
07_1 로그인 앱 구조보기
화면 구조보기
필요한 위젯 살펴보기
플러터 프로젝트 생성하기
07_2 로그인 앱 뼈대 작성하기
프로젝트 구조 세팅하기
기본코드 작성하기 - 화면 이동을 위한 Routes
07_3 LoginPage 위젯 구성하기
ListView 위젯으로 전체 구성하기
SvgPicture 라이브러리로 Logo 위젯 만들기
TextFormField 위젯 만들기
Form 위젯 만들기
Form 위젯에 Theme를 적용한 TextButton 추가하기
Navigator로 화면 이동하기
Form 위젯 유효성(validation) 검사하기
07_4 HomePage 위젯 구성하기
home_page.dart 코드 완성하기
Chapter 08 쇼핑카트 앱 만들기
08_1 쇼핑카트 앱 구조보기
화면 구조보기
필요한 위젯 살펴보기
플로터 프로젝트 생성하기
08_2 플러터 상태 관리 StatefulWidget
StatefulWidget이란?
StatefulWidget과 StatelessWidget의 차이
위젯 트리
StatefulWidget 빌드 흐름
BuildContext 분리하기
08_3 쇼핑카트 앱 뼈대 작성하기
프로젝트 구조 세팅하기
기본 코드 작성하기
08_4 쇼핑카트 앱 만들어보기
AppBar 만들기
쇼핑카트 헤더 만들기 - setState() 함수
쇼핑카트 디테일 만들기 - Stack 위젯과 Positioned 위젯
쇼핑카트 헤더 만들기 - CupertinoAlertDialog 위젯
Chapter 09 모두의숙소 웹 만들기
09_1 모두의숙소 웹 구조 살펴보기
화면 구조보기
플러터 프로젝트 생성하기
09_2 모두의숙소 웹 뼈대 구성하기
프로젝트 구조 세팅하기
기본 코드 작성하기
09_3 모두의숙소 웹 만들어보기
헤더에 AppBar 만들기
헤더에 Form에 추가할 CommonFormField 만들기
헤더에 Form 만들기
바디에 Banner 만들기
바디에 Popular에 추가할 HomeBodyPopularItem 만들기
바디에 Popular 완성하기
MediaQuery를 활용하여 HomeHeaderForm 가운데 정렬
안드로이드 에뮬레이터로 실행해보기
Chapter 10 모두의채팅 앱 UI 만들기
10_1 앱 뼈대 만들기
폴더 및 파일 만들기
pubspec.yaml 파일 설정하기
main_screen.dart 기본 코드 작성
main.dart 파일 완성하기
10_2 메인 화면 만들기
MainScreen 위젯 기본 코드 작성하기
IndexedStack의 하위 위젯 만들기
MainScreens 위젯 완성하기
10_3 친구 화면 만들기
User 샘플 데이터 만들기
FriendScreen 기본 코드 입력하기
ProfileCard 위젯 만들기
FriendScreen 완성하기
10_4 프로필 화면 만들기
ProfileScreen 생성하기
ProfileCard에 탭 이벤트 넣기
앱 화면 전체에 배경 넣기
앱바 만들기
If로 하단 아이콘 작성하기
ProfileScreen 완성하기
10_5 채팅 리스트 화면 만들기
채팅 샘플 데이터 만들기
ChatCard 위젯 만들기
ChatScreen 완성하기
10_6 채팅 화면 만들기
ChatRoomScreen 생성하기
ChatCard에 탭 이벤트 넣기
배경 및 앱바 작성하기
TimeLine 위젯 작성하기
OtherChat 위젯 작성하기
MyChat 위젯 작성하기
채팅입력 UI 구현하기
10_7 더보기 화면 만들기
탭 샘플 데이터 만들기
MoreScreen 완성하기
Appendix 유튜브 무료 강의_Getx란?
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |