묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
캘린터만들기 오류질문입니다.
수업을 계속 반복해서 암기하고 있습니다.달력 수업도 현재까지 10번 이상 반복하고 있는 것 같은데요,일주일전만해도 잘 완성됐었습니다.그런데 오늘 flutter pub run build_runner build를 하려고 하니, g.dart 파일 생성이 안되고 이렇게 에러가 뜹니다.버전 문제인가 싶어 flutter upgrade도 해보고 여러 세팅값들을 버전에 맞도록 업그레이드 시도해봤는데 그래도 여전히 같았습니다.혼자 해결방법을 찾으려고 몇시간째 서치해봤는데 방법을 못찾겠네요, 조언 부탁드립니다. PS C:\Users\haK\StudioProjects\calendarmaking> flutter pub run build_runner buildDeprecated. Use dart run instead.Resolving dependencies... (1.0s)Got dependencies.Building package executable... (6.8s)Failed to build build_runner:build_runner:../../AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.0.2/lib/src/constructable_file_system_event.dart:7:57: Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class.abstract class _ConstructableFileSystemEvent implements FileSystemEvent {
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
실제 핸드폰을 연결해 확인해보니 폰트 사이즈가 틀린 문제
안녕하세요!현재 서비스 개발중인데요, 기획과 디자인을 업무로 시작해 사정상 개발까지 하게되었는데요, 선생님 강의가 정말 많이 도움이 되고 있습니다! 감사합니다. 작업을 하다 보니 실제 폰에 연결해서 확인해보고 싶어 연결을 해보았습니다. (애플 아이폰 12 프로) 그런데 플러터 ios 시뮬레이터 아이폰 12 프로 보는것 폰트사이즈가 다르게 나옵니다. 어떻게 하면 시뮬레이터에와 동일하게 실제 핸드폰에서 확인할 수 있을까요?동일한 문제를 겪고 있는 유저를 찾았는데요, 댓글 어떤 유저는 이렇게 해결 했다고 하는데 이렇게 하면되는걸까요? 이해를 하고 싶은데 잘 안되서요!MediaQeury.of(context).copyWith(texScaleFactor: 1.0), child: child!, 이렇게 작성하니 해결 되었다고 해서 적용해보니 해결이 되긴 합니다. ㅠㅠ깃헙원문https://github.com/flutter/flutter/issues/55956void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: Size(390, 844), minTextAdapt: true, builder: (_, child) { return MaterialApp( builder: (context, child) { return MediaQuery( data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), child: child!, ); }, title: 'BOOTHAPP', theme: ThemeData( appBarTheme: const AppBarTheme( color: ColorStyle.backGround, )), home: Realhome2(), ); }, ); } }
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
만료된 refreshToken으로 요청할때의 문제, try catch가 작동하지 않는듯?
void checkToken() async { final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); final dio = Dio(); try { final resp = await dio.post( 'http://$ip/auth/token', options: Options( headers: { 'authorization': 'Bearer $refreshToken', }, ), ); await storage.write( key: ACCESS_TOKEN_KEY, value: resp.data['accessToken']); // if (!mounted) return; Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( builder: (_) => const RootTab(), ), (route) => false); } catch (e) { print('e: $e'); // if (!mounted) return; Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( builder: (_) => const LoginScreen(), ), (route) => false); // 뒤로가기 버튼을 눌러도 다시 로그인 화면으로 돌아가지 않음 } }이 로직이 원래 잘됬는데 몇일 사용안하다가 다시키니까 dio.post 부분에서 401에러가 발생하는데이는 만료된 refreshToken으로 요청해서 발생하는 에러로 예상했습니다.그런데 try catch로 감쌋기때문에 catch아래 로그인스크린으로 이동하는 로직이 실행되어야 한다고 생각됬는데예상과 다르게 그냥 앱은 먹통이되고 dio 패키지 내부로 이동되며 401에러를 표시합니다.임시로 로그인스크린을 강제로 띄워서 다시 토큰을 발행해서 해결했습니다만왜 이런 상황이 발생하는지 잘이해가 되지않아서 질문드립니다.
-
해결됨GetX 기반 Flutter 앱 만들기
강의자료는 어디서 다운 받나요?
강의자료는 어디서 다운 받나요? 마지막 부분에 예제 소스만 있던데, 동영상에서 보여주신 강의 내용들 (PPT로 보이는 내용들)어디서 다운 받는지요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
12 섹터를 보고 있습니다.
class _Header extends StatelessWidget { final VoidCallback onPressed; const _Header({required this.onPressed, super.key});플러터 버젼때문에 그런가요.에러가 났는데 저는 상의 버젼이라서 그런가요.?const _Header({required this.onPressed, Key? key,}) : super(key: key);
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
authProvider로 루트설정시에, 스플래시화면에서 일정작업을 수행하고싶으면 어떻게 해야하나요?
authProvider로 루트 설정하는거 정말 최고예요..!!항상 좋은 강의에 감사드립니다!강의 듣다가 하나 궁금한 점이 있는데, 보통 스플래시 화면에서 데이터를 미리 불러온다던지 일부러 1-2초 일정한 딜레이를 건다거나 스플래시에 움직이는 애니메이션을 넣는 경우에는 이런 authProvider에서 어떻게 해결해야하나요? redirectLogic 안에서 isInitialized라고 지정해둔 변수를 이용해서 해봤는데 이게 맞는지ㅠ 좀 더러운거같아서 여쭤봅니다!Future<String?> redirectLogic( BuildContext context, GoRouterState state) async { if (!isInitialized) { isInitialized = true; return '/splash'; } if (isInitialized) { await Future.wait([ Future.delayed(const Duration(seconds: 1)), // 1초 지연 ]); } final UserBase? user = await ref.read(userProvider); // print('redirectLogic - user : ${user.toString()}'); final loggingIn = state.location == '/login'; // 유저 정보가 없는데 // 로그인중이면 그대로 로그인 페이지에 두고 // 만약에 로그인중이 아니라면 로그인 페이지로 이동 if (user == null) { return loggingIn ? null : '/login'; } if (user is UserModel && loggingIn || state.location == '/splash') { // 여기서 미리 가져오면 좋을 데이터를 가져오기 } // user가 null이 아님 // UserModel // 사용자 정보가 있는 상태면 // 로그인 중이거나 현재 위치가 SplashScreen이면 // 홈으로 이동 if (user is UserModel) { return loggingIn || state.location == '/splash' ? '/' : null; } // UserModelError if (user is UserError) { return !loggingIn ? '/login' : null; } return null; }
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
중급반 섹션6 <Dio onError Interceptor 작업하기> 질문입니다.
중급반 섹션6 <Dio onError Interceptor 작업하기>강의 8분 정도에 onError작업하는 과정에서에러사항 처리하는 과정에서refresh토큰으로 accessToken 요청경로가 아래 같은 경로로 설정하셨는데,final isPathRefresh = err.requestOptions.path == '/auth/token'; restaurnatRepository 에서 baseUrl을 이렇게 설정하셨는데 강의처럼 설정하면 http로 시작안하면 baseUrl이 온다고 나와있어서'http://$ip/restaurant'/// If the `path` starts with 'http(s)', the `baseURL` will be ignored, otherwise, /// it will be combined and then resolved with the baseUrl.'http://$ip/restaurant/auth/token'이 이렇게 되는게 아닌지 궁금합니다. +그리고 Riverpod pdf자료 추가 안되어있는거 같은데 이것도 확인한번부탁드릴게요~ㅎ
-
미해결Flutter 초입문 왕초보편
SDK룰 찾을 수 없고 연결 할수도 없다고 합니다
SDK를 찾을수 없고 연결을 할수가 없다고 합니다.
-
미해결Flutter 초입문 왕초보편
Android studio first run 경고창이 떳습니다.
Android studio first run 경고창이 떳습니다.설치간에 SDK애 접근할수가 없다고합니다. 설치가 안되는데요. 구매한 강의를 진행할수가 없습니다. 어떻게 해결할수 있을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
이미지 생성?
챕터 10 만난지 며칠 등에서 사용하는 이미지 같은건 어디서 만들거나 가져오는 건가요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
37:58 근처 toString이라는 method에 대한 질문입니다.
print(parsedPeople); 을 했을 때 Instace of 'Person'으로만 나와서 Person class안에 toString이라는 method를 선언했는데요. class안에 method를 선언한 것 만으로 print(parsedPeople); 값이 바뀐게 맞나요?class에 선언한 method는 다 실행이 되는건가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
구글지도 사용하기 중 코드 질문..
아래 코드에서 _HomeScreenState 클래스에서 appBar와 Body를 나누신 후에, 코드 정리중 appBar는 함수로, _CustomGoogleMap과 ChooCheckButton은 위젯으로 분리하여 만들어주셨는데, 그 이유가 뭔가요? appBar는 위젯으로 관리를 하면 안되는건가요? import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @override State<HomeScreen> createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> { static final LatLng companyLatLng = LatLng(37.5233273, 126.921252); static final CameraPosition initialPosition = CameraPosition( target: companyLatLng, zoom: 15, ); @override Widget build(BuildContext context) { return Scaffold( appBar: renderAppbar(), body: Column( children: [ _CustomGoogleMap(initialPosition: initialPosition), _ChoolCheckButton(), ], ), ); } AppBar renderAppbar() { return AppBar( title: Text( '오늘도 출근', style: TextStyle( color: Colors.blue, fontWeight: FontWeight.w700, ), ), backgroundColor: Colors.white, ); } } class _CustomGoogleMap extends StatelessWidget { final CameraPosition initialPosition; const _CustomGoogleMap({ required this.initialPosition, Key? key, }) : super(key: key); @override Widget build(BuildContext context) { return Expanded( flex: 5, child: GoogleMap( mapType: MapType.normal, initialCameraPosition: initialPosition, ), ); } } class _ChoolCheckButton extends StatelessWidget { const _ChoolCheckButton({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Expanded( child: Text( '출근', ), ); } }
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
StateNotifierProvider 관련
강의 3:53초에 StateNotifierProvider의 제네릭에 <PaginationProvider, CursorPaginationBase>를 넣으셨는데 왜 PaginationProvider를 넣으셨는지 이해가 안돼요. 레스토랑 프로바이더 부분에서는 첫번째 제네릭으로 RestaurantStateNotifier가 들어가는데, ListView 일반화하는 코드에서도 Provider가 아니라 Notifier가 들어가야 하지 않나요???final restaurantProvider = StateNotifierProvider<RestaurantStateNotifier, CursorPaginationBase>( (ref) { final repository = ref.watch(restaurantRepositoryProvider); final notifier = RestaurantStateNotifier(repository: repository); return notifier; }, );
-
미해결Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)
폴더 구조화 질문
안녕하세요 강의 정말 잘 들었습니다.강의를 들은 후 위치권한 설정 등 기타 상황을 처리하기 위한 분기 로직과 위젯, 화면등을 구성하다 보니 강의에서는 View, Viewmodel, Model, Repository 정도로 나누었던 폴더에 서로 다른 기능의 여러 파일들이 들어가니 알아보기가 쉽지 않은데요,앱의 기능이 많아지고 복잡해지는 경우에는 프로젝트 폴더 구성을 어떻게 하는지 궁금합니다.기능별로 하위에 MVVM으로 폴더를 구성해야 할까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
primary 취소선이 있어요.. 어떻게 하나요?
(사진)
-
해결됨Flutter 앱 개발 기초
강의한 노트를 다운로드 방법
강의한 노트를 다운로드 강의한 노트를 다운 받으려면 어디서, 어떻게 하는지 조언 좀 부탁드립니다. 아무리 찾아도 관련 문서 다운로드 방법을 못찾겟네요,,도움 부탁합니다
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
android sdk android api 29 platform is missing
해당 경고가 위에 떠서 file->settings->language & frameworks -> android sdk들어가서 android 10.0("Q")를 설치하고 컴퓨터 껏다켜봐도 안 없어지네요;; 어떻게 없애죠?
-
미해결처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)
Provider와 Stateful
보통 위젯이 그려지는 상태가 바뀌는 상황일때는 stful 위젯으로 코드를 작성하는데, Provide강의에서는 Stateless위젯으로도 화면에 그려지는 위젯이 바뀌는 원리가 어떻게 되는건가요?Provider 만의 고유 특징인지 아니면 어떤 예외의 원리가 따로 있는건지 궁금해요!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
run
RiverPod ConsumerWidget 부분에 Increment(), Decrement() 를 하였을 경우 로그의 내용이 선생님의 화면처럼 명확하게 나오지 않는데...별도의 설정하는 부분이 있을까요? Update / Dispose 이런 내용이 전혀 나오지 않습니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
tag부분
원래 태그는 List<String>.from() 이런식으로 dynamic을 String으로 바꾸어줬던 것 같은데jsonSerializable에서는 List<String>으로 자동으로 바꾸어 주나요? 어떻게 String인지 아나요?