React를 주로 개발하는 저에게 dispose란 단어는 조금 생소했습니다. 공식적인 단어의 뜻은 처리하다, 처분하다, 폐기하다 로 나타나고 개발쪽에서는 구독 해제, 메모리에서 리소스 해제 정도인 것 같네요. 아무래도 앱개발에서 메모리 관리가 중요하다보니 잘 알아둬야하는 키워드 같습니다. riverpod으로 상태관리를 하다보면 적절한 시점에 프로바이더를 dispose 해줘야 합니다. 주로 다음과 같은 상황에서 자주 사용됩니다. - 회원가입 혹은 폼 입력 화면에서 되돌아왔을 때, 입력 폼이 초기화되어있어야함 (임시저장기능이 없다고 가정할 때)- firebase 혹은 auth를 관리하는 상황에서 로그아웃 시 연결 해제- 앱의 메모리 절약 1번의 상황이 제가 Flutter로 개발하다 맞닥뜨린 이슈였습니..
Flutter
이슈발생특정 화면에 진입 시 구독하고 있는 riverpod 상태를 초기화 할 필요가 있어 다음과 같이 코드를 작성하였습니다. 참고로 이때는 riverpod의 autoDispose 기능을 몰랐었네요. 공식문서의 중요성을 다시 한 번 깨달았습니다. @override void initState() { super.initState(); ref.read(diaryCreateViewModelProvider.notifier).handleReset(); } View에서 최초로 한번만 실행하면 되기에 initState시 viewModel의 reset함수를 작동시키자 다음과 같이 에러가 발생하였습니다. 이슈파악에러 메세지를 통해 이슈를 파악해보겠습니다. Tried to modify a provider ..
스마트폰이 일상이 되어버린 시대에서 앱에서 공유기능은 필수가 되었습니다.점심시간만 되면 슬랙에 많은 배민 링크가 올라오거나 친구들끼리 카톡으로 맛집 링크를 공유하지 않으신가요 ? 사용자는 링크를 통해 쉽게 앱으로 이동할 수 있고, 서비스를 운영하는 측에서는 많은 사용자 유입을 기대할 수 있게되었죠. 최근에 테니스장 어플 '타이브레이크'의 웹버전을 개발하여 앱에서 공유할 수 있는 링크가 생겼습니다. 이번 포스팅에서는 share_plus를 통해 Flutter에서 앱 링크를 공유하는 과정을 가져보려합니다. 웹버전 구경도 한번 해보세요 ! https://tiebreak.vercel.app/ 타이브레이크내 손안의 테니스장, 타이브레이크tiebreak.vercel.app share_plusshare_plus는 F..
React Native와 Flutter를 선택할 때 고려해야할 것 중의 하나가 Code Push의 유무다. Code Push란 각 플랫폼의 앱스토어 리뷰 과정 없이 앱의 업데이트를 반영할 수 있는 서비스이다. 웹과 다르게 스토어의 심사를 받아야만 업데이트가 가능한 앱에게는 한줄기 빛과도 같은 존재이다. 스타트업이든 대기업이든 앱 서비스의 빠른 업데이트는 필수적이다. 결제 페이지에서 오류가 나는데 하루가 넘게 걸리는 심사과정만 기다리고 있다면 속이 타들어 갈 것이다. 그와중에 주말이 겹치거나 리젝이라도 당한다면 ? 기업 입장에서는 상상하기도 싫을것이다. 이 때문에 많은 앱 서비스에서 핫픽스가 필요한 부분은 웹뷰로 개발한다. 필자도 앱 회사에서 개발할 때 결제와 예약페이지 등에서 빠른 수정이 가능한 부분은 ..