[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 좋은강의 잘 듣고 있습니다 앱을 처음 제작해 보고 있는데 일반적으로 앱은 설치 후 한번만 로그인하면 삭제하지 않는 동안에는 앱 실행 시 로그인은 다시 하지 않는 것으로 알고 있습니다 강의 내용을 보면 리프레시 토큰까지 만료되면 다시 로그인 하는 화면으로 가게 되어 있는데 일반적인 다른 앱은 리프레시 토큰 유효기간을 정말 길게 설정하는 건가요? 아니면 사용자가 최초 로그인 시 로그인 성공하면 아이디랑 패스워드를 저장했다가 리프레시 토큰까지 만료되면 저장한 아이디랑 패스워드를 불러와서 다시 로그인 하는 과정이 있지만 사용자 눈에는 보이지 않는 것인가요? 아이디랑 패스워드를 저장해 놓지 않으면 리프레시 토큰까지 자동으로 다시 받아오는 것은 불가능할 거 다른 앱들은 어떻게 한번만 로그인 하면 계속 자동로그인이 되는지 궁금합니다
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
장바구니가 현재 프로바이더를 통해서 불러오는 방식을 사용중인데, 이렇게 하는 경우 처음 유저가 로그아웃 하고, 다음 유저가 들어왔을 시에 프로바이더 값이 그대로 유지되어서 이전 유저의 장바구니를 열람할 수 있는 문제가 생기는데, 이런 경우를 대비해서 로그인 시에 모든 프로바이더 값들을 초기화시키고 싶은데, providerscope 안에 있는 모든 프로바이더들을 쉽게 초기화시킬 수 있는 방법이 있을까요? 감사합니다
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
다른분들께 비슷한 답변 주신것들 모두 읽었는데요.. 아무리 해도 이해가 안가서요... 강의에서요 border속성은 기본 속성이라고 하셨으니 focusedBorder, enabledBorder, disabledBorder, errorBorder, focusedErrorBorder 의 기본 속성이라고 생각합니다. 그럼 예제에 focusedBorder, 를 입력하기 전에는 border 속성을 가져야 하는 거 아닌가요? 또한 enabledBorder도 입력하기 전에는 border 속성을 가져야 하는 거 아닌가요? 마치 border은 작동을 안하는 거 처럼 보여집니다. 그래서 기본 속성이라는 말이 이해가 안갑니다. 적용이 안되는 기본 속성이라는건 없으니까요 . 이해가 안가서 질문을 남깁니다...! ㅠㅠ 선생님...!
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요! 현재 설치한 go_router는 13.2.4 버전입니다. routerProvider에서 만들어주는 GoRotuer의 redirect에 authProvider에 있는 redirectLogic(GoRouterState state)함수는 파람은로 GoRouterState 를 받기로 되어 있지 않나요? 그래서 저는 아래처럼 routerProvider에서 만들어주는 GoRotuer의 redirect에 redirectLogic(state)를 넘겨줘야 에러가 없던데 강의에서는 어떻게 그냥 되셨을까요...? 아래는 강의 스크린샷입니다. 궁금해서 여쭤봅니당
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 강사님, 잘 수강 중에 질문이 있습니다. retrofit이 만들어내는 restaurant_repository.g.dart 에서 getRestaurantDetail 함수 리턴쪽에 보시면, final value = RestaurantDetailModel.fromJson(_result.data!); 와 같이 되어 있는 것을 확인할 수 있습니다. 근데 백단에서 보통 data만 던지지 않고 응답코드, 메시지 등 정형화된 포맷으로 줄 수 있다고 생각이 듭니다. 예를 들어, 아래와 같이, { "code": 200, "message": "~", "result": { ~ } } 온다면, 혹시 _ result.data !.['result'] 와 같이 생성이 될 수 있도록 커스터마이징 할 수 있을까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 코드팩토리님. 강의를 참고하여 한가지 기능을 만들어보고자 했습니다. 현재까지 데이터모델을 생성하고, 데이터모델 타입으로 된 리스트들을 저장하는 프로바이더를 생성하여 read로 리스트를 추가 및 삭제하며, watch를 통해 목록을 보도록 하였습니다. 그런데 제가 추가하고자 하는 기능 중, consumerWidget과 같은 위젯을 사용하지 않고 때에 따라 함수를 부를 때에 함수 내부에서 프로바이더에 저장된 데이터목록을 불러와야 하는 상황이 되었고, 코드를 작성해보았는데 역시나 위젯이 아닌 함수에서 호출을 하려니 watch, read등 작동하지 않는 문제가 발생하였습니다. void scheduleAlarmFishs() async { //ref로 데이터 가져오기. final container = ProviderContainer(); final fishs = container.read(fishListProvider); // read 사용 print('Retrieved ${fishs.length}'); } 혹시 이런식으로 함수를 통한 접근은 아예 불가능한 건가요?ㅠㅠ
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
이 강의를 보고 영감을 받아 작은 프로젝트를 진행중에 있는데 궁금한점이 있어서 올립니다. 알람 기능을 개발하면서 android_manager_alarm_plus 패키지를 사용중인데 최근 안드로이드 버전은 Doze모드로 인해 백그라운드에서는 알람매니저가 제대로 활성화되지 않는다고 들었습니다. 저 역시 만든 코드를 테스트하면 백그라운드 상황에서 알람 상태처리까지는 이루어지더라도 포그라운드 화면으로 넘어가는(쉽게 말해 홈화면이나 꺼진 화면에서 알람 화면이 떠야하는) 과정이 이루어지지 않아 다른 방법을 모색하고 있는 중입니다. 코팩님도 백그라운드에서 처리하는 앱개발이나 유지보수를 해보신 경험이 있으셨다면 안드로이드 버전이 올라갈수록 어떻게 진행하셨는지 궁금해서 여쭤봅니다. 최근 구글링을 하다보니 FCM을 권장한다는 말이 있던데 이건 아무래도 서버통신이다보니 네트워크연결이 반드시 필요해보이는 것 같아 고려중에 있습니다
안녕하세요. 디컴파일을 통해 루팅 우회하기 수업에서 질문이 있습니다. 영상에 나와있는 그대로 c.smali 파일에서 super를 su로 변경, MainActivity.smali에서 라인87의 if-eqz를 if-nez로 변경 후 서명하여 nox에서 설치를 했습니다. 하니, 아래와 같이 텍스트만 변경이 되고 앱이 꺼지는 현상이 여전히 있었습니다.(MainActivity.smali 라인 71의 if-eqz를 if-nez로 변경도 해보았으나 동일 현상) 혹시 몰라서 c.smali에서 수정하고 MainActivity.smali에서는 수정을 안하고 혹은 그 반대로도 해보는 등 여러가지로 진행을 해보았는데요. 동일한 현상이 확인되어 영상과 같이 되지 않아 질문드립니다. 감사합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
retrofit을 쓰다가@Get(path)Future<레스토랑디테일모델> get레스토랑디테일…요롷게 쓰셨는데 선생님께서 말씀해주시길 클래스 타입과 json타입이 딱 맞아야 한다고 해주셨잖아요 여기서 반환되는 클래스 타입을 json 시리얼라이즈 로 편하게 만들고 있는데 , json 시리얼라이데이션 안쓰고 수동으로 클래스를 만들어도 사실 되는거죠??!
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
선생님께서는 tabbarview에서 리스너 만들어 등록하셨는데 리스너 안쓰고 1) currentindex: controller.index를 코드에 넣어도 되지 않나요?!?! 리스너 안쓰고 2) on tap 에서 controller.animateTo(index)밑에 추가로Setstate( this.index=index) 이렇게 해도 되지 않나요 ?! 예상에는 2개다 다 가능할 거 같은데 맞는지 질문 남깁니다 ..!
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Ontap 같은 경우는 Setstate를 써서 값 변경시 적용해주는데 음…onchanged 같은 건 발 this.변수 = 변수 이렇게. Setstate를 쓰지않고 바로 적용이 되는거 같아요 …,, 코드를 들여다보면 무슨차이가 있길래 Setstate 가 한쪽은 있고 한쪽은 없는 걸까요
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 코팩님. 파라미터 전달 과정에 생긴 이슈가 있어 문의드립니다. 현제 client에서 post로 데이터를 전송하고 body에는 itemPrice라는 키로 double형 데이터를 보내고 있습니다. 로그를 찍어보면 22000.0 으로 찍히고 api서버에 제대로 넘어가서, api서버는 맵으로 받게 되어있어서 형변환해서 사용하고 있습니다. 이번에 테스트겸 web으로 빌드를 하여 배포를 하고 테스트를 진행을 하고 있는데요, 동일한 페이지에서 동일한 액션을 했을때 값이 double형이 아닌 22000으로 전달이 되는것이 확인되었습니다.... 서버에서는 int로 왔기 때문에 형변환 오류가 발생했구요. 값을 보내기전과 dio onRequest에서도 값을 찍어봐도 dobule형이 아닌 Integer 형인 2200으로 되서 보내지더라구요. 애초에 itemPrice로 넣는 값은 double 형 변수에 담아 값을 관리합니다. dynamic 타입읩 맵에 dobule형 변수 값을 넣어도, 값이 integer 형태면 dobule로 안들어 가는 것 같습니다(웹으로 빌드시에) 이런경우 조금 난감한데요 , 어떤식으로 풀어야할지 조언 부탁드립니다. 감사합니다.