[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
https://riverpod.dev/ko/docs/migration/from_state_notifier riverpod 2 공식문서에 보면 Notifier/ AsyncNotifer 가 새롭게 도입되면서 StateNotifier는 더이상 사용되지 않는다고 나오는데 새로운 방식 강의 업데이트 안 해주시나요...?
안녕하세요. 강의 잘 보고 있습니다. remote data source impl 관련해서 질문이 있습니다. @prod @Singleton(as: CommunityRemoteDataSource) class CommunityRemoteDataSourceApiImpl implements CommunityRemoteDataSource { final _dio = Session().dio; @override Future<CommunityResponseDTO> fetchCommunities() async { Response<dynamic> response = await _dio.get('get/community/path'); final responseDto = CommunityResponseDTO.fromJson(response.data); return responseDto; } } CommunityRemoteDataSource 의 구현체 CommunityRemoteDataSourceApiImpl 를 만들어서 사용중입니다. ApiImpl 은 실제 서버와 통신중 이며, http 라이브러리 Dio를 사용하고 있습니다. 여기서 테스트를 위해 DioMock 객체를 만들어서 사용하고자 합니다. 원래 CommunityRemoteDataSourceApiImpl 에 final _dio = Session().dio; 로 싱글턴으로 dio를 내부에 객체를 생성하고 있는데 이거를 주입받는 식으로 변경하여 테스트 시만 CommunityRemoteDataSourceApiImpl(DioMock()) 을 넣는 것인지, 아니면 CommunityRemoteDataSourceApiMockImpl 를 새로 또 만드는지 궁금합니다. 만약 CommunityRemoteDataSourceApiImpl(DioMock()) 로 주입을 받는 식이라면 Response<dynamic> response = await _dio.get('get/community/path'); final responseDto = CommunityResponseDTO.fromJson(response.data); 해당 코드들이 Dio() 일 때, DioMock() 일 때 달라야 할 것 같은데 어떻게 처리하는 것이 맞는지 궁금합니다. 감사합니다.
글에 두서가 없어도 양해 바랍니다 이 수업 수강 이전에 코딩 문제를 풀 때 파이썬으로 재귀함수를 사용했던 적이 있습니다. 그때 알게 된것이 파이썬의 재귀함수에는 기본적으로 깊이의 제한이 있다는 것입니다. sys.recursionlimit()으로 확인해보니 재귀호출을 1000이상 못하도록 값이 제한되어 있고 이 값을 늘려서 사용하는것은 별로 추천되는 방법이 아닌걸로 알고 있습니다. C언어 사용할때에는 속도면에서 제한도 없고 파이썬보다 속도도 월등하다보니 재귀를 자주 사용했었는데 파이썬에서 재귀함수로 풀어야 하는 경우가 있을까요?
안녕하세요. 맥북에서 Android Studio와 아이폰간에 USB 케이블을 연결하여 앱 실행을 하면 아이폰에 Flutter APP 아이콘이 생깁니다. 그리고 USB 케이블이 연결된 상태에서는 화면이 활성화되어 있을 때에는 앱 실행이 잘 됩니다. 그런데 USB 케이블을 제거하고 APP을 실행하면 실행이 안됩니다. 이 문제를 해결하려면 어떤 조치를 해야 할까요?
age_bin_list = np.arange(10, 80, 10) df['age_bin'] = pd.cut(df['age'], bins = age_bin_list) pivot_df = df.pivot_table( index = 'age_bin', columns = 'region', values = 'charges', aggfunc = 'median' # 각 구간에 해당하는 값을 중간값을 사용하겠다. ) pivot_df # 각각의 값들에 대해 크기를 가늠할 수 있게끔 시각화(주로 색상)하는 방법 # 2D 형식으로 준비된 데이터를 Seaborn heatmap으로 시각화 # annot 인자를 통해 각 셀의 값 표현 가능 fig, ax = plt.subplots() sns.heatmap(pivot_df, ax = ax, annot = True) 코드 똑같이 따라했는데 왜 저는 표에 수치가 다 표현이 안되는 건가요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, 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에 넣어 줄 수 있는 다른 값이나 고라우터의 리다이렉트 함수를 또 실행시켜줄 장치가 있을까요?
안녕하세요 강사님 ㅎㅎ 현재 챕터도 이전과 같은 증상인데 어떻게 확인하면 좋을까요? Github snapshot: https://github.com/dimz119/learn-python-django/tree/form_view 에서 다운받아서 실행시켜도 제가 작성한 코드랑 똑같은 문제가 발생하는데 확인할수있는 방법이있을까요??
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
비디오플레이어 강의 중 이 부분에서 질문할 것이 많습니다... 질문1. initialize() 함수가 컨트롤러를 초기화하는 함수라고 말씀하셨는데, 바로 윗 줄에서 컨트롤러가 관리할 파일을 고른 것 아닌가요? 바로 초기화시키는 이유가 궁금합니다. 질문2. initState안에서 어떻게 바로 setState를 실행시킬 수 있는지 궁금합니다. setState는 build가 실행된 후 clean인 상태에서만 실행할 수 있는 것 아닌가요? 질문3. 질문2와 이어지는 질문인데요, 이 전체적인 state의 라이프사이클이 어떻게 돌아가는지 궁금합니다. 이 전 프로젝트까지는 어찌어찌 잘 따라왔는데 갑자기 벽에 막힌 기분이네요 ㅜㅜ 긴 글 읽어주셔서 감사합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 저는 강의처럼 리버팟 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개의 프로젝트로 오늘 초보 탈출!
질문있습니다 프로그램이 깨진건지 아님 업그레이드 해서 그런지 이상하네요 증상: 첨부 사진 참조 1. ElevatedButton 에서 둥그런 버튼 모양 나옴 2. appBar 바탕색이 흰색으로 바뀜, 원래 파란색 임 2일 전에 컴파일 에러가 계속 생겨서 찾아보니 flutter clean 하구 flutter upgrade 하라구 해서 했는데 안되구 C: 드라이브 용량이 없어서 좀 늘렸더니 에러는 없어졌습니다. 그런데 그때부터 위 증상 이 생기네요. 앱바에 color 명령주면 파란색으로 바뀌기는 합니다. 혹시 최신 버전으로 업그레이드 되서 그런건가 해서 이전 버전으로 환원시킬려는데 방법이 있는지요.? 아님 프로그램 일부가 깨져서 다시 깔아야 하는건가요. 다시 깐다면 어찌 깔아야 할지도 모르겠구 해서 질문드립니다. pubspec.yaml 파일 내용중 현재 : version: 1.0.0+1 environment: sdk: '>=3.2.6 <4.0.0' ------- 2일 전에는 version: 1.0.0+1 environment: sdk: '>=3.1.3 <4.0.0'