묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Flutter 앱 개발 기초
앱을 다운로드한 기기 OS에 맞는 스타일로 보여주는 방법
안녕하세요!만약 하나의 앱을 안드로이드 기기에서 다운받았을 때는 안드로이드 스타일로 보여주고 iOS 기기에서 다운받았을 때는 iOS 스타일로 보여주고 싶은 경우 모든 UI를 Material Widget과 Cupertino Widget 양벌로 구현해야 하나요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
질문이 있습니다.
선생님의 flutter-lv2-server-main 파일은,만약 앱하나를 직접 만드는 개발자라면 이 파일도 직접 만들 줄 알아야 할까요?만든다면 어떻게 만들면 될까요?이것에 관한 수업은 없을까요?만약 이것에 관한 수업을 듣는다면, 어떤 영상을 찾아서 봐야할까요?직접 앱을 만들어서 공식 론칭을 하려고 할때, 이런 서버파일도 필요할텐데, 현재 이 수업에서는 그냥 선생님의 파일을 다운받아 스웨거 화면으로 넘어가고 있습니다. 이런 모든 과정에 대해 배우고 싶습니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
맥북 OS 업그레이드 이후 기존 진행하던 프로젝트 빌드가 되지 않음
xcode도 업데이트가 됐습니다시뮬레이터도 재설치 하고 하더라고요그런데 device가 iphone 15 만 나오와서 일단 그거 선택하고 빌드를 했는데 아래와 같은 에러가 뜨네요Uncategorized (Xcode): Command CodeSign failed with a nonzero exit codeCould not build the application for the simulator.Error launching application on iPhone 15. flutter cleanflutter pub get도 해보고 다시 실행해도 마찬가지 입니다
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
update를 만들던 도중 +버튼이 먹통이 되었습니다
강의를 보면서 따라가던 도중 영상12:00에서 print를 하던도중에 알게되었는데 +버튼을 눌러도 schedule_bottom_sheet가 올라오지 않았습니다. 혹시 그 이후 강의를 따라가다보면 오류가 해결될까 싶어서 이어서 더 해봤지만 update는 문제없이 되지만 여전히 +버튼이 먹통이라서 도저히 어디서 생긴 문제인지 모르겠습니다. 혹시나 싶어서 github의 코드도 봤지만 오타도 아닌 것 같아서 더욱 어디가 문제인지 모르겠습니다.
-
미해결Flutter 초입문 왕초보편
이런 에러가 뜨는데 어떻게 해결할 수 있을까요? (unable to find valid certification path to requested target)
유튜브를 찾아봐도 영어 설명에, Java 에 대한 기본 지식이 어느 정도 있어야 뭔가를 할 수 있을 것 같습니다. 회사 PC라 뭔가 회사 보안프로그램 때문인지.... 뭔지 알수가 없네요. 집 PC 에서는 뭐가 'Terminated'라 되어 안되고, Android studio 에러 때문에 Flutter 라는 놈을 과연 배워야 할지 초기 부터 절망적이네요ㅠㅠ Launching lib\main.dart on AOSP on IA Emulator in debug mode...Running Gradle task 'assembleDebug'...Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:371)at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:314)at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:309)at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654)at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201)at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1510)at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1425)at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580)at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187)at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)at org.gradle.wrapper.Download.downloadInternal(Download.java:58)at org.gradle.wrapper.Download.download(Download.java:44)at org.gradle.wrapper.Install$1.call(Install.java:61)at org.gradle.wrapper.Install$1.call(Install.java:48)at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)at org.gradle.wrapper.Install.createDist(Install.java:48)at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)at java.base/sun.security.validator.Validator.validate(Validator.java:264)at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)... 24 moreCaused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)... 29 moreException: Gradle task assembleDebug failed with exit code 1
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
비동기 프로그래밍 강의19분대 질문
Addnumbers 함수의 타입이 void이든 future<void>이든 둘 다 논리적인 오류없이 가능한건가요? 그냥 둘의 차이점은 addnumbers함수를 main함수 안에서 await할 수 있고, 없고 밖에 없는건가요?
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
RE)색상정보 DB에 넣기 과정중에서 id문제가 생겼습니다
방금 질문에서 답해주신대로 에뮬레이터에서 앱을 uninstall 을 하고서 다시 시도해봤지만 여전히 같은 문제가 발생을 하였습니다.final colors = await database.getCategoryColors(); if (colors.isEmpty) { for (String hexCode in DEFAULT_COLORS) { await database.createCategoryColor( CategoryColorsCompanion( hexCode: Value(hexCode), ), ); } } print(await database.getCategoryColors());여기까지 하였는데 여전히 같은 오류가 생깁니다.오류내용입니다.InvalidDataException (InvalidDataException: Sorry, CategoryColorsCompanion(id: Value.absent(), hexCode: Value(F44336), rowid: Value.absent()) cannot be used for that because: • id: This value was required, but isn't present )
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
색상정보 DB에 넣기 과정중에서 id문제가 생겼습니다
영상을 보면서 따라가던 중에 final colors = await database.getCategoryColors(); if (colors.isEmpty) { for (String hexCode in DEFAULT_COLORS) { await database.createCategoryColor( CategoryColorsCompanion( hexCode: Value(hexCode), ), ); } } print(await database.getCategoryColors());이 부분을 입력하고서 실행을 해보니까InvalidDataException 오류가 발생했습니다.id값은 필수이지만 존재하지 않는다고 나옵니다.category_color.dart 와 schedule.dart 파일 모두 integer().autoIncrement()(); 로 해놨습니다.이런 경우에는 어떻게 해야할까요?오류 설명 내용입니다InvalidDataException (InvalidDataException: Sorry, CategoryColorsCompanion(id: Value.absent(), hexCode: Value(F44336), rowid: Value.absent()) cannot be used for that because: • id: This value was required, but isn't present )
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
database 삭제 하는법
CategoryColors에 hexcode 넣다가 hexcode 사이에 반점을 안찍어서 이상하게 데이터가 생성되었어요.데이터를 다시 삭제하고 시작하려면 어떻게 해야 할까요?
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
구글 로그인 관련 질문합니다.
로그아웃하고 난 뒤 다시 구글 계정 로그인 버튼을 누르면 전에 로그인 했던 계정으로 바로 넘어가는데구글 다른 계정으로 로그인 할 수 있는 방법이 있을까요?
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
iOS 에서 영상 고르면 압축을 하는데 바로 재생할 방법이 없나요 ?
iOS 에서 직접 개발할때는, 영상 고르면 바로 플레이 가능했는데. 해당 프로젝트에서 영상을 고르면 한동안 압축을 하고 있어서요. 영상이 길어질수록 오래 걸리던데, 추가로 화질도 떨어집니다. 상용앱에선 사용하기 힘들어 보여서요. 안드로이드에서 영상선택하면, 압축과정이 없는데iOS 에서 혹시 해당 이슈 해결할 방법이 있을까요 ? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)
http 쓸때 버전 변경에따른 이슈
버전 올라가면서 http 쓸때 var 로 string 값 박으면 안되는것 같은데 이런식으로 하면 되는것같네요Uri url = Uri.https("gist.githubusercontent.com","/junsuk5/bb7485d5f70974deee920b8f0cd1e2f0/raw/063f64d9b343120c2cb01a6555cf9b38761b1d94"); http.Response response = await http.get(url);
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
실습8 - PageController 사용해보기
실습8 - PageController 사용해보기에서 질문 있습니다. // 이미지 자동으로 다음페이지로 이동 controller.animateToPage( nextPage, duration: const Duration(microseconds: 400), curve: Curves.linear, );위 부분에서 Curves.linear로 했는데 애니메이션이 적용이안됩니다.화면이 드래그되는 애니메이션으로 강의처럼 부드럽게 넘어가는것이아니라, 다음사진으로 뚝뚝끊겨 이동합니다...! 제가잘못한 부분이 어딘지,왜이런건지 혹시 알려주실수있을까요?감사합니다. 실습 깃코드https://github.com/hyeonjeong-ko/flutter-class/blob/main/lib/screen/home_screen.dart
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Dio onRequest Interceptor 작업하기 질문입니다
Dio onRequest Interceptor 작업하기에서다른 에러는 없는데디테일 화면이 안나오고 이런에러가 뜨네요.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Error: ClientException: XMLHttpRequest error.
플러터 앱에서는 발행하지는 않구요 웹에서 발생합니다.Error: ClientException: XMLHttpRequest error. 검색해보니 우회 하는 방법이 있지만 올바른 방법은 아닌거 같구요 https://nomadcoders.co/community/thread/7643 최종해결방법은 api서버를 https로 구성해야 하는것일까요?그렇게하면 한PC에서는 사용은 할수 있는건지 궁금합니다.
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
즐겨찾기 기능 구현 부분 오류 질문합니다.
즐겨찾기를 누르면 이러한 오류가 뜨는데 어디가 잘못된 걸까요?
-
미해결Flutter 초입문 왕초보편
30강 이미지 삽입 문의드립니다.
이미지를 삽입하는 코드를 작성 중인데 계속해서 아래와 같은 오류가 발생합니다. 여러 이미지주소를 넣어봐도 동일하게 나오네요..확인 부탁드립니다.!
-
미해결Flutter 초입문 왕초보편
App Bar 질문 있습니다.!
현재 26강까지 진행했고, 코드를 잘 따라서 만들어보고 있는데요.'앱 바'부분만 강의에 있는 것 처럼 바 영역이 설정되지 않고 텍스트만 들어가있습니다. 혹시 어떤 부분을 수정을 해야할지요?
-
미해결Flutter 초입문 왕초보편
12강/13강 에뮬레이터에서 수업화면의 "Flutter Demo Home Page" 띄우는법 문의
12, 13강 수업화면에서 수업 내 에뮬레이터의 기본 시작이 상단 푸른색으로 "Flutter Demo Home Page"라고 보이는 화면인데, 이화면을 어떻게 띄우는지 모르겠습니다. 수강생들은 수업절차대로 했더니 안드로이드 기본화면입니다. 13강의 코드를 삭제해도 반영이 안되네요
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
상위/하위 redirect 후 반응
안녕하세요 선생님.다름이 아니라 강의를 듣다가 강의 마지막쯤에GoRoute의 상위에서 redirect를 작성할 때와, routes안에 GoRoute(이하 하위)에서 redirect 할 때의 차이점을 설명해주셨는데요.그래도 눈으로 확인하고 싶어서 print()를 통해 디버깅하고자 아래와 같은 코드로 작성한 상태입니다.코드 -> 질문 순서로 하겠습니다.// 불필요한 코드는 임의로 삭제하겠습니다. import ... bool authState = false; final router = GoRouter( redirect: (context, state) { print(state.location); print('상위 redirect'); ... }, routes: [ ... GoRoute( path: 'login2', builder: (_, state) => LoginScreen(), routes: [ GoRoute( path: 'private', builder: (_, state) => PrivateScreen(), redirect: (context, state) { print(state.location); print('하위 redirect'); if(!authState) { return '/login2'; } return null; }, ), ], ) ], ), ], );작성한 코드는 이러합니다.상위에서 print문을 2번 사용해서 현재 위치와 상위redirect임을 밝힙니다.하위에서 마찬가지로 print문을 2번 사용해서 현재 위치와 하위redirect임을 밝힙니다. 여기서부터 궁금한게 여러가지 생겼습니다. login에 실패하여 /private으로 가지 못하는 상황입니다. 제가 생각했던 출력문은상위에서는I/flutter (20444): /login/private I/flutter (20444): 상위 redirect 이렇게 출력될 것이다 생각했는데 아래와 같이 나왔습니다.I/flutter (20444): /login/private I/flutter (20444): 상위 redirect I/flutter (20444): /login I/flutter (20444): 상위 redirectQ1. 이렇게 나오는 이유가 authState값을 모르는 채로 /private에 진입부터 했다가 (=출력문 1번), false값인걸 확인하고 /login으로 다시 돌아와서 출력문 3번이 나온것이 맞는지 궁금합니다.또한 하위 redirect에서 질문이 있습니다.먼저한 질문(Q1)이 맞다면 , 예상했던 출력값이 있습니다.예상출력값)I/flutter (20444): /login2/private I/flutter (20444): 하위 redirect I/flutter (20444): /login2 I/flutter (20444): 하위 redirect 그러나 실제로 출력결과는 아래와 같았습니다. I/flutter (20444): /login2/private I/flutter (20444): 상위 redirect I/flutter (20444): /login2/private I/flutter (20444): 하위 redirect I/flutter (20444): /login2 I/flutter (20444): 상위 redirect 상위는 /private에 갔다가 /login으로 돌아오는게 출력된 반면, 하위는 /private에 갔다가 돌아오는 출력문이 찍히지를 않았습니다. Q2. 그렇다면 왜 이렇게 출력되는지 플로우나 실행흐름 같은게 궁금합니다. 또한 상위와 하위 redirect가 무조건적으로 동시에 실행하게 된다면, 상위의 redirect는 하위의 redirect로 덮어쓰여져서 하위만을 실행하거나 하위 우선적인 로직이 수행하는지 궁금합니다. 감사합니다 X)