묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
AuthRepository 클래스 token() 함수는 Dead Code 아닌가요?
AuthRepository 클래스에서 token() 함수는 전혀 호출되지 않는거 같은데, Dead Code인가요? (Dead Code가 아니라면, 어디서 호출 되는지 설명 부탁드립니다) Dead Code 가 맞다면, 아래 2개 파일도 필요가 없어서 삭제해도 되는 걸까요?token_response.darttoken_response.g.dart
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Rating을 GET 요청할때 DioError가 발생합니다.
Dio로 Rating을 get요청하면 이런 에러가 뜨면서 데이터를 가죠오지 못합니다.. 하지만 Postman으로 get요청을 하면 잘 가져오는데 뭐가 문제인걸까요...
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Token 관련 질문 드립니다.
안녕하세요. 학습중 궁급해서 질문 드립니다. test@codefactory.ia:testtest 이 부분을 인코딩하고 포스트맨에서 로직 검사를 여러번 시험해보면서 username 즉 ID값을 다르게 변경해도 패스워드만 정확하게 맞다면 accessToken 과 refreshToken을 받을 수 있었습니다.Password부분 같이 값이 같아야 토큰을 받을 수 있는건데 ID값은 달라도 왜 토큰 값이 받아지는 거죠? 사진은 ID값을 다르게 해서 토큰을 받은 겁니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
수업의 내용은 아니지만 궁금해서 여쭤봅니다.
저는 이런식으로 계속해서 뜨는데 이것만 끄는 방법이 있을까요?필요한 정보만 보고 싶은데 textfield의 깜빡깜빡하는 부분까지도 다 뜨는 것 같아서요. ㅠㅠ 수업내용은 선생님께서 잘 알려주셔서 너무 좋아요!! 그리고 현재 안드로이드로 배우고 있는데, 선생님처럼 Appbar의 title이 이처럼 다음 페이지로 이동시 살짝 오른쪽으로 가는데 어떻게 설정하면 될까요??
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
refresh 토큰 재발급 요청에 대해서
리프래시 토큰이 기간 만료되었다는 거는 어플 쪽에서 확인을 해서 재발급 요청을 보내야 하나요?예를 들어서 페이로드에 있는 만료일을 어플 백그라운드에서 계속 체크하면서 만료되면 재발급 요청을 서버쪽에 보내는 건지 궁금 합니다.액세스토큰이 만료일 때 리프레시 토큰까지 만료이면 바로 로그아웃인데 리프래시 토큰만 만료인 경우는 어떻게 검증하는지 궁금합니다
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
_App 클래스가 ConsumerWidget을 상속 받으면 에러가 생깁니다
안녕하세요, 시간이 없어 어떻게든 꾸역꾸역 듣고 있는데도 많은 도움을 얻고 있습니다._App 클래스에서 MaterialApp 위젯을 .router 생성자로 부르고 _App 클래스가 ConsumerWidget를 상속 받게끔 코드를 고치니 에러가 발생합니다.가장 위에 보이는 에러는 이렇습니다.다시 ConsumerWidget에서 StatelessWidget을 상속 받게 하니 에러는 발생하지 않습니다. .router 생성자를 빼도 에러가 발생하는 것을 보아 리버팟과 관련된 이슈인 듯 합니다.저는 강의가 나온 후 조금 지난 시점에 듣기 시작해서 이미 리버팟이 2.1.대 버전일 때 시작했는데 강의와 시차가 있어 발생하는 문제일까요?강사님 아니더라도 해결하신 분이 있다면 조언 부탁드립니다.감사합니다.에러 메시지 및 스택은 다음과 같습니다.[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2609 pos 20: '_debugCurrentBuildTarget == context': is not true.#0 AssertionError.doThrowNew (dart:core-patch/errors_patch.dart:51:61)#1 AssertionError.throwNew (dart:core-patch/errors_patch.dart:40:5)#2 BuildOwner.buildScope.<anonymous closure> (package:flutter/src/widgets/framework.dart:2609:20)#3 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2613:12)#4 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1110:13)#5 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:945:7)#6 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:925:7)#7 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)#8 Timer.runTimers (dart:isolate-patch/timer_impl.dart:398:19)#9 _Ti<…>======== Exception caught by widgets library =======================================================The following assertion was thrown building UncontrolledProviderScope:Got a stack frame from package:stack_trace, where a vm or web frame was expected. This can happen if FlutterError.demangleStackTrace was not set in an environment that propagates non-standard stack traces to the framework, such as during tests.'package:flutter/src/foundation/stack_frame.dart':Failed assertion: line 192 pos 7: 'line != '===== asynchronous gap ===========================''The relevant error-causing widget was: UncontrolledProviderScope UncontrolledProviderScope:file:///Users/letmebelazy/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_riverpod-2.1.1/lib/src/framework.dart:250:12When the exception was thrown, this was the stack: #2 StackFrame.fromStackTraceLine (package:flutter/src/foundation/stack_frame.dart:192:7)#3 MappedIterator.moveNext (dart:_internal/iterable.dart:391:20)#4 WhereTypeIterator.moveNext (dart:_internal/iterable.dart:869:20)#5 new GrowableList.ofOther (dart:core-patch/growable_array.dart:202:26)#6 new GrowableList.of (dart:core-patch/growablearray.dart:152:26)#7 new List.of (dart:core-patch/array_patch.dart:51:28)#8 Iterable.toList (dart:core/iterable.dart:470:12)#9 StackFrame.fromStackString (package:flutter/src/foundation/stack_frame.dart:93:10)#10 StackFrame.fromStackTrace (package:flutter/src/foundation/stack_frame.dart:78:12)#11 FlutterErrorDetails.debugFillProperties (package:flutter/src/foundation/assertions.dart:712:57)#12 DiagnosticableNode.builder.<anonymous closure> (package:flutter/src/foundation/diagnostics.dart:2940:17)#13 DiagnosticableNode.builder (package:flutter/src/foundation/diagnostics.dart:2943:8)#14 _FlutterErrorDetailsNode.builder (package:flutter/src/foundation/assertions.dart:1289:56)#15 DiagnosticableNode.emptyBodyDescription (package:flutter/src/foundation/diagnostics.dart:2954:77)#16 DiagnosticsNode.toJsonMap.<anonymous closure> (package:flutter/src/foundation/diagnostics.dart:1632:13)#17 DiagnosticsNode.toJsonMap (package:flutter/src/foundation/diagnostics.dart:1661:6)#18 WidgetInspectorService._nodeToJson (package:flutter/src/widgets/widget_inspector.dart:1606:18)#19 WidgetInspectorService._reportStructuredError (package:flutter/src/widgets/widget_inspector.dart:937:44)#20 FlutterError.reportError (package:flutter/src/foundation/assertions.dart:1184:14)#21 _debugReportException (package:flutter/src/widgets/framework.dart:6493:16)#22 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4887:9)#23 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)#24 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)#25 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859:5)#26 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041:11)#27 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853:5)... Normal element mounting (7 frames)#34 UncontrolledProviderScopeElement.mount (package:flutterriverpod/src/framework.dart:309:11)... Normal element mounting (9 frames)#43 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863:16)#44 Element.updateChild (package:flutter/src/widgets/framework.dart:3592:18)#45 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1195:16)#46 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1164:5)#47 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1111:18)#48 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2605:19)#49 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1110:13)#50 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:945:7)#51 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:925:7)(elided 6 frames from class AssertionError, class RawReceivePortImpl, class _Timer, and dart:async-patch)============================================================================================================ Exception caught by widgets library =======================================================The following assertion was thrown building ProviderScope(state: ProviderScopeState#5859c):'package:flutter/src/widgets/framework.dart': Failed assertion: line 4606 pos 14: 'owner!._debugCurrentBuildTarget == this': is not true.Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.In either case, please report this assertion by filing a bug on GitHub: https://github.com/flutter/flutter/issues/new?template=2_bug.mdThe relevant error-causing widget was: ProviderScope ProviderScope:file:///Users/letmebelazy/StudioProjects/code_factory/lib/main.dart:9:5When the exception was thrown, this was the stack: #2 Element.rebuild.<anonymous closure> (package:flutter/src/widgets/framework.dart:4606:14)#3 Element.rebuild (package:flutter/src/widgets/framework.dart:4609:6)#4 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859:5)#5 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853:5)#6 UncontrolledProviderScopeElement.mount (package:flutterriverpod/src/framework.dart:309:11)... Normal element mounting (9 frames)#15 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863:16)#16 Element.updateChild (package:flutter/src/widgets/framework.dart:3592:18)#17 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1195:16)#18 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1164:5)#19 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1111:18)#20 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2605:19)#21 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1110:13)#22 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:945:7)#23 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:925:7)(elided 6 frames from class AssertionError, class RawReceivePortImpl, class _Timer, and dart:async-patch)============================================================================================================ Exception caught by widgets library =======================================================The following assertion was thrown attaching to the render tree:'package:flutter/src/widgets/framework.dart': Failed assertion: line 4606 pos 14: 'owner!._debugCurrentBuildTarget == this': is not true.Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.In either case, please report this assertion by filing a bug on GitHub: https://github.com/flutter/flutter/issues/new?template=2_bug.mdWhen the exception was thrown, this was the stack: #2 Element.rebuild.<anonymous closure> (package:flutter/src/widgets/framework.dart:4606:14)#3 Element.rebuild (package:flutter/src/widgets/framework.dart:4609:6)#4 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859:5)#5 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041:11)#6 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853:5)#7 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863:16)#8 Element.updateChild (package:flutter/src/widgets/framework.dart:3592:18)#9 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1195:16)#10 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1164:5)#11 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1111:18)#12 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2605:19)#13 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1110:13)#14 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:945:7)#15 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:925:7)(elided 6 frames from class AssertionError, class RawReceivePortImpl, class _Timer, and dart:async-patch)====================================================================================================
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
이번 플러터와 다트 업데이트에서
이번 다트 업데이트에서플러터와 다트가 업데이트가 되면서여러 기능이 생긴 걸로 아는데다트에서 Pattern Matching 이란 기능이 도입 된 것으로 압니다.반환 값이 여러 타입일 수 있다는 걸로 해석을 했는데정확히 무슨 기능이며 어디에 활용할 수 있을까요?Json 직렬화 혹은 역직렬화에 많이 활용될까요?
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Dio로 api 요청 듣고 있는데 에러가 발생합니다 ㅜㅜ
E/flutter ( 4589): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DioError [DioErrorType.connectTimeout]: Connecting timed out [0ms]ElevatedButton( onPressed: () async { final rawString = 'test@codefactory.ai:testtest'; Codec<String, String> stringToBase64 = utf8.fuse(base64); String token = stringToBase64.encode(rawString); final resp = await dio.post( 'http://$ip/auth/login', options: Options( headers: {'authorization': 'Basic $token'}, ), ); print(resp.data); }, style: ElevatedButton.styleFrom( backgroundColor: PRIMARY_COLOR, ), child: Text( '로그인', ), ),코드를 잘못 작성한건가요?ㅜㅜ
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
백엔드에서 처리해야될것들이 궁금합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 안녕하세요 . 중급 강의에서는 백앤드 처리가 되어있어서 그런데개인적으로 앱을 개발하려면백앤드에서 하는 일이 로그인시 아이디 비번 토큰 변환 회원정보 디비 저장, 회원정보 , 게시글 및 데이터들 데이터베이스에 작성 및 읽기 수정 삭제 토큰 + 데이터베이스 관련된 기능만 하는거일까요 ?? 예를들면 개인적으로 스프링 + 아파치 + mysql 로 구성해서 http 통신으로 데이터만 주고 받으면앱출시 목적으로 구현이 가능한건가요 ? 웹은 어느정도 아는데 앱은 처음이라 많이 모자르네요
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
secureStorage provider 질문드립니다!
final storage = FlutterSecureStorage();으로 선언되어있는것은 어느곳에서 불러오더라도 같은 instance인데, provider로 선언해서 호출하는 이유가 있을까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
ref.watch / ref.read
안녕하세요.ref.watch 는 provider 의 현재 값을 subscribing 하고 그 값에 update가 있으면 그것도 subscribe를 하게되어 ui를 새로 rebuild함으로써 바뀐 화면을 보여준다고 이해를 했습니다. 반면 ref.read는 provider의 현재 값을 받아오지만 subscribe는 하지 않는데, 여기서는 shoppingListProvider의 notifier에 access해서 toggleHasBought를 작동시키는 역할을 한다고 이해했습니다. toggleHasBought이 작동함으로써 !hasBought가 된 것을 ref.watch가 스크린에 리빌드 하는 원리라고 생각하면 될까요?하나 더 궁금한 점은 ref.read(shoppingListProvider.notifier)..... 그리고 이전 챕터 stateProvider 부분에서 모든 ref.read를 ref.watch로 바꾸어도 기존과 똑같이 작동은 하는데 이것은 어떤 원리에 의해서 이렇게 되는 것인지. 겉으로 보이는 것은 같지만 맥락이 어떻게 다른것인지 궁금합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
crossaxisalignment.stretch
안녕하세요 간단한 질문입니다. productcard 작업하기 -> 4:18분 정도에서 crossaxisalignment.stretch하셨는데 이미 expanded가 쓰여서 cliprrect를 제외한 영역을 확보했는데에도 가로채우기인 stretch를 하는 이유가 궁금합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Web 앱으로 변경하려면?
안녕하세요. 유익한 강의 너무 감사합니다.문득 궁금한 게 생겨서 질문 드려요.Flutter가 크로스 플랫폼 지원으로 알고 있는데, 해당 프로젝트를 Web 앱으로 실행하기 위해서, 어떤 부분을 수정해야 할까요?크롬 브라우저로 실행해 보려고 하는데 잘 안되네요.
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
디버그시 `*.g.dart` 파일을 수정하며 디버그 해도 되나요?
디버그시 *.g.dart 파일을 수정하며 디버그 해도 되나요?Future<CursorPagination<RestaurantModel>> paginate(); 에서 RestaurantModel을 RestaurantDetailModel로 잘못 입력하여 에러가 났는데, 아무런 에러 메세지도 나오지 않아서, *.g.dart 파일 수정하며 디버그했는데, 디버그 방법을 어떻게 하면 좋을지 알고 싶습니다.=================================새해 복 많이 받으세요 : )