Dart Language का परिचय – Flutter के लिए आधारभूत प्रोग्रामिंग भाषा

Dart Language का परिचय – Flutter के लिए आधारभूत प्रोग्रामिंग भाषा

Dart Language का परिचय (Introduction to Dart Language)
Dart, Google द्वारा विकसित की गई एक शक्तिशाली प्रोग्रामिंग भाषा है, जो खासतौर से Flutter फ्रेमवर्क के लिए उपयोग की जाती है। यह एक ऑब्जेक्ट-ओरिएंटेड, क्लास-बेस्ड भाषा है जो fast और responsive ऐप्स बनाने के लिए जानी जाती है। Dart का सिंटैक्स JavaScript, Java, और C++ जैसी भाषाओं से मिलता-जुलता है, जिससे इसे सीखना और इस्तेमाल करना आसान हो जाता है।

इस अध्याय में आप जानेंगे:

  • Dart का बेसिक परिचय
  • Variables, Data Types और Functions का उपयोग
  • Control Flow Statements (if-else, loops) और Classes
  • Asynchronous Programming और Dart के प्रमुख फीचर्स

Flutter के साथ काम करने के लिए Dart का समझना बेहद ज़रूरी है, और इस अध्याय में आपको इसकी मजबूत नींव मिलेगी। Dart की सहायता से आप efficient और high-performance Flutter ऐप्स बना सकेंगे।

Dart के Key Features

Dart, Flutter के लिए उपयोग की जाने वाली प्रोग्रामिंग भाषा है और इसकी विशेषताएं इसे एक प्रभावशाली और शक्तिशाली भाषा बनाती हैं। नीचे Dart के कुछ प्रमुख फीचर्स दिए गए हैं:

1. Object-Oriented Programming (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)

Dart एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) भाषा है। इसमें हर चीज़ क्लास और ऑब्जेक्ट पर आधारित होती है। OOP के चार प्रमुख concepts, यानी encapsulation, inheritance, polymorphism, और abstraction, को Dart में पूरी तरह से लागू किया जा सकता है। इससे बड़े और जटिल एप्लिकेशन्स को प्रबंधित करना आसान हो जाता है।

2. Asynchronous Programming (असिंक्रोनस प्रोग्रामिंग)

Dart में async और await जैसे keywords के माध्यम से asynchronous programming को आसानी से implement किया जा सकता है। इसका उपयोग नेटवर्क कॉल्स, डाटाबेस ऑपरेशन्स, और file handling जैसे tasks को efficient और responsive बनाने के लिए किया जाता है, ताकि एप्लिकेशन ब्लॉक न हो और यूज़र को बेहतर अनुभव मिले।

3. Strongly Typed Language (स्ट्रॉन्गली टाइप्ड भाषा)

Dart एक strongly typed language है, जहां variables की type को define करना होता है। हालांकि, Dart में type inference की सुविधा भी है, जहां compiler automatic types को पहचान सकता है। यह feature कोड की विश्वसनीयता और त्रुटियों को कम करता है।

4. JIT (Just-In-Time) और AOT (Ahead-Of-Time) Compilation

Dart दो प्रकार की कंपाइलिंग तकनीकों का समर्थन करता है:

  • JIT (Just-In-Time): डेवलपमेंट के दौरान dynamic कंपाइलिंग, जिससे आप changes को तुरंत देख सकते हैं। यह hot-reload को सक्षम बनाता है।
  • AOT (Ahead-Of-Time): production builds के लिए, कोड को native मशीन कोड में कंपाइल करता है, जिससे ऐप्स की परफॉर्मेंस तेज़ और स्मूद होती है।

5. Garbage Collection (गर्बेज कलेक्शन)

Dart में built-in garbage collection होती है, जो memory management को अपने आप handle करती है। इससे डेवलपर्स को memory leaks या manual memory allocation के बारे में चिंता करने की ज़रूरत नहीं होती, जिससे विकास प्रक्रिया सरल हो जाती है।

