์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

Flutter๋กœ SNS ์•ฑ ๋งŒ๋“ค๊ธฐ

Flutter์˜ Provider / StateNotifier ์ƒํƒœ ๊ด€๋ฆฌ์™€ Firebase๋ฅผ ํ™œ์šฉํ•ด์„œ SNS ์•ฑ์„ ์ œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Provider / StateNotifier๋ฅผ ํ™œ์šฉํ•œ ์ƒํƒœ๊ด€๋ฆฌ

  • Firebase Auth๋ฅผ ํ™œ์šฉํ•œ ํšŒ์›๊ฐ€์ž… / ์ด๋ฉ”์ผ ์ธ์ฆ / ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ

  • Firestore์˜ Transation / Batch

  • Firestorage๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ / ์กฐํšŒ / ์‚ญ์ œ

  • Flutter Animation

  • Pagination

  • Debounce

  • ์•ฑ ์‹คํ–‰ ์•„์ด์ฝ˜ ๋ณ€๊ฒฝ

๋น„์Šท๋น„์Šทํ•œ ํˆฌ๋‘ ์•ฑ ๋Œ€์‹  ๋ฉ‹์ง„ SNS๋ฅผ! 
๋งŒ๋“ค๋ฉฐ ๋ฐฐ์šฐ๋Š” ํ”Œ๋Ÿฌํ„ฐ ์ƒํƒœ๊ด€๋ฆฌ 

๋‚ด ์†์œผ๋กœ ๋งŒ๋“œ๋Š” ์ธโ˜…๊ทธ๋žจ
๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ๊ณ„์˜ ๋Œ€์„ธ, Flutter!

์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ์‚ฌ ์ธ์Šคํƒ€๊ทธ๋žจ SNS ์•ฑ์„ ๋งŒ๋“ค๋ฉฐ ๊ผญ ํ•„์š”ํ•œ ํ”Œ๋Ÿฌํ„ฐ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ํ•™์Šตํ•ด ๋ณด์„ธ์š”!

Flutter ๊ธฐ์ดˆ + Provider ์ƒํƒœ ๊ด€๋ฆฌ

์œ ์‚ฌ ์ธ์Šคํƒ€๊ทธ๋žจ SNS ์•ฑ์„ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด์„œ Provider(StateNotifier) ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ์ตํžˆ๊ณ , Flutter Animation์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

SNS ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹  ๋ถ„, ๊ตฌ์กฐ์™€ ์ƒํƒœ ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•˜์…จ๋˜ ๋ถ„๋“ค, To-Do App ์ด์ƒ์˜ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

Firebase ์ฃผ์š” ์„œ๋น„์Šค ์ด์ •๋ฆฌ

Firebase ์—ฐ๋™, Firebase Authentication์„ ํ™œ์šฉํ•œ ํšŒ์›๊ฐ€์ž… ๋ฐ ์ด๋ฉ”์ผ ์ธ์ฆ ๋กœ๊ทธ์ธ, Firestore ๋ฐ์ดํ„ฐ ์กฐํšŒ/์ €์žฅ/์ˆ˜์ •/์‚ญ์ œ/ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฐ Transation/Batch, Cloud Store์— ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ €์žฅ/์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ Firebase์˜ ์ฃผ์š” ์„œ๋น„์Šค์— ๋Œ€ํ•ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.


๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ์„ 
ํ™•์ธํ•ด๋ณด์„ธ์š”.

  • โœ… ์‹ค๋ฌด์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ , ์ง€์‹์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • โœ… ๊ธฐ๋ณธ์ ์ธ ํŒจํ„ด, ํ‹€์„ ๊ตฌ์„ฑํ•œ ์ƒํƒœ์—์„œ ๊ฐ์ข… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ›„๋ฐ˜์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ๊ฐ•์˜๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

1. ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ค์ •

  • Flutter ํ”„๋กœ์ ํŠธ์™€ Firebase ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์—ฐ๋™ํ•ฉ๋‹ˆ๋‹ค.
  • Firebase ์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•˜๊ณ  rule์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

2. ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด

  • ์Šค๋งˆํŠธํฐ ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ์„ ํƒํ•˜๊ณ  ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ํ•„์ˆ˜์ž…๋ ฅ ํ•ญ๋ชฉ์— ๊ฒ€์ฆ ๋กœ์ง์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Firebase Authentication, Firestore, Cloud Storage์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…๋ ฅํ•œ ์ด๋ฉ”์ผ์— ์ธ์ฆ ๋งํฌ๊ฐ€ ์ž‘์„ฑ๋œ ์ด๋ฉ”์ผ์„ ์ „์†กํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

