[์ฝ๋ํฉํ ๋ฆฌ] [์ค๊ธ] Flutter ์ง์ง ์ค์ ! ์ํ๊ด๋ฆฌ, ์บ์๊ด๋ฆฌ, Code Generation, GoRouter, ์ธ์ฆ๋ก์ง ๋ฑ ์ค์๊ฐ ๋๊ธฐ ์ํ ํ์ ์คํฌ๋ค!
์ด ๊ฐ์๋ฅผ ํตํด ์ฃผ๋์ด๊ธ Flutter ๊ฐ๋ฐ์๊ฐ ์ค๊ธ Flutter ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ๊น์ง ํ์ํ ํ์ ์ง์๋ค์ ๋จ๊ธฐ๊ฐ์ ๋ฐฐ์๋ณผ ์ ์์ต๋๋ค.
์๊ฐ์ 3,060๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ๋ฏธํด๊ฒฐ
Dio onError Interceptor ๋ง๋๋ ๋ถ๋ถ์ ์ง๋ฌธ์ด ์์ต๋๋ค.
์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋์ ์ง๋ฌธํ๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ์ง๋ฌธ์ ๋ฐ์ ๋ณผ ์ ์์ต๋๋ค![์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋]<a target="_blank" rel="noopener n
flutterํ์ด๋ธ๋ฆฌ๋-์ฑinterceptorRyu
ใป
2๋ฌ ์
0
47
2
- ๋ฏธํด๊ฒฐ
๊ด๋ฆฌ์ ๊ธฐ๋ฅ์ ๋ํ ์ง๋ฌธ
์๋ ํ์ธ์ ์ฝ๋ํฉํ ๋ฆฌ๋. ํด๋น ์น์ ๊ณผ ์๊ด์ด ์๋ ์ง๋ฌธ์ด์ง๋ง, ๊ฐ์ฌ๋๊ป์ ์ฑ์ ๊ฐ๋ฐํ์ค ๋ ๊ด๋ฆฌ์ ํ์ด์ง(์ํ ์์ , ๋ฌธ์ ๋ด์ญ ์ด๋ ๋ฐ ๋ต๋ณ ๋ฑ)๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์ ์๊ฐ์๋ ์ฑ์ ๊ด๋ฆฌ์ ๊ธฐ๋ฅ
flutterํ์ด๋ธ๋ฆฌ๋-์ฑhelloworld
ใป
2๋ฌ ์
0
66
2
- ๋ฏธํด๊ฒฐ
part 'restaurant_model.g.dart';
flutter pub run build_runner buildDeprecated. Use dart run instead.<p st
flutterํ์ด๋ธ๋ฆฌ๋-์ฑdw810414
ใป
4๋ฌ ์
0
73
1
- ๋ฏธํด๊ฒฐ
36๊ฐ. dio ์ธํฐ์ ํฐ์ storage๋ฅผ ์ ๋ฌํ๋ ์ฝ๋๊ฐ ์ดํด ์๋๋๋ฐ์. ๋์ ๋ถํ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์. ์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค.36๊ฐ Dio onRequest Interceptor ์์ ํ๊ธฐ. ๋ถ๋ถ์ ๋ฃ๊ณ ์์ต๋๋ค.<p style="text-alig
flutterํ์ด๋ธ๋ฆฌ๋-์ฑMyoungsu Park
ใป
5๋ฌ ์
0
39
2
- ๋ฏธํด๊ฒฐ
2๋ฒ ๋ฐํ ์ํฉ ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์ ์ฝํฉ๋. if (fetchMore && (isLoading || isRefetching || isFetchingMore)) { print('fetchMore=$fetchMore, is
flutterํ์ด๋ธ๋ฆฌ๋-์ฑhelloworld
ใป
5๋ฌ ์
0
50
2
- ๋ฏธํด๊ฒฐ
riverpod 3.0
riverpod 3.0 ๊ฐ์ ์ ๋ฐ์ดํธ ํด์ฃผ์๋์?
flutterํ์ด๋ธ๋ฆฌ๋-์ฑSungmin Oh
ใป
5๋ฌ ์
0
127
2
- ๋ฏธํด๊ฒฐ
Asset folder??
๋ ํผ์งํ ๋ฆฌ ๋งํฌ๋ ์ด๋์์ฃ ? Asset ํด๋ ๋ค์ด๋ก๋ ๋ฐ๊ณ ์ถ์๋ฐ ๋ชปํ๊ณ ์๋ค์..
flutterํ์ด๋ธ๋ฆฌ๋-์ฑasset๊น์ฑํ
ใป
7๋ฌ ์
0
69
2
- ๋ฏธํด๊ฒฐ
๋์์ด๋์ ํ์ ์ ํ๋ ์ ํฌ๊ธฐ ์ค์ ๊ด๋ จ ์ง๋ฌธ
๋ฐ์ํ UI๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ๋ชจ๋ ์์ ฏ์ ์ ์ ์ธ ๊ฐ์ ์ฃผ๊ธฐ ๋ณด๋จ, ๊ฐ ํด๋ํฐ์ ๋์ด, ๋๋น์ ๋์ํ ์ ์๋ ๋์ ์ธ ๋์ด, ๋๋น ๊ฐ ๋ฑ์ ์ค์ผ ํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ๋ณดํต ๋์์ด๋์ ํ์ ํ๋ฉด ํผ๊ทธ๋ง๋ผ๋ ํด๋ก ๋์์ด
flutterํ์ด๋ธ๋ฆฌ๋-์ฑhelloworld
ใป
7๋ฌ ์
0
80
2
- ๋ฏธํด๊ฒฐ
FutureProvider, StateNotifierProvider ์ ํ ๊ธฐ์ค
์๋ ํ์ธ์ ๊ฐ์ฌ๋. ์๋ฒ API ํต์ ์ ์๋ต์ ๋ฐ์์ ์ํ ๊ด๋ฆฌ๋ฅผ ํ ๋ ์ผ๋ฐ์ ์ผ๋ก StateNotifierProvider๋ฅผ ํตํด ์ถ์ ํด๋์ค ๊ธฐ๋ฐ์ผ๋ก ์ํ ๊ด๋ฆฌ(๋ก๋ฉ, ์๋ฌ, ์ฑ๊ณต ๋ฑ)๋ฅผ ํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.
flutterํ์ด๋ธ๋ฆฌ๋-์ฑhelloworld
ใป
7๋ฌ ์
0
60
2
- ๋ฏธํด๊ฒฐ
์ปดํฌ๋ํธ ๋ชจ๋ธํ
์๋ ํ์ธ์ ๊ฐ์ฌ๋,ProductCard ์ฝ๋๋ฅผ ๋ณด๋ค๊ฐ ๊ถ๊ธํ ์ ์ด ์์ด์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.ํ์ฌ ProductCard</cod
flutterํ์ด๋ธ๋ฆฌ๋-์ฑFull Stack ๊ฐ๋ฐ์
ใป
7๋ฌ ์
0
55
2
- ๋ฏธํด๊ฒฐ
์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ
๊ฐ์ฌ๋, ์ผ๋ฐ์ ์ผ๋ก ์ฑ ๊ฐ๋ฐ์์๋ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ณด๋ค๋ ํจ์ค ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ข๋ค๊ณ ๋ง์ํด์ฃผ์ จ๋๋ฐ์.๊ทธ๋ฐ๋ฐ ํ์ด์ง๋ค์ด์ (Pagination) ๊ตฌํํ ๋๋ ๋๋ถ๋ถ ?page=1&limit=1
flutterํ์ด๋ธ๋ฆฌ๋-์ฑFull Stack ๊ฐ๋ฐ์
ใป
7๋ฌ ์
0
65
2
- ๋ฏธํด๊ฒฐ
ํ๋ฉด ์๋ณด์
์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋์ ์ง๋ฌธํ๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ์ง๋ฌธ์ ๋ฐ์ ๋ณผ ์ ์์ต๋๋ค![์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋]<a target="_blank" rel="noopener n
flutterํ์ด๋ธ๋ฆฌ๋-์ฑkim9668
ใป
7๋ฌ ์
0
52
2
- ๋ฏธํด๊ฒฐ
PaginationListView
์๋ ํ์ธ์ ๊ฐ์ฌ๋, ์ง๋ฌธ์ด ํ๋ ์์ต๋๋ค!RestaurantScreen์์๋ PaginationListView๋ฅผ ์ฌ
flutterํ์ด๋ธ๋ฆฌ๋-์ฑFull Stack ๊ฐ๋ฐ์
ใป
7๋ฌ ์
0
43
1
- ๋ฏธํด๊ฒฐ
๊ฐ์์ค 37.Dio onErrorInterceptor ์์ ํ๊ธฐ dio ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์ ๊ฐ์ฌ๋ ac
flutterํ์ด๋ธ๋ฆฌ๋-์ฑํธ๊ฐฑ
ใป
7๋ฌ ์
0
85
2
- ๋ฏธํด๊ฒฐ
ํ๋กํ ํ์ ์ด๋ฏธ์ง
์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋์ ์ง๋ฌธํ๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ์ง๋ฌธ์ ๋ฐ์ ๋ณผ ์ ์์ต๋๋ค![์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋]<a target="_blank" rel="noopener n
flutterํ์ด๋ธ๋ฆฌ๋-์ฑYUMKAR
ใป
9๋ฌ ์
0
54
2
- ๋ฏธํด๊ฒฐ
์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ์ํ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง๋ฌธ
์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋์ ์ง๋ฌธํ๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ์ง๋ฌธ์ ๋ฐ์ ๋ณผ ์ ์์ต๋๋ค![์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋]<a target="_blank" rel="noopener n
flutterํ์ด๋ธ๋ฆฌ๋-์ฑhelloworld
ใป
9๋ฌ ์
0
67
2
- ๋ฏธํด๊ฒฐ
์ฅ๋ฐ๊ตฌ๋ ๊ฒฐ์ ํ๊ธฐ ์๋ต์ด 500์ด ์ต๋๋ค.
์ฅ๋ฐ๊ตฌ๋ ํ๋ฉด๊น์ง๋ ๋ค ์ ์์ธ๋ฐ ๊ฒฐ์ ํ๊ธฐ ํ๋ฉด 500์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค... ์ดํ๋์ ์ฐพ์๋๋ฐ ์์ธ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค...ใ ใ ใ ใ <a target="_blank" re
flutterํ์ด๋ธ๋ฆฌ๋-์ฑanwjr41
ใป
9๋ฌ ์
0
90
2
- ๋ฏธํด๊ฒฐ
removeFromBasket์์ await patchBasket()์ ๋ง์ง๋ง์ ํ๋ฉด ์๋ฌ๋๋๊ฑฐ ์๋๊ฐ์?
Future patchBasket() async { await repository.patchBasket( body: PatchBasketBody( bas
flutterํ์ด๋ธ๋ฆฌ๋-์ฑanwjr41
ใป
9๋ฌ ์
0
53
2
- ๋ฏธํด๊ฒฐ
์ด ๋๊ฐ์ง๋ ์์ ํ ๋์ผํ ๊ธฐ๋ฅ์ธ๊ฐ์?
abstract class IModelWithId { final String id; IModelWithId({required this.id}); } <p style="text-a
flutterํ์ด๋ธ๋ฆฌ๋-์ฑanwjr41
ใป
9๋ฌ ์
0
83
3
- ๋ฏธํด๊ฒฐ
๋ด๋ถ ์ฝ๋๋ฅผ ์์ฑํ์ง ์์ CursorPaginationLoading๊ฐ ์ด๋ป๊ฒ ๋ก๋ฉ์ํ๋ฅผ ๊ฐ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค...
abstract class CursorPaginationBase {} //์๋ฌ class CursorPaginationError extends CursorPaginationBase { final Strin
flutterํ์ด๋ธ๋ฆฌ๋-์ฑanwjr41
ใป
9๋ฌ ์
0
67
2






