Frontend/Dart&Flutter
Data Fetching과 패키지 설치
괴발새발자
2023. 12. 15. 09:11
패키지 추가하기
Flutter나 Dart 패키지 pub.dev 라는 공식 패키지 보관소에서 받을 수 있음.
flutter pub add <라이브러리 이름>
비동기와 Future 타입
- Future<Response> : 미래에 일어나는 것. 유저 네트워크, 서버 메모리 문제로 느릴 수 있는 경우, 요청이 처리될 때까지 기다려야할 때. await과 같이 쓰임. 미래에 받을 결과의 타입을 알려줌. 완료되었을 때 Response 반환함.
- 비동기 프로그래밍(async programming) : API 에 요청한 후 응답을 반환할 때까지 기다리기. 어떤 일이 일어날 때까지 기다림. 프로그램이 side effect를 기다리도록 함. 예) 서버가 응답할 때까지 기다림.
import 'package:http/http.dart' as http;
class ApiService {
final String baseUrl = '<https://webtoon-crawler.nomadcoders.workers.dev>';
final String today = 'today';
void getTodaysToons() async {
final url = Uri.parse('$baseUrl/$today');
// 이 부분이 응답 받을 때까지 기다리라 (await)
// 비동기 함수 내에서만 사용할 수 있음.
final response = await http.get(url);
// 응답 상태가 성공일 경우
if (response.statusCode == 200) {
print(response.body);
return;
}
throw Error();
}
}
유용한 패키지들
- 외부 url을 열 때 : url_launcher
url_launcher | Flutter Package
flutter pub add url_launcher
- 로컬에 데이터 저장 : shared_preferences
shared_preferences | Flutter Package
flutter pub add shared_preferences
- data fetching : http
dart pub add http