묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] 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 키워드 붙일 수있나 하는 것입니다 !
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Dart 강의 질문
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! TS강의 완료 후 Flutter 강의 시작하려 합니다. Dart 공부한지 2년정도가 되어 다시 공부하려는데무료 Dart 강의가 있고 Flutter 초급 강의에도 Dart 이론 강의들이 있더라구요두 강의가 동일한 강의인지 궁금합니다 :)
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
<군대에서 이 강의를 활용하는 방법>
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 안녕하세요. 군대 사지방에서 인공지능과 앱 개발을 공부하는 군인 입니다.코드팩토리님의 강의를 더 많은(특히나 군인) 사람들이 어려움 없게 공부할 수 있도록 도와드리고자 이렇게 작성해봅니다.flutter 개발 환경에 대해 사지방에서 할 수 있는 것을 공유하고자 합니다.여기다가 환경설정을 자세히 쓸 수는 없으니(사실 필요하지도 않습니다) 이런 것들을 활용하면 된다고 말하고 싶어서 간단하게 작성해 봅니다.project idx를 사용해 flutter 워크스페이스를 만들면 됩니다. project idx를 이용하면 google id만 있다면 이용하실 수 있습니다. vscode 환경을 제공합니다. 다만, 현재 android 에뮬레이터는 잘 작동이 안되서 web view로 보셔야 합니다.(이걸로도 충분합니다) 각종 외부 패키지 사용은 호환이 안되는 경우가 있습니다만, pub.dev에 web으로 호환되는 것을 따로 설정하시면 됩니다.예를 들어, google map을 이용하고자 할 때 web/index.html에 아래와 같은 코드를 추가하시면 잘 작동됩니다. <script src="https://maps.googleapis.com/maps/api/js?key=Your API KEY"></script>또, 비디오 영상과 관련해서는 url로 받으시면 됩니다.관련된 정보는 stackoverflow나 이외의 블로그에 굉장히 많은 정보가 있으니 찾아보시면 됩니다.실제로 에뮬레이터 대신 web에서 작동하는 방식은 아래 사진처럼 작동합니다.(android는 버그가 좀 있는 것 같습니다.) 제가 이렇게 말씀드리는 이유는 다음과 같습니다.코드팩토리님의 강의가 그 정도로 들을만한 가치가 있다는 점.군인도 앱 개발을 충분히 공부할 수 있다는 점.그리고 환경설정이 하나도 어렵지 않다는 점.(저도 이 강의가 첫 앱 개발입니다. 인공지능 공부를 한 경험 때문에 더 쉬웠을 수도 있습니다.)코드팩토리님의 질문&답변에 이런 글을 달아 죄송합니다.여러 인사이트 댓글을 보면 "군인이 사지방에서 개발 공부하는 법"같은 것이 많이 나와있어서 이렇게 남겨봅니다.혹시라도 삭제를 원하시면 바로 삭제하겠습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
앱 실행시 에러 발생 (맥북)
안녕하세요.맥북을 사용하고 있는 교육생입니다.android/gradle.properties에 org.gradle.java.home=/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home이렇게 작성하고 실행하면* What went wrong:Execution failed for task ':agora_uikit:compileDebugKotlin'.> 'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain해당 에러가 발생합니다.그래서 자바 버전을 1.8로 변경하고 gradle 버전도 낮춰서 해봤지만 실행이 되지 않습니다... 어떻게 해야할까요
-
해결됨Flutter 앱 개발 기초
Dart 문법 실습문제 풀고 있는데요
두 가지 여쭤볼 게 있습니다.(우선 저는 비전공자이고 대학교때 기초교양 과목으로 c언어,전산,아두이노 잠깐 해봤습니다.) 13 문제 중 초반 1~3문제처럼 간단한 건 풀었는데후반 10문제를 거의 다 제대로 풀 지를 못하고 결국 해답을 봤는데정상인지 아닌지 궁금해서 여쭤봅니다.만약 정상이 아니라면 공부 방법을 바꿔야 하나 싶어서요. 어떤 점에서 어려움을 느꼇냐면예를 들어 int totalPrice(List<Map<String, dynamic>> cart) { // 여기에 작성해 주세요. int result = 0; for (Map<String, dynamic> item in cart) { int price = item["price"] as int; // dynamic -> int로 변환 int count = item["count"] as int; // dynamic -> int로 변환 result += price * count; } return result;} 여기서 뜬금없이 선언하지도 않은 item이라는 변수를 가지고 오는 것이나,타입을 그자리에서 변환해주는 as , 그리고 cart라는 변수에서 item을 가져 오는 것,이 item의 타입은 자동으로 in cart 안의 타입에 종속된다는 것나름 5분강의 볼떄마다 30~50분을 공부해야 할 정도로 세부적으로 찾아보고 gpt도 활용해가면서 모르는 건 체크하면서 해봤습니다.2. 그래서 하나 더 여쭤보겠습니다.실습 문제의 의도가 궁금합니다.단지 사고력을 기르는 의미에서 생각을 한번 해보게끔 하고 해설을 보고 이해하라는 건지기본적인 틀만 알려주되 세세한 것들은 직접 찾아보고 공부해서 이 정도는 풀 수 있어야 한다.라는 의미인지 알려주세요. 진짜 진지하게 공부 하고싶고 개선해보고 싶어서 이렇게 질문 드립니다.
-
미해결플러터와 장고로 1시간만에 퀴즈 앱/서버 만들기 [무작정 풀스택]
emulator 실행오류
이렇게 빨간색으로 음영되어 있고..emulator를 실행하는데 Error fetching your Android emulators! Make sure your path is correct. Try running this command: "~\Library\Android\sdk\emulator\emulator" -list-avds 오류문구가 뜨면서 실행이 안되요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Visual studio 설치했는데도 오류가 뜹니다.
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이렇게 뜨는데 어떻게 해야할까요~?