728x90
๋ฐ˜์‘ํ˜•
[Flutter] FutureBuilder๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ์ƒํ™ฉ์—์„œ ๋ทฐ ๋Œ€์‘์„ ํ•ด์ฃผ์ž

[1] ๋ฌธ์„œ๋ณด๊ธฐ FutureBuilder ๋Š” Future์™€ ์ƒํ˜ธ์ž‘์šฉํ•œ ๋งˆ์ง€๋ง‰ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ž์‹ ์„ ๋นŒ๋“œํ•˜๋Š” ์œ„์ ฏ(?) ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ •์˜๊ฐ€ ์ž˜ ์•ˆ์™€๋‹ฟ๋Š”๋ฐ, ์‚ฌ์šฉ์šฉ๋„๋ฅผ ๋ณด๋ฉด ํ™• ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค API์ฝœ์„ ํ•ด์„œ ์‘๋‹ต์„ ๋ฐ›๊ธฐ ์ „๊นŒ์ง€๋Š” ๋กœ๋”ฉ ์œ„์ ฏ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์„ฑ๊ณต ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์œ„์ ฏ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‹คํŒจ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ์—๋Ÿฌ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์œ„์ ฏ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„๋•Œ ์“ฐ๋Š” ์œ„์ ฏ์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ์— ์˜ˆ์ œ๊ฐ€ ๋„ˆ๋ฌด ์ž˜๋˜์–ด์žˆ๋Š”๋ฐ ์ด๋Ÿฐ์‹์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ฌธ์„œ์ฝ”๋“œ ๋ณต๋ถ™) class MyStatefulWidget extends StatefulWidget { MyStatefulWidget({Key key}) : super(key: key); @override _MyStatefulWidgetState createState(..

[Flutter] iOS, ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋กœ์ปฌ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ

ํ˜„์žฌ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋Œ๋ฆฌ๊ณ  ์žˆ๋Š” ๋กœ์ปฌ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?! (์ €๋Š” ์žฅ๊ณ ๋กœ API ๊ฐœ๋ฐœ์ค‘์ด์—ฌ์„œ ์žฅ๊ณ  ์„œ๋ฒ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.) ์šฐ์„  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ(iOS), ์—๋ฎฌ๋ ˆ์ดํ„ฐ(์•ˆ๋“œ๋กœ์ด๋“œ)๋„ ํ•˜๋‚˜์˜ OS์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ localHost๋ฅผ ๋ถ€๋ฅด๋ฉด ์ž๊ธฐ์ž์‹ ์ด ๋ฉ๋‹ˆ๋‹ค. (๋‚ด ์ปดํ“จํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ) ๊ทธ๋ž˜์„œ ์•ฑ์—์„œ api ์ฝœ์„ ํ•ด๋ด๋„ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์ด ์•ˆ๋œ๋‹ต๋‹ˆ๋‹ค,, Android Emulator ๋„คํŠธ์›Œํ‚น ์„ค์ • ์„ ๋ณด๋ฉด 10.0.0.2.2๋ผ๋Š” ํŠน์ˆ˜์ฃผ์†Œ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. iOS Simulater๋Š” ๋˜ ๋‹ค๋ฅด๊ฒŒ ํ•ด์ค˜์•ผํ•˜๋Š”๋ฐ (์ฐพ์•„๋ณธ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ• ๋‹ค ์•ˆ๋˜์„œ ์ ์ง€ ์•Š์„๊ฒŒ์š”,,) ๊ท€์ฐฎ์œผ๋‹ˆ๊นŒ ์—ฌ๊ธฐ๋ฅผ ๋ณด๊ณ  ์žฅ๊ณ  ์„œ๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ๋„ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. < ์žฅ๊ณ ์—์„œ ํ•ด์•ผํ•  ์ผ > [1] ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜์˜ ..

[Flutter] Provider๋กœ ์•ฑ ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ

์•„๋ž˜ ์›€์งค์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ํ™”๋ฉด์—์„œ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•ด์•ผํ• ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€ State management ๋ฌธ์„œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1) ์„ ์–ธ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๊ธฐ ์šฐ์„  ์„ ์–ธ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. SwiftUI ์ฒ˜๋Ÿผ state๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๋ทฐ๋ฅผ ์•„์˜ˆ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ์ปจ์…‰ ๐Ÿ†—๐Ÿ‘Œ 2) ์ž„์‹œ์ƒํƒœ vs ์•ฑ์ƒํƒœ (Ephemeral state vs app state) ๊ทธ ๋‹ค์Œ์— ์ž„์‹œ ์ƒํƒœ์™€ ์•ฑ์ƒํƒœ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (Ephemeral state vs app state) ์ž„์‹œ์ƒํƒœ๋Š” ๋ง๊ทธ๋Œ€๋กœ ๋‹จ์ผ ์œ„์ ฏ์—๋งŒ ๋”ฑ ํฌํ•จ๋˜๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ์œ„์ ฏ๋“ค์ด ์ด ์œ„์ ฏ์˜ ์ƒํƒœ์— ๋Œ€ํ•ด ๋ชฐ๋ผ๋„๋จ) ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ๋‹ซ์•˜๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์žฌ์„ค์ •๋˜๋„ ๋˜๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ setState()๋ฅผ ์จ์„œ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์•ฑ์ƒํƒœ๋Š” ์•ฑ..

