Flutter와 Dart 학습을 위한 예제 애플리케이션입니다. React 개발자 관점에서 Flutter를 배우기 위한 코드가 구현되어 있습니다.
learn_flutter/
├── packages/
│ ├── app_main/ # 메인 애플리케이션 코드
│ │ └── lib/
│ │ ├── main.dart # 앱 진입점
│ │ ├── app/ # 앱 초기화 및 설정
│ │ ├── pages/ # 페이지 컴포넌트
│ │ ├── shared/ # 공유 유틸리티
│ │ └── widgets/ # 재사용 위젯
│ │
│ └── core/ # 비즈니스 로직 및 공통 기능
│ └── lib/
│ ├── core.dart # 패키지 진입점
│ └── src/ # 구현 클래스
- Flutter의 기반 언어
- JavaScript (비동기) + TypeScript (타입) + Java (클래스 기반 객체 지향) 특성 포함
- Null Safety 지원
- JIT(Just-in-time) & AOT(Ahead-of-time) 컴파일 지원
Flutter에서는 모든 UI 요소가 위젯으로 구성됩니다. 앱에서 구현된 위젯 예시:
- StatelessWidget: 상태가 없는 정적 위젯 (React의 함수형 컴포넌트와 유사)
- StatefulWidget: 내부 상태를 가지는 동적 위젯 (React의 useState를 사용한 컴포넌트와 유사)
- 기본 UI 위젯: Text, Button, Icon 등
- 레이아웃 위젯: Row, Column, Container, Stack 등
앱은 다음 4개의 주요 페이지로 구성되어 있습니다:
- 텍스트, 이미지, 아이콘 등 기본 위젯 소개
- Row, Column, Stack 등 레이아웃 위젯 소개
- 버튼, 슬라이더, 텍스트 입력, 스위치 등 사용자 입력 처리 위젯 소개
- StatefulWidget을 활용한 상태 관리 예시
- core 패키지의 비즈니스 로직 활용 예시
- CounterManager와 Calculator 클래스 사용 방법
Flutter에서의 상태 관리 방식을 다음과 같이 소개합니다:
- 로컬 상태 관리: StatefulWidget + setState()
- 외부 상태 관리: ChangeNotifier 기반 외부 상태 관리
- 생명주기 관리: initState(), dispose() 활용
- CounterManager: ChangeNotifier를 활용한 카운터 상태 관리
- Calculator: 다양한 계산 기능을 제공하는 유틸리티 클래스
| React | Flutter |
|---|---|
| Component | Widget |
| Props | 생성자 매개변수 |
| useState | StatefulWidget + setState() |
| useEffect | initState() + dispose() |
| Context API | ChangeNotifier |
| 함수형 컴포넌트 | StatelessWidget |
| styled-components | Container, BoxDecoration 등 |
- Flutter SDK 설치: https://flutter.dev/docs/get-started/install
- 의존성 설치:
flutter pub get - 앱 실행:
flutter run