ref : 코딩 애플[Flutter로 만드는 iOS, Android 앱] 강의
반영구로 state 를 저장하고 싶을 때에는
폰 메모리 카드에 저장한다.
이때 shared preferences 이용
map 자료 저장할 때에는 json으로 바꿔서 저장한다.
이때 jsonEncode() 사용
json을 map으로 바꿔서 사용하고 싶으면
jsonDecode() 쓰면 된다.
페이지 이동할 때 GestureDetector 사용
페이지 전환 애니메이션 넣고싶을 때
1. CupertinoPageRoute -> 아이폰 스타일
2. PageRouteBuilder -> 커스텀 애니메이션 가능
3. Hero()
등등 방법이 있다.
부모에 있는 state 을 자식에서 쓰고 싶을 때 3 step으로 보내는거 앱이 커지면 번거로워진다
Provider 사용하자
state 를 저장하는 Store 만들어서 관리하면 된다.
이 Store 안에는 state 와 state 변경함수들을 넣어놓는다.
재랜더링할 때에는 이제 setState 할 필요없이 notifyListeners() 써주면 됨.
(ChangeNotifier로 만듦)
부모위젯에서 보내주는 과정은 부모 위젯을 ChangeNotifierProvider() 로 감싸주는 것이다(Store 여러개일때에는 MultiProvier)
GET 요청해서 얻은 데이터를 state 에 넣고싶으면 마찬가지로 Store에 getData 하는 함수 만들어줘서 받아오면 편함.
+(추가)
Provider 사용해서 Firebase 의 데이터들 관리하는 방법을 찾던 중 너무 맘에드는 레퍼런스를 찾았다
https://morioh.com/p/38d963805a67
위젯 로드 될 때 함수를 실행하고 싶으면 initState 사용하자