6. Cross-Platform Support (क्रॉस-प्लेटफ़ॉर्म सपोर्ट)

Dart एक versatile भाषा है, जिसका उपयोग आप mobile (Android और iOS), web, और desktop एप्लिकेशन्स बनाने के लिए कर सकते हैं। यह Flutter के साथ मिलकर क्रॉस-प्लेटफ़ॉर्म डेवलपमेंट का एक बेहतरीन विकल्प बनाता है।

7. Easy to Learn (सीखने में आसान)

Dart का सिंटैक्स सरल और पढ़ने में आसान है, खासतौर से अगर आपको Java, JavaScript, या C++ का अनुभव है। इसका साफ-सुथरा सिंटैक्स और user-friendly structure इसे डेवलपर्स के लिए सीखने और उपयोग करने में आसान बनाता है।

8. Null Safety (नल सेफ्टी)

Dart में null safety feature है, जो compile-time पर ही null-related errors को पकड़ता है। इससे runtime errors कम होते हैं और एप्लिकेशन अधिक स्थिर बनती है। null safety feature ने Flutter में development को और भी सुरक्षित और कुशल बना दिया है।

9. Rich Standard Library (समृद्ध मानक लाइब्रेरी)

Dart के पास एक समृद्ध स्टैंडर्ड लाइब्रेरी है जो collection types, math operations, string manipulations, और asynchronous programming के लिए tools प्रदान करती है। यह लाइब्रेरी डेवलपर्स को अधिक सुविधाजनक और flexible तरीके से काम करने की सुविधा देती है।

10. Platform-Independent (प्लेटफॉर्म-इंडिपेंडेंट)

Dart platform-independent है, जिससे आप इसका उपयोग अलग-अलग ऑपरेटिंग सिस्टम्स पर कर सकते हैं, जैसे कि Windows, macOS, Linux, Android और iOS। एक ही कोड बेस से आप विभिन्न प्लेटफॉर्म्स के लिए एप्लिकेशन बना सकते हैं।

Dart की इन विशेषताओं ने इसे Flutter के लिए एक उपयुक्त भाषा बना दिया है, जो cross-platform एप्लिकेशन्स को तेजी से विकसित करने के लिए ideal है। Object-oriented nature, asynchronous programming, और null safety जैसी सुविधाएं डेवलपर्स को अधिक productive और efficient बनाती हैं।

Variables, Functions, और Classes का विवरण (Dart Language)

Dart भाषा में प्रोग्रामिंग के तीन मुख्य स्तंभ — Variables (वेरिएबल्स), Functions (फंक्शंस) और Classes (क्लासेस) — का बेहद महत्वपूर्ण रोल होता है। ये तीनों concepts किसी भी object-oriented programming भाषा की नींव होते हैं। आइए इनके बारे में विस्तार से जानें:

1. Variables (वेरिएबल्स)

वेरिएबल्स प्रोग्रामिंग में किसी डेटा को स्टोर करने के लिए उपयोग किए जाते हैं। Dart में वेरिएबल्स का उपयोग विभिन्न डेटा types को स्टोर करने के लिए किया जा सकता है, जैसे int, double, String, bool, और var.

वेरिएबल्स की घोषणा:

Dart में वेरिएबल्स को declare करना आसान है। आप किसी भी डेटा type का उपयोग करके वेरिएबल declare कर सकते हैं या var का उपयोग करके type inference पर निर्भर कर सकते हैं।

उदाहरण:

int age = 25; // Integer type
double pi = 3.14; // Double type
String name = 'Rahul'; // String type
bool isStudent = true; // Boolean type
var city = 'Delhi'; // Dart automatically infers the type as String

Final और Const:

  • final: अगर आपको वेरिएबल को केवल एक बार assign करना है और बाद में इसे change नहीं करना चाहते, तो final keyword का उपयोग कर सकते हैं।
  • const: अगर वेरिएबल को compile-time पर ही एक value देनी हो और उसे बाद में कभी बदलना न हो, तो const का उपयोग होता है।