3. ๋กœ๊ทธ์ธ ํ™”๋ฉด

  • ๊ฐ ํ•„์ˆ˜ ์ž…๋ ฅ ํ•ญ๋ชฉ์— ๊ฒ€์ฆ ๋กœ์ง์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฉ”์ผ ์ธ์ฆ์ด ์™„๋ฃŒ๋œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด์„œ๋งŒ ๋กœ๊ทธ์ธ ์ธ์ฆ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

4. AuthStatus ์ƒํƒœ์— ๋”ฐ๋ฅธ ํ™”๋ฉด ์ด๋™

  • Firebase Authentication ์ธ์ฆ ์ƒํƒœ์— ๋”ฐ๋ผ AuthStatus ์˜ ์ƒํƒœ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • AuthStatus ์ƒํƒœ๊ฐ’์ด ๋ฏธ์ธ์ฆ์ผ ๊ฒฝ์šฐ, ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

5. ๋ฉ”์ธ ํ™”๋ฉด

  • TabBarVIew ์œ„์ ฏ์„ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง€ ์ด๋™์‹œ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • BottomNavigatorBar ์œ„์ ฏ์„ ์‚ฌ์šฉํ•ด์„œ ํ•˜๋‹จ ๋ฒ„ํŠผ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

6. ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก ํ™”๋ฉด

  • ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฌ์ง„์„ ์„ ํƒํ•˜๊ณ  ์„ ํƒํ•œ ์‚ฌ์ง„์„ ์Šฌ๋ผ์ด๋“œ๋กœ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์‚ฌ์ง„์€ ์‚ญ์ œ ํ›„, ๋“ฑ๋กํ•˜๋ฉด ํ™”๋ฉด ์ด๋™๊ณผ ๋™์‹œ์— ๋“ฑ๋ก ์™„๋ฃŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

7. ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ํ™”๋ฉด

  • ๋“ฑ๋กํ•œ ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ์žฅ์˜ ๊ฒŒ์‹œ๊ธ€ ์‚ฌ์ง„์„ ์Šฌ๋ผ์ด๋“œ๋กœ ํ™•์ธํ•˜๊ณ  ํ™•๋Œ€/์ถ•์†Œํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ƒ๋‹จ์—์„œ ํ™”๋ฉด์„ ์•„๋ž˜๋กœ ๋‚ด๋ ค์„œ ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก์„ ์ƒˆ๋กœ๊ณ ์นจํ•ฉ๋‹ˆ๋‹ค.

8. ํ”„๋กœํ•„ ํ™”๋ฉด

  • ํ˜„์žฌ ์ ‘์† ์ค‘์ธ ์‚ฌ์šฉ์ž ๋˜๋Š” ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ํ„ฐ์น˜ํ•˜์—ฌ ํŠน์ • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ ์ˆ˜, following, follower, ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • Folllow, Unfollow ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

9. ๊ฒŒ์‹œ๋ฌผ ํ™”๋ฉด

  • ๊ฒŒ์‹œ๋ฌผ์— ์ข‹์•„์š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ข‹์•„์š” ์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ข‹์•„์š” ๊ธฐ๋Šฅ์— ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

10. ์ข‹์•„์š” ๋ชฉ๋ก ํ™”๋ฉด

  • ์ ‘์† ์ค‘์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅธ ๊ฒŒ์‹œ๋ฌผ์˜ ๋ชฉ๋ก์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

11. ๋Œ“๊ธ€ ํ™”๋ฉด

  • ๊ฒŒ์‹œ๊ธ€์— ๋Œ“๊ธ€์„ ๋“ฑ๋กํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ํ™”๋ฉด์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

12. ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ ๊ธฐ๋Šฅ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ญ์ œํ•œ ๊ฒŒ์‹œ๊ธ€๊ณผ ๊ด€๋ จ๋œ ์ด๋ฏธ์ง€ ํŒŒ์ผ, ๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ, ๋Œ“๊ธ€ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ firebase ์„œ๋น„์Šค์—์„œ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

13. ์‚ฌ์šฉ์ž ๊ฒ€์ƒ‰ ํ™”๋ฉด

  • ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ ํ”„๋กœํ•„ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜์—ฌ ํŠน์ • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ๊ฒ€์ƒ‰ ๋กœ์ง์— Debounce๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

