Flutter 7

Flutter에서 json 파일 사용하기 - dynamic to String

Flutter 프로젝트 내부에서 json 파일을 사용할 때 값이 String이 아닌 dynamic으로 들어가면서 생긴 오류가 있었다. { "01호선": [ "중동", "도화", "간석", "개봉", "방학", "금정", "동암", "오산", // 등등 ], "02호선": [ "이대", "홍대입구", "건대입구", "구로디지털단지", "용두", "합정", ], // 등등... } 내가 사용하고자 하는 json파일은 대충 이렇게 생겼다! String jsonString = await rootBundle.loadString('asset/jsons/subway_stations.json'); final Map lineAndStations = json.decode(jsonString); selectedLine = ..

Flutter 2024.02.08

토큰 재발급 요청이 중복으로 나가는 문제 - 요청 대기열 만들어 해결

개인 프로젝트를 위한 플러터 앱에서 Dio Interceptor를 사용해서 토큰 에러가 나면 토큰 재발급을 위한 api로 요청을 보내 토큰을 재발급받는 로직으로 처리하고 있었다. 그런데 앱을 테스트할 때, 프론트에서 토큰 재발급 요청이 중복으로 날아가 서버에서 SQLIntegrityConstraintViolationException 이 발생하였다. 새로 생성된 refreshToken이 저장되는 과정에서 Duplicate entry 문제가 발생한 것인데, 로그를 찍어보니 프론트 상에서 토큰이 필요한 api를 중복으로 보낼때 적절한 처리가 되어있지 않아서 발생한 문제 같았다. 만약 인증이 필요한 여러 api를 호출하였는데, accessToken이 만료된 경우, 이 각 호출들이 Interceptor에서 같은 ..

Flutter 2024.02.06

Stateful, Stateless Widget LifeCycle

Widget widget은 모두 불변의 법칙을 갖고 있다. 위젯의 색 등 그 값을 변경해야 할때는 기존 위젯을 삭제해버리고 완전히 새로운 위젯으로 대체한다! StatelessWidget 라이프 사이클 class Test extends StatelessWidget { const Test({super.key}); @override Widget build(BuildContext context) { return const Placeholder(); } } StatelessWidget은 Constructor로 생성이 되고, 생성이 되자마자 build함수가 실행된다. 변경이 필요하면 새로운 위젯을 만들어버리고, 하나의 StatelessWidget은 라이프사이클동안 단 한번만 build함수를 실행한다. Statefu..

Flutter 2023.08.16

flutter android배포시 build에러 : Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.10

기존 앱부분의 코드에서는 오류가 없었는데 안드로이드로 빌드하려고 하면 뜬금 오류가 난다. 기본 생성되는 프로젝트 코드에서 문제가 생긴것 같다. 우선 app/build.gradle에서 deprecated된것으로 보이는 GradleException을 FileNotFoundException으로 바꿔준다. (사진은 오류난것처럼 보이는데 안드로이드 스튜디오로 열면 문제가 없다. ide상의 문제인듯싶다.) 그리고 아래부분을 dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } 아래처럼 정확한 버전으로 수정해준다. dependencies { implementation(platform("org.jetbrains...

Flutter 2023.08.08

flutter datepicker 선택날짜 초기화 이슈 해결

flutter로 로컬스토리지를 사용하는 앱을 개발하며 datepicker 오픈 패키지를 커스텀해서 사용하는 과정에서 문제가 있었다. https://github.com/sivaprasadnk/SimpleMonthYearPicker GitHub - sivaprasadnk/SimpleMonthYearPicker Contribute to sivaprasadnk/SimpleMonthYearPicker development by creating an account on GitHub. github.com 기존의 CupertinoDatePicker는 일을 없애고 년과 월 옵션만 넣도록 커스텀이 안돼서 위의 오픈소스 패키지를 사용하게 되었다. 내가 구현하고자 한 기능은 datepicker를 통해 원하는 날짜를 선택하면 ..

Flutter 2023.08.03