Skip to content

VintageAppMaker/githubflutter

Repository files navigation

githubflutter

flutter로 만들어보는 github api 예제

  1. 통신은 dio와 retrofit 사용
  2. 사용시 다음과 같은 방법으로 코드를 생성해야 함
// @RestApi(baseUrl: "")가 정의된 파일에서 시작.... 
// <= 레트로핏 Interface 정의파일 (예제에서는 RestClient.dart)

// 0. 참고사이트(레트로핏, dio)
// https://pub.dev/packages/retrofit
// https://pub.dev/packages/dio

1. retrofit API가 선언된 파일(이곳)에서 데이터 정의
정의 시 @JsonSerializable()으로 선언하고
데이터를 정의하며 

직렬화에 필요한  
fromJson(), fromJson() 함수를 같이 선언 후, 
[파일명.g.dart]에서 생성된 값으로 대입하는 방법으로 구현한다. 

// ex)
@JsonSerializable()
class User {
  String? login;
  int? repos;
  int? gists;
  int? followers;
  int? following;
  String? bio;
  String? avatar_url;

  User({this.login, this.repos, this.gists, this.followers});

  // serialization을 위한 함수
  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
  Map<String, dynamic> Function(User instance) toJson() => _$UserToJson;

}

대입시 넣는 함수는 _$함수명으로 한다. 
아직 [파일명.g.dart]이 생성되지 않았기에  
개발환경에서는 존재하지 않아 에러를 발생할 것이지만 무시한다.  

2. retrofit 제너레이트 코드를 사용하기 위해 
part '파일명.g.dart'를 수동으로 정의한다. 

3. 터미널에서 실행
flutter pub run build_runner build(1번만 실행일 때는 build 소스 수정시마다 실행은 watch)

4. 빌드가 된 후에는 파일명.g.dart가 생성되어 에러가 발생하지 않을 것이다. 
그리고 이대로 사용해도 되지만, 정의된 데이터를 따로 파일로 관리하는 것이 편리하다.
단, fromJson(), fromJson() 함수를 정의한 내용을 [파일명.g.dart]에서 
가져와서 데이터가 정의된 같은 파일내에서 기술해야 한다. 

아래소스 링크

githubdata.dart 링크

  1. github api에 사용된 예제는 인증키가 없으므로 서버에서 종종 에러를 발생할 것임.

  2. web 빌드화면

  1. desktop 빌드화면

  1. Android 빌드화면

About

Flutter로 만든 github API 예제

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors