상세 컨텐츠

본문 제목

flutter 기초 이론

앱 개발/flutter

by js-delog77 2023. 7. 18. 15:21

본문

futter는 google에서 개발한 크로스 플랫폼 개발 프레임워크로 

ios와 안드로이드를 지원하는 언어입니다.

 

flutter 언어는 난이도가 낮아 배우기 쉽고 사용하기 편하며 위젯(widget) 단위로 개발을 

진행합니다.

 

위젯은 블록이라고 생각하면 쉽습니다.

테트리스를 예로들면 블록을 조합하여 쌓아 나가는 모습이 위젯으로 개발하는 

Flutter와 비슷합니다.

 

그리고 위젯 단위로 작업을 하다보니 생성성이 높은 편에 속합니다.

 

dart(다트)는 구글에서 개발한 고급 프로그래밍 언어이며

객체지향 프로그래밍 언어입니다.

 

컴파일러는 JIT, AOT를 보유하고 있습니다.

 

JIT: 코드 실행 시점에 컴파일을 수행 > 빠른 개발과 디버깅을 할 때 주로 사용

AOT: 사전에 미리 컴파일을 수행 > 높은 실행속도를 필요로 할 때 활용되는 컴파일러 

 

다트에서는 타입을 선언할 수도 안 할 수 도 있습니다.

하지만 선언을 해주는게 추후 유지보수에 편합니다.

 

타입 : 데이터 유형을 말하고 크게는 기본형, 확장형 두 가지로 나누어집니다.

 

new pad: 새로운 패드

reset: 작업 내용을 초기화

format: 코드의 틀을 예쁘게 만들 때 

 

 

dart pad가 잘 작동하는지 hello world를 출력해보겠습니다.

 

void main() {
  print('hello world!');
}

 

 

다트의 타입

  // 참 / 거짓 bool
  bool isTrue = true;

  // 정수형 int
  int num = 100;
  
  // 실수형 double
  double num2 = 3.14;
  double num3 = 3;
  
  // 문자열 String
  String str = 'hello world!';

  // null 
  // null 이외의 값을 줄 수 없음
  Null a_IsNull = null;
  
  // 가변형 var / dynamic
  
  var value = 1;
  // value = 'is error'; var는 문자형이 입력되지 않는다.
  value = 2
  
  dynamic dynamicValue = 100;
  // dynamic은 숫자를 저장했어도 문자형으로 다시 저장에 문제가 없다
  dynamicValue = 'hello';
  
  print(dynamicValue);

 

Dartt Null Sagety

 

dart에서는 null에 대한 안정성을 위해 Null Safety가 도입되었습니다.

 

Nullable: Null을 허용하는 타입 - 변수 뒤에 ? 붙임

Non-Nullable: Null을 허용하지 않는 타입 - 변수 뒤에 ! 붙임

 

  // null 처리 연산자
  int? num10;
  print(num10);
  
  결과: null
  
  int! num10;
  print(num10);
  
  결과: error
  
// null 처리 연산자
  int? num10;
  int num2 = 20;
  print(num10);
	
// null이면 ?? 뒤의 값으로 대체하겠다는 의미
  print((num10 ?? 5) + num2);
  
  결과: 25

 

 

참고 사항: 다트에서 String 방법 중 하나

  String str1 = 'hello';
  
  String str2 = str1 + ' world';
  String str3 = '$str2 world';
  
  print(str3);
  
  결과: hello world world

 

클래스(Class)

일종의 객체를 만들기 위한 템플릿입니다.

데이터와 함수 등을 그룹화하여 하나의 동작 등을 수행하게 합니다.

객체를 쉽게 만들 수도 있고 이것을 이용하여 효율적인 객체지향 프로그래밍을 사용할 수 있습니다.

 

클래스의 구성요소로는 

1. 필드: 값의 입력이 필요한 변수들 

2. 메서드(함수): 하나 이상의 기능을 수행하는 코드의 묶음

3. 생성자: 클래스의 인스턴스를 생성 

                생성 시 특정 함수를 실행하거나 매개변수 등을 전달 가능

 

인스턴스는 여러개 생성 가능하다.

void main() {
  Point point = Point(10,20);
  print(point);
  print(point.x);
  print(point.y);
  
   Point apoint = Point(1,5);
    print(apoint);
    print(apoint.x);
    print(apoint.y);
}

class Point{
  double? x;
  double? y;
  
  Point(this.x,this.y);
}

 

관련글 더보기