묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[초중급] Flutter Todo 앱 - FlutterBloc
[공유] Hive generator 실습 중 FolderAdapter::read 메서드가 return Folder() 로 생성되는 이슈
environment: sdk: '>=3.1.2 <4.0.0' dependencies: flutter: sdk: flutter freezed_annotation: 2.4.1 cupertino_icons: ^1.0.2 get_it: 7.2.0 hive: 2.2.3 hive_flutter: 1.1.0 intl: 0.17.0 dev_dependencies: build_runner: 2.4.8 flutter_test: sdk: flutter flutter_lints: ^2.0.0 freezed: 2.4.7 hive_generator: 2.0.1
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
외부 데이터베이스는요?
-hive랑 drift로 내부데이터베이스 써서 핸드폰을 재실행해도. 데이터가 남아있는건 알겠습니다 이제 저는 모든 사용자랑 데이터를 공유하고 싶고 재실행해도 데이터가 남아있게 쓰려면. 외부데이터베이스를 써야할거 같은데 어떤 라이브러리?? 어떤 import?? 써야하나요?!
-
미해결Flutter로 SNS 앱 만들기
인증안한 이메일로 로그인시 다른 에러 메세지가 출력이 됩니다.
가입 후 처음 로그인을 시도할 때 나오는 에러 메세지인데요. 두번째 시도를 하면 예상했던 메세지가 나옵니다. 수정이 가능한지 궁금합니다.
-
해결됨Flutter로 SNS 앱 만들기
회원가입 버튼을 누른 후 validation 문제
영상 마지막에 고쳐주신 setState(() { _isEnabled = false; _autovalidateMode = AutovalidateMode.always;});위치를 바꾸어주어서 그 전에 null 로 return 하는 조건문 때문에 autovalidateMode.always 가 적용되지 않는 것 같습니다. 조언 부탁드립니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
AuthRepository의 token() 메소드는 사용되는 곳이 없는것같은데 맞나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 토큰을 재발급하는 로직은 dio interceptor 내부에서 일어나고있는것으로 이해했는데,그러면 AuthRepository에서 Future<TokenResponse> 타입을 반환하는 token()메소드는 왜 존재하고 어디에 사용되는 것인가요?
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Intel HAXM
시작하는 단계에서 에뮬레이터를 실행하면 이런 메시지가 뜨는데 혹시 뭘 추가로 해줘야하는건가요??
-
해결됨Flutter 앱 개발 기초
google font 관련 내용
theme: ThemeData( textTheme: GoogleFonts.getTextTheme('Jua'), ),위 소스를 적용시 에러가 나면서 적용이 되지 않습니다.버전은 현재 6.2.0을 사용중에 있으며 readme쪽 파일을 봐도 getTextTheme 업데이트내역이 따로 없는것 같은데.. 적용이 안됩니다 ㅠ
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Android emulator 실행 에러
에뮬레이터가 안 돼서 실습을 못 하고 있습니다. 도와주세요ㅠㅠ 안녕하세요,강의를 따라 Hello world 앱 제작하기 섹션은 잘 진행하였는데 갑자기 아래와 같이 Open Android Flutter : Flutter Inflearn을 클릭해도이렇게 에뮬레이터가 뜨기만 할 뿐 연결되지 않습니다..어떻게 해결해야 할까요..?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
go router redirect 동작 질문
안녕하세요 redirect 이용해서 구현하는 것에 질문이 있어요 예를 들면 1) 어떤 상세 페이지에서 컨텐츠 보고 있었음 2) 토큰만료 되서 로그인 페이지로 감 3) 재로그인하고 아까 상세 페이지로 복귀 또는 1) 로그아웃했음 (auth state 에 따라 redirect함)2) 뒤로 가기가 있는 로그인 페이지로 이동 3) 뒤로가기 하고 싶으나 (context.pop할 페이지가 없다고 나옴)이런 시나리오라 할 떄 go router 같은 경우 redirect 으로 로그인 페이지로 보내게 되면 context.pop할때 뒤로갈 페이지가 없다고 되는데 이런경우는 어떻게 다뤄야할까요? 당장 생각되는건 redirect 되는 페이지들이 context.go 처럼 작동되어서 context.push 같이 redirect 될 수 있도록 조절이 가능하면 좋을 것 같다는 생각이 드는데 방법이 있는지 궁금해요.만약에 위 해결 방법이 없다면 수동적으로라도 redirect 을 사용 안하고 auth state 별로 라우팅을 명시해주는게 나을까요..?아래는 구현한 코드 예제입니다 final goRouterProvider = Provider<GoRouter>((ref) { final authProvider = AuthNotifier(ref: ref); return GoRouter( navigatorKey: MyApp.navigatorKey, debugLogDiagnostics: false, initialLocation: RouterPathEnum.SPLASH.path, redirect: authProvider.redirectLogic, refreshListenable: authProvider, routes: [ ...RouterPathEnum.values .map( (value) => transitionRoute( path: value.path, routerEnum: value, duration: const Duration(milliseconds: 500), ), ) .toList(), ...goDynamicRouteList, /// -- Deep Link Page -- ], ); }); class AuthNotifier extends ChangeNotifier { final Ref ref; AuthNotifier({required this.ref}) { //LoginPlatformEnum 상태 listen -> 상태가 변경되면 notifyListeners() 호출 ref.listen<LoginPlatformEnum?>( authViewModelProvider, (previous, next) { if (previous != next) { notifyListeners(); } }, ); } String? redirectLogic(_, GoRouterState state) { final authState = ref.read(authViewModelProvider); /// 로그인 여부 final authenticated = authState; /// 로그인 하려는 경우 final authenticating = (state.matchedLocation == RouterPathEnum.LOGIN.path) || (state.matchedLocation == RouterPathEnum.SIGNUP.path) || (state.matchedLocation == RouterPathEnum.PASSWORD_RESET.path); final isSplash = (state.matchedLocation == RouterPathEnum.SPLASH.path); log('authenticated.value: $authenticated authenticating: $authenticating'); if (isSplash) return null; /** * authenticated - 로그인이 안된 경우 (LoginPlatformEnum.none) * 로그인을 시도하는 케이스 : 원하는 페이지로 이동 * 그 외 케이스 : 로그인 페이지 이동 */ if (authenticated == LoginPlatformEnum.NONE) { return authenticating ? null : RouterPathEnum.LOGIN.path; } /** * authenticated - 로그인 성공한 경우 * 로그인하려는 페이지 or splash -> total main 페이지로 이동 * 그 외 케이스 : 원하는 페이지로 이동 */ return (authenticating) ? RouterPathEnum.TOTAL_MAIN.path : null; } }
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
FloatingActionButton onPressed 함수에서 컴파일 에러가 발생합니다.
안녕하세요. 수고많으세요.renderFloatingActionButton에서 onPressed()함수구성시아래분과 동일한 아래와 같은 에러가 납니다. 그분은 원격으로 해결해주신거 같아 해결책을 몰라 질문드립니다. lib/screen/home_screen.dart:53:22: Error: The argument type 'Context' can't be assigned to the parameter type 'BuildContext'.- 'Context' is from 'package:path/src/context.dart' ('/C:/Users/KSG/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.9.0/lib/src/context.dart').- 'BuildContext' is from 'package:flutter/src/widgets/framework.dart' ('/C:/Users/KSG/libraries/flutter_windows_3.16.5-stable/flutter/packages/flutter/lib/src/widgets/framework.dart').context: context,^혹시나 해서 아래처럼 type casting해보았는데 컴파일은 되는데 실행시 바텀창이 보이지 않네요.context: context as BuildContext,
-
해결됨[플러터플로우]코딩 없이 한 달 만에 앱 만들기
안녕하세요 강의 잘 보았습니다. 질문이 있습니다.
결제해서 코드를 내려받은 후에 수정을 했을 경우에, 다시 해당 내용을 플러터플로우랑 호환되게 하는건 문제가 없을까요?플러터플로우는 플러터플로우대로 가고, 직접 코드 수정은 직접 하는 버전대로 가야할까요?android, ios 각각 스토어에 배포하는 2번째 강의는 언제쯤 오픈 계획이 있으신지 궁금합니다!강의 감사합니다!
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
에뮬레이터 실행시 에러
에뮬레이터 실행시 daemon not running. starting it now at tcp:5037라는 에러가 뜨며 에뮬레이터가 자동으로 꺼집니다 ,,ㅠㅠ
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터 무한 로딩 현상
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 플러터 빌드 실행 시 무한 로딩 현상이 있습니다. 플러터 초급 강의의 영상통화 파트입니다. 혹시 어느 부분이 문제일까요?코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결Flutter로 SNS 앱 만들기
게시글 작성
안녕하세요 게시글 등록중 위와같은 오류가 발생합니다.뭐가 문제일까요..
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
401 에러(bad response)
안녕하세요. FutureBuilder로 레스토랑 데이터를 받는 과정에서 401 에러가 발생해서 질문드립니다.커뮤니티에서도 저와 비슷한 에러를 가진 분의 질문글을 봤었는데 해결된 답변이 없어서 올렸습니다.에러 내용입니다DIo interceptor 부분에서 문제일 것 같다는 답변을 주셨는데 어디를 손봐야할지 모르겠습니다 ㅠ...제 레포지토리 주소도 같이 올리겠습니다https://github.com/k2h2j3/flutter_study
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
에뮬레이터 실행이 안 돼요
강의 보는대로 안드로이드 스튜디오 초기 설정 하고 에뮬레이터 실행 버튼을누르니 처음에 폰 화면 모양 뜨고 구글 로고만 살짝 떠지더니 에뮬레이터 창이 종료되고 이렇게 뜨네요 해결 방법 없을까요?
-
미해결Flutter 중급 3편 - 의존성 주입 가이드
Riverpod 프로바이더에 의존성 주입
안녕하세요.선생님 강의를 듣고 MVVM 패턴에 DI 를 적용 해 보다가 질문이 있어 글 남깁니다.저는 Riverpod Provider 를 적용 해 보려고 하는데요.선생님께서 사용 하시는 ChangeNotifierProvider 에 DI 를 go_router 에 설정 하셨는데요.만일 RiverPod Provider 를 사용 한다면 어떻게 적용 해야 할까요?ViewModel안에서 UseCase를 생성자에서 받고 있어서 결국 라우터 안에 주입을 해 줘야 할꺼 같은데RiverPod 프로바이더에서는 어떻게 해 줘야 할지 모르겠네요.ㅡ,.ㅡ가이드 좀 부탁드립니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
visual studio 에러
강의 보는대로 flutter doctor -v치고 확인하니 이렇게 에러가 뜨네요 에러 뜬 링크대로 비쥬얼스튜디오를 다운로드 받았는데도 계속 뜨네요 ㅠ
-
미해결[플러터플로우]코딩 없이 한 달 만에 앱 만들기
카카오톡 로그인은 어떻게 하면 가능하죠?
강의에서는 일단 카톡로그인은 다루지 않는다고 말씀해주셨긴한데 파이어베이스에서 기본으로 제공을 안해서 그런가 보네요.혹시 다른 방법으로 추가가 가능한가요?
-
미해결Flutter 중급 2편 - 실전 앱 개발 - 미국 주식 앱 (with 클린 아키텍처)
수업과 관련이 없지만 물을 곳이 없어...교수님께 여쭙니다..
dto랑 이미지 파일을 dio로 이용하여 post 하려는데 뭘해도 400, 415 등등 에러가 나옵니다 혹시 이유를 알 수 있을까요?... 수업내용이 아닌 질문 죄송합니다. Future<void> postUser(UserInfo userDto, XFile? imageFile) async { try { // Dio 인스턴스 생성 Dio dio = Dio(); // 멀티파트 요청 생성 FormData formData = FormData(); // Add userDto as a JSON part formData.fields.add(MapEntry('userDto', jsonEncode(userDto.toJson()))); // Add image file if (imageFile != null) { formData.files.add(MapEntry( 'image', await MultipartFile.fromFile(imageFile.path), )); } // Dio를 사용하여 POST 요청 보내기 Response response = await dio.post( 'http://43.200.217.158:8080/bookstore-0.0.1-SNAPSHOT/user', data: formData, options: Options( headers: { "Content-Type": "multipart/form-data", }, ), ); // 응답 확인 if (response.statusCode == 200) { print("User Data sent successfully"); } else { print('response.statusCode: ${response.statusCode}'); throw Exception("Failed to send data"); } } catch (e) { print("Failed to send post data: $e"); } } ------------------------------------------------------------------------------- 서버 코드 스프링 @PostMapping(value = "/user", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) public ResponseEntity<ApiResponse> save(@RequestPart UserDto userDto, @RequestPart MultipartFile image) { try { log.info("유저 생성 입장!!"); Long save = userService.save(userDto, image); return ResponseEntity.status(HttpStatus.OK).body(new ApiResponse("Created", "유저 생성 성공", save)); } catch (Exception e) { log.error("e={}", e); return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ApiResponse("NotFound", "유저 생성 실패", null)); } }