14. ํŽ˜์ด์ง• ๊ธฐ๋Šฅ

  • ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ํ™”๋ฉด, ์ข‹์•„์š” ๋ชฉ๋ก ํ™”๋ฉด, ํ”„๋กœํ•„ ํ™”๋ฉด์— ํŽ˜์ด์ง• ๊ธฐ๋Šฅ์„ ์ ์šฉํ•ด์„œ ์ง€์ •๋œ ์ˆ˜ ๋งŒํผ ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

15. ์•ฑ ์‹คํ–‰ ์•„์ด์ฝ˜ ๋ณ€๊ฒฝ

  • ์•ฑ ์‹คํ–‰ ์•„์ด์ฝ˜๊ณผ Splash Screen์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ, DEV MOO

  • (ํ˜„) ์›น/Flutter ์•ฑ ๊ฐœ๋ฐœ ํ”„๋ฆฌ๋žœ์„œ
  • (์ „) ์†Œํ”„ํŠธ์—”์ง€๋‹ˆ์–ด์†Œ์‚ฌ์ด์–ดํ‹ฐ SMART CLOUD IT MASTER ๊ณผ์ • ๊ฐ•์‚ฌ
  • (์ „) TOSHIBA ETC ์ œ์–ด ๋ชจ๋“ˆ ๊ฐœ๋ฐœ ์ฐธ์—ฌ (์ผ๋ณธ)
  • (์ „) SMBC ๊ณ ๊ฐ๊ด€๋ฆฌ ํ”Œ๋žซํผ ๊ฐœ๋ฐœ ์ฐธ์—ฌ (์ผ๋ณธ)
  • (์ „) ๋ฏธ์‹์˜์‹œ๋Œ€ ๋ฐฐ๋‹ฌ์•ฑ ๊ฐœ๋ฐœ ์ฐธ์—ฌ
  • ์œ ํŠœ๋ธŒ ์ฑ„๋„ ์šด์˜ ์ค‘ 

Q&A ๐Ÿ’ฌ

Q. ๊ฐ•์˜์— ์‚ฌ์šฉ๋œ Flutter ๋ฒ„์ „์„ ์•Œ๋ ค์ฃผ์„ธ์š”.

Flutter 3.13.7์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

Q. ์ƒํƒœ๊ด€๋ฆฌ์— Provider๋ฅผ ์‚ฌ์šฉํ•œ ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Flutter์—๋Š” Riverpod, Bloc, GetX ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ƒํƒœ ๊ด€๋ฆฌ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ Provider๋Š” Google์—์„œ ํ™œ๋ฐœํ•˜๊ฒŒ ์ง€์›ํ•˜๊ณ  ์ถ”์ฒœํ•˜๋Š” ์ƒํƒœ ๊ด€๋ฆฌ ํŒจํ‚ค์ง€๋กœ ์ธํ„ฐ๋„ท ์ปค๋ฎค๋‹ˆํ‹ฐ ๋“ฑ์„ ํ†ตํ•ด์„œ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ Provider์—์„œ Rivderpod ๋“ฑ ๋‹ค๋ฅธ ์ƒํƒœ๊ด€๋ฆฌ ํŒจํ‚ค์ง€๋กœ์˜ ์ด์ „ ์ž‘์—…๋„ ๋น„๊ต์  ์–ด๋ ต์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Q. ๊ฐ•์˜ ๋‚ด์šฉ์ด iOS์—๋Š” ๋Œ€์‘ํ•˜์ง€ ์•Š๋‚˜์š”?

ํ˜„์žฌ ๊ฐ•์˜ ๋‚ด์šฉ์€ Android์—์„œ๋งŒ ๊ฒ€์ฆ๋œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. iOS ๋Œ€์‘์€ ์—…๋ฐ์ดํŠธ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Q. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ ์œ„ํ•œ ์‚ฌ์ „ ์ง€์‹์ด ํ•„์š”ํ•œ๊ฐ€์š”?

Flutter ๊ธฐ๋ณธ๊ณผ Provider ์ƒํƒœ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ Todo ์•ฑ์ด๋‚˜ ๋ฉ”๋ชจ์žฅ ์ •๋„๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์…จ๋‹ค๋ฉด ๊ฐ•์˜๋ฅผ ์ถฉ๋ถ„ํžˆ ๋”ฐ๋ผ์˜ค์‹ค ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

Q. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์‹œ๋‚˜์š”?

