묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[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)); } }
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
fetchData() 실행 시 간헐적으로 나타나는 에러
response.data['response']['body']['items'].map((e)=>StatModel.fromJson(json: e)) 위의 코드를 사용하여 가져온 미세먼지 데이터를 StatModel의 인스턴스로 만들 때, 아래와 같은 에러가 간헐적으로 발생합니다. [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'String' is not a subtype of type 'int' of 'index'hot Restart를 계속 누르다 보면 해결되다가도, 강의를 진행하다 다시 hot Restart를 눌러야 하는 상황이 발생하면 이 에러가 반복적으로 발생합니다. 해결방법을 알고싶습니다.
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
factory를 Card에서 안 만들고 이런 방식은 어떤가요 ??
RestaurantCard에서 factory를 생성하지 않고 parse된 item을 RestaurantCard 타입으로 넣어주는건 안 좋은 방법일까요 ??
-
해결됨Flutter 중급 1편 - 클린 아키텍처
뷰/뷰모델 작성 질문
강의를 수강하며 클린 아키텍쳐라는 개념을 처음 사용하다보니 미숙한 부분이 많다보니 질문이 많아지는 것 같습니다.^^; 페이지간 이동이 아닌, 하나의 페이지안에서 일부 위젯들만 변경되거나 노출/숨김되는 경우, 그러나 기능적으로는 분명한 차이가 있을 때, 뷰/뷰모델 작성은 어떻게 나누어서 하면 될까요?간단한 예를 들어보면 같은 배경에서 중앙에 배치 되는 위젯들만 PageScroll 또는 숨김/노출되는 상황입니다.첫 진입 -> 중앙에 시작 버튼 노출시작버튼 클릭 시 -> 시작 버튼 숨김/ 중앙에 비디오 선택창 노출비디오 선택 시 -> 비디오 선택창 숨김/비디오 플레이어 노출비디오 종료 시 -> 비디오 플레이오 숨김/ 다시보기 버튼 노출위젯의 배치로만 보았을 때는 1개의 view에 여러개의 component가 있는 형태이지만,기능적으로 구분하면 시작/비디오선택/비디오플레이/다시하기 이런식으로 4개의 view로도 구분할 수 있는 것 같아보입니다.강사님께서는 이럴 경우 어떤식으로 코드를 작성하시는지 궁금합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
ScrollController 동작이 안되서 질문드립니다.
"완성된 Pagination 로직 실행해보기" 강의에서 Scroll 위치를 찾기 위해서 반영한 ScrollController에서 Listener를 등록해도 스크롤 할때 동작을 하지 않아서 문의드립니다. - 리스너를 등록해도 스크롤 시 print('run') 이 동작을 안합니다..
-
해결됨Flutter 앱 개발 실전
CartService 강의에서 질문이요
안녕하세요. CartService 강의에서 CartService의 cartItemList를 굳이 const 로 선언하는 이유가 있는지 궁금합니다.
-
미해결Flutter로 SNS 앱 만들기
섹션 7 게시글 정보 가져오기 부분 오류
강의 영상처럼 logger를 했을때 Instance of FeedModel이 안찍힙니다..혹시 몰라서 진행해 봤는데 feed_screen.dart에서 feedList[0]부분에서 오류가 납니다.Firestore에 feed 있는 상태, 없는 상태 둘다 해봤는데도 log가 안찍힙니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
android { compileSdkVersion 34
Launching lib\main.dart on sdk gphone64 x86 64 in debug mode...Running Gradle task 'assembleDebug'...Warning: The plugin video_player_android requires Android SDK version 34.For more information about build configuration, see https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.One or more plugins require a higher Android SDK version.Fix this issue by adding the following to C:\Users\kimseongmin\Desktop\vid_player\android\app\build.gradle:android { compileSdkVersion 34 ...} 위 에러로 인해 app\build.gradle에 상기 내용을 적었는데도 불구하고 에러가 나는 이유가 무엇일까요?