-
Notifications
You must be signed in to change notification settings - Fork 0
1주차 플러터 시작하기
- 플러터 SDK 설치
- 플러터 SDK 다운로드
- 환경변수 설정
- 안드로이드 스튜디오 설치
- 안드로이드 스튜디오 다운로드
- 안드로이드 가상 에뮬레이터 세팅
- Command line tools 설치
- VSCode 설치
- VSCode 다운로드
- Flutter 플러그인 설치
- 기본 설정
프로젝트가 시작되는 main 함수는 다음과 같이 작성되어 있습니다.
runApp 함수를 통해 MyApp 위젯을 실행합니다.
void main() {
runApp(const MyApp());
}
MyApp 위젯은 StatelessWidget을 상속받아 구현되어 있습니다.
MaterialApp 위젯을 반환하며, MaterialApp 위젯은 MaterialApp3를 사용하도록 설정되어 있습니다.
MaterialApp 위젯은 title, theme, home 속성을 가지고 있습니다.
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
MyHomePage 위젯은 StatefulWidget을 상속받아 구현되어 있습니다.
Scaffold 위젯을 반환하며, Scaffold 위젯은 appBar, body, floatingActionButton 속성을 가지고 있습니다.
_incrementCounter 함수를 통해 _counter 변수를 증가시키고, setState 함수를 호출하여 화면을 갱신합니다.
Scaffold 위젯은 흰 도화지와 같은 역할을 하며, AppBar, FloatingActionButton, Drawer, BottomNavigationBar 등을 포함할 수 있습니다.
-
AppBar 위젯은 앱의 상단에 위치하며, title 속성을 가지고 있습니다.
-
body 속성은 Scaffold의 중심에 위치하는 위젯을 가지고 있습니다. 본문에 해당하는 위젯을 포함합니다.
-
floatingActionButton 속성은 Scaffold의 오른쪽 하단에 위치하는 위젯을 가지고 있습니다. 일반적으로 사용자의 주요 작업을 수행하는 버튼을 포함합니다.
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
}
pubspec.yaml 파일은 플러터 프로젝트의 설정 파일로, 프로젝트의 이름, 버전, 환경, 의존성, 폰트, 이미지 등을 설정할 수 있습니다.
여기서 가장 많이 사용되는 설정은 dependencies, assets 입니다.
- dependencies는 프로젝트에서 사용할 외부 패키지를 설정합니다.
- assets는 프로젝트에서 사용할 이미지, 폰트 등을 설정합니다.
name: flutter_application_2
description: "A new Flutter project."
publish_to: "none"
version: 1.0.0+1
environment:
sdk: ">=3.3.4 <4.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.6
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.0
flutter:
uses-material-design: true
assets:
- images/
fonts:
- family: Schyler
fonts:
- asset: fonts/Schyler-Regular.ttf
- asset: fonts/Schyler-Italic.ttf
style: italic
- family: Trajan Pro
fonts:
- asset: fonts/TrajanPro.ttf
- asset: fonts/TrajanPro_Bold.ttf
weight: 700
Copyright 2024. GDSC-DEU All rights reserved.