[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요! Google Map, Geolocator 설정 관련 문의드립니다. 1. 구글맵 버전이 강의하실 때보다 업그레이드가 되어서, 그 버전으로 실행하니, 아래와 같이 에러가 뜨는데 해결방법 문의드립니다. 2. 구글맵과 지오로케이터 모두 예전 강의해주신대로 degrade하면 아래의 에러가 뜨는데 어떻게 해결하면 좋을지 문의드립니다. 감사합니다.
안녕하세요! 개인적인 프로젝트를 위해 안드로이드 스튜디오로 앱을 만들기 위해 공부 중인 대학생입니다! 제가 Home 페이지에 TextButton을 통해 버튼을 만들었는데 사진처럼 앱 테마 자체가 버튼이 둥글게 나오는 형태로 되어있는데 혹시 앱 테마를 변경할 수 있는 방법이 있을까요? 인터넷에 검색을 해봐도 안드로이드 스튜디오 자체의 테마(Light, Dark) 이런 부분의 설명 밖에 안나와있어서 강사님께 문의드립니다ㅠㅠㅠㅠ
14:21 profile_repository.dart 강의 코드는 이렇게 나와야 하는데 저는다르게 나와요 then코드를 치니 이렇게 나요.. 무시하고 코드입력하고 진행했습니다. 하여튼 아래코드로 그냥 진행 했는데요. value에서 에러가 발생 하여, 위코드와 같은 의미라 하여 주석처리하고 진행했습니다. 그러나 currentUserModel에서 에러가 발생했습니다. 첫번째 value부분에 에러 부분과 두번째 currentUserModel부분좀 봐주세요. 멜보내겠습니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. "Skeleton 사용하기"의 강의 내용을 구현하고 있습니다. pubspec.yaml dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.6 dio: ^5.5.0+1 flutter_secure_storage: ^9.2.2 json_annotation: ^4.9.0 retrofit: '>=4.0.0 <5.0.0' logger: any #for logging purpose flutter_riverpod: ^2.5.1 riverpod_annotation: ^2.3.5 skeletons: ^0.0.3 restaurant_detail_screen.dart에서 import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:skeletons/skeletons.dart'; return DefaultLayout( title: '불타는 떡볶이', child: CustomScrollView( slivers: [ renderTop( model: state, ), renderLoading(), // if (state is RestaurantDetailModel) renderLabel(), // if (state is RestaurantDetailModel) // renderProducts( // products: state.products, // ), ], ), ); } // SkeletonParagraph Logic SliverPadding renderLoading() { return SliverPadding( padding: EdgeInsets.symmetric( horizontal: 16.0, ), sliver: SliverList( delegate: SliverChildListDelegate( List.generate( 3, (index) => SkeletonParagraph( style: SkeletonParagraphStyle( lines: 5, ), ), ), ), ), ); } 을 구현하고 재실행하면 다음과 같은 에러가 발생하고 있습니다. Skeleton용하기 이미지가 작아서 텍스트로 붙여넣었습니다. Launching lib\main.dart on sdk gphone64 x86 64 in debug mode... Running Gradle task 'assembleDebug'... ../../../../AppData/Local/Pub/Cache/hosted/pub.dev/skeletons-0.0.3/lib/src/widgets.dart:56:42: Error: The getter 'backgroundColor' isn't defined for the class 'ThemeData'. - 'ThemeData' is from 'package:flutter/src/material/theme_data.dart' ('/C:/flutter/packages/flutter/lib/src/material/theme_data.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'backgroundColor'. color: Theme.of(context).backgroundColor, ^^^^^^^^^^^^^^^ ../../../../AppData/Local/Pub/Cache/hosted/pub.dev/skeletons-0.0.3/lib/src/widgets.dart 💯 46: Error: The getter 'backgroundColor' isn't defined for the class 'ThemeData'. - 'ThemeData' is from 'package:flutter/src/material/theme_data.dart' ('/C:/flutter/packages/flutter/lib/src/material/theme_data.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'backgroundColor'. color: Theme.of(context).backgroundColor, ^^^^^^^^^^^^^^^ Target kernel_snapshot failed: Exception 여러가지로 찾아보았지만, 해결되지 않았습니다. 이 문제에 대한 해결 방법에 대해 질문을 드립니다. 감사합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
23년 5월에 비슷한 질문이 있었습니다. 개인적으로 답하신듯해서 질문 드려봅니다. 질문1. paginationParams의 count 값을 각 메뉴에서 변경하려 하는데 현재 강의 소스에서는 어디부분을 확인해야 하는지요? 질문2. paginationParams에서 강의내용에 있는 after, count외에 다른.. 예를 들면 검색조건의 값을 받을 수 있게 하려면 어떻게 풀어야 하나요? 강의내용에 있는 DB를 가지고 할 건 아니고, 응용해서 별도로 해보다 보니.. 문의드립니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
riverpod 상태 관리 시 watch 메서드를 통해 view를 변경하는데 userMeProvider를 watch하지 않고 로그인 버튼의 onPressed 내에서 read로 상태를 읽어도 비활성화가 잘 작동합니다. 제가 이해한 바로는 userMeProvider가 생성될 때 생성자의 getMe 메서드를 통해서 상태는 null이 되어있을텐데 어떻게 로그인 버튼을 누른 후 상태가 UserModelLoading으로 바뀌었을 때 view가 이를 감지하고 버튼을 disable시키는지 이해가 되지 않아 질문드립니다. 현재 로그인 스크린은 ConsumerStateFul 위젯입니다. ConsumerWidget으로 변경해도 잘 작동합니다. ElevatedButton( onPressed: ref.read(userMeProvider) is UserModelLoading ? null : () => ref .read(userMeProvider.notifier) .login( username: username, password: password, ) .then( (value) { if (value is! UserModelError) return; ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(value.message), duration: Duration(seconds: 1), ), ); }, ), child: const Text('로그인'), ),
안녕하세요, StaefullWidget 상태관리 구현 수업을 따라가던 중에 15 번 라인에서 엔터 2번 입력 List<Product> 를 입력하실때 자동 완성으로 Product 가 제안 되서 선택하시던데.. 저는 Prodcut 가 나오질 않는데 무엇이 빠져서 그럴까요? 또 라인 완성후 자동으로 import 가 생성되던데. 저는 전구를 눌러서 선택을 해야만 import 가 되는데.. 익스텐션등 특정한 무슨 설정이 빠져서 그런것일까요? 감사합니다.
입력 창에서 키보드를 입력할 때마다 아래와 같이 warning log가 주르륵 뜹니다. W/IInputConnectionWrapper(12010): getSelectedText on inactive InputConnection W/IInputConnectionWrapper(12010): getTextAfterCursor on inactive InputConnection W/IInputConnectionWrapper(12010): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper(12010): getSelectedText on inactive InputConnection W/IInputConnectionWrapper(12010): getTextAfterCursor on inactive InputConnection W/IInputConnectionWrapper(12010): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper(12010): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper(12010): endBatchEdit on inactive InputConnection W/IInputConnectionWrapper(12010): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper(12010): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper(12010): endBatchEdit on inactive InputConnection 번잡하기만 하고 별로 필요 없어서 해당 로그를 보고 싶지 않은데 로그 레벨 조정을 어떻게 하죠? 검색해도 제대로 된 정보는 안 나오네요
Flutter version 이 3.22 버전을 사용 중인데, minSdkVersion 에러가 나는 분들이 있을 것입니다. [에러 상황] firebase 프로젝트 준비 및 google-services.json 주입을 마치고, flutter 명령어로 first base에 필요한 패키지를 다운로드 받은 이후의 상황입니다. main.dart 를 실행하는데 아래와 같은 에러가 발생하는 분들은 주목하세요. Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library [:firebase_auth] 위와 같은 에러가 발생하는 분들은 아마 앱 레벨의 build.gradle이 이와 같이 설정되어있을 겁니다. defaultConfig { applicationId = "com.example.bucket_list_with_firebase" minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutterVersionCode.toInteger() versionName = flutterVersionName } 위 메시지를 해석하면 firebase_auth가 minSdkVersion이 23 이상을 지원하는데, 현재 너의 프로젝트의 minSdkVersion은 21이 되어있어서 지원이 불가능하다는 메시지입니다. [에러 원인] 이는 flutter sdk에서 android의 minSdkVersion이 21로 설정되어있기 때문에 그렇습니다. 실제로 강의자료에 나와있듯이 flutter sdk의 flutter.groovy 파일을 살펴보면 class FlutterExtension { public final int compileSdkVersion = 34 public final int minSdkVersion = 21 // 다른 변수들 } 이처럼 21 버전을 상수값으로 사용하고 있는 것을 알 수 있습니다. 하지만 firebase의 auth 기능을 사용하려면 minSdkVersion이 23이어야 합니다. [해결 방법] 이를 해결하기 위한 방법은 터미널 로그에 잘 표시되어있습니다. The plugin firebase_auth requires a higher Android SDK version. Fix this issue by adding the following to the file android { defaultConfig { minSdkVersion 23 } } Following this change, your app will not be available to users running Android SDKs below 23. 위에 로그에서 recommend 하듯이 내 flutter project의 minSdkVersion을 바꿔주면 해결됩니다. flutter.minSdkVersion 대신 상수로 23 값을 입력하면 됩니다. defaultConfig { // applicationId minSdk = 23 // 다른 설정 값들 } [해결 완료 후 동작 확인] 아래와 같이 main.dart를 실행하면 로그인 화면이 정상적으로 보여져야 합니다.
안녕하세요! 강의 재미있게 진행하고 있습니다. 강의 내용과는 별개의 질문입니다. ^-^; 다름이 아니라 강의 동영상처럼 테마를 바꾸려면 어떤 것을 사용해야 하나요? Material Theme UI 등 여러 가지를 받아서 적용해 봐도 딱 맘에 드는 것이 없습니다. 강의 동영상의 테마가 바탕화면도 진하고 괄호도 알록달록하게 나와서 좋아 보입니다.