inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

goRouter

미해결

[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter

안녕하세요 현재 get으로 toNamed를 사용해서 화면이동을 하고있는데 goRouter와 어떤 차이점이 있을까요? 공수를 들여서 변경해야 할 가치가 있는걸까요?

  • flutter
  • firebase
  • bloc
dev 댓글 2 좋아요 0 조회수 185

섹션8 게시글 정보 가져오기

미해결

Flutter로 SNS 앱 만들기

데이터를 가져오지 못하고 있습니다. 파일은 멜로 보냈어요

  • flutter
  • android
  • firebase
  • dart
댓글 1 좋아요 0 조회수 102

수강기간 연장 부탁드립니다.

해결됨

Flutter 앱 개발 실전

급하게 듣고, 내용이 긴가민가해서 다시 들을려고 하는데, 시간이 좀 촉박한거 같아서 요청드립니다. 좋은 강의 항상 감사합니다.

  • flutter
이대식 댓글 2 좋아요 1 조회수 109

웹뷰(Webview) 패키지 디버깅, 빌드 안 됨 문의드립니다.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

웹뷰 강의 듣는 중에 오류가 생겨 문의드립니다. pub dev에서 웹뷰 플러터 패키지를 설명대로 플러터 터미널을 이용해 내려받고 pubspec.yaml에서도 등록했습니다. 안드로이드/app/src 빌드.그래들 파일에도 minsdkversion을 19로 작성도 했습니다. 21도 적어봐라 flutter clean해서 다시 pub get 해라는 글도 봐서 그렇게 했는데도 안 됩니다...ㅜ 자꾸 디버깅 에러라며 코드 실행 자체가 안 되네요. 앱이 빌드가 안 됩니다. ㅜㅜ 웹뷰 패키지를 main.dart에 임포트할 때는 정상인데 디버깅 때 이럽니다. 그래서 pubspec.yaml에서 해당 웹뷰 패키지를 제거하면 또 잘 빌드 됩니다...해당 패키지만 켜면 안 돼요. 구글링 해보니 jdk를 21로 설정해라...그래들 업데이트를 해라 이래저래 해봤는데도 안 되네요.. 해당 내용은 이렇습니다. 어찌 해야할까요. 검색해서 이래저래 해봤는데 아무래도 한계인 거 같아 문의드립니다. Running Gradle task 'assembleDebug'... FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':webview_flutter_android:compileDebugJavaWithJavac'. > Could not resolve all files for configuration ':webview_flutter_android:androidJdkImage'. > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. > Execution failed for JdkImageTransform: C:\Users\admin\AppData\Local\Android\sdk\platforms\android-34\core-for-system-modules.jar. > Error while executing process C:\Program Files\Android\Android Studio\jbr\bin\jlink.exe with arguments {--module-path C:\Users\admin\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\transformed\output\temp\jmod --add-modules java.base --output C:\Users\admin\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\transformed\output\jdkImage --disable-plugin system-modules} * 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 3s Error: Gradle task assembleDebug failed with exit code 1

  • flutter
  • 클론코딩
매일커피 댓글 1 좋아요 0 조회수 785

flutter_file_downloader 패키지 설치 후 앱 실행 시 오류 발생!

미해결

Flutter로 메신저앱 만들기

안녕하세요? 강의 잘 따라해 보고 있습니다. 제목 그대로 동영상 파일을 다운로드 받기 위해 flutter_file_downloader 패키지를 설치한 이후 앱을 재실행하면 오류가 발생합니다. ----------------------------------------------- FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':flutter_file_downloader'. > Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl. > Namespace not specified. Specify a namespace in the module's build file. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace. If you've specified the package attribute in the source AndroidManifest.xml, you can use the AGP Upgrade Assistant to migrate to the namespace value in the build file. Refer to https://d.android.com/r/tools/upgrade-assistant/agp-upgrade-assistant for general information about using the AGP Upgrade Assistant. * 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 889ms Error: Gradle task assembleDebug failed with exit code 1 ----------------------------------------------- 현재 최신 버전이 2.0.0 인데,, 예제 소스 상의 버전이 1.2.1 인데, 이 버전을 받아 봐도 동일한 현상입니다. 동영상 강의에서 강의노트에 설명을 달아 놓으셨다고 하는데, 강의 노트를 찾을 수가 없네요.. 조언 부탁드립니다.

  • flutter
  • android
  • firebase
  • dart
  • riverpod
011414 댓글 3 좋아요 0 조회수 1005

Gorouter 메인함수 호출관련 질문

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Gorouter를 활용하여 class _App extends ConsumerWidget { const _App({Key? key}) : super(key: key); @override Widget build(BuildContext context,WidgetRef ref) { final router = ref.watch(routerProvider); return MaterialApp.router( // 시스템 설정에 따른 Theme // themeMode: ThemeMode.system, theme: TAppTheme.lightTheme, // darkTheme: TAppTheme.darkTheme, debugShowCheckedModeBanner: false, routerDelegate: router.routerDelegate, routeInformationParser: router.routeInformationParser, routeInformationProvider: router.routeInformationProvider, ); } } final routerProvider = Provider<GoRouter>((ref){ final provider = ref.watch(authProvider); return GoRouter( routes: provider.routes, initialLocation: '/splash', refreshListenable: provider, redirect: provider.redirectLogic ); }); 위와 같이 메인함수를 호출하고 있습니다. 여기서 푸쉬 알림을 받을때 특정 경로로 이동하게 하고 싶다면 GoRouter의 initiallocation을 활용해서 특정 경로로 보내야할거같은데 스플래시화면에서 로그인 검증하여 로그인 되어있다면 특정경로로 이동하고 로그인 안되어있다면 특정경로를 이동하지않고 로그인화면으로 이동하고싶은데 방법을 잘 모르겠습니다

  • flutter
  • 하이브리드-앱
dlckdals9467 댓글 2 좋아요 0 조회수 180

Launch Emulator에서 안드로이드 에뮬레이터가 뜨지 않습니다.

해결됨

Flutter 앱 개발 기초

안녕하세요! 플러터 프로젝트 세팅중에 다음과 같은 문제가 발생했습니다. View -> Command Palatte에서 Launch Emulator를 선택했는데 에뮬레이터가 뜨지를 않습니다. 왜 이런 문제가 발생하는걸까요...? .

  • flutter
헬랑 댓글 4 좋아요 1 조회수 502

paginate() 에 대한 질문입니다.

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

void paginate({ int fetchCount = 20, // 추가로 데이터 더 가져오기 // true = 더 가져오기 // false = 새로고침 bool fetchMore = false, // 강제로 다시 로딩하기 // true - CursorPaginationLoading() bool forceRefetch = false, }) async { // 5가지 가능성 // State의 상태 // 1) CursorPagination - 정상적으로 데이터가 있는 상태 // 2) CursorPaginationLoading - 데이터 로딩중(현재 캐시 없음 // 3) CursorPaginationError = 에러가 있는 상태 // 4) CursorPaginationRefetching = 첫번째 페이지부터 다시 데이터를 가져올때 // 5) CursorPaginationFetchMore - 추가 데이터를 paginate 해오라는 요청을 받았을때 // 바로 반환하는 상황 // 1) hasMore == false(기존 상태에서 이미 다음 데이터가 없다는 값을 들고 있다면) // 2) 로딩중 - fetchMore : true // fetchMore : false - 새로고침의 의도가 있음. try { if (state is CursorPagination && !forceRefetch) { final pState = state as CursorPagination; if (!pState.meta.hasMore) { return; } } final isLoading = state is CursorPaginationLoading; final isRefetching = state is CursorPaginationRefetching; final isFetchingMore = state is CursorPaginationFetchingMore; if (fetchMore && (isLoading || isRefetching || isFetchingMore)) { return; } // PaginationParams 생성 PaginationParams paginationParams = PaginationParams( count: fetchCount, ); // fetchMore if (fetchMore) { final pState = state as CursorPagination; state = CursorPaginationFetchingMore( meta: pState.meta, data: pState.data, ); paginationParams = paginationParams.copyWith( after: pState.data.last.id, ); } final resp = await repository.paginate( paginationParams: paginationParams, ); if (state is CursorPaginationFetchingMore) { final pState = state as CursorPaginationFetchingMore; // 기존 데이터에 새로운 데이터 추가 state = resp.copyWith(data: [ ...pState.data, ...resp.data, ]); } else { state = resp; } } catch (e) { state = CursorPaginationError(message: '데이터를 가져오지 못했습니다.'); } } 이부분이 있는데 왜 하위의 fetchMore의 else문에서 또 조건을 걸어놓는지 궁금합니다. // fetchMore if (fetchMore) { final pState = state as CursorPagination; state = CursorPaginationFetchingMore( meta: pState.meta, data: pState.data, ); paginationParams = paginationParams.copyWith( after: pState.data.last.id, ); } // 데이터를 처음부터 가져오는 상황 else { // 만약 데이터가 있는 상황이라면 기존 데이터 보존한 채로 Fetch(API 요청)을 진행 if (state is CursorPagination && !forceRefetch) { final pState = state as CursorPagination; state = CursorPaginationRefetching( meta: pState.meta, data: pState.data, ); } else { state = CursorPaginationLoading(); } }

  • flutter
  • 하이브리드-앱
나황제 댓글 2 좋아요 0 조회수 155

메인화면에서 뒤로가기 눌렀을때 어플종료관련 건

미해결

Flutter로 SNS 앱 만들기

메인화면에서 뒤로가기 눌렀을때 어플 종료를 하고 싶어서 메인화면에서 WillPopScope( onWillPop: () async => false, 이 부분을 수정하였습니다. 수정한 결과 어플이 종료는 되나. 다시 어플을 실행했을때 splash화면에서 다음 화면으로 넘어가지 않습니다.. 아마도 사용자 정보를 가져오지 못해서 그런것 같은데.. 방법이 없을까요?

  • flutter
  • android
  • firebase
  • dart
박수훈 댓글 1 좋아요 0 조회수 225

컨텍스트에 대한 질문

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

강의 보면 로그인 스크린의 빌드 컨텍스트 내부에 storage를 선언하셨는데, class _LoginScreenState extends State<LoginScreen> { String user = ""; String password = ""; @override Widget build(BuildContext context) { final storage = FlutterSecureStorage(); final dio = Dio(); final emulatorIp = '10.0.2.2:3000'; final simulatorIp = '127.0.0.1:3000'; final ip = Platform.isIOS ? simulatorIp : emulatorIp; return ...; } } 이 부분에서 왜 빌드컨텍스트 내부에 작성했는지 궁금합니다.

  • flutter
  • 하이브리드-앱
재찬 댓글 1 좋아요 0 조회수 97

섹션8 게시글 정보가져오기

미해결

Flutter로 SNS 앱 만들기

16:00 에러가 발생되었습니다. 어떻게 해야 하나요.ai 로 질문의 답을 받았는데 잘모르겠습니다. void _getFeedList() { WidgetsBinding.instance.addPostFrameCallback((_) async { try { await feedProvider.getFeedList(); } on CustomException catch (e) { errorDialogWidget(context, e); // 에러출력 } }); } 이부분을 어떻게 처리하면 됩니까

  • flutter
  • android
  • firebase
  • dart
댓글 2 좋아요 0 조회수 180

4강애싱크 프로그래밍에서 12:46에서

미해결

[코드팩토리] [입문] Dart 언어 4시간만에 완전정복

4강애싱크 프로그래밍에서 12:46에서 addnumber함수는 비동기함수가 아니라 동기함수 아닌가요?그럼 위에 addnumber()가 끝나고(2초기다리는거까지 하고)나서 밑에 addnumber()가 실행돼야하는거 아닌가요?? 왜 위 addnumber의 2초를 기다리지 않고 밑에 addnumber를 실행하죠? Addnumber의 반환타입이 Future<void>가 아니라 그냥 void니까 동기함수 아닌가요??

  • flutter
  • 함수형-프로그래밍
  • 객체지향
강원빈 댓글 1 좋아요 0 조회수 135

에뮬레이터 오류

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

에뮬레이터가 실행은 되는데 컴퓨터 재부팅하고 나니 이런 메세지가 뜨고 계속 <no device selected> 로 나옵니다. 실행을 해볼 수가 없어서 어떻게 수정하면 될까요? 코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • flutter
  • 클론코딩
김희정 댓글 3 좋아요 0 조회수 144

섹션8에서 게시글 정보 가져오기에서 timeStamp에러 입니다.

미해결

Flutter로 SNS 앱 만들기

섹션8에서 게시글 정보 가져오기에서16:00 WidgetsBinding.instance.addPostFrameCallback(callback) 나봅니다. 강의처럼 timeStamp가 나오지 않고, 그래서 그냥 진행했습니다. WidgetsBinding.instance.addPostFrameCallback((_) async { 그런데 다음과 같이 에러가 뜨네요. 이런 메세지가 뜨는 이유가 뭔가요

  • flutter
  • android
  • firebase
  • dart
댓글 1 좋아요 0 조회수 213

객체 안에 객체가 있을때 모델링을

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

final List<Map<String,dynamic> products; 위와 같이 진행한다면 factory RestaurantDetailModel.fromJson({ required Map<String, dynamic> json, }) { return RestaurantDetailModel( id: json['id'], name: json['name'], thumbUrl: 'http://$ip${json['thumbUrl']}', tags: List<String>.from(json['tags']), priceRange: RestaurantPriceRange.values.firstWhere( (element) => element.name == json['priceRange'], ), ratings: json['ratings'], ratingsCount: json['ratingsCount'], deliveryTime: json['deliveryTime'], deliveryFee: json['deliveryFee'], detail: json['detail'], products: List<Map<String, dynamic>>.from(json['products']), ); } fromJson 도 위와 같이 변경될 것 같은데, 이런 방식은 비효율적이거나 권장되지 않는 방식인가요? 객체 안의 객체를 따로 모델링 하는 이유는 객체 안의 객체를 인스턴스화해서 재사용하는데 목적이 있는 건가요? 수업때 설명한 방식은 List 안에 Map 형태의 키값이 정해지지 않아 데이터 추출이 번거로워질 수 있다고 생각하면 되나요?

  • flutter
  • 하이브리드-앱
Jun 댓글 2 좋아요 0 조회수 147

분명히 잘 따라했는데 일정 추가가 안되네요

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

분명히 잘 따라했고, 중간 중간 테스트 할때도 잘 됐는데 마지막에 onDismiss로 바꾼뒤로 갑자기 일정 추가가 안되는데.. 이유가 뭘까요?

  • flutter
  • 클론코딩
댓글 2 좋아요 0 조회수 104

실험으로 시간에 이상한값을 넣었는데..

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

테스트 해보려고 endTime에 41를 넣어서 저장을 눌렀는데 그 이후로 일정을 제대로 입력해도 일정이 아무것도 추가가 되지 않습니다. database에 문제가 생긴것같아서 sql파일을 초기화 해주고 싶은데 파일이 어디있는지도 잘모르겠네요..

  • flutter
  • 클론코딩
jhp009 댓글 2 좋아요 0 조회수 134

8:18 저는 왜이리 이해가 안될까요. 보고 또보고 해도 포기해야 되겠죠...

미해결

Flutter로 SNS 앱 만들기

Future<List<FeedModel>> getFeedList() async { QuerySnapshot<Map<String, dynamic>> snapshot = await firebaseFirestore .collection('feeds') .orderBy('createAt', descending: true) .get(); return await Future.wait(snapshot.docs.map((e) async { Map<String, dynamic> data = e.data(); DocumentReference<Map<String, dynamic>> writerDocRef = data['writer']; DocumentSnapshot<Map<String, dynamic>> writerSnapshot = await writerDocRef.get(); UserModel userModel = UserModel.fromMap(writerSnapshot.data()!); data['writer'] = userModel; return FeedModel.fromMap(data); }).toList()); } 이부분에서 return await Future.wait(snapshot.docs.map((e) async { Map<String, dynamic> data = e.data(); DocumentReference<Map<String, dynamic>> writerDocRef = data['writer']; DocumentSnapshot<Map<String, dynamic>> writerSnapshot = await writerDocRef.get(); UserModel userModel = UserModel.fromMap(writerSnapshot.data()!); data['writer'] = userModel; return FeedModel.fromMap(data); 이부분을 왜 이리 이해하기가 어려운지 모르겠어요.. 저만 그런가요...돌려봐도 싶지 않네요. .

  • flutter
  • android
  • firebase
  • dart
댓글 1 좋아요 0 조회수 113

영화 평정 리뷰 프로젝트 문의

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요 강사님 혹시 개정판 전 강의에 영화 평점 관련 강의가 있지 않았나요? 다시 들어보려고 하는데 개정판에서는 없어진것 같습니다. 혹시 그때 강의와 비슷한 강의 소개 또는 이전 강의 소스라도 받아 볼수 있을까요?

  • flutter
  • 클론코딩
댓글 2 좋아요 0 조회수 117

인기 태그

인프런 TOP Writers

주간 인기글