final birthYear = 1990;
const piValue = 3.1416;

2. Functions (फंक्शंस)

Functions प्रोग्राम के किसी विशेष कार्य को encapsulate करने के लिए उपयोग किए जाते हैं। यह कोड को reusable और structured बनाने में मदद करते हैं। Dart में functions को नाम देकर declare किया जाता है और ये किसी भी डेटा type को return कर सकते हैं या void (कुछ भी return न करें) हो सकते हैं।

Function की संरचना:

returnType functionName(parameters) {
  // function body
  return value; // if returnType is not void
}

उदाहरण:

// कोई मान नहीं लौटाने वाला फंक्शन (void)
void greet(String name) {
  print('Hello, $name!');
}

// एक मान लौटाने वाला फंक्शन (returnType: int)
int add(int a, int b) {
  return a + b;
}

void main() {
  greet('Rahul'); // Output: Hello, Rahul!
  
  int sum = add(10, 20); 
  print(sum); // Output: 30
}

Arrow Functions (शॉर्टहैंड फंक्शन):

Dart में आप एक लाइन के फंक्शंस के लिए => का उपयोग करके arrow functions भी बना सकते हैं।

int multiply(int x, int y) => x * y;

3. Classes (क्लासेस)

Dart एक object-oriented language है, और इसमें classes object बनाने के लिए एक ब्लूप्रिंट की तरह काम करती हैं। क्लासेस में properties (वेरिएबल्स) और methods (फंक्शंस) होते हैं जो object को कुछ कार्य करने की क्षमता प्रदान करते हैं।

Class की संरचना:

class ClassName {
  // properties
  String property1;
  int property2;
  
  // constructor
  ClassName(this.property1, this.property2);
  
  // method
  void displayInfo() {
    print('Property1: $property1, Property2: $property2');
  }
}

उदाहरण:

class Car {
  // properties
  String brand;
  int year;
  
  // constructor
  Car(this.brand, this.year);
  
  // method
  void displayDetails() {
    print('Brand: $brand, Year: $year');
  }
}

void main() {
  // Object creation
  Car car1 = Car('Toyota', 2020);
  
  // Method call
  car1.displayDetails(); // Output: Brand: Toyota, Year: 2020
}

Constructors (कंस्ट्रक्टर्स):

Constructors एक special method होती हैं जो object create करते समय values assign करने का काम करती हैं। Dart में default और parameterized दोनों प्रकार के constructors हो सकते हैं।

class Student {
  String name;
  int age;
  
  // Constructor
  Student(this.name, this.age);
}

void main() {
  Student student1 = Student('Rahul', 20);
  print('Student Name: ${student1.name}, Age: ${student1.age}');
}

Inheritance (विरासत):

Dart में एक class दूसरी class से properties और methods को विरासत में ले सकती है। इसे inheritance कहा जाता है।

class Animal {
  void sound() {
    print('Animal makes a sound');
  }
}

class Dog extends Animal {
  // Method overriding
  @override
  void sound() {
    print('Dog barks');
  }
}

void main() {
  Dog dog = Dog();
  dog.sound(); // Output: Dog barks
}
  • Variables: डेटा स्टोर करने के लिए।
  • Functions: प्रोग्राम के किसी विशेष कार्य को encapsulate और reuse करने के लिए।
  • Classes: Object-oriented प्रोग्रामिंग के लिए ब्लूप्रिंट, जिसमें properties और methods होते हैं।

इन concepts को समझकर आप Dart में structured और efficient code लिख सकते हैं, जो Flutter में एप्लिकेशन डेवलपमेंट के लिए ज़रूरी है।

Basic Dart program के उदाहरण

Example 1: Hello World Program

void main() {
  print('Hello, World!');
}

Output:
Hello, World!

Explanation:

  • main() Dart प्रोग्राम का entry point होता है।
  • print() एक built-in function है जो output console में text दिखाता है।

Example 2: Variables और Data Types

