9주완성! 프로젝트 캠프: 플러터

[유데미x스나이퍼팩토리] 9주 완성! 프로젝트 캠프: 플러터 강의 - 8일차 과제

judyshin 2023. 10. 22. 04:34

Dio 패키지

  • 기존 http 패키지보다 더 많은 기능을 담고 있다.
  • 특히, 요청대상에 대한 설정과 연결에 관한 정보를 미리 설정할 수 있다.
  • 요청 전이나 응답이 오고나서 데이터를 점검하거나 1차적으로 가공할 수 있다.
  • 파일(이미지), 다중파일 같은 FormData를 사용해야할 때 손쉽게 구현할 수 있다.

 Future 데이터 타입

  • 미래(Future)를 달리는 데이터타입.
  • Future 는 "알"이다.
  • Future<T> 의 T는 알을까면 나오는 데이터타입을 말한다.
  • await Future : Future가 끝날 때까지 기다리겠다.
  • Future.then: 일단 실행시켜놓고, 끝나면 처리하는 방법을 만들겠다.
  • async: 함수 본문 앞에 선언한다. 이 함수는 비동기 함수라고. 코드 내부에 await이 있을 시 반드시 써줘야 함.
  • await: 따라오는 Future(비동기)를 기다리겠다. 그리고 동기처럼 쓰겠다.

null-safety

  1. 내가 가질 변수가 null을 가질 수 있을 때, 데이터타입에 (?) 를 붙인다.
  2. 그렇게 하면, 다트도 해당 데이터를 계속 의심하고 긴장할 것이다.
  3. null일 수도 있을 때에 제어문을 통해 다뤄준다.
  4. null이 아닐 것을 확신하면 변수명 뒤에(!) 를 붙여준다.
  5. null인 데이터에 데이터를 넣어주려면 (??) 키워드를 사용한다. null일 시 (??) 뒤의 String이 대신 들어간다.

FutureBuilder 위젯

  • Future을 실행시켜서 나온 데이터를 위젯으로 보여주고 싶을 때 사용한다.
  • setState를 사용하지 않아도 된다.
  • Future를 대신 실행할 수 있는 매력적인 위젯이다.
  • Future를 실행하는 도중에 일어나는 상태를 ConnectionState라는 값을 통해 우리에게 알려준다.
    - ConnectionState.done : 데이터 확인 가능
    - ConnectionState.waiting : 데이터를 기다리는 중

과제 요구사항💻

📝작성한 코드

🖤결과 및 후기🖤

  • Shimmer을 오래 보여주고 싶어 getData()에 Future.delayed가 끝나면 데이터를 전달하게 했다.
  • connectedChecking 변수를 활용해서 FAB를 누르면 true 가 돼서 Spinkit을 활용한 로딩창이 보이고 connectivity_plus를 통해 네트워크 연결을 확인하면 Future.delayed가 끝나면 connectedChecking을 다시 false로 바꾸고 화면을 새로고침 해줬다.

본 후기는 유데미-스나이퍼팩토리 9주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다.

#유데미 #udemy #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #웹개발 #앱개발 #플러터 #flutter #개발 #안드로이드 #ios #단기캠프