[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 강사님. 강의 잘 듣고 있습니다. handler.reject(err)를 발생시키는 경우가 총 3가지인 것 같은데요. 1번째는 secureStorage에 refreshToken이 없을 때, 2번째는 dio 요청 실패했을 때 즉 서버의 refresh 토큰의 기간이 만료되었을 때, 3번째는 토큰과 관계없는 서버의 예외 상황이 발생했을 때인 것 같은데요. 2번째 상황에서는 login 화면으로 다시 redirect 시키지만, 1, 3번째의 경우에는 따로 예외 스크린을 만들어서 여기로 라우팅시키는 것이 적합할까요? 만약 이렇게 처리하지 않는다면, 레드 스크린에 예외 로그가 남게 되는 것인가요? 또한 handler.reject(err)를 통해 예외가 전파되는 것 같은데, 2번째 상황에서는 어차피 로그인 화면으로 바로 넘어가므로 이를 굳이 발생시킬 필요는 없지 않나요?
안녕하세요, 수강중에 궁금한 점이 생겨서요 ㅠㅠ.. ?? 를 사용할시 null 인경우 기본값을 할당해서 사용가능하다고 하셨는데, ??를 이용해서 x ?? 0 + 2; 로 x가 null인 경우 0을 기본값으로 두고 2를 더하도록 식을 구성한 후, x를 print 해보니 x에 2가 할당되지 않는 것 같습니다,, 왜그런 걸까요 ㅠㅠ
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
minSdk = flutter.minSdkVersion 부분을 강의대로 minSdkVertion 19로 바꿨더니 다음과 같은 에러가 발생하였습니다. 에러 발생 이후에 다시 보니까 제가 적었던 부분이 minSdkVersion flutter.minSdkVersion 으로 자동으로 변경되어 있었습니다. 다른 비슷한 질문들과 답변들을 보면서 minSdk = minSdkVersion 19, minSdk = 19, minSdk 19, sdk 21 등등 여러 방면으로 시도했는데 해결이 되지 않아서 질문드립니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
web 환경에서 textfield multi 라인에서 한글 입력시 커서가 아래줄에 나오는 오류 수정하려면 어떻게 하나요? 코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요. Riverpod 상태관리 라이브러리 사용 시 상태가 변경될 때 build() 가 실행이 된다고 하셨는데, 라이프 사이클 관점에서 보면 setState() 를 호출한 라이프사이클과 동일하게 발생이 되는 건가요? 아니면 build() 함수만 실행이 되는건가요? 참고 할 링크가 있으면 같이 부탁드립니다. 수고하세요.
---- freezed 3.0 선생님 강의 필독 --- 동영상 보시면 됩니다. https://youtu.be/I-OdCNneoXQ?si=5Pop20gdzUyEByV3 답변 전 글 class abstract 내용 공유드립니다. 환경 dependencies: cupertino_icons: ^1.0.8 provider: ^6.1.4 sqflite: ^2.0.0+4 json_annotation: ^4.9.0 freezed_annotation: ^3.0.0 sqflite_common_ffi: ^2.1.0 dev_dependencies: flutter_lints: ^5.0.0 json_serializable: ^6.9.4 freezed: ^3.0.6 build_runner: ^2.4.15 freezed: ^3.0.6작성이 변경되었습니다. 내용 참고 바랍니다. class Note with _$Note { => abstract class Note with _$Note { factory Note({ => const factory Note({ 위 내용 수정 후 진행해야 오류 안남 flutter pub run build_runner build --delete-conflicting-outputs 기존 버전이라 힘들군요. ㅠㅠ *freezed 공식
버전을 최신으로 마춰도 에러나는 경우 해결방법 공유합니다. 일단 선생님 환경은 현재 할수 없으므로 최신버전으로 마춰주시고 최신버전 의존성도 전부 완료되었는데도 안되는 경우는 아래 부분을 해보세요. 환경 샘플 플러터 3버전 dependencies: provider: ^6.1.4 sqflite: ^2.0.0+4 json_annotation: ^4.9.0 →json 직렬화 freezed_annotation: ^3.0.0 →불변 코드 생성 dev_dependencies: json_serializable: ^6.9.3 → JSON 직렬화 및 역직렬화 자동 생성 freezed: ^3.0.6 → 불변 객체 생성 build_runner: ^2.4.15 → 코드 생성 도구 생성 패키지 실행 첫번째 방법 1.컴퓨터 off on 2.flutter clean 3.flutter pub run build_runner build 4.flutter pub run build_runner build --delete-conflicting-outputs 4단계까지 안되면... 5.신규 프로젝트 생성... 2번째 방법 dependencies: provider: ^6.1.4 sqflite: ^2.0.0+4 json_annotation: ^4.9.0 →json 직렬화 freezed_annotation: ^3.0.0 →불변 코드 생성 analyzer: ^6.0.0 dev_dependencies: json_serializable: ^6.9.3 → JSON 직렬화 및 역직렬화 자동 생성 freezed: ^3.0.6 → 불변 객체 생성 build_runner: ^2.4.15 → 코드 생성 도구 생성 패키지 실행 낮은 버전으로 진행 후에 높은버전으로 진행했을때 json_serializable에서 analyzer가 삭제가 제대로 안되서 문제가 되는 경우가 있는것 같습니다. 억지로 analyzer 맞추고 진행하고 되었을대 analyzer을 제거하면 잘되었습니다. flutter 환경 세팅은 어렵군요... 시간 낭비 안되도록 공유해봅니다. 에러내용: C:\project\flutter_cleancode\flutter_note_app> flutter pub run build_runner build Deprecated. Use dart run instead. [INFO] Generating build script completed, took 326ms [WARNING] /C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:84:52: Error: The argument type 'ClassElement' can't be assigned to the parameter type 'InterfaceElementImpl'. - 'ClassElement' is from 'package:analyzer/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/dart/element/element.dart'). - 'InterfaceElementImpl' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart'). for (final v in manager.getInheritedConcreteMap2(element).values) { ^ /C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:90:43: Error: The getter 'isGetter' isn't defined for the class 'ExecutableElementOrMember'. - 'ExecutableElementOrMember' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'isGetter'. if (v is PropertyAccessorElement && v.isGetter) { ^^^^^^^^ /C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:91:16: Error: The getter 'variable2' isn't defined for the class 'ExecutableElementOrMember'. - 'ExecutableElementOrMember' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'variable2'. assert(v.variable2 is FieldElement); ^^^^^^^^^ /C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:92:26: Error: The getter 'variable2' isn't defined for the class 'ExecutableElementOrMember'. - 'ExecutableElementOrMember' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'variable2'. final variable = v.variable2 as FieldElement; ^^^^^^^^^ /C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/decode_helper.dart:65:23: Error: The getter 'augmented' isn't defined for the class 'ClassElement'. - 'ClassElement' is from 'package:analyzer/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/dart/element/element.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'augmented'. element.augmented ^^^^^^^^^ [INFO] Precompiling build script... completed, took 880ms [SEVERE] Failed to precompile build script .dart_tool/build/entrypoint/build.dart. This is likely caused by a misconfigured builder definition.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래에서 .. 을 뭐라고 부르나요? WebViewController() ..loadRequest(homeUrl)
안녕하세요. 코드생성기 - 실습 과정대로 진행했을 때 Person class에 다음과 같은 오류가 발생합니다. freed 문서에 적혀있는 사용 예시대로 수정하면 문제가 없는데, 강의에서 보여주신 소스와의 차이점 및 오류 원인이 궁금합니다. import 'package:freezed_annotation/freezed_annotation.dart'; part 'person.freezed.dart'; part 'person.g.dart'; @freezed @JsonSerializable() class Person with _$Person { const Person({ required this.name, required this.age, }); @override final String name; @override final int age; factory Person.fromJson(Map<String, Object?> json) => _$PersonFromJson(json); Map<String, Object?> toJson() => _$PersonToJson(this); }
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM flutter.dev에서 파일 다운을 받아 설치 다했고 cmd에 들어가서 flutter doctor 확인을 해서 visual studio 설치 제외 초록체크까지 해놓은 상태이구요. 안드로이드 스튜디오에서 플러터 플러그인, 다트 플러그인 설치확인을 했고 SDK tool 관련 설치까지 다 했는데도 New Flutter Project 표시가 뜨지 않습니다.(재설치 및 윈도우 초기화 후 진행해도 똑같이 프로젝트 생성이 되지 않습니다.) 구글에서 검색을 해도 해당 내용에 대해 아무런 정보를 찾을 수 없어 답답한데 해결방법이 있을까요?