ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1월 28일 -Flutter 3
    CodeingTestPrac 2022. 1. 29. 18:09

    Flutter 와 서버를 서로 연결하는법

     

    server -  serving , 서빙하는 직업에서 온 단어 , 

    지금 이해한 바로는 데이터를 전달, 요청을 들어주는 역할로 이해를 한다.

     

    server ex) 

    FireBase , Spring cloud , gcp ?

     

     

     

    JSON :

    JavaScript Object Notation (JSON)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다.

    데이터의 자료구조 중하나로 서버 api 를 통해 전달 받는 데이터의 형식중 하나.

     

    JSON 의 문자열 1 . map (key - value) :    { } 로 포장되어있다.    , 2 . List of  Maps  [] 로 포장되어있다.

     

    JSON 을 서버에서 받아올때 우리는 dart (flutter 언어) 에  맞는 형식이 필요하다.

    즉  변환하는 코드가 필요하다. 표현을 하면  : JSON ->  PODO (Plain Old Dart Object)

    ----------------------------------------------------------------

    의문 : flutter 는  why ? Dart ?

    dart : 2011 Google 이 개발한 Client-side language

    Client-side : a.k.a front-end /  opposite Server-side , 

     

    from: https://dart.dev , Dart support platform

     

    Dart 는 배포시 사용하는 컴파일 방식과 개발시 사용하는 컴파일 방식이 다르다.

     

    JIT (Just In Time compile , ex Hot Reload.).    pros :  more confidence in Develop app ,   / cons : slow building at compile verse as native app

     

    AOT(Ahead Of Time Compile) :       pros : progress in runtime , 

     

    Snapshot :최초 실행시 파일 몇개를 미리 올려서  로딩속도를 빠르게 한다.

     

    Flutter 코어 개발자가 Dartlang 코어 개발자다.

    json_serializable/

     

    json_serializable | Dart Package

    Automatically generate code for converting to and from JSON by annotating Dart classes.

    pub.dev

    ->>>>> flutter 에서 제공하는 JSON 을 다루는 라이브러리 같다 . 

     

    ----------------------------------------------------------------

     

    다시 돌아와서 ,  변환하는 코드가 필요하다. 표현을 하면  : JSON ->  PODO (Plain Old Dart Object)

    이를 위해  factory method 를 이용한다, 

     factory User.fromJson(Map<String, dynamic> userMap) {
        return User(
          userId: userMap['id'],
          name: userMap['name'],
          email: userMap['email'],
          phone: userMap['phone'],
          company: userMap['company'],
        );

    factory method : Json deserialize

    serialize : data -> string 변환 

    deserialize : 위작업의 반대 

     

     Map<String, dynamic>  String key 와 dynamic value로 이루어진 map 이라고 정의.

    key 는 언제나 문자열 , value 는 유동성을 위해 dynamic 

     

    if , json is map's list   ->  Map<String, String>

     

     

     

     

     

     

     

     

     

     

     

    post mode : ?

     

    import 'package:http/http.dart' as http;

     

     

    응답 예상 json file code maybe
    {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
    "street": "Kulas Light",
    "suite": "Apt. 556",
    "city": "Gwenborough",
    "zipcode": "92998-3874",
    "geo": {
    "lat": "-37.3159",
    "lng": "81.1496"
    }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
    "name": "Romaguera-Crona",
    "catchPhrase": "Multi-layered client-server neural-net",
    "bs": "harness real-time e-markets"
    }
    },

     

    'CodeingTestPrac' 카테고리의 다른 글

    2월 9일  (0) 2022.02.09
    2월 1일 -Flutter,Flash app ,Class, navigation button, Heroaction  (0) 2022.02.01
    1월 31일-Flutter 4 /json 파싱  (0) 2022.01.31
    Flutter2  (0) 2022.01.21
    Flutter 1  (0) 2022.01.20
Designed by Tistory.