๐ŸŽฏDart ๋ฌธ๋ฒ•1

์žฅ์ฑ„๋ฏผยท2024๋…„ 1์›” 29์ผ

ํƒ€์ž…๋ช…? -> nullable (null๊ฐ’๋„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ)
ํƒ€์ž…๋ช…! -> non-nullable (null๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ)

ํƒ€์ž…๋ช…

  • final: ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ(์˜ค์ง ํ•œ ๋ฒˆ๋งŒ ์„ค์ •๋  ์ˆ˜ ์žˆ๋‹ค)
  • const
  • var
  • dynamic

Stateful๊ณผ Stateless์˜ ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ

Stateful => Value ๊ฐ’์„ ์ง€์†์ ์œผ๋กœ ์ถ”์  ๋ณด์กด
Stateless => ์ด์ „ ์ƒํ˜ธ์ž‘์šฉ์˜ ์–ด๋– ํ•œ ๊ฐ’๋„ ์ €์žฅํ•˜์ง€ ์•Š์Œ

Types of Widgets

  1. Stateless Widgets(์ƒํƒœ๊ฐ€ ์—†๋Š” ์ •์ ์ธ ์œ„์ ฏ)
    -> ์Šคํฌ๋ฆฐ์ƒ์— ์กด์žฌ๋งŒ ํ•  ๋ฟ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Œ
    -> ์–ด๋– ํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋„ ์ €์žฅํ•˜์ง€ ์•Š์Œ
    -> ์–ด๋–ค ๋ณ€ํ™”(๋ชจ์–‘,์ƒํƒœ)๋ฅผ ์œ ๋ฐœ์‹œํ‚ค๋Š” value๊ฐ’์„ ๊ฐ€์ง€์ง€ ์•Š์Œ

  2. Stateful Widgets(๊ณ„์† ์›€์ง์ด๊ฑฐ๋‚˜ ๋ณ€ํ™”๊ฐ€ ์žˆ๋Š” ์œ„์ ฏ)
    -> ์‚ฌ์šฉ์ž์˜ interaction์— ๋”ฐ๋ผ์„œ ๋ชจ์–‘์ด ๋ฐ”๋€œ
    -> ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ฒŒ ๋˜์—ˆ์„ ๋•Œ ๋ชจ์–‘์ด ๋ฐ”๋€œ
    ex) ์ฒดํฌ๋ฐ•์Šค, ๋ผ๋””์˜ค๋ฒ„ํŠผ

Flutter Widget tree

  1. Widget๋“ค์€ tree ๊ตฌ์กฐ๋กœ ์ •๋ฆฌ๋  ์ˆ˜ ์žˆ์Œ
  2. ํ•œ Widget๋‚ด์— ์–ผ๋งˆ๋“ ์ง€ ๋‹ค๋ฅธ widget๋“ค์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Œ
  3. Widget์€ ๋ถ€๋ชจ ์œ„์ ฏ๊ณผ ์ž์‹ ์œ„์ ฏ์œผ๋กœ ๊ตฌ์„ฑ
  4. Parent widget์„ widget container๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•จ

ํด๋ž˜์Šค ๋ช…๊ณผ ํ•จ์ˆ˜ ๋ช…

ํ•จ์ˆ˜ ๋ช…: ์ฒซ๊ธ€์ž ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘
ex) main(), runApp()
ํด๋ž˜์Šค[์œ„์ ฏ] ๋ช… : ์ฒซ๊ธ€์ž ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘

leading:

์•„์ด์ฝ˜ ๋ฒ„ํŠผ์ด๋‚˜ ๊ฐ„๋‹จํ•œ ์œ„์ ฏ์„ ์™ผ์ชฝ์— ๋ฐฐ์น˜ํ•  ๋•Œ

actions:

๋ณต์ˆ˜์˜ ์•„์ด์ฝ˜ ๋ฒ„ํŠผ ๋“ฑ์„ ์˜ค๋ฅธ์ชฝ์— ๋ฐฐ์น˜ํ•  ๋•Œ

onPressed:

ํ•จ์ˆ˜์˜ ํ˜•ํƒœ๋กœ ์ผ๋ฐ˜ ๋ฒ„ํŠผ์ด๋‚˜ ์•„์ด์ฝ˜ ๋ฒ„ํŠผ์„ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ ์ผ์–ด๋‚˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ณณ

Stateful Widget

https://velog.io/@dosilv/Flutter-StatelessWidget-StatefulWidget

์‚ผํ•ญ์—ฐ์‚ฐ์ž

  • ํ”Œ๋Ÿฌํ„ฐ Widget ์•ˆ์—์„œ๋Š” if๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ”Œ๋Ÿฌํ„ฐ์—์„œ ๊ต‰์žฅํžˆ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

ex) Icon(isWeekCalendarVisible ? Icons.arrow_drop_down : Icons.arrow_drop_up)

  • ? ์•ž์˜ ์ˆ˜์‹์ด true ์ด๋ฉด ์•ž์ชฝ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , false ์ด๋ฉด ๋’ค์ชฝ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋Š” ๋ฐ˜๋“œ์‹œ true์™€ false ๋‘๊ฐ€์ง€ ๋ฐ˜ํ™˜๊ฐ’์ด ํ•„์š”ํ•œ๋ฐ, ์•„๋ฌด ์œ„์ ฏ๋„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” SizedBox๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€