๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

2022-10-23-TIL

๐Ÿ“ ์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉโ€‹

๐Ÿ“ค ์ฝ์—ˆ๋˜ ๊ฒƒโ€‹

์—ญ๋Ÿ‰์„ ๊ธฐ๋ฅด๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•

  • ๋ธ”๋กœ๊ทธ, ํ•ด์ปคํ†ค, ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ

๋งค์ผ ์ž‘์ง€๋งŒ ์œ ์šฉํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•œ ๋ฒˆ ๊ฐ™๊ฑฐ๋‚˜ ๋” ๋‚˜์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์—ˆ์–ด ๋„ ์‹ ๊ฒฝ ์“ฐ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. (๋ˆ„๊ตฐ๊ฐ€๋Š” ๋‹น์‹ ์ด ์•„๋‹™๋‹ˆ๋‹ค.) ๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์„ ๋งŒ๋“ค์–ด๋ณด์ž.

5.3 (version 1.0) sqlite๋กœ Todo ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐโ€‹

sqlite๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค sw์ž…๋‹ˆ๋‹ค.

  • ์ œ์•ฝ์ด ๋งŽ์•„ ์„œ๋ฒ„์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๊ฐ€๋ณ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์˜ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋Š” ์ข‹์€ ์„ ํƒ์ง€์ž…๋‹ˆ๋‹ค.

Dart ๋ฌธ๋ฒ•โ€‹

Todo.fromMap(Map<dynamic, dynamic>? map) {
id = map?['id'];
title = map?['title'];
description = map?['description'];
}
  • map?๋Š” ๋„์ด ์•„๋‹Œ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์ฒดํฌ (null check)
  • Todo.fromMap์˜ ๊ฒฝ์šฐ ๋ช…๋ช…๋œ ์ƒ์„ฑ์ž์ด๋‹ค.
    • ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ ํŒฉํ† ๋ฆฌ ํŒจํ„ด ๊ฐ™์€๊ฑธ ์–ธ์–ด ์ฐจ์›์—์„œ ์ง€์›ํ•ด์ฃผ๋Š” ๋Š๋‚Œ์ด๋‹ค.
    • ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํžˆ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

Flutterโ€‹

  • InkWall
    • InkWall ์€ child๋ฅผ ํ„ฐ์น˜์— ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • CircularProgressIndicator
    • ์›ํ˜• ํ˜•ํƒœ์˜ ํ”„๋กœ๊ทธ๋ž˜์Šค ๋ฐ” ํ‘œ์‹œ ํ•˜๋Š” ์šฉ๋„
  • ListView
    • ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.
  • ListView.seperated
    • ListView.builder์™€ ์œ ์‚ฌํ•˜๊ณ  ์•„์ดํ…œ๋“ค๊ฐ„์˜ ๊ตฌ๋ถ„์„ ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ“ ์งˆ๋ฌธ ๋งŒ๋“ค๊ธฐโ€‹

  1. sqlite๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  2. sqlite๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?
  3. dart์—์„œ ๋ช…๋ช…๋œ ์ƒ์„ฑ์ž๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  4. ListView๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

๐Ÿ‘ ์นญ์ฐฌโ€‹

  • ์นญ์ฐฌ x

โš ๏ธ ๊ฐœ์„ ํ•  ๊ฒƒโ€‹

  • ๊ณต๋ถ€ํ•˜๋Š”๋ฐ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ด์•ผ ๋  ๊ฒƒ ๊ฐ™๋‹ค.