mirror of
https://github.com/ChangJoo-Park/learn-flutter.git
synced 2025-06-08 13:43:12 +00:00
134 lines
3.4 KiB
Markdown
134 lines
3.4 KiB
Markdown
# Flutter 온보딩 핸드북 목차
|
|
|
|
## 📦 Part 1. 시작하기: 환경 설정과 첫 프로젝트
|
|
|
|
- Flutter 소개 및 특징
|
|
- 개발 환경 구성
|
|
- Flutter SDK 설치
|
|
- Visual Studio Code 설정
|
|
- 에뮬레이터 / 실기기 연결
|
|
- 첫 프로젝트 생성 및 실행
|
|
- Flutter 프로젝트 구조 이해
|
|
|
|
## 💡 Part 2. Dart 언어 기초
|
|
|
|
- Dart 소개
|
|
- 기본 문법 및 변수
|
|
- 타입 시스템 & 제네릭
|
|
- 클래스, 생성자, 팩토리
|
|
- 비동기 프로그래밍 (Future, async/await, Stream)
|
|
- 컬렉션과 반복문
|
|
- 예외 처리
|
|
- Extension / Mixin
|
|
- 레코드 & 패턴매칭 (Dart 3 이상)
|
|
|
|
## 🧱 Part 3. Flutter의 기본 구성 요소
|
|
|
|
### 위젯 개념과 주요 위젯
|
|
|
|
- Stateless / Stateful 위젯
|
|
- Widget Tree 이해
|
|
- 주요 위젯
|
|
- Text, Button, Image, Icon
|
|
- Container, SizedBox, Padding
|
|
- TextField, Form, GestureDetector, InkWell
|
|
- Visibility, Offstage, Divider, Tooltip
|
|
|
|
### 레이아웃 위젯
|
|
|
|
- Row, Column, Flex
|
|
- Stack, Align, Positioned
|
|
- Expanded, Flexible, Spacer
|
|
- SingleChildScrollView, Wrap
|
|
- AspectRatio, LayoutBuilder
|
|
- OrientationBuilder, MediaQuery
|
|
- ConstrainedBox, IntrinsicHeight 등
|
|
|
|
## 🎨 Part 4. 상태 관리
|
|
|
|
- 상태 관리 입문
|
|
- setState, ValueNotifier
|
|
- InheritedWidget, Provider
|
|
- Riverpod 소개 및 실습
|
|
- 실습: TodoList 개선 (상태 관리 포함)
|
|
|
|
## 🚦 Part 5. 네비게이션과 화면 구성
|
|
|
|
- Navigator 1.0 (push/pop)
|
|
- Navigator 2.0 개념
|
|
- go_router 사용법
|
|
- 라우트 가드, ShellRoute, DeepLink
|
|
- 실습: 복수 화면 전환 및 데이터 전달
|
|
- Drawer, BottomNavigationBar, TabBar
|
|
|
|
## 🔌 Part 6. 외부와의 연동 (서버 & Firebase)
|
|
|
|
- Dio를 통한 API 통신
|
|
- Interceptor, cancelToken, 오류 처리
|
|
- JSON 직렬화 (`json_serializable`, `freezed`)
|
|
- Firebase 연동
|
|
- 초기 설정
|
|
- Firebase Cloud Messaging
|
|
- Firebase Auth & Firestore (간단히)
|
|
- Firebase Analytics / Crashlytics
|
|
|
|
## 🧪 Part 7. 테스트와 디버깅
|
|
|
|
- 단위 테스트 (unit)
|
|
- 위젯 테스트 (widget)
|
|
- 통합 테스트 (integration)
|
|
- mockito, golden test, coverage
|
|
- Flutter DevTools 사용법
|
|
- 로그 관리 (talker)
|
|
|
|
## 🚀 Part 8. 앱 배포 및 운영
|
|
|
|
- 빌드 모드 (debug / profile / release)
|
|
- Android / iOS 배포 절차
|
|
- keystore, signing, TestFlight
|
|
- Codemagic을 활용한 CI/CD 구성
|
|
- 환경 분리 및 flavor 설정
|
|
- 사용자 분석 도구
|
|
- Firebase Analytics
|
|
- Posthog
|
|
- 에러 추적
|
|
- Crashlytics, Sentry
|
|
|
|
## 🧭 Part 9. 프로젝트 구조 & 아키텍처
|
|
|
|
- 기능별 vs 계층별 폴더 구조
|
|
- 클린 아키텍처 도입하기
|
|
- 의존성 주입 개념
|
|
- 패키지 작성 및 관리
|
|
- pub.dev 탐색 / dev_dependencies 구분
|
|
- internal 패키지 분리 전략
|
|
- 모노레포 구조 및 melos 도입
|
|
- 사내 Flutter 코드 스타일 가이드
|
|
|
|
## 🌍 Part 10. 보완 학습: 확장성과 품질
|
|
|
|
- CustomPainter와 RenderBox 이해
|
|
- 위젯 캐싱
|
|
- RepaintBoundary
|
|
- 애니메이션 구성 (Hero, AnimatedXXX)
|
|
- 접근성 (Semantics 등)
|
|
- 다국어 처리 (intl, flutter_localizations)
|
|
- 퍼포먼스 튜닝 체크리스트
|
|
- 추천 패키지 모음
|
|
|
|
## 📚 부록
|
|
|
|
- 개발 도구와 링크 모음
|
|
- 공식 문서, 블로그, 영상 추천
|
|
- Flutter 오류 대응법 가이드
|
|
- 코드 템플릿 및 예제 모음 링크
|
|
- 자주 묻는 질문 (FAQ)
|
|
- 소셜 로그인
|
|
- 네이버 로그인
|
|
- 카카오 로그인
|
|
- 애플 로그인
|
|
- iOS 라이브 액티비티
|
|
- WidgetBook 문서화
|
|
- 주석
|
|
- 코드 스타일
|
|
- llms.txt
|