๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋š๋”ฑ๊ฐœ๋ฐœ ๐Ÿ”จ

[์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ํ”Œ๋Ÿฌํ„ฐ(Flutter)๋กœ ์‹œ์ž‘ํ•˜๋Š” ์•ฑ๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜ - 1์ฃผ์ฐจ ๊ฐœ๋ฐœ์ผ์ง€ โ‘ก ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/๐ŸŽฏ Flutter

[์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ] ํ”Œ๋Ÿฌํ„ฐ(Flutter)๋กœ ์‹œ์ž‘ํ•˜๋Š” ์•ฑ๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜ - 1์ฃผ์ฐจ ๊ฐœ๋ฐœ์ผ์ง€ โ‘ก

๋š๋”ฑ๊ฐœ๋ฐœ์ž ๐Ÿ”ง 2023. 11. 8. 22:07
๋ฐ˜์‘ํ˜•

3. Flutter ์ดํ•ดํ•˜๊ธฐ

flutter๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์œ„์ ฏ(Widget)์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค. 
์œ„์ ฏ์€ ๋ ˆ๊ณ  ๋ธ”๋Ÿญ๊ณผ ๊ฐ™์ด ์•ฑ์„ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ž‘์€ ๋ชจ๋“ˆ์ด๋‹ค. -> ์œ„์ ฏ ํŠธ๋ฆฌ

 

Material widget - android

Cupertino widget - ios

-> ์œ„์ ฏ ์ค‘ ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋“  ์‚ฌ์šฉ์„ฑ๋งŒ ํ•ด์น˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์•ฑ์„ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ํ”„๋กœ์ ํŠธ ์ค€๋น„

flutter ํด๋” ์ค€๋น„ : ์•ž์œผ๋กœ ๋งŒ๋“ค์–ด๋ณผ ์•ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ์•„๋‘˜ ํด๋” -> ์ƒ์œ„ํด๋” ์–ด๋””์—๋„ ํ•œ๊ธ€์ด ํฌํ•จ๋˜์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

flutter new project : ํ”„๋กœ์ ํŠธ๋ช…์€ ์˜๋ฌธ๊ณผ _๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

ํด๋” ๊ตฌ์กฐ

1) lib

- ์ฃผ๋กœ ์ฝ”๋”ฉํ•˜๋Š” ํด๋”

- flutter ํ”„๋กœ์ ํŠธ๋Š” main.dart ํŒŒ์ผ์„ ์‹คํ–‰ํ•œ๋‹ค.

 

2) pubspec.yaml

- ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์„ค์ •์„ ํ•˜๋Š” ํด๋”

- ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๊น”๊ฑฐ๋‚˜ ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์ˆ˜์ •ํ•œ๋‹ค.

VSCode Dart ์„ธํŒ…

View → Command Palette -> Dart: Use Recommended Settings : ์ €์žฅ ์‹œ ์ž๋™ ์ค„ ์ •๋ ฌ ๊ธฐ๋Šฅ

Emulator ์‹คํ–‰ํ•˜๊ธฐ

์‹ค์ œ ๊ธฐ๊ธฐ๊ฐ€ ์—†์–ด๋„ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํ„ฐ ์ƒ์˜ ๊ฐ€์ƒ์˜ ํœด๋Œ€ํฐ

-> ์นด๋ฉ”๋ผ๋‚˜ apple ๋กœ๊ทธ์ธ๊ณผ ๊ฐ™์ด ํŠน์ • ๊ธฐ๋Šฅ์€ ๋ถˆ๊ฐ€

5. ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

scaffold  widget

๊ฑด๋ฌผ์„ ์ง€์„ ๋•Œ ๊ณต์‚ฌ์žฅ์— ๋จผ์ € scaffold๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์•ฑ์—์„œ๋„ ํ™”๋ฉด์„ ๊ทธ๋ฆด ๋•Œ scaffold widget์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.
Scaffold(
    appBar: ๋‹ค๋ฅธ ์œ„์ ฏ, // ์ƒ๋‹จ ๋ฐ”
    body: ๋‹ค๋ฅธ ์œ„์ ฏ, // ํ™”๋ฉด ์ค‘์•™์— ๊ฐ€์žฅ ํฐ ๋ฉด์ 
    bottomNavigationBar: ๋‹ค๋ฅธ ์œ„์ ฏ, // ํ•˜๋‹จ ๋ฐ”
    floatingActionButton: ๋‹ค๋ฅธ ์œ„์ ฏ, // ํ•˜๋‹จ ํ™”๋ฉด ์ตœ์ƒ์œ„์— ๋– ์žˆ๋Š” ๋ฒ„ํŠผ
),

 

* hot reload : ์ €์žฅ์‹œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋ฐ”๋กœ ๋ฐ˜์˜๋˜๋Š” ๊ธฐ๋Šฅ

* ๋งจ๋’ค์— ์ฝค๋งˆ๋ฅผ ์•ˆ๋ถ™์ด๋ฉด ์ €์žฅ์‹œ ์ˆ˜ํ‰์œผ๋กœ ์ •๋ ฌ์ด ๋˜๋ฏ€๋กœ ์ฝค๋งˆ๋ฅผ ๋ถ™์—ฌ์•ผ ์ˆ˜์ง ์ •๋ ฌ์ด ๋œ๋‹ค.

* ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ : option + esc

* ๋ฆฌํŽ™ํ„ฐ(refactor) : ์œ„์ ฏ์„ ์†์‰ฝ๊ฒŒ ๋‹ค๋ฅธ ์œ„์ ฏ์„ ๊ฐ์‹ธ๊ฑฐ๋‚˜ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ

* ๊ฐ€์ƒ ํ‚ค๋ณด๋“œ : shift + command + k

* ๊ธฐ๊ธฐ๋ณ„ ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€ : https://pub.dev/packages/device_preview

 

device_preview | Flutter Package

Approximate how your Flutter app looks and performs on another device.

pub.dev

๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์™„์„ฑ!

 

6. Flutter ๊ณต๋ถ€ ๋ฐฉ๋ฒ•

1) ์–ด๋–ค ์œ„์ ฏ์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ธฐ

https://docs.flutter.dev/ui/widgets

 

Widget catalog

A catalog of some of Flutter's rich set of widgets.

docs.flutter.dev

2) ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ž˜ ์ฝ๊ณ  ๊ตฌ๊ธ€๋ง ์ž˜ํ•˜๊ธฐ

ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€(๊ฐ€์žฅ ์œ„, ๋‹ค๋ฅธ ์ƒ‰)

3) ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐ€์ž…ํ•˜๊ธฐ 

ํŠธ๋žœ๋“œ ํŒŒ์•… ๋ฐ ์ตœ๊ทผ ์ด์Šˆ

4) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋‹คํŠธ ๋ฐฐ์šฐ๊ธฐ

๋ฌธ๋ฒ•์„ ์ดํ•ดํ•˜๊ณ  ์ฝ๋Š” ๋ฒ•, ์‹คํ–‰ ์ˆœ์„œ

๋ฐ˜์‘ํ˜•