[flutter] ๐Ÿ“š4์ฃผ์ฐจ ์Šคํ„ฐ๋”” - Pomodoro App

seunghyoยท2023๋…„ 11์›” 28์ผ
0

Flutter

๋ชฉ๋ก ๋ณด๊ธฐ
4/5

1. Stateful Widget

  • ์œ„์ ฏ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™” ๊ด€์ฐฐ ๊ฐ€๋Šฅ => Stateful
  • ์œ„์ ฏ์— ์•„๋ฌด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ => Stateless

setState

์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” setState ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค.

๐Ÿ“ Sample Code

  void toggleTitle() {
    setState(() {
      showTitle = !showTitle;
    });
  }
  • createState : state๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณณ์ด๋‹ค. statefulWidget์—์„œ state๋ฅผ ์‹คํ–‰
  • initState : state๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. initState๋Š” statefulWidget์ด ์‹คํ–‰ํ•˜๋ฉด ๋‹จ ํ•œ ๋ฒˆ๋งŒ ์ž‘๋™. ๊ทธ ์ดํ›„ ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น statefulWidget์„ ์ข…๋ฃŒ(dispose)ํ•œ ํ›„์— ๊ฐ€๋Šฅํ•˜๋‹ค.
  • dispose: ํ™”๋ฉด์ด ์ข…๋ฃŒ๋  ๋•Œ ํ˜ธ์ถœ์ด ๋œ๋‹ค.
  • dispose, initState ๋ชจ๋‘ statefulwidget์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ!

2. Pomodoro App

  • Flexible : ๋ฐ•์Šค๋กœ ์ผ์ • ๋น„์œจ์„ ๋‚˜๋ˆŒ ๋•Œ ์‚ฌ์šฉ.
  • Expanded : flex:1 ์˜ Flexible ๋ฐ•์Šค์™€ ๊ฐ™๋‹ค. flex:1 ์„ ๊ฐ€์ง€๋ฉด ๋ฐ•์Šค ํ•˜๋‚˜๊ฐ€ ํ™”๋ฉด์„ ๊ฝ‰ ์ฑ„์šฐ๊ฒŒ ๋œ๋‹ค.
  • Timer: 0๊นŒ์ง€ ์นด์šดํŠธ ๋‹ค์šด๋œ๋‹ค. ํƒ€์ด๋จธ๊ฐ€ 0์— ๋„๋‹ฌํ•˜๋ฉด ํƒ€์ด๋จธ๋Š” ์ง€์ •๋œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    ๐Ÿ“ Sample Code
  void main() {
  scheduleTimeout(5 * 1000); // 5 seconds.
}

Timer scheduleTimeout([int milliseconds = (ํŠน์ •์‹œ๊ฐ„)]) =>
    Timer(Duration(milliseconds: milliseconds), (ํŠน์ • ์‹œ๊ฐ„ ํ›„ ์ด๋ฃจ์–ด์งˆ ์ž‘์—…));

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