์ˆ˜๊ฐ•์ƒ์—๊ฒŒ๋Š” Github์„ ํ†ตํ•ด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ“ข ์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ ์‚ฌํ•ญ ์•ˆ๋‚ด

  • ์‹ค์Šต ํ™˜๊ฒฝ์œผ๋กœ๋Š” Windows 10, Android Studio๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  • Flutter ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ๊ตฌ์ถ•๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (๊ฐ•์˜์—์„œ๋Š” 3.13.7 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.)
  • ์ˆ˜๊ฐ•์ƒ์—๊ฒŒ๋Š” ์ตœ์ข… ์†Œ์Šค ์ฝ”๋“œ์™€ ์‹ค์Šต ์ž๋ฃŒ(์ด๋ฏธ์ง€ ํŒŒ์ผ ๋“ฑ)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ํ•™์Šต์— ํ•„์š”ํ•œ ์„ ์ˆ˜ ์ง€์‹์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”. Flutter ๊ธฐ์ดˆ ์ง€์‹ ๋ฐ Provider ์ƒํƒœ ๊ด€๋ฆฌ ๊ธฐ์ดˆ ์ง€์‹์ด ํ•„์š”ํ•˜๋ฉฐ, Flutter๋ฅผ ์ด์šฉํ•ด To-do ์•ฑ ๋‚ด์ง€ ๊ฐ„๋‹จํ•œ ๋ฉ”๋ชจ์žฅ์„ ๋งŒ๋“  ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ์ถฉ๋ถ„ํžˆ ์ˆ˜๊ฐ•ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ•์˜ ๋‚ด์šฉ์€ Android์— ๋งž์ถฐ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. (iOS ๋Œ€์‘์€ ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.)
  • 2024๋…„ 11์›” 1์ผ ๋ถ€ํ„ฐ, Firebase ์˜ ๊ฐ์ข… ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋น„์Šค ์‚ฌ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ์š”๊ธˆ์ด ์ฑ…์ •๋˜๋Š” Blaze ์š”๊ธˆ์ œ๋ฅผ ์ด์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Blaze ์š”๊ธˆ์ œ๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹ ์šฉ์นด๋“œ ๋“ฑ๋ก์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋ฌด๋ฃŒ ์‚ฌ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋Š” ์ด์ƒ, ์š”๊ธˆ์ด ์ฒญ๊ตฌ๋˜์ง€ ์•Š์œผ๋ฉฐ ๊ฐ•์˜ ๋‚ด์šฉ์€ ๋ฌด๋ฃŒ ์‚ฌ์šฉ๋Ÿ‰ ๋‚ด์—์„œ ์ถฉ๋ถ„ํžˆ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Firebase ์˜ ์š”๊ธˆ ์ •์ฑ…์„ ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • SNS ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • Todo ์•ฑ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์‹ถ์€ ๋ถ„

  • Provider ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ๋ถ„

  • ๊ฐ์ข… Firebase ์„œ๋น„์Šค๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์‹ถ์€ ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Flutter๋กœ ๊ฐ„๋‹จํ•œ ์•ฑ์„ ๋งŒ๋“ค ์ •๋„์˜ ์Šคํ‚ฌ

  • Provider / StateNotifier ๊ธฐ์ดˆ ์ง€์‹

์•ˆ๋…•ํ•˜์„ธ์š”
DEV MOO์ž…๋‹ˆ๋‹ค.

183

๋ช…

์ˆ˜๊ฐ•์ƒ

12

๊ฐœ

์ˆ˜๊ฐ•ํ‰

100

๊ฐœ

๋‹ต๋ณ€

5.0

์ 

๊ฐ•์˜ ํ‰์ 

2

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”

ํ•œ๊ตญ, ์ผ๋ณธ์—์„œ ์›น ๊ฐœ๋ฐœ ๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์ž๋กœ ํ™œ๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ•์‚ฌ๋กœ๋„ ํ™œ๋™ํ•˜๋ฉด์„œ ์ง€์‹์„ ์ „ํŒŒํ•˜์—ฌ ์‚ฌ๋žŒ์„ ๊ฐ€๋ฅด์นœ๋‹ค๋Š” ์ผ์—
์ฑ…์ž„๊ฐ์„ ๊ฐ–๊ณ  ํ•™์ƒ๋ถ„๋“ค์ด ์„ฑ์žฅํ•˜๋Š” ๋ชจ์Šต์— ๋ณด๋žŒ์„ ๋А๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

excusme@naver.com

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

73๊ฐœ โˆ™ (13์‹œ๊ฐ„ 28๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!