묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
초보 강의 개정 계획
초보 강의 개정 중이신 걸로 알고있는데 혹시 언제쯤 개정이 마무리될 예정인지 알 수 있을까요?
-
해결됨Flutter 앱 개발 기초
debug문제 질문입니다.
안녕하세요 선생님 ios시뮬 선택하고 run debug을 했는데Error (Xcode): Target debug_unpack_ios failed: Exception: Failed to codesign /Users/hoseong/Desktop/flutter/hello_flutter/build/ios/Debug-iphonesimulator/Flutter.framework/Flutter with identity -. 이런 에러가 나오는데 어떻게 해결해야할까요?
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
dependency 설치 관련 질문입니다.
현재 강의를 들으며 여러 dependency를 설치하면서 작업을 하고있습니다만, 강의에서 보여지는 버전으로 설치하는게 좋을지 현재 최신버전을 설치하는게 좋을지 궁금합니다.
-
미해결[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
질문이 있습니다.
플러터플로우로 빠르게 프론트 부분을 완성시키고 세세한 validator나 인증 절차등은 flutter 코드로 구현하려고 하는데요. 이를 flutterflow의 Git repo에 push하고 다른 branch에 pull하여 플러터로 수정하는 식으로 앱을 개발해보고 있습니다.이때 Git repo의 관리 방법이나(rebase, merge, ff only 등) 퍼블리싱은 flutter로 하는 방법밖에 없는지 질문드리고 싶습니다.
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
플러터 글자색, 카드색 질문
어느날 플러터를 오랜만에 켰더니 ElevatedButton 안에 있는 글자색과 Card의 배경색이 조금 푸른색으로 변경이 되어있습니다 당황해서 찾아보니 해결법도 잘 나오지 않고 이런 경우가 있었는지 궁금하네요
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
firebase option 오류
- 안녕하세요. firebase를 사용하는 12강을 보고 따라하던 도중에 이런 에러가 발생했습니다. 재설치를 해도 init을 해서 초기화를 해도 해결이 되지 않네요. 설치후 바로 들어가는 도입부분이라 더 아리쏭합니다.
-
해결됨Flutter 앱 개발 기초
2회차 스타벅스 실습 이미지 문의(해결)
이미지가 깨지는 데 한번 확인 부탁 드리겠습니다 ㅠ+. 잘 나오네요. 감사합니다. 강의 잘 듣고 있습니다. 너무 좋아요.
-
해결됨Flutter로 SNS 앱 만들기
회원가입화면
에뮬레이터를 실행하고 회원가입화면으로 보고 싶은데, main화면이 실행됩니다
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
어떻게 대처 해야 하나요?
에러가 발생되었는데 뭐가 문제 인가요.lib/screen/home_screen.dart:66:20: Error: The argument type 'Context' can't be assigned to the parameter type 'BuildContext'. - 'Context' is from 'package:path/src/context.dart' ('/C:/Users/vibas/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.8.3/lib/src/context.dart').- 'BuildContext' is from 'package:flutter/src/widgets/framework.dart' ('/C:/src/flutter/packages/flutter/lib/src/widgets/framework.dart'). context: context, ^
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
섹션6 프로젝트 목표 강의 오류
섹션6 첫 강의 '프로젝트 목표' 강의 앞부분이 잘린 것 같습니다..
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
restaurant_repository.dart 파일 에러 원인이 뭘까요?
안녕하세요. 플러터 초보 개발자 입니다.강의 내용 잘 따라오다가 아래 그림에서 에러가 발생합니다. lib/restaurant/repository/restaurant_repository.dart:33:33: Error: The parameter 'paginationParams' of the method 'RestaurantRepository.paginate' has type 'PaginationParams', which does not match the corresponding type, 'PaginationParams?', in the overridden method, 'IBasePaginationRepository.paginate'. - 'PaginationParams' is from 'package:rest/common/model/pagination_params.dart' ('lib/common/model/pagination_params.dart').Change to a supertype of 'PaginationParams?', or, for a covariant parameter, a subtype. @Queries() PaginationParams paginationParams = const PaginationParams(), ^lib/common/repository/base_pagination_repository.dart:7:31: Context: This is the overridden method ('paginate'). Future<CursorPagination<T>> paginate({ ^Target kernel_snapshot failed: Exception
-
해결됨Flutter 앱 개발 기초
안드로이드 오류
안녕하세요 강사님!에뮬레이터도 잘 돌아가고 플러터가 문제 없이 작동되지만 자꾸 안드로이드 옆에 오류가 뜨길래 구글링을 해봤더니https://stackoverflow.com/questions/73079142/supplied-action-failed-with-an-exception-in-flutter여기서 이걸 disable 시키라 해서 시켰더니진짜로 에러가 없어지긴 했는데대신 에러가 밑에 이게 뜨는데그냥 이상태로 해도 상관이 없을까요?아니면 나중에 빌드하는데 문제가 생길까요..?ㅠㅠ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
웹뷰 띄우기에서 실행해도 빈화면만 나와요
안녕하세요.현재 웹뷰띄우기를 듣는중인데웹뷰 페키지 설치부터 다 똑같이 따라하는 중입니다.빌드는 잘 되는데 시뮬레이터에는 빈화면만 뜨네요..홈 아이콘까지 추가는 했는데 웹뷰는 여전히 안떠요..혹시 몰라 다른 url로도 해봤는데 여전히 안뜨네요
-
해결됨Flutter 앱 개발 기초
에뮬레이터 무한로딩
안녕하세요 강사님! 첫번째 부팅을 시작하고 있는데요!이것만 vscode 터미널창에 계속나타나고에뮬레이터는 무한로딩되는데첫번쨰 부팅이라 시간이 오래걸리는 건가요?몇시간 기다려봐야 하나요?
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Http Status Error [401]에 관하여 - go_router : ^7.0.1 사용
go_router 7.0.1 버전을 사용하여 강의를 진행 중에 있습니다.RefreshToken과 AccessToken은 Storage에서 지워진 상태입니다.해당 상태에서 두개의 토큰이 null로 확인되면 dio.dart에서 dioError를 호출하고 reject하는 부분까지는 확인을 했습니다. 그런데 여기서 SplashScreen으로 이동을 하지 않고 Home화면에서 데이터를 가져오지못했다는 메시지만 띄웁니다.로그 화면에도 보면 프로그램 실행 시 /restaurant을 호출하게 되는데 제가 코드에서 처리를 잘 못한건지 잘 모르겠습니다.제가 생각하기에는 /restaurant가 호출되기 전에 /user/me가 먼저 호출 되어, 토큰 값을 체크하고 그 다음에 토큰 값의 유무에 따라 화면이 전환이 되어야 된다고 생각이 드는데 제가 잘못 이해하고 있는가요? 코드는 git에 올려두었습니다.https://github.com/bluelf1004/study.git
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Provider 와 StateProvider의 사용에 관해.
강의 잘 듣고 있습니다. 한 가지 의문이 있어 글 올립니다. 강의 내용 중 provider.dart에서 final filterShoppingListProvider = Provider<List<ShoppingListItem>>((ref) { } 부분에서 final filterShoppingListProvider = StateProvider<List<ShoppingListItem>>((ref) { } 로 사용하면 어떻게 다를까요? Provider 안에 속한 Provider를 인지하기 위해 꼭 Provider를 사용한다는 걸까요?... 1회성은 StateProvider를 쓴다는 식으로 이해하면 되겠습니까?
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
너무 어렵습니다 ㅜㅜ
작업기억이란게 한계가 있는데oop를 통한 상속의 상속의 인터페이스 물리고 물리고 물리고 물리는 제네릭타입 등단편적으로 보면 이해할수없고 모든 그림을 이해하고있어야 그나마 따라갈수 있는부분이라고 생각됩니다.그런데 20시간의 긴 강의이다보니 전체 배경을 모두 기억할수가 없는데요.클래스 이름도 너무 길고 비슷하게 레스토랑레파지토리프로바이더 이런식으로 되서 가독성이 너무 떨어져서 초보자 입장에서는 이해하기가 더욱힘듭니다.. 제생각에는 강의를 시작하기전에 해당 챕터의 핵심 플로우를 먼저 집고 넘어가고 너무 길거나 비슷한 클래스 이름들은 유니크하게 했으면 어떨까하는 아쉬움이 남습니다. 제가 멍청한건지 모르겠지만.. 코팩님 강의가 너무 유익해서 다음강의도 볼 의향이 있는데 혹시 다음강의를 찍게되신다면 저같은 사람도 배려해주셨으면 해서 이렇게 글 남겨드립니다.. 아 그리구 깃허브에서 rest 레파지토리를 클론해서 실행해보니 페이지네이션한 코드가 잘못된건지 서버에 애초에 데이터가 부족한건지 중복데이터를 가져오는것이 많은데요 페이지네이션은 문제 없는것 맞나요 ??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안드로이드스튜디오에서 Xcode를 꼭 거쳐서 실행해야 하나요?
한동안 바빠서... 간만에 플러터 공부하러 다시 왔습니다.그런데... 안드로이드 스튜디오에서 Run을 시키니까 Xcode가 뜨면서 앱이 Xcode에서 실행이 되네요.(실제기기)콘솔창 메시지 보니까 이상한 건 아닌데... 반드시 이런 건 아닌 것 같기도 하고(You may be prompted to...) 혹시 xcode 바이패스 하고 안드로이드 스튜디오에서 직접 실행시키는 방법이 있을까요?알려주시면 감사하겠습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
동영상 플레이어 강의 중 동영상 재생 시 초록창이 뜹니다.
동영상 플레이어 강의 진행 중입니다.ImagePicker 사용해보기를 진행하고 실행하였는데위와 같이 초록 창이 뜹니다. 코드는 에러 없이 실행되나 D/CCodecBuffers( 6275): int32_t channel-mask = 12D/CCodecBuffers( 6275): int32_t max-output-channel-count = 8D/CCodecBuffers( 6275): string mime = "audio/raw"D/CCodecBuffers( 6275): int32_t sample-rate = 48000D/CCodecBuffers( 6275): int32_t android._config-pcm-encoding = 2D/CCodecBuffers( 6275): } 위와 같은 메시지가 길게 콘솔에 출력됩니다. 강의를 더 진행하여 플레이 버튼을 만들고 영상을 플레이 하니 영상은 정상 출력됩니다. 미리보기 화면만 저렇게 출력되는 거 같아요. 호환성 문제로 생각되어지는데 해결 방법을 찾지 못해서 문의 드립니다. 사용하고 있는 에뮬레이터는 Pixel XL API TiramisuPrivacySandbox 입니다.
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
즐겨찾기 기능 질문 요청드립니다..
페이지 처음진입시 즐겨찾기 클릭하면정상적으로 별이 on 으로 바뀌게 되는데" 한번끄고 다시 키면 on으로 바뀌지않고 off 형태의 아이콘이되어있고 다시 뒤로갔다가 들어오면 정상적으로 on 으로 바껴있습니다 !!= 파이어베이스 db 상에는 데이터가 들어오지만상태가 바뀌지않아서 off 상태일때 10번누르면10번이 다 firebase db에 insert 되는현상이 나타납니다 ㅠㅠprofilePageactions: [ GestureDetector( onTap: () { var myUid = context.read<AuthenticationCubit>().state.user!.uid; context.read<UserProfileCubit>().followToggleEvent(myUid!); }, child: Padding( padding: const EdgeInsets.only(right: 20), child: BlocBuilder<UserProfileCubit,UserProfileState>( builder: (context,state) { var myUid = context.read<AuthenticationCubit>().state.user!.uid; var isFollowing = state.userModel?.followers?.contains(myUid) ?? false; return SvgPicture.asset(isFollowing ? 'assets/svg/icons/icon_follow_on.svg' :'assets/svg/icons/icon_follow_off.svg'); } ), ),user profile cubit void followToggleEvent(String myUid) async { if (state.userModel!.followers != null && state.userModel!.followers!.contains(myUid)) { // 즐겨찾기 취소 언팔 var result = await userRepository.followEvent(false,state.userModel!.uid!,myUid); if (result) { await _unfollow(myUid); } } else { // 즐겨 찾기 하기 var result = await userRepository.followEvent(true,state.userModel!.uid!, myUid); if (result) { await _follow(myUid); } } } _unfollow(myUid) async { emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [...state.userModel!.followers!.where((targetUid) => targetUid != myUid)], ), ), ), ); } _follow(myUid) async { print(state.userModel!.followers); if (state.userModel!.followers == null) { // 최초 팔로워 대상 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [myUid], ), ), ), ); } else { // 다른사람이 이미 팔로워 한사람 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [ ...state.userModel!.followers!, uid ], ), ), ), ); } } }user-repositoryFuture<bool> followEvent(bool isFollow,String targetUid, String myUid) async { try { // 2 가지 업데이트 ( 트랜잭션 실행 필요 ) final batch = db.batch(); // Type1 . 상대방 팔로워에 내가 들어가는건다.. var targetUserDoc = await db.collection("users").where("uid", isEqualTo: targetUid).get(); UserModel targetUserInfo = UserModel.fromJson(targetUserDoc.docs.first.data()); var followers = targetUserInfo.followers ?? []; // 최초사람 if (isFollow) { followers.add(myUid); } else { followers.remove(myUid); } var targetRef = db.collection("users").doc(targetUserDoc.docs.first.id); batch.update(targetRef, {'followers': followers}); // Type1 . 내 팔로워에 상대방이 들어간다... var myUserDoc = await db.collection("users").where("uid", isEqualTo: myUid).get(); UserModel myUserInfo = UserModel.fromJson(myUserDoc.docs.first.data()); var followings = myUserInfo.followings ?? []; if (isFollow) { followings.add(targetUid); } else { followings.remove(targetUid); } var MyRef = db.collection("users").doc(myUserDoc.docs.first.id); batch.update(MyRef, {'followings': followings}); await batch.commit(); return true; } catch (e) { return false; } }