Dart is a programming language developed by Google, widely used in the mobile application development framework Flutter. Dart offers easy-to-use syntax and fast execution speed, making it suitable for beginners. Let’s delve into the basics of Dart.
1. Setting Up Dart Development Environment
Installation
To install Dart, you can download it from the official Dart site. Alternatively, installing Flutter also installs the Dart SDK.
After installation, you can verify it by entering the command `dart –version` in your terminal or command prompt.
Development Tools
The recommended development tool for writing Dart code is Visual Studio Code (VS Code). In VS Code, you can install Dart and Flutter extensions for convenient development.
2. Basic Syntax of Dart
Hello World
The most basic program in Dart is printing “Hello World”.
void main() {
print('Hello, World!');
}
In the above code, the `main` function is the entry point of the program, and the `print` function outputs the string to the console.
Variables and Data Types
Dart is a strongly typed language, requiring type specification when declaring variables. However, the `var` keyword allows you to omit type specification.
void main() {
int age = 30; // Integer variable
double height = 5.9; // Double variable
String name = 'John Doe'; // String variable
bool isStudent = true; // Boolean variable
var country = 'South Korea'; // Variable declaration using var
country = 'Japan'; // Change to the same type
}
Basic Operators
Dart provides operators similar to most programming languages.
void main() {
int a = 10;
int b = 20;
// Arithmetic operators
print(a + b); // 30
print(a - b); // -10
print(a * b); // 200
print(b / a); // 2.0
print(b % a); // 0
// Comparison operators
print(a == b); // false
print(a != b); // true
print(a > b); // false
print(a < b); // true
// Logical operators
bool x = true;
bool y = false;
print(x && y); // false
print(x || y); // true
print(!x); // false
}
Conditional Statements
Dart’s conditional statements use the `if`, `else if`, and `else` keywords.
void main() {
int score = 85;
if (score >= 90) {
print('A');
} else if (score >= 80) {
print('B');
} else if (score >= 70) {
print('C');
} else {
print('F');
}
}
Loops
Dart supports `for`, `while`, and `do-while` loops.
void main() {
// for loop
for (int i = 0; i < 5; i++) {
print(i);
}
// while loop
int j = 0;
while (j < 5) {
print(j);
j++;
}
// do-while loop
int k = 0;
do {
print(k);
k++;
} while (k < 5);
}
Functions
Here’s how to define and call a function in Dart.
// Function definition
int add(int x, int y) {
return x + y;
}
// Calling the function in the main function
void main() {
int sum = add(5, 3);
print(sum); // 8
}
3. Object-Oriented Programming
Dart is an object-oriented language, allowing you to structure code using classes and objects.
Classes and Objects
// Class definition
class Person {
String name;
int age;
// Constructor
Person(this.name, this.age);
// Method
void introduce() {
print('My name is $name and I am $age years old.');
}
}
// Creating and using an object in the main function
void main() {
Person p = Person('John Doe', 30);
p.introduce(); // My name is John Doe and I am 30 years old.
}
4. Collections
Dart offers various collection types for storing and manipulating data.
Lists
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
numbers.add(6); // Adding an element to the list
print(numbers); // [1, 2, 3, 4, 5, 6]
}
Maps
void main() {
Map<String, int> scores = {'Alice': 90, 'Bob': 85};
scores['Charlie'] = 80; // Adding an element to the map
print(scores); // {Alice: 90, Bob: 85, Charlie: 80}
}
5. Asynchronous Programming in Dart
Dart supports asynchronous programming using `Future` and the `async` and `await` keywords.
Future<void> fetchUserOrder() {
return Future.delayed(Duration(seconds: 2), () => print('Order fetched'));
}
void main() async {
print('Fetching user order...');
await fetchUserOrder();
print('Order complete');
}
In this example, the `fetchUserOrder` function prints “Order fetched” after 2 seconds, and the `await` keyword ensures the function call is complete before continuing.
So far, we’ve covered the basics of Dart. Through various examples and practice, you can gain a deeper understanding of Dart. For more detailed information, it’s also good to refer to the Dart Official Documentation.
Where is Dart widely used?
Dart can be utilized in various fields, but it is especially useful in the following areas:
1. Mobile Application Development
Dart is used with Google’s Flutter framework, a powerful tool for developing Android and iOS applications from a single codebase. Flutter is loved by many developers for its fast development speed, beautiful UI, and excellent performance, making mobile application development a major application area of Dart.
- Advantages: Multi-platform support with a single codebase, fast Hot Reload feature, rich widget library
- Examples: Apps like Google Ads, Alibaba, Reflectly are developed using Flutter.
2. Web Application Development
Dart is also useful in web application development. Dart’s web development framework, AngularDart, works similarly to the Angular framework, allowing for the structured development of complex web applications.
- Advantages: Strong type system, stable performance, ease of maintenance
- Examples: Many of Google’s internal tools and web applications are developed in Dart.
3. Server-Side Development
Dart can be used for server-side development as well. Using the `dart:io` library, you can write server applications and build web servers, REST APIs, etc.
- Advantages: Fast execution speed, rich library support, ease of asynchronous programming
- Examples: Building server-side logic and backend services
4. IoT (Internet of Things)
Dart can also be used in the IoT field. Its lightweight and performance make Dart suitable for writing applications that run on IoT devices.
- Advantages: Efficient memory usage, fast execution time, support for various platforms
- Examples: Applications for controlling smart home devices
5. Game Development
Together with Flutter, Dart can be used to develop simple 2D games. With Flutter’s powerful graphics capabilities and animation support, you can develop anything from simple to complex games.
- Advantages: Fast development, various graphics and animation features
- Examples: Mini-games, educational game apps