[Flutter] ํ”Œ๋Ÿฌํ„ฐ ํ”„๋กœ์ ํŠธ์— Image ํŒŒ์ผ ๋„ฃ๊ธฐ + ์ปค์Šคํ…€ ํƒญ๋ฐ” ์•„์ด์ฝ˜

์šฐ์„  ํ”Œ์ ์— images ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ ๋„ฃ๊ณ  ์‹ถ์€ ์ด๋ฏธ์ง€ํŒŒ์ผ๋“ค์„ ๋„ฃ์–ด์ฃผ์„ธ์š” (์ €๋Š” ์ด ์•ˆ์— tabbar๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์—ˆ์–ด์š”) ์•„๋ž˜ ํ•˜์ด๋ผ์ดํŠธํ•œ ํ˜•์‹์˜ ์ด๋ฏธ์ง€๋“ค์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค-! ๊ทธ ๋‹ค์Œ์— pubspec.yaml์— ๊ฐ€์„œ flutter ๋ฐ‘์— ๋„ค๋ชจ ์นœ ๊ฒƒ ์ฒ˜๋Ÿผ ์ด๋ฏธ์ง€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ช…์‹œํ•ด์ฃผ์„ธ์š” ๋ฌธ์„œ์— ๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์€ ์ด ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€๋“ค์„ includeํ•˜๊ฒ ๋‹ค!! ํ•˜๋Š” ๊ฑฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•œ๋•€ํ•œ๋•€ ์ด๋ฏธ์ง€ path๋“ค์„ ๋„ฃ์–ด์ค„ ์ˆ˜ ๋„ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์€ ๋„ˆ๋ฌด ๊ท€์ฐฎ์œผ๋‹ˆ๊นŒ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด pub get์ด ๋œจ๋Š”๋ฐ ์ด๊ฑธ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ์ฝ˜์†” > ํ„ฐ๋ฏธ๋„ ๋ˆ„๋ฅด๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” flutter pub get ๊ทผ๋ฐ iOS์—์„œ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ž˜ ..

[Flutter] ListView ์œ„์ ฏ

flutter์˜ ListView ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. [1] ๋ฌธ์„œ๋ณด๊ธฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ ค์ค„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ์ •ํ•ด์ ธ์žˆ๊ณ  ๋ช‡๊ฐœ ์•ˆ๋œ๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๋‹ค๋ฉด ListView.builder ๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์ŠคํŠธ์— ๊ตฌ๋ถ„์„ ์„ ๋„ฃ๊ณ  ์‹ถ๋‹ค๋ฉด ListView.separated.๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ Divider๋Š” material ๋””์ž์ธ์— ์žˆ๋Š” ์œ„์ ฏ์ด์—ฌ์„œ (cupertino ์œ„์ ฏ์—๋Š” Divider ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์š”) import ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค. import 'package:flutter/material.dart'; [2] ๋”๋ฏธ๋ฐ์ดํ„ฐ๋กœ ๋ฆฌ์ŠคํŠธ๋ทฐ ๋งŒ๋“ค์–ด๋ณด๊ธฐ ์ผ๋‹จ ๋”๋ฏธ๋ฐ์ดํ„ฐ๋กœ ListView.separated. ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ๊ฒŒ์š”-! ๊ฐ Cell์˜ height๋ฅผ ๋”ฐ๋กœ ์•ˆ๋„ฃ..

๊ณต์ง€์‚ฌํ•ญ
Total
330,662
Today
311
Yesterday
358
๋งํฌ
«   2021/09   »
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
๊ธ€ ๋ณด๊ด€ํ•จ