묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
window 환경설정
제가 윈도우로 플러터 환경설정중인데 지금 강의와 제 화면이 좀 달라서 문의드립니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
시작 세팅 질문
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. m1 맥북을 사용하고 있습니다. 영상에서 알려주는대로 위 카테고리를 클릭하면 여기서부터 영상과 다른 화면이 등장합니다 어떻게 하면 될지 모르겠어서 질문드립니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
실행에러 문의
안녕하세요 제가 실행하면 계속 이런 에러가떠서 어떻게 해결해야되는지 궁굼합니다!!
-
해결됨Flutter 앱 개발 실전
CartItem 추가시
extension ImmutableHelper<T> on Iterable<T> { List<T> toImmutable() => List.unmodifiable(this); }이걸 이용해서 전에 있던 코드를 응용해서 List<CartItem> get selectedCartItemList { return state.where((cartItem) => cartItem.isSelected).toImmutable(); }이렇게 이용해도 괜찮을까요 ???
-
미해결Flutter 고급 - 현업 수준의 아키텍처
텍스트 전체입력 후 검색 결과 조회
SearchInputField에서 onChanged를 onSubmitted로만 바꿔주면 키보드에서 return 버튼 눌렀을때 적용되더라구요^^
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
minsdk 를 19로 설정했을 때 오류
Launching lib/main.dart on sdk gphone64 x86 64 in debug mode...Running Gradle task 'assembleDebug'.../Users/yoonjoochu/Documents/workspace/android/app/src/debug/AndroidManifest.xml Error: uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [:webview_flutter_android] /Users/yoonjoochu/Documents/workspace/build/webview_flutter_android/intermediates/merged_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 19 Suggestion: use a compatible library with a minSdk of at most 19, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="io.flutter.plugins.webviewflutter" to force usage (may lead to runtime failures)FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:processDebugMainManifest'.> Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [:webview_flutter_android] /Users/yoonjoochu/Documents/workspace/build/webview_flutter_android/intermediates/merged_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 19 Suggestion: use a compatible library with a minSdk of at most 19, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="io.flutter.plugins.webviewflutter" to force usage (may lead to runtime failures)* 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┌─ Flutter Fix ─────────────────────────────────────────────────────────────────────────────────┐│ The plugin webview_flutter_android requires a higher Android SDK version. ││ Fix this issue by adding the following to the file ││ /Users/yoonjoochu/Documents/workspace/android/app/build.gradle: ││ android { ││ defaultConfig { ││ minSdkVersion 21 ││ } ││ } ││ ││ Following this change, your app will not be available to users running Android SDKs below 21. ││ Consider searching for a version of this plugin that supports these lower versions of the ││ Android SDK instead. ││ For more information, see: https://flutter.dev/to/review-gradle-config │└───────────────────────────────────────────────────────────────────────────────────────────────┘Error: Gradle task assembleDebug failed with exit code 1분명 https://pub.dev/packages/webview_flutter 여기선 minsdk를 19로 설정하라고 하는데 왜 오류가 날까요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
오류 ㅠ
Launching lib/main.dart on sdk gphone64 x86 64 in debug mode...Running Gradle task 'assembleDebug'.../Users/yoonjoochu/Documents/workspace/android/app/src/debug/AndroidManifest.xml Error: uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [:webview_flutter_android] /Users/yoonjoochu/Documents/workspace/build/webview_flutter_android/intermediates/merged_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 19 Suggestion: use a compatible library with a minSdk of at most 19, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="io.flutter.plugins.webviewflutter" to force usage (may lead to runtime failures)FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:processDebugMainManifest'.> Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [:webview_flutter_android] /Users/yoonjoochu/Documents/workspace/build/webview_flutter_android/intermediates/merged_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 19 Suggestion: use a compatible library with a minSdk of at most 19, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="io.flutter.plugins.webviewflutter" to force usage (may lead to runtime failures)* 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 8s┌─ Flutter Fix ─────────────────────────────────────────────────────────────────────────────────┐│ The plugin webview_flutter_android requires a higher Android SDK version. ││ Fix this issue by adding the following to the file ││ /Users/yoonjoochu/Documents/workspace/android/app/build.gradle: ││ android { ││ defaultConfig { ││ minSdkVersion 21 ││ } ││ } ││ ││ Following this change, your app will not be available to users running Android SDKs below 21. ││ Consider searching for a version of this plugin that supports these lower versions of the ││ Android SDK instead. ││ For more information, see: https://flutter.dev/to/review-gradle-config │└───────────────────────────────────────────────────────────────────────────────────────────────┘Error: Gradle task assembleDebug failed with exit code 1pixel 7 pro api 35를 실행하고 프로젝트를 실행하려고 하는데 위와 같은 오류가 나요. 현재 제 맥북엔 자바가 깔려있지 않은데 자바를 깔아야할까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
동영상 클릭 후 튕기는 현상
동영상을 선택하고, 다음 화면으로 넘어가는데 잠시 검은 색 화면(Homescreen의 backgroundcolor)이 나오다가 다음과 같은 오류가 나오면서 에뮬레이터가 꺼집니다.FATAL in unbox_VkPipeline, err code: 4300000000: Unbox 0000000000000000 failed, not found. initializeController() async { videoPlayerController = VideoPlayerController.file( File( widget.video.path, ), ); await videoPlayerController.initialize(); setState(() {}); } @override Widget build(BuildContext context) { return Center( child: AspectRatio( aspectRatio: videoPlayerController.value.aspectRatio, child: VideoPlayer(videoPlayerController), ), ); } } 해당 문제인거 같아서, 수정해봤는데 여전히 안되네요 ㅠㅠandroid/app/src/main/AndroidManifest.xml <meta-data android:name="flutter.embedding.android.enable-vulkan" android:value="false" /> 플러터 버전은 3.27.4로 사용했습니다. video_player: ^2.8.2 image_picker: ^1.0.7 코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결Flutter 고급 - 현업 수준의 아키텍처
라이브 템플릿 링크 어디서 확인하나요?
1:44에 링크로 공유된다고 하셨는데 강의노트에 따로 올라와있는게 없어서요.. 어디서 확인하면 되나요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
윈도우에서 아이폰 화면 보기
선생님 혹시 윈도우 환경에서는 디바이스 매니저 실행하고상단 select device에서는 웹,모바일,데스크톱 이렇게 밖에 없는데 윈도우에서는 아이폰 화면 못보는건가요?선생님처럼 ios 환경에서만 안드로이드 화면을 볼수있는건지요api 34 사용중입니다
-
미해결[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
리스트뷰에 subcollection은 어떻게 연결하나요?
users 밑에 subcollection을 만들었는데리스트뷰에 subcollection을 연결하려면 어떻게 하나요?아무리 찾아봐도 첫번째 collection 밖에 못찾겠습니다.
-
해결됨[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!
iOS에 deploy 시 초대받은 이의 화면에 TestFlight 초대코드
강의대로 iOS에 deploy를 했습니다. 초대받은 이가 첨부처럼 [코드 교환] 제목으로 TestFlight 초대 코드 입력 필드가 보인다고 합니다. 초대코드를 어떻게 확인해야 하는지요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
해당 강의 소스
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 해당 강의 소스를 받아 볼 수 있나요? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
어느 날 부턴가 이 로그 메시지들이 나오는데, 없애는 방법이 있을까요?
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Calendar 앱 프로젝트 StreamBuilder 질문
마무리 수업에 리스트 개수 화면에 나타낼 때, StreamBuilder를 하나 더 사용하는데 (ListView에도 사용 중)하나로 합치는게 더 좋을까요 아니면 따로 작성하는게 좋은가요?중복의 관점에서 생각해 본 것입니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
auth 관련 에러
7강 마지막 들으면서 적용하는데분명 에뮬레이터도 정상동작인데 dio.dart의 onError함수에서 계속 401 auth에러가 발생한다고 표시가 돼서 콘솔로 디버깅을 했습니다. 그런데 마지막 resending하는 부분까지 정상 도달은 하지만 onResponse의 콘솔은 뜨지않고 재시작해서 accessToken을 다시 발급 받았음에도 계속 onError에서 401auth 에러가 발생합니다. 어떤 부분이 문제일까요[요약]토큰만료 =>홈 스크린에 데이터 사라짐 => 재시작 => 홈 스크린에 데이터 불러와짐 => 문제발생 데이터는 불러와지는데 디버그 콘솔에 REQ랑 ERROR표시남(401 AUTH 관련 에러) => 재시작 => 동일 에러 무한[에러 내용]I/flutter ( 4232): [REQ] [GET] http://10.0.2.2:3000/restaurant/I/flutter ( 4232): [ERROR] [GET] http://10.0.2.2:3000/restaurant/I/flutter ( 4232): [ERROR] [MESSAGE] This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.I/flutter ( 4232): The status code of 401 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"I/flutter ( 4232): Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/StatusI/flutter ( 4232): In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.dio.dartimport 'package:dio/dio.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:section2/common/const/data.dart'; class CustomInterceptor extends Interceptor { final FlutterSecureStorage storage; CustomInterceptor({ required this.storage, }); /// 1) 요청 보낼 때 /// 요청이 보내질때마다 /// 만약에 요청의 Headers에 accessToken이 true 이면 /// 실제 토큰을 가져와서 기존 accessToken값을 삭제하고 { /// authorization : Beader $토큰} 값을 추가 @override void onRequest( RequestOptions options, RequestInterceptorHandler handler) async { print('[REQ] [${options.method}] ${options.uri}'); if (options.headers['accessToken'] == 'true') { options.headers.remove('accessToken'); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); options.headers.addAll( {'authorization': 'Bearer $accessToken'}, ); } if (options.headers['refreshToken'] == 'true') { options.headers.remove('refreshToken'); final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); options.headers.addAll( {'authorization': 'Bearer $refreshToken'}, ); } return super.onRequest(options, handler); } /// 2) 응답 받을 때 @override void onResponse(Response response, ResponseInterceptorHandler handler) { print( '[RES] [${response.requestOptions.method}] ${response.requestOptions.uri}'); super.onResponse(response, handler); } /// 3) 에러 났을 때 @override void onError(DioException err, ErrorInterceptorHandler handler) async { // 401에러 났을 때 (status code) // 토큰을 재발급 받는 시도를하고 토큰이 재발급되면 // 다시 새로운 토큰을 요청한다. print('[ERROR] [${err.requestOptions.method}] ${err.requestOptions.uri}'); print('[ERROR] [MESSAGE] ${err.message}'); // refreshToken이 없는 경우 final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); if (refreshToken == null) { // 에러 던질때는 handler.reject()사용 return handler.reject(err); } final isStatus401 = err.response?.statusCode == 401; final isPathRefresh = err.requestOptions.path == '/auth/token'; if (isStatus401 && !isPathRefresh) { final dio = Dio(); try { final res = await dio.post( 'http://$ip/auth/token', options: Options( headers: { 'authorization': 'Bearer $refreshToken', }, ), ); final accessToken = res.data['accessToken']; final options = err.requestOptions; //기존 토큰 변경 options.headers.addAll({ 'authorization': 'Bearer $accessToken', }); await storage.write(key: ACCESS_TOKEN_KEY, value: accessToken); // 에러난 요청options에 토큰값을 신규로 변경하여 재전송 final resending = await dio.fetch(options); return handler.resolve(resending); } on DioException catch (e) { return handler.reject(e); } } return handler.reject(err); } }
-
미해결Flutter 고급 - 현업 수준의 아키텍처
ingredient view model의 _loadRecipe
ingredient view model 의 _loadRecipe 함수는 생성자에서실행이 안되는 이유에 대해서 궁금합니다.동일하게 _getDishesByCategoryUseCase.execute를 사용하는 _fetchDishesByCategory 는home view model에서 생성자에서 쓰이는데 어떤 차이가 있나요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터 앱에서 dll이나 exe 파일을 사용해야 할 경우 어떤 경로에 위치시켜야 할까요?
이미지 같은 정적 리소스가 아닌 c로 빌드된 exe 파일이나 dll 같은 동적 라이브러리를 플러터 앱에서 사용해야할 경우에 이 파일들은 어디에 위치시켜야 할까요? assets 폴더 밑에 두어야 할까요 아니면 windows 밑에 두어야 할까요?플러터로 현업을 경험해보진 않아서 현업에선 어떻게 사용하는지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
강의 데이터베이스.,,,
이 강의 mySql이나 데이터베이스를 이용 하지는 않는건가요 ?. 로컬 데이터베이스만 사용하나요 ? [코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨Flutter 앱 개발 실전
const 커스텀클래스
안녕하세요 강사님 ! 수업 잘듣고 있습니다. 제 질문은 다트에서 커스텀클래스 안에 모든 속성에 final 키워드를 붙이면 생성자 앞에 const 키워드를 붙여서 const 커스텀 클래스를 만들수 있었잖아요~ 이제 여기서 궁금한점은 ! 모든 속성중에 리스트가 있다면 final 키워드를 붙여도 그 리스트는 add 같은 동작을 할수 있는데 가변객체가 포함된 커스텀 클래스에 const 키워드 붙일 수있나 하는 것입니다 !