MockData

insert into jibbap_user(kakao_id,username,profile_image_url) values('11111','유저1','<https://k.kakaocdn.net/dn/dpk9l1/btqmGhA2lKL/Oz0wDuJn1YV2DIn92f6DVK/img_640x640.jpg>');
insert into jibbap_user(kakao_id,username,profile_image_url) values('22222','유저2','<https://k.kakaocdn.net/dn/dpk9l1/btqmGhA2lKL/Oz0wDuJn1YV2DIn92f6DVK/img_640x640.jpg>');
insert into jibbap_user(kakao_id,username,profile_image_url) values('33333','유저3','<https://k.kakaocdn.net/dn/dpk9l1/btqmGhA2lKL/Oz0wDuJn1YV2DIn92f6DVK/img_640x640.jpg>');
insert into jibbap_user(kakao_id,username,profile_image_url) values('44444','유저4','<https://k.kakaocdn.net/dn/dpk9l1/btqmGhA2lKL/Oz0wDuJn1YV2DIn92f6DVK/img_640x640.jpg>');
insert into jibbap_user(kakao_id,username,profile_image_url) values('55555','유저5','<https://k.kakaocdn.net/dn/dpk9l1/btqmGhA2lKL/Oz0wDuJn1YV2DIn92f6DVK/img_640x640.jpg>');
insert into jibbap_user(kakao_id,username,profile_image_url) values('66666','유저6','<https://k.kakaocdn.net/dn/dpk9l1/btqmGhA2lKL/Oz0wDuJn1YV2DIn92f6DVK/img_640x640.jpg>');
insert into relationship(user_id,group_id,username_in_group) values(1,1,'범덕1');
insert into relationship(user_id,group_id,username_in_group) values(3,1,'범덕2');
insert into relationship(user_id,group_id,username_in_group) values(4,1,'범덕3');
insert into relationship(user_id,group_id,username_in_group) values(5,1,'범덕4');
insert into relationship(user_id,group_id,username_in_group) values(6,1,'범덕5');
insert into relationship(user_id,group_id,username_in_group) values(7,1,'범덕6');
insert into jibbap_group(group_name,uuid) values('남의 집','222222');
insert into relationship(user_id,group_id,username_in_group) values(1,2,'난리범석');

http 통신은 따로 통신에 대한 dependency를 추가해줘야 한다

Api는 http 모듈을 통해 가능하다

get을 통해 가져오는 데이터들은 model을 선언해서 가져올 수 있다.

class WebtoonModel {
  final String title, thumb, id;

  WebtoonModel.fromJson(Map<String, dynamic> json)
      : title = json['title'],
        thumb = json['thumb'],
        id = json['id'];
}

widget에 Future 멤버 변수를 선언했다면 Future Builder를 통해 미래의 데이터에 접근할 수 있다.

만약 Future 멤버 변수를 가져오는 api가 어떤 future값에 달려있다면 late로 선언해서 사용할 수 있다

late Future<WebtoonDetailModel> webtoon;
late Future<List<WebtoonEpisodeModel>> episodes;
late SharedPreferences prefs;

@override
  void initState() {
    super.initState();
    webtoon = ApiService.getToonById(widget.id);
    episodes = ApiService.getLatestEpisodesById(widget.id);
    initPrefs();
  }

GestureDetector를 통해 터치 스와이프 등에 대한 이벤트 발생시 일어날 일들을 정의할 수 있다

Navigator.push를 통해 다음 페이지로 이동할 수 있다

flutter appkey 숨기기