[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 중급강의 장바구니 제작 부분 수강중입니다. state 에 item 을 추가하실때 이런 식으로 spread operator 를 사용하시던데요. 혹시 add 메서드를 사용해서 추가해도 결과는 똑같은가요? state.add(BasketItemModel(product: product, count: 1)); 나름대로 찾아보니깐 spread operator 를 사용하면 deep copy가 되고 add 메서드는 단순히 reference 만 추가하는 방식인거 같은데,, 맞는지 궁금합니다. 나중에 다른 코드에서도 List 에 item 을 추가할때 spread operator 를 사용하는게 더 좋은지도 궁금하고요. 좋은 강의 감사합니다!
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 중급강의 GoRouter 부분 수강중입니다. 강의내용 대로 초기설정을 해봤는데 에러가 발생하지는 않지만 화면이 이동되지 않더라고요. 제가 사용하는 버전이 go_router: ^6.5.6 이라 바뀐 부분이 없나 공식문서를 살펴보니 초기 설정부분이 좀 다르더라고요. GoRouter configuration 정보를 _MyApp 외부에서 선언하고,설정은 routerConfig 파라미터 하나만 설정하고 끝내더라고요. 공식문서대로 하면 작동은 잘 합니다. 혹시 공식문서대로 계속 사용해야 하는건지 아니면 강의 내용대로 해도 되는건데 제가 받아 적은 코드가 잘못된건지 궁금합니다. 아래는 공식문서 스샷 입니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 드디어 완강을 하게 되었습니다! 여러번 복습을 해야겠지만 일단 너무 감격스럽네요 ㅜㅜ 다름 아니라, 완강후 완성된 코드에서는 주문 탭에서 force refetch를 하면 주문 내용이 새로고침 되지가 않습니다. throttle과 debounce 를 적용하기 전에는 결제 내용이 주문 탭에 즉시 반영되지는 않아도, force refetch를 하면 반영되었거든요. 깃헙에 올려주신 소스코드로도 같은 증상입니다. 다른 탭에서의 force refetch는 이상없이 작동하는데 왜 그럴까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
같은 질문 해주신 글을 보았는데, 실제 컴퓨터의 ip를 넣어주어야 한다는 답변을 써주셨던데 login_screen.dart 파일에서 final emulatorIp = ''; final simulatorip = ''; 이 부분의 ip주소만 바꾸면 되는게 맞나요? 어느 부분을 더 수정해야 하는지 궁금합니다..
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
강의를 순차적으로 따라해보면서 이전까지는 모두 실행되었었는데 이 부분에서 print가 되지 않습니다. http://127.0.0.1:3000/api/ 이 정상적으로 나오는 거로 봐서 서버도 켜져있습니다 현재 dio 패키지는 5.1.1 이 최신이지만 강의대로 yaml 파일에 dio: ^4.0.6으로 작성하였습니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
RestaurantCard.fromModel 의 인자로 required RestaurantModel model 가 할당되어 있는데, RestarauntDetailScreen 위젯에서 RestaurantCard 위젯을 사용할 때, RestaurantDetailModel 을 사용합니다. 변수의 type이 달라도 문제가 없는 것일까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 먼저 강의는 잘보고있습니다. Gorouter에 대해 다시 정리하는 도중 하나 궁금한게 생겨서 질문드립니다. 이론에서 사용하셨던 프로젝트 기준으로 만약 이런식으로 context.go('/one'); Home -> one로 이동한다고 가정했을때 Home에 print build One에 print build를 해두면 flutter: One Screen build flutter: HomeScreen didChangeDependencies flutter: HomeScreen build 이렇게 찍히더라구요 (Home은 ful위젯으로 바꿔서 찍어봤습니다) 제가 의문인건 Home -> One 이동하는건데 왜 Home이 다시 빌드가 되며, 이는 메모리 낭비라고 생각하는데 다른 대안이나 원래 구조상 이렇게 짜여져있는건가요? 기존방식이었던 Navigator.of(context).push( MaterialPageRoute(builder: (_) => OneScreen()) ); 이런식으로 이동을 한다면 기존스택은 남아 제가 원하는 대로 flutter: One Screen build만 찍히는데, 감사합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
보너스 강의가 약간 더 남았습니다~ 조금만 기다려주세요! Optimistic Response + Form + 글로벌 캐시관리를 한번에 보여주는 "리뷰 작성 페이지" 강의가 9월이 가기전에 추가될 계획입니다! 기대해주세요! (지금까지 배운 내용을 한번에 조합하는 강의입니다!) 이렇게 글을 쓰셨던데 빨리 배워보고 싶네요 ㅠㅠ 강의가 너무 좋아서 그런데 중급 이상강의 혹시 하나더 나올 계획은 없나요? 이 강의보단 조금더 복잡한... 너무 기다려집니다 ㅠㅠ 항상 감사합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
레스토랑 상세 API (/restaurant/{id}) 호출 시 아래와 같이 헤더값을 넣어 줬을 때 @Headers({ 'accessToken': 'true', }) Interceptor 의 onRequest 메서드에서 options.headers 가 빈값으로 넘어와 if (options.headers['accessToken'] == 'true') 조건을 타지 않습니다. @Headers 가 선언된 restaurant_repository.dart 에는 아래처럼 처리가 되어있고요. import 'package:dio/dio.dart' hide Headers; import 'package:retrofit/retrofit.dart'; 아래 링크를 찾아서 https://github.com/Mindinventory/flutter-retrofit/issues/6 아래처럼 수정을 하면 정상적으로 동작 하는데 @Headers({ 'accessToken': 'true', }) Future<RestaurantDetailModel> getRestaurantDetail({ @Header('accessToken') required String accessToken, @Path() required String id, }); 동영상에서는 되고 제가 같은 방식으로 할 땐 안돼서 혹시 이렇게 처리하는게 맞는지, 아니면 어떤 부분이 잘못돼서 @Headers 로 값을 줬을 때 빈값으로 넘어오는지 궁금합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
저 vs code를 사용중인데, 코팩님처럼 코드 자동완성을 하고 싶은데요... 방법을 모르겠어요... 이런저런 확장을 다 깔아봐도 잘 안돼요... Navigator.of(까지만 쳐도 context)똭 나오고 MaterialPageRoute( 까지만 치니까 안에 파라미터로 뭘 넣어야하는지 포맷까지 똭 나오는 그런 거... vs 코드는 안되는 건가요? ㅠㅠ 그냥 공부하는 거랑은 상관 없는 얘기긴 한데 은근히 불편해서... 답변해주시면 감사하겠습니다.. ^^ 기다릴게용 ㅎ
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
지금 flutter 3.7상태에서는 바로 Badge를 사용하지 못합니다 Flutter 3.7에서는 Badge 위젯이 Material 라이브러리에 도입되었으므로 모호한 가져오기를 피하려면 다음과 같이 패키지를 가져와야 합니다. import 'package:badges/badges.dart' as badges; 그런 다음 "Badge" 위젯 대신 "badges.Badge" 위젯을 사용합니다. 이 패키지의 모든 클래스에 대해 동일합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요! 중급 강의 따라가던 중에 궁금한 게 있어 질문드려요. Product_Card.dart 파일을 수정하실때, ProductCard 클래스에 RestaurantProductModel의 멤버들을 다 변수로 지정하셨잖아요? 그런데 그냥 RestaurantProductModel을 변수로 넣고 그냥 모델을 받아버리면 안되나요? class ProductCard extends StatelessWidget { final ProductModel model; const ProductCard({ required this.model, super.key, }); 이렇게 하고 디테일 스크린에서 ProductCard를 그냥 넘겨주는 식으로 해봤는데, 일단 동작하는 건 같더라구요. 그런데 이렇게 하지 않으신 데에는 무슨 다른 이유가 있으신건지 궁금합니다! 혹시 제 마음대로 했다가 나중에 문제가 생기진 않을까 걱정이 되어서... 답변기다리겠습니다. 감사합니다! ^^