묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Flutter 앱 개발 실전
수강기간 연장 부탁드립니다
연장 부탁드립니다. 학습 이어 열심히 하겠습니다. 감사합니다!
-
미해결Flutter 중급 1편 - 클린 아키텍처
sealed class 사용 문의
안녕하세요 강의중에 freezed3.0 변경 이후sealed class 작성과 view_model에서 사용을 제대로 사용하고 있는지 문의드립니다. *1.switch 문 키워드 사용ex case SaveNote(:final id, :final title, :final content):2.viewModel class 연결부분ex _changeColor(color); AddEditNoteEvent(sealed class)코드 sealed class AddEditNoteEvent<T> { factory AddEditNoteEvent.changeColor(int color) = ChangeColor; factory AddEditNoteEvent.saveNote(int? id, String title, String content) = SaveNote; } class ChangeColor<T> implements AddEditNoteEvent<T> { final int color; ChangeColor(this.color); } class SaveNote<T> implements AddEditNoteEvent<T> { final int? id; final String title; final String content; SaveNote(this.id, this.title, this.content); } view model(onEvent)- 코드 import 'package:flutter/material.dart'; import 'package:flutter_note_app/domain/model/note.dart'; import 'package:flutter_note_app/domain/repository/note_repository.dart'; import 'package:flutter_note_app/presentation/add_edit_note/add_edit_note_event.dart'; class AddEditNoteViewModle with ChangeNotifier { final NoteRepository repository; int _color = Colors.orange.value; int get color => _color; AddEditNoteViewModle(this.repository); void onEvent(AddEditNoteEvent event) { switch (event) { case ChangeColor(:final color): _changeColor(color); break; case SaveNote(:final id, :final title, :final content): _saveNote(id, title, content); break; } } Future<void> _changeColor(int color) async { _color = color; notifyListeners(); } Future<void> _saveNote(int? id, String title, String content) async { if (id == null) { await repository.inserNote( Note( title: title, content: content, color: _color, timestamp: DateTime.now().millisecondsSinceEpoch, ), ); } else { await repository.updateNote( Note( id: id, title: title, content: content, color: _color, timestamp: DateTime.now().millisecondsSinceEpoch, ), ); } } }
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Riverpod 사용 시 라이프사이클 문의
안녕하세요.Riverpod 상태관리 라이브러리 사용 시 상태가 변경될 때 build() 가 실행이 된다고 하셨는데, 라이프 사이클 관점에서 보면 setState() 를 호출한 라이프사이클과 동일하게 발생이 되는 건가요? 아니면 build() 함수만 실행이 되는건가요?참고 할 링크가 있으면 같이 부탁드립니다. 수고하세요.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
라이프 사이클 화면 캡쳐
안녕하세요.자료 요청드립니다.라이프 사이클 자료를 캡쳐 후 학습하라고 하셨는데..인프런에서 캡쳐를 막았습니다. 혹시 라이플 사이클 관련 자료 혹은 캡쳐 자료를 받을 수 있을까요?수고하세요.
-
미해결Flutter 중급 1편 - 클린 아키텍처
freezed3.0에서 build시 when생성되지 않습니다.
freezed: ^3.0.6freezed_annotation: ^3.0.0 으로 진행후 notes_event.freezed.dart 파일에 when, map생성되지 않습니다. sealed도 써보고 abstract를 지우고 해도 마찬가지 인데 혹시 방법이 있을까요? 코드 내용import 'package:flutter_note_app/domain/model/note.dart';import 'package:freezed_annotation/freezed_annotation.dart';part 'notes_event.freezed.dart';@freezedsealed class NotesEvent with _$NotesEvent {const factory NotesEvent.loadNotes() = LoadNotes;const factory NotesEvent.deleteNote(Note note) = DeleteNote;const factory NotesEvent.restoreNote() = RestoreNote;} -------------------------------------------freezed 3.0.0 변경점 로그3버전부터 삭제가 되었군요. 인터넷에 when사용관련으로 옵션 등등 찾아서 했지만 모두 생성이 안되었습니다. 이제 when은 사용하지 않는게 좋을것 같습니다. import 'package:flutter_note_app/presentation/notes/notes_event.dart';void handleEvent(NotesEvent event) { switch (event) { case LoadNotes(): print("Loading notes..."); break; case DeleteNote(): print("Deleting"); break; case RestoreNote(): print("Restoring note"); break; }}dart3.0 부터 swich문이 추천이라고하네요! 선생님 Flutter Live Templeate 쪽에도 올라왔네요 템플릿 참고해주세요!https://gravel-pike-705.notion.site/Flutter-Live-Templeate-579bac3070754bdf8fa10afe4ebe8c92
-
미해결Flutter 중급 1편 - 클린 아키텍처
Try implementing the missing methods, or make the class abstract. 문제해결 공유
---- freezed 3.0 선생님 강의 필독 ---동영상 보시면 됩니다.https://youtu.be/I-OdCNneoXQ?si=5Pop20gdzUyEByV3 답변 전 글class abstract 내용 공유드립니다. 환경dependencies:cupertino_icons: ^1.0.8provider: ^6.1.4sqflite: ^2.0.0+4json_annotation: ^4.9.0freezed_annotation: ^3.0.0sqflite_common_ffi: ^2.1.0dev_dependencies:flutter_lints: ^5.0.0json_serializable: ^6.9.4freezed: ^3.0.6build_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 공식
-
미해결Flutter 중급 1편 - 클린 아키텍처
This is likely caused by a misconfigured builder definition. 오류 해결 방법
버전을 최신으로 마춰도 에러나는 경우 해결방법 공유합니다. 일단 선생님 환경은 현재 할수 없으므로 최신버전으로 마춰주시고 최신버전 의존성도 전부 완료되었는데도 안되는 경우는 아래 부분을 해보세요. 환경 샘플 플러터 3버전dependencies:provider: ^6.1.4sqflite: ^2.0.0+4json_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 on2.flutter clean3.flutter pub run build_runner build4.flutter pub run build_runner build --delete-conflicting-outputs4단계까지 안되면...5.신규 프로젝트 생성... 2번째 방법dependencies:provider: ^6.1.4sqflite: ^2.0.0+4json_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 buildDeprecated. 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)
-
해결됨Flutter 앱 개발 실전
코드 생성기 - build runner 관련 오류
안녕하세요. 코드생성기 - 실습 과정대로 진행했을 때 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개의 프로젝트로 오늘 초보 탈출!
Android Studio 내 New Flutter Project 버튼이 뜨지 않습니다.
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM flutter.dev에서 파일 다운을 받아 설치 다했고 cmd에 들어가서 flutter doctor 확인을 해서 visual studio 설치 제외 초록체크까지 해놓은 상태이구요. 안드로이드 스튜디오에서 플러터 플러그인, 다트 플러그인 설치확인을 했고 SDK tool 관련 설치까지 다 했는데도 New Flutter Project 표시가 뜨지 않습니다.(재설치 및 윈도우 초기화 후 진행해도 똑같이 프로젝트 생성이 되지 않습니다.) 구글에서 검색을 해도 해당 내용에 대해 아무런 정보를 찾을 수 없어 답답한데 해결방법이 있을까요?
-
미해결Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)
Repository 작성 이후 비교하는 샘플소스가 없나요?
Repository 작성 이후 비교하는 샘플소스가 없나요? 작성 연습이후 비교해보고 싶습니다!
-
미해결Flutter로 만드는 LLM 챗봇 (feat. Gemini)
또다른 오버플로우
답변이 길지않아서 오버플로우 않났는데 거기에 다시 질문하려고 하니 자판이 올라오면서 오버플로우 생기네요
-
미해결Flutter로 만드는 LLM 챗봇 (feat. Gemini)
오버플로우
text 에러난거 고치고 바로 실행 했더니 오버플로우 나네요flutter 물어봤는데답변이 길어서인지 어디가 문제인가요 에물레이터는 Pixel 7 API 34 (mobile)
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
라이브러리 조합에 대해서 문의드립니다.
안녕하세요. 라이브러리 조합에 대해서 문의드립니다. 중급 강좌에서는dio + retrofit + flutter_riverpod조합으로 사용을 하였습니다. 초급 강좌에서 사용한 drift + get_it 조합을 drift + flutter_riverpod 조합으로 사용 가능할까요?또한 초급 강좌에서 사용한 isar + get_it 조합을 isar + flutter_riverpod 조하으로 사용 가능할까요? 로컬 DB(drift, isar) 는 네트워크가 통신이 아닌 로컬통신으로 flutter_riverpod 에서 제공하는 기능을 사용할 필요가 없나요?추가로 drift 사용시 isar 와 같이 테이블별로 Repository 를 만들어서 사용할 수 있을까요?사용할 수 있다면 참고할 수 있는 링크나 설명 부탁드립니다. 고맙습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안드로이드 스튜디오에서 초록색 버튼이 안보입니다.
Android Emulator 세팅하기 강의 6분 34초에서 안드로이드 스튜디오 오른쪽 위에 초록색 버튼이 있다고 했는데, 회색 버튼만 있고, device 선택 창도 없습니다. 어떻게 해야 할까요? 코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결Flutter로 만드는 LLM 챗봇 (feat. Gemini)
에러가 생겨서
소스대로 했는데에러가 생기네요78, 79 번째줄 text 에서 에러입니다.에러 메세지는 Running Gradle task 'assembleDebug'... lib/chat_page.dart:78:63: Error: The getter 'text' isn't defined for the class 'Part'. - 'Part' is from 'package:flutter_gemini/src/models/part/part.dart' ('/C:/Users/userpc/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_gemini-3.0.0/lib/src/models/part/part.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'text'. ? HumanMessage(content: chat.parts?.first.text ?? '') ^^^^ lib/chat_page.dart:79:60: Error: The getter 'text' isn't defined for the class 'Part'. - 'Part' is from 'package:flutter_gemini/src/models/part/part.dart' ('/C:/Users/userpc/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_gemini-3.0.0/lib/src/models/part/part.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'text'. : AIMessage(content: chat.parts?.first.text ?? ''); ^^^^ Target kernel_snapshot failed: Exception FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'. > Process 'command 'C:\flutter\bin\flutter.bat'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 4s Exception: Gradle task assembleDebug failed with exit code 1 혹시25, 34 번째줄 Parts 에 안쓴다는 줄 쳐졌는데관계가 있나요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
DateTime(2024, 3, 1)은 안되는데 DateTime.now()는 됩니다
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://inf.run/54jjz - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.제가 놓친부분이 있는건가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
New Flutter Project 후 강제로 안드로이드 프로젝트로 변환
안녕하세요 padding_theory를 듣던 중, 프로젝트 생성 부분에 궁금증이 생겼습니다. 윈도우10에서 new flutter project를 선택한 후 진행을하면 아래 스크린샷처럼 Project가 아닌 Android로 자동으로 바뀌면서 경로 또한 android 폴더로 들어가게 됩니다. 처음에는 Project로 설정되어있고 Flutter 아이콘도 뜨는데 한 5초 정도가 지나면 자동으로 안드로이드 프로젝트로 인식을 하는 것 같습니다.구글링해서 해결방법을 찾으려고 해보니, 프로젝트 폴더안에 .idea 폴더와 android폴더 안의 padding_theory_android.iml 파일을 지우고 다시 프로젝트를 열어보니 정상적으로 실행이 되더군요. 매번 이렇게 파일을 지우고 다시 시작하기엔 번거로울 것 같은데, 혹시 제가 빠트린 초기설정 방법 같은 것이 있을까요? 감사합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
섹션16까지 했는데 로그인 후 화면이동이 안되고 있습니다.
flutter: previous: Instance of 'UserModel', next: Instance of 'UserModelLoading' flutter: [REQ] [POST] http://127.0.0.1:3000/auth/login flutter: [RES] [POST] http://127.0.0.1:3000/auth/login flutter: [REQ] [GET] http://127.0.0.1:3000/user/me/ flutter: [RES] [GET] http://127.0.0.1:3000/user/me/ flutter: previous: Instance of 'UserModelLoading', next: Instance of 'UserModel'섹션16까지 했는데 로그인 후 화면이동이 안되고 있습니다.그래서 AuthProvider 에서 prev, next 를 찍어 보았는데 변경을 잘 되고 있습니다.어디를 확인하면 좋을까요?
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
강사님 덕에 요즘 열심히 수강하고 있습니다
2년 전에 c언어를 배웠었는데 다트 언어는 그에 비해 너무 친절해서 행간에 추론이 필요한 부분이 있네요..사진 상 print(newBlackPink.toList());나 print(newBlackPink2);가 value는 똑같은데 괄호만 종류가 다른데요, 이때 toList를 안 먹이면 Map으로 나오는 건지, 그렇다면 final과 newBlackPink사이에는 Map이 생략되어 있는건지 궁금합니다. 아니라면 어째서 괄호의 종류가 다르게 나오는 건지 알려주세요!요지는 newBlackPink2의 자료형이 궁금합니다.