[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 이전에 빠른 답변 주셔서 감사합니다. 현재 FetchMore 로딩 UI 작업하기 강의를 듣고 복습 중입니다. 그중에 CursorPaginationRefetching 상황은 데이터를 들고 있는 상황에서 새로고침을 하여 새로 데이터를 수신하는 중이라 이해 하였습니다. 이 코드가 현재 제가 강의를 진행한 상태에서는 불필요한 코드가 아닌가 생각이 들어서 질문 드립니다. CursorPaginationRefetching 조건은 아래와 같다고 강의하셨습니다. else { // 만약에 데이터가 있는 상황이라면 // 기존 데이털르 보존한채로 Fetch (API 요청)를 진행 if (state is CursorPagination && !forceRefetch) { final pState = state as CursorPagination; state = CursorPaginationRefetching( meta: pState.meta, data: pState.data, ); } 그리고 아래 코드 부분은 어떤 조건이든 무조건 실행되어 새로 데이터를 받아오는 코드입니다. final resp = await repository.paginate( paginationParams: paginationParams, ); 이 다음에 실행되는 코드는 state에 데이터를 넣는 과정으로 CursorPaginationFetchingMore 조건이 아니면 무조건 else가 실행되어 위에서 받아온 새로운 데이터를 state에 대입하는 과정을 거치게 됩니다. if (state is CursorPaginationFetchingMore) { final pState = state as CursorPaginationFetchingMore; // 기존 데이터에 // 새로운 데이터 추가 state = resp.copyWith( data: [ ...pState.data, ...resp.data, ], ); }else{ state = resp; } 다시 저의 의문점을 정리하면 FetchMore 로딩 UI 작업하기까지 진행한 상태에서 코드를 보면 CursorPaginationFetchingMore 조건이 아니라면 무조건 state = resp 가 실행되기 때문에 state = CursorPaginationRefetching(meta: pState.meta,data: pState.data )를 지정하는 과정이 있든 없든 상관이 없는것 같아보인다는 점 입니다. 결국 CursorPaginationRefetching일때 RestaurantScreen에서 작동하는 로직이 없는 거 같은데 맞나요?? 아니면 제가 놓친 부분이 있나요??
EntityManager는 빈 스코프가 프록시로 설정된다고 알고있습니다. 하지만 결국은 원본 엔티티매니저를 사용하는것이라고 이해했습니다. 그러면 요청이 들어오면 엔티티매니저를 사용하는데 엔티티매니저 내에 영속성 컨텍스트가 있고 싱글톤으로 유지된다면 영속성컨텍스트가 다른 요청이랑 공유되는게 아닌가요? 싱글톤으로 등록되어 있는데 영속성컨텍스트가 공유되지 않는 이유가 궁금합니다. 엔티티매니저가 빈인데 어떻게 요청마다 생성되는것인지 궁금합니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
토큰을 생성하는 방식이 변경되었습니다. 강의의 내용과 ui가 달라서 조금 헤맸습니다. configuration page 들어가서 Primary Certificate를 enable하고 그 아래 No Certificate를 delete (이메일을 입력필요)합니다. 그 후 아래 Features에 Temp token for audio/video call의 Generate temp RTC token링크를 타고 들어가면 같은 과정이 나옵니다! 한번 확인 부탁드립니다!
[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
스플레시 데이터 로드 및 인증 체크 프로세스 영상에서 11분 쯤에 AppDataLoadState 클래스 안에 copyWith 함수를 또 하나 만드시는 이유가 궁금합니다 ㅠ 정확히 어떤 역할을 하는지 왜 만들어 주는지 flutter나 dart의 기능이 아닌 그냥 임의적으로 copyWith라는 이름을 쓴 함수?생성자? 인지 이 3가지가 궁금합니다
[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
구글 폰트를 사용하면 계속 아래와 같은 오류가 뜹니다. flutter: Error: google_fonts was unable to load font NotoSans-Bold because the following exception occurred: Exception: Failed to load font with url https://fonts.gstatic.com/s/a/18e3a4e5a713559a074e8c5482279ccad0cf81a0e5762304e0ddf94b5dd1ebac.ttf : HandshakeException: Connection terminated during handshake flutter: If troubleshooting doesn't solve the problem, please file an issue at https://github.com/material-foundation/flutter-packages/issues/new/choose . [VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: Exception: Failed to load font with url https://fonts.gstatic.com/s/a/18e3a4e5a713559a074e8c5482279ccad0cf81a0e5762304e0ddf94b5dd1ebac.ttf : HandshakeException: Connection terminated during handshake #0 httpFetchFontAndSaveToDevice (package:google fonts/src/google_fonts_base.dart:263:5) <asynchronous suspension> #1 loadFontIfNecessary (package:google_fonts/src/google_fonts_base.dart:180:11) <asynchronous suspension> Restarted application in 338ms.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
강의 잘따라가다가 오랜만에 같은 환경에서 다시 개발하려 환경을 체크해보니 오류가 발생해서 문의 남깁니다.. 우선 cmd에서 flutter 명령어를 치면 cmd창이 강제로 종료됩니다. powershell, cmd, android 터미널 전부 Unable to find got in your PATH. 가 발생합니다. git 터미널에선 flutter 명령어가 정상적으로 작동 환경변수 다 체크하고 관련 오류를 다 찾아보았는데 해결이 안되네요.. ㅠ
안드로이드 스튜디오에서 코딩하는 것까지는 괜찮은데, 에뮬레이터로 실행해서 화면 띄우는 거까지 보려면 속도가 너무 느립니다. 에러가 있을 경우에는 더 답답하고요. 일반적인 사무, 인터넷용으로는 답답함을 전혀 못 느꼈는데, 유독 코딩할 때만 너무 느리네요 컴퓨터를 새걸로 바꿔야 하나 싶기도 한데, 안드로이드 스튜디오 에뮬레이터를 원활히 돌리려면 컴퓨터 사양이 어느 정도 되면 될까요? (gpu도 좋은게 있어야 할까요? 제가 게임은 별로 안해서요..) 참고로 현재 컴퓨터 사양은 cpu: amd 3300 ram: 8기가 ssd: 500gb gpu: 메인보드 내장형 입니다.
안드로이드 스튜디오에서 코딩하는 것까지는 괜찮은데, 에뮬레이터로 실행해서 화면 띄우는 거까지 보려면 속도가 너무 느립니다. 에러가 있을 경우에는 더 답답하고요. 일반적인 사무, 인터넷용으로는 답답함을 전혀 못 느꼈는데, 유독 코딩할 때만 너무 느리네요 컴퓨터를 새걸로 바꿔야 하나 싶기도 한데, 안드로이드 스튜디오 에뮬레이터를 원활히 돌리려면 컴퓨터 사양이 어느 정도 되면 될까요? (gpu도 좋은게 있어야 할까요? 제가 게임은 별로 안해서요..) 참고로 현재 컴퓨터 사양은 cpu: amd 3300 ram: 8기가 ssd: 500gb gpu: 메인보드 내장형 입니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 상태관리 프로젝트에 적용하기 부분이 많이 어렵네요 여러번 강의를 보고 restaurant_provider.dart의 코드를 보며 이해를 하려 했는데 제가 이해를 한것이 맞는지 몰라 이곳에 질문을 남기게 되었습니다. CursorPagination의 상태 관련 5개중 아래 두가지 상태를 제가 이해한게 맞나요?? 두가지 모두 로딩중인데 아래 상황에서 로딩중 CursorPaginationRefetching: 데이터를 받아온 상태에서 다시 새로고침을 하여 로딩 중 CursorPaginationFetchMore: 데이터를 받아온 상태에서 새로운 데이터를 추가 하는 중 바로 반환하는 상황 바로 반환하는 상황이라는 것이 데이터를 받아 오는 중, 즉 로딩중 일때나 더이상 추가 데이터가 없을 때paginate() 함수 바로 빠져 나와야 한다는 뜻인가요?? 그리고 fetchMore가 아닐때 - 새로고침의 의도가 있을 수 있다. fetchMore가 아닐때라고 주석을 달아 주셨는데 이것은 false일때라는 뜻인가요?? 그럼 감사합니다 .
[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
안녕하세요 개남님 (base) choejonghwan@choejonghwan-ui-MacBookPro review_book % flutter pub run build_runner watch 이거 하고나서부터 [INFO] Generating build script completed, took 149ms [INFO] Setting up file watchers completed, took 4ms [INFO] Waiting for all file watchers to be ready completed, took 201ms [INFO] Reading cached asset graph completed, took 34ms [INFO] Checking for updates since last build completed, took 470ms [INFO] Running build completed, took 6ms [INFO] Caching finalized dependency graph completed, took 20ms [INFO] Succeeded after 28ms with 0 outputs (0 actions) 여기까진 왔는데 멈추네요 여기서... part 'naver_book_search_option.g.dart'; 가 뜨지도않고.. 사진 두개첨부합니다. 감사합니다.
안녕하세요? 강의를 듣다가 궁금한 것이 생겨 질문 드립니다. 자바의 정렬 기본 알고리즘 시간 복잡도와 이진 탐색 시간 복잡도가 nlogn인 건 이해했는데, 코드부를 보면 이중 반복문이 나오고 있습니다. 앞 서 강의에서 반복문을 기준으로 이중 반복문이면 n의2승이라고 말씀하셨는데, 이 중 반복문을 썼는데도 nlogn이 되는 건 반복문이 진행되는 동안 절반씩 찾기 때문인가요?? 만약 이중 반복문으로 시간 복잡도가 올라간다면 이중 반복문을 쓰지 않고, 해결하는 방법을 알려주실 수 있으실까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
final baseBorder = const OutlineInputBorder( borderSide: BorderSide( color: INPUT_BORDER_COLOR, ), ); 이 코드를 CustomTextFormField 클래스의 필드로 넣지 않고 build 메서드 안에 작성하신 이유가 따로 있을까요? 이렇게 작성하면 렌더링될때마다 baseBorder가 만들어져야하니 메모리관리면에서 손해인거 아닌가 싶어서요!