Flutter 배울 때 필요한 목차 , 최대한 많이 자세히
플러터 배우기(Introduction to Flutter)
플러터 소개(Introduction to Flutter)
- 플러터의 역사와 발전
- 주요 특징과 장점
- 플러터 생태계와 커뮤니티
- 플러터로 만든 인기 앱 사례
플러터 설치 및 설정(Installing and Setting Up Flutter)
- 플러터 설치 방법 (Windows, macOS, Linux)
- 안드로이드 스튜디오와 Xcode 설정
- 플러터 개발 환경 구성
- 플러터 프로젝트 생성 및 초기 설정
다트 언어 기초(Basics of Dart Language)
- 다트 언어 소개
- 기본 문법 (변수, 데이터 타입, 연산자)
- 제어문 (if, for, while, switch)
- 함수와 메서드
- 객체 지향 프로그래밍(OOP) 기초
플러터의 기본 개념(Basic Concepts of Flutter)
- 위젯(Widget)의 개념
- 상태 관리(State Management) 기초
- 빌드(Build) 메서드와 트리 구조
- 머티리얼 디자인(Material Design)과 쿠퍼티노(Cupertino) 위젯
레이아웃 및 위젯(Layout and Widgets)
- 레이아웃 위젯(Row, Column, Stack 등)
- 컨테이너(Container)와 정렬(Alignment) 위젯
- 텍스트(Text)와 이미지(Image) 위젯
- 버튼(Button) 위젯 (RaisedButton, FlatButton, IconButton 등)
- 입력 위젯(TextField, Checkbox, RadioButton 등)
네비게이션 및 라우팅(Navigation and Routing)
- Navigator와 기본 라우팅
- Named Routes 설정 및 사용
- 페이지 전환 애니메이션
- Drawer와 BottomNavigationBar
상태 관리(State Management)
- StatefulWidget과 StatelessWidget
- setState()와 기본 상태 관리
- Provider 패키지 사용법
- Bloc 패턴 소개 및 구현
- Riverpod 패키지 사용법
폼과 유효성 검사(Forms and Validation)
- Form 위젯과 TextFormField
- 폼 유효성 검사 및 오류 처리
- 커스텀 폼 위젯 만들기
- 폼 상태 관리
애니메이션 및 트랜지션(Animation and Transition)
- 기본 애니메이션 컨트롤러(AnimationController)
- 애니메이션 위젯 (AnimatedContainer, AnimatedOpacity 등)
- 트윈(Tween)과 커브(Curve) 애니메이션
- Hero 애니메이션
- 고급 애니메이션 기법
네트워킹 및 HTTP 요청(Networking and HTTP Requests)
- http 패키지 사용법
- 비동기 프로그래밍 (async, await)
- REST API 호출 및 데이터 처리
- JSON 파싱 및 모델 클래스 생성
- 웹 소켓(WebSocket) 통신
데이터베이스 및 로컬 저장소(Database and Local Storage)
- SQLite 데이터베이스 사용법
- sqflite 패키지 설치 및 설정
- CRUD 작업 (Create, Read, Update, Delete)
- SharedPreferences를 이용한 간단한 저장소
- Hive 데이터베이스 사용법
Firebase 통합(Firebase Integration)
- Firebase 프로젝트 설정 및 플러터 연동
- Firebase Authentication (이메일, 구글 로그인 등)
- Cloud Firestore 데이터베이스 사용법
- Firebase Storage를 이용한 파일 업로드 및 다운로드
- Firebase Push Notification 설정 및 사용
플러터에서의 테스트(Test in Flutter)
- 단위 테스트(Unit Test) 작성
- 위젯 테스트(Widget Test) 작성
- 통합 테스트(Integration Test) 작성
- 플러터 테스트 툴 사용법
- CI/CD 파이프라인 설정 (GitHub Actions, Codemagic 등)
플러터 퍼포먼스 최적화(Flutter Performance Optimization)
- 빌드 프로세스 최적화
- 레이아웃 및 렌더링 최적화
- 이미지 및 리소스 최적화
- 애니메이션 최적화
- 디버깅 툴 및 퍼포먼스 모니터링
플러터에서의 플랫폼 통합(Platform Integration in Flutter)
- 플랫폼 채널을 이용한 네이티브 코드 호출
- 안드로이드와 iOS 네이티브 코드 작성
- 네이티브 기능 (카메라, 위치 정보, 센서 등) 연동
- 네이티브 UI 컴포넌트와 플러터 위젯 통합
플러터에서의 국제화 및 현지화(Internationalization and Localization in Flutter)
- 다국어 지원을 위한 설정
- Intl 패키지 사용법
- 다국어 리소스 관리
- 다국어 UI 테스트 및 디버깅
고급 플러터 주제(Advanced Flutter Topics)
- 커스텀 위젯 생성
- 커스텀 페인터(CustomPainter) 사용법
- 플러그인 및 패키지 개발
- 고급 상태 관리 기법
- 모듈식 아키텍처 및 코드 분리
플러터 앱 배포(Deploying Flutter Apps)
- 안드로이드 앱 배포 (Google Play Store)
- iOS 앱 배포 (Apple App Store)
- 앱 스토어 심사 가이드라인
- 앱 서명 및 빌드 설정
- 지속적 배포(CD) 파이프라인 구축
실습 프로젝트(Hands-On Projects)
- 간단한 TODO 앱 만들기
- 뉴스 피드 앱 개발
- 채팅 애플리케이션 구축
- e-커머스 앱 프로젝트
- 실시간 위치 기반 앱 개발
최신 기능과 업데이트(Latest Features and Updates)
- 플러터 최신 버전 특징
- 새로운 도구 및 기능 소개
- 최신 워크플로우와 기법
- 업데이트 및 패치 관리
플러터는 매우 강력하고 유연한 모바일 애플리케이션 개발 프레임워크입니다. 체계적으로 학습하면서 실습을 통해 경험을 쌓는 것이 중요합니다. 각 주제를 차례로 익히면 복잡한 모바일 프로젝트를 효과적으로 처리할 수 있습니다.