본문 바로가기

Book/개발관련

Do it! 플러터 앱프로그래밍 1~2장

 요즘 Google에서 다양한 제품을 밀고 있는것 같습니다. 이전에 사용해보았던 Firebase도 그렇지만 Android 쪽이 확실히 도큐먼트도 친절하고, 한글로 번역이 되어있는 경우가 많아 사용하기에 편한것 같습니다.

 저희 회사는 네이티브앱용 모듈만 개발하다보니 크로스 플랫폼 쪽으로는 공부해 본적 없었는데 가볍게 공부해보고 싶은 생각이 들어 책을 보면서 정리해보려고 합니다. 

 

1. 플러터 특징

  1) 높은 개발 효율

  2) 유연한 사용자 인터페이스(Widget 제공)

  3) 빠른 속도(Skia Engine)

  4) Google에서 개발

    -> Android Studio에서 Plugin의 형태로 설치 및 사용 가능

 

2. 다트

  -> Google이 웹 프런트엔드 구현을 위해 개발한 언어로 플러터 환경에서도 사용됨

  1) 특징

      - 모든 변수가 객체이며 Object 클래스를 상속 받음

      - public, private 사용 불가(노출시키지 않으려고 할 경우 변수나 함수 앞에 _(언더바) 작성

      - Null Safety 지원

      - var(자료형 추론) 형식과 int, String등의 특정 자료형을 명시하는 방식 둘다 사용 가능

  2) 비동기 처리 방식

    -> async와 await 키워드를 사용하여 비동기 처리 구현

    -> 함수 이름뒤 중괄호 앞에 async를 사용하여 비동기로 처리

    -> 비동기 함수 안에서 await 사용시 이후 작업은 await 처리를 완료하고 결과 반환후 진행

  3) JSON 사용

    -> import 'dart:convert'; 필요

    -> jsonDecode, jsonEncode를 사용하여 인코딩, 디코딩 작업 진행

  4) 스트림 통신

    -> 순서를 보장받고자 할 경우 스트림 사용(처음넣은 데이터가 가장 먼저 나옴 - FIFO?)

 

3. 실습

  -> 3개 실습 중 Class를 사용하는 실습 하나만 코드 작성해봄

void main(){
	Car bmw = Car(320, 100000, 'BMW');
    
    bmw.saleCar();
    bmw.saleCar();
    
    print(bmw.price);
}

class Car{
	int maxSpeed;
    num price;
    String name;
    
    Car(int maxSpeed, num price, String name){
    	this.maxSpeed = maxSpeed;
        this.price = price;
        this.name = name;
    }
    
    num saleCar(){
    	price = price * 0.9;
        return price;
    }
}