Dart 란
Dart는 모든 플랫폼에서 사용할 수 있는 앱을 개발하기 위해 탄생한 클라이언트 최적화된 언어
구글에서 2011년 10월에 공개했으며 멀티 플랫폼 상에서 동작되도록 하는 앱을 개발하기 위해 디자인됨
Dart의 목표는 다양한 종류의 기기에서 동작되도록 하는 것
특징
기본적으로 C언어의 문법과 비슷하며 Java, C#, Javascript와 같은 구조를 갖춤
DVM(Dart VM), 네이티브 컴파일링을 통해 모바일, 데스크탑, 웹 등의 환경에서 앱 실행을 지원
Flutter라는 프레임워크의 주 언어로 사용됨
주요 특징
1. 간결하고 강력한 문법: Dart는 이해하기 쉽고 생산성을 높이는 간결한 문법을 가지고 있습니다.
2. 정적 타입 언어: Dart는 정적 타입 언어로, 컴파일 타임에 타입 검사를 수행합니다. 이를 통해 코드의 안전성을 높이고 버그를 줄일 수 있습니다.
3. 클래스 기반 객체 지향: Dart는 객체 지향 언어로, 클래스와 상속을 지원합니다.
4. 동시성 지원: async와 await 키워드를 통해 비동기 프로그래밍을 간단하게 구현할 수 있습니다.
5. 크로스 플랫폼: Dart는 모바일, 웹, 데스크탑 등 여러 플랫폼에서 실행될 수 있습니다.
6. 빠른 컴파일 속도: Dart는 JIT(Just-In-Time) 컴파일과 AOT(Ahead-Of-Time) 컴파일을 지원하여 빠른 실행 속도를 제공합니다.
공식지원 IDE
안드로이드 스튜디오
인텔리제이
VS Code
변수 선언
void main() {
int a = 10;
double b = 3.14;
String name = "Dart";
bool isActive = true;
print(a);
print(b);
print(name);
print(isActive);
}
함수 정의
void main() {
printGreeting('John');
int result = add(2, 3);
print('Sum: $result');
}
void printGreeting(String name) {
print('Hello, $name');
}
int add(int a, int b) {
return a + b;
}
조건문과 반복문
void main() {
int number = 5;
if (number > 0) {
print('Positive');
} else if (number < 0) {
print('Negative');
} else {
print('Zero');
}
for (int i = 0; i < 5; i++) {
print('i: $i');
}
int j = 0;
while (j < 5) {
print('j: $j');
j++;
}
}
클래스와 객체
void main() {
var person = Person(name: 'John', age: 30);
person.greet();
}
class Person {
String name;
int age;
Person({required this.name, required this.age});
void greet() {
print('Hello, my name is $name and I am $age years old.');
}
}
객체 지향 프로그래밍
Dart는 객체 지향 프로그래밍(OOP)을 지원합니다. OOP는 코드 재사용성과 확장성을 높이는 데 도움이 됩니다. Dart에서는 클래스, 상속, 다형성, 추상화 등을 통해 OOP를 구현할 수 있습니다.
void main() {
var dog = Dog(name: 'Buddy', age: 3);
dog.bark();
dog.describe();
}
class Animal {
String name;
int age;
Animal({required this.name, required this.age});
void describe() {
print('This is $name and it is $age years old.');
}
}
class Dog extends Animal {
Dog({required String name, required int age}) : super(name: name, age: age);
void bark() {
print('Woof! Woof!');
}
}
비동기 프로그래밍
Dart는 비동기 프로그래밍을 간단하게 구현할 수 있는 키워드인 async와 await를 제공합니다. 이를 통해 비동기 작업을 쉽게 처리할 수 있습니다.
void main() async {
print('Fetching data...');
String data = await fetchData();
print('Data: $data');
}
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2));
return 'Hello from the future!';
}
그 외 특징
- 모든 변수는 객체이며 모든 객체는 클래스의 인스턴스임
- 숫자, 함수, Null도 객체로 취급
- Dart 2 버전부터 Null Safety를 소개하고 있음
- Dart는 데이터 타입을 가지고 있음
- Dart는 Generic 타입을 지원
- Dart는 main()과 같은 top-level 함수를 지원
- Dart는 public, protected, private와 같은 키워드를 지원하지 않음
- 만약 식별자 이름 앞에 언더바(_)를 붙이면 라이브러리에서 private으로 설정할 수 있음
- Dart는 삼항 연산자를 지원
레퍼런스
1. Dart 공식 사이트: Dart 언어의 공식 사이트로, Dart에 대한 기본적인 소개와 문서, 튜토리얼 등을 제공합니다.
2. Dart 언어 투어: Dart 언어의 문법과 기능을 체계적으로 설명하는 가이드입니다.
3. Dart 패키지 문서: Dart 패키지 및 라이브러리에 대한 문서입니다.
4. Dart API 문서: Dart의 코어 라이브러리 및 API에 대한 상세한 문서입니다.
5. Dart Null Safety 문서: Dart의 Null Safety 기능에 대한 소개와 사용 방법을 설명하는 문서입니다.
6. Dart Code Labs: Dart와 Flutter를 배우기 위한 실습형 튜토리얼입니다.
7. Dart GitHub 리포지토리: Dart 언어의 소스 코드와 관련 자료를 확인할 수 있는 GitHub 리포지토리입니다.
'프론트엔드 > Flutter' 카테고리의 다른 글
Dart에서 변수 초기화 null Safety 와 late 키워드 (0) | 2024.07.18 |
---|---|
dart 3 언어 주요 변경 사항 및 새로운 기능 (0) | 2024.07.18 |
flutter navigaion bar 네이게이션 바 사용하기 (0) | 2024.07.18 |
flutter sharedPreferences 간단한 데이터 저장 (0) | 2024.07.18 |
flutter json 데이터 가져오기 (0) | 2024.07.17 |