묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Flutter 중급 1편 - 클린 아키텍처
아이폰에서 APP 실행 안되는 현상
안녕하세요.맥북에서 Android Studio와 아이폰간에 USB 케이블을 연결하여 앱 실행을 하면 아이폰에 Flutter APP 아이콘이 생깁니다.그리고 USB 케이블이 연결된 상태에서는 화면이 활성화되어 있을 때에는 앱 실행이 잘 됩니다.그런데 USB 케이블을 제거하고 APP을 실행하면 실행이 안됩니다.이 문제를 해결하려면 어떤 조치를 해야 할까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
GoRouter 재빌드
리버팟 codegen을 쓰면서 강의를 듣다가 리버팟 codegen으로는 changeNotifier를 작성하지 못한다는 기사를 읽었습니다.다음 코드에서 막혔습니다.@riverpod GoRouter goRouter(GoRouterRef ref) { final provider = ref.read(authProvider.notifier); final user = ref.watch(userMeProvider); return GoRouter( routes: provider.routes, initialLocation: '/splash', // refreshListenable: ???, redirect: (_, state) { return provider.redirectLogic(state); }, ); }여기서 refreshListenable에 값을 넣어줘야 하는데 강의에서는 ChangeNotiferProvider로 했기 때문에 refreshListenable에 값을 넣어주는게 가능했는데 저는 codegen으로 하다보니 타입 에러가 뜨고 값을 넣어 줄 수가 없습니다.final user = ref.watch(userMeProvider);이 코드를 넣어서 user의 상태가 바뀌면 고라우터를 재빌드 시켜서 리다이렉트 함수를 다시 실행시키려고 했는데, user의 상태가 UserModelLoading에서 UserModel로 분명히 바뀜에도 불구하고 고라우터가 재빌드가 안됩니다. print() 넣어서 확인했습니다.그냥 리버팟 codegen 쓰지말고 v1처럼 하는게 나을까요? 아니면 refreshListenable에 넣어 줄 수 있는 다른 값이나 고라우터의 리다이렉트 함수를 또 실행시켜줄 장치가 있을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
비디오플레이어 강의 / initialize 함수의 쓰임?
비디오플레이어 강의 중 이 부분에서 질문할 것이 많습니다...질문1. initialize() 함수가 컨트롤러를 초기화하는 함수라고 말씀하셨는데, 바로 윗 줄에서 컨트롤러가 관리할 파일을 고른 것 아닌가요? 바로 초기화시키는 이유가 궁금합니다. 질문2. initState안에서 어떻게 바로 setState를 실행시킬 수 있는지 궁금합니다. setState는 build가 실행된 후 clean인 상태에서만 실행할 수 있는 것 아닌가요? 질문3. 질문2와 이어지는 질문인데요, 이 전체적인 state의 라이프사이클이 어떻게 돌아가는지 궁금합니다. 이 전 프로젝트까지는 어찌어찌 잘 따라왔는데 갑자기 벽에 막힌 기분이네요 ㅜㅜ 긴 글 읽어주셔서 감사합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
riverpod v2 관련 질문
안녕하세요저는 강의처럼 리버팟 v1이 아닌 어노테이션을 사용하는 v2버전으로 코딩을 하며 배우는 중입니다.그리고 강의처럼 클래스 안에 변수를 선언해서 생성자를 통해 레포지토리를 받는걸 하려고 합니다.@riverpod class UserMe extends _$UserMe { final UserMeRepository repo; UserMe({ required this.repo, }); @override UserModelBase? build() { return UserModelLoading(); } }이후 user_me_privder.g.dart를 보면 빨간줄이 보입니다.저 빨간줄에 커서 가져다 대면The argument type 'UserMe Function({required UserMeRepository repo})' can't be assigned to the parameter type 'UserMe Function()'. 요런 메세지가 뜹니다.해결방법이 있을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
AppBar 하구 Button 모양이 이상합니다.
질문있습니다프로그램이 깨진건지 아님 업그레이드 해서 그런지 이상하네요증상: 첨부 사진 참조1. ElevatedButton 에서 둥그런 버튼 모양 나옴2. appBar 바탕색이 흰색으로 바뀜, 원래 파란색 임2일 전에 컴파일 에러가 계속 생겨서 찾아보니 flutter clean 하구 flutter upgrade 하라구 해서 했는데 안되구C: 드라이브 용량이 없어서 좀 늘렸더니 에러는 없어졌습니다. 그런데 그때부터 위 증상 이 생기네요.앱바에 color 명령주면 파란색으로 바뀌기는 합니다.혹시 최신 버전으로 업그레이드 되서 그런건가 해서 이전 버전으로 환원시킬려는데 방법이 있는지요.?아님 프로그램 일부가 깨져서 다시 깔아야 하는건가요. 다시 깐다면 어찌 깔아야 할지도 모르겠구 해서질문드립니다. pubspec.yaml 파일 내용중현재 :version: 1.0.0+1environment: sdk: '>=3.2.6 <4.0.0'-------2일 전에는version: 1.0.0+1environment:sdk: '>=3.1.3 <4.0.0'
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
webview 실행 시 빈화면
안녕하세요! 웹뷰를 처음 사용해봤는데, appbar는 적용이 잘되나, 사진과 같이 빈화면만 뜹니다.. import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Colors.orange, title: Text('Code Factory'), centerTitle: true, ), body: WebView( initialUrl: 'https://blog.codefactory.ai', javascriptMode: JavascriptMode.unrestricted, ), ); } }
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
http 프로토콜 강의 관련
옛날 버전인 이번 섹션 강의에는 HTTP 관련 내용이 포함되어 있던데 이제는 신경 안써도 되는 내용일까요~?? 미리 답변 감사합니다
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
startTime, endTime,. content 값이 bottom_sheet에 안나옵니다!
startTime 프린트를 찍어보면 초기 로딩중일때 null이 나오고그 이후에는 "0" 값이 제대로 들어가있는데화면에는 null 값이 찍히네요.초기 초딩할때 값이 리턴되서 그런건가요?도저히 모르겠어요....
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Dio Interceptor 내부 onError 콜백
@override void onError(DioException err, ErrorInterceptorHandler handler) async { debugPrint('ERR [${err.response}] => PATH: ${err.requestOptions.path}'); return super.onError(err, handler);이렇게 인터셉터를 찍어보고 있는데 err.response가 null이 날라오네요,, 이유를 모르겠는데 혹시 추측가시는 이유가 있으신가요?서버에서는 정상적으로 리턴이 옵니다.URL도 일치합니다.request도 날라갑니다.
-
해결됨Flutter 앱 개발 실전
Lang Tile
Tile( icon: 'language', title: S.current.language, subTitle: IntlHelper.isKo ? S.current.ko : S.current.en, onPressed: () => langService.toggleLang(), )안녕하세요.강의 정말 큰 도움이 되고 있습니다!Lang Tile 구현에서 onPressed 콜백에서 context.watch<LangService>().toggleLang() 으로 쓰면 왜 에러가 나는건가요,,??(아래와 같은 에러가 발생합니다..)Tried to listen to a value exposed with provider, from outside of the widget tree.This is likely caused by an event handler (like a button's onPressed) that calledProvider.of without passing listen: false.To fix, write:Provider.of<LangService>(context, listen: false);It is unsupported because may pointlessly rebuild the widget associated to theevent handler, when the widget tree doesn't care about the value.The context used was: SettingBottomSheet(dependencies: [_InheritedProviderScope<LangService?>, _InheritedProviderScope<ThemeService?>])'package:provider/src/provider.dart':Failed assertion: line 274 pos 7: 'context.owner!.debugBuilding || listen == false || debugIsInInheritedProviderUpdate'
-
해결됨Flutter로 SNS 앱 만들기
프로필 이미지 저장
저는 바로 확인할수 없는데... 좀 불편한데요. 달라진것인가요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
초록색원안을 클릭하니 새로운 페이지로 가네요...
완성된 프로그램 상에서초록색 원안을 마우스로 클릭하니 밑에 아이콘 2개 생성되구요요 아이콘을 클릭하니 새로운 페이지로 가네요.저만 그런가 해서 문의 드립니다.이것에 대한 코드는 없었는데 궁금해서요캡처 사진 첨부합니다.
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
4강 마지막 yield* -> yield
4강 마지막 끝날 때요//stream 사용 위해 패키지 불러와서 써야 함 import 'dart:async'; void main() { playAllStream().listen((val){ print(val); }); } Stream<int> playAllStream() async* { //yield* 뒤에 따라오는 stream의 값이 다 return 될 때까지 기다린다. yield* calculate(1); yield* calculate(1000); } Stream<int> calculate(int number) async* { for(int i=0; i<5; i++){ yield i * number; //async* 로 await를 쓸 수 있다. await Future.delayed(Duration(seconds: 1)); } } playAllStream() 여기 안에 yield* 를 yield로 바꾸면 결과가001100022000이렇게 나올거라고 하셨거든요. 이론적으로 이해는 됐는데, 코드 실행이 안되어서요.어디서 문제인지 모르겠어요.에러는 아래와 같습니다.Error: A value of type 'Stream<int>' can't be assigned to a variable of type 'int'. - 'Stream' is from 'dart:async'. yield calculate(1);
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
GoRouter v13
안녕하세요 코팩님!이제 드디어 GoRouter에 대한 강의를 들으려고 합니다.그런데 지금 GoRouter가 v13까지 업데이트 되어있네요 ㄷㄷ혹시 GoRouter v13 추가로 강의하실 계획 있으신가요??그리고 제가 v13으로 강의를 듣고 코딩을 해도 크게 문제 없을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
[질문 아님] 구글맵 안뜨시는 분들 확인해주세요~
키 및 사용자 인증 정보 > 키가 경고 아이콘 존재하면 > 체크 아이콘으로 변경해줘야 되요 (방법은 아이콘 클릭해서 제한 설정해주시면 동작됩니다.) 디버깅 한참 걸렸내요 결국 키가..
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Snapshot.data 타입이 Obejct가 맞나요?
안녕하세요 올해부터 플러터를 열심히 공부하고자 하는 학생입니다. 이번강의에서 2가지 질문이 있습니다.1번 질문. snapshot.data 타입List<Schedule> 리스트 변수를 생성하고, snapshot.data 를 할당하려고하는데, snapshot.data의 타입이 Object?라 할당할 수 없다고 나옵니다.print(snapshot.data.runtimeType)를 찍어보면 타입이 List<Schedule> 이라고 나오는데 왜 할당할 수 없는지 알고 싶습니다. 2번 질문. snapshot.data.where 질문snapshot.data의 타입이 object?로 인식되다보니, 아래와 같이 where 기능이 작동하지 않습니다. snapshot.data 타입을 List<Schedule>로 바꿀수 없나요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터에서 안드로이드 SDK API를 사용하려면?
안녕하세요 강사님강의를 들으며 많은 도움을 받고 있습니다.개인적인 프로젝트를 진행하면서네이티브(안드로이드) API를 사용할일이 생겼는데,이런 부분은 어떻게 접근해야하는지 알려주실수 있을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안드로이드 스튜디오 설정 - 플러터 닥터 오류
구글링으로 해결해보려고 했는데 실패했습니다 ㅠㅠ플러터 doctor check crashed 오류랑visual studio windows 10 sdk는 installer에서 설치했는데도 안되네요..도움 부탁드립니다!! ㅠㅠㅠㅠ
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
List 타입 에러
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'List<IModelWithId>' is not a subtype of type 'List<RatingModel>?' of 'data' #0 CursorPagination.copyWith (package:codefactory_lecture/common/model/cursor_pagination_model.dart:28:14) #1 Pagination.paginate (package:codefactory_lecture/common/provider/pagination_provider.dart:91:22) <asynchronous suspension>이건 디테일 스크린에서 rating을 fetchmore로 더 불러올때 나는 에러입니다.[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'List<IModelWithId>' is not a subtype of type 'List<RestaurantModel>?' of 'data' #0 CursorPagination.copyWith (package:codefactory_lecture/common/model/cursor_pagination_model.dart:28:14) #1 Pagination.paginate (package:codefactory_lecture/common/provider/pagination_provider.dart:91:22) <asynchronous suspension>그리고 이건 restaurant_screen.dart에서 쭉 내려서 데이터를 더 불러오려고 할 때 에러입니다. 둘 다 비슷한 에러입니다. state = resp.copyWith(data: [ ...pState.data, ...resp.data, ]);페이지네이션 코드 중 이 부분에 문제가 있었고, CursorPagination copyWith({ CursorPaginationMeta? meta, List<T>? data, }) { return CursorPagination<T>( meta: meta ?? this.meta, data: data ?? this.data); }여기서 List<T>? data의 타입이 맞지 않는 것 같습니다. 데이터 타입이 알맞게 각각 들어가야 할텐데, 자꾸 List<IModelWithId> 타입이 들어가는 거 같아요... 어느 부분을 고쳐야 할까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
줄바꿈 관련 질문 드릴게요
일단 콤마 기준으로 줄바꿈 하는 기능을 알고 있습니다.아래 <A 코드>를 <B 코드>로 변환하는 IDE 기능이 혹시 있나 해서 여쭤봐요 (아니면 플러그인이라도..)<A 코드>ElevatedButton(onPressed: () {}, child: Text("ElevatedButton")),<B 코드>ElevatedButton(onPressed: () {}, child: Text("ElevatedButton")),