void main() {
  // Variables declaration
  String name = 'Rahul';
  int age = 25;
  double height = 5.9;
  bool isStudent = true;

  // Print variables
  print('Name: $name');
  print('Age: $age');
  print('Height: $height');
  print('Is a student: $isStudent');
}

Output:

Name: Rahul
Age: 25
Height: 5.9
Is a student: true

Explanation:

  • String, int, double, और bool जैसे डेटा types का उपयोग करके variables declare किए जाते हैं।
  • Dart में, print() के अंदर $variableName का उपयोग करके variables को string के साथ concatenate किया जाता है।

Example 3: Basic Arithmetic Operations

void main() {
  int a = 10;
  int b = 20;

  // Arithmetic operations
  int sum = a + b;
  int difference = a - b;
  int product = a * b;
  double quotient = a / b;
  int remainder = a % b;

  print('Sum: $sum');
  print('Difference: $difference');
  print('Product: $product');
  print('Quotient: $quotient');
  print('Remainder: $remainder');
}

Output:

Sum: 30
Difference: -10
Product: 200
Quotient: 0.5
Remainder: 10

Explanation:

  • यह प्रोग्राम basic arithmetic operations को दिखाता है जैसे addition, subtraction, multiplication, division और remainder।

Example 4: If-Else Conditional Statement

void main() {
  int number = 10;

  if (number > 0) {
    print('$number is positive.');
  } else if (number < 0) {
    print('$number is negative.');
  } else {
    print('$number is zero.');
  }
}

Output:
10 is positive.

Explanation:

  • यह प्रोग्राम if-else का उपयोग करके number की positivity या negativity को चेक करता है।

Example 5: For Loop

void main() {
  for (int i = 1; i <= 5; i++) {
    print('Number: $i');
  }
}

Output:

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

Explanation:

  • for loop का उपयोग करके, हम एक निश्चित संख्या में iterations कर सकते हैं। यहाँ यह 1 से 5 तक की संख्या को print कर रहा है।

Example 6: Functions (with Return Type)

int add(int a, int b) {
  return a + b;
}

void main() {
  int sum = add(10, 20);
  print('Sum: $sum');
}

Output:
Sum: 30

Explanation:

  • यह प्रोग्राम add() नामक एक function को दिखाता है जो दो numbers को जोड़ता है और उसे main() function में कॉल करता है।

Example 7: List in Dart

void main() {
  List<String> fruits = ['Apple', 'Banana', 'Mango'];

  for (String fruit in fruits) {
    print(fruit);
  }
}

Output:

Apple
Banana
Mango

Explanation:

  • Dart में List का उपयोग करके multiple items को store किया जाता है। यहां हम for-in loop के माध्यम से list के प्रत्येक item को print कर रहे हैं।

Example 8: Class and Object

class Car {
  String brand;
  int year;

  // Constructor
  Car(this.brand, this.year);

  // Method
  void displayDetails() {
    print('Brand: $brand, Year: $year');
  }
}

void main() {
  Car car1 = Car('Toyota', 2020);
  car1.displayDetails();
}

Output:

Brand: Toyota, Year: 2020

Explanation:

  • यह प्रोग्राम Car नामक class को define करता है और उसका object (car1) बनाता है। फिर method displayDetails() का उपयोग करके details को print करता है।

Example 9: Asynchronous Programming with Future

Future<String> fetchData() async {
  return Future.delayed(Duration(seconds: 2), () => 'Data loaded');
}

void main() async {
  print('Fetching data...');
  String data = await fetchData();
  print(data);
}

Output:

Fetching data...
Data loaded

Explanation:

  • async और await का उपयोग asynchronous operations के लिए किया जाता है। यह प्रोग्राम 2 सेकंड की देरी के बाद data को fetch करता है।

ये basic Dart programs आपको Dart के syntax और fundamental concepts के बारे में एक अच्छा overview देते हैं। इन उदाहरणों से आप variables, functions, control flow statements, loops, classes, और asynchronous programming के उपयोग को समझ सकते हैं।



Index