‹ முகப்புக்கு திரும்ப

Dart Basics: Flutter கத்துக்கிற முன் இரண்டு மணி நேரம் இதை படிங்க

Flutter tutorial எதை பார்த்தாலும் நீங்க Dart தெரிஞ்சிருக்கணும்னு assume பண்ணிடுவாங்க, அதுல தான் பலபேருக்கு கன்பூஷன் ஆரம்பிக்கும். இரண்டு மணி நேரம் Dart basics கத்துக்கிட்டா, அடுத்த இரண்டு வாரம் Flutter கத்துக்கிறது ரொம்ப easy-ஆ இருக்கும்.

Keerthika 6 min read
Google-ல் Follow
Programming Dart Basics: Flutter கத்துக்கிற முன் இரண்டு மணி நேரம் இதை படிங்க 6 நிமிடம் மீதம் Google-ல் Follow
Dart Basics: Flutter கத்துக்கிற முன் இரண்டு மணி நேரம் இதை படிங்க

தமிழ்டெக் AI சுருக்கம்

  • Dart தெரியாம Flutter கத்துக்க போனா, ஒவ்வொரு error-உம் Dart problem-ஆகவே இருக்கும்
  • ? , ! , late — null safety-ன் மூணு முக்கிய tool
  • final runtime value-க்கு, const compile-time fixed value-க்கு
  • await இல்லாம async function result real-ஆ கிடைக்காது

AI உதவியுடன் தயாரான சுருக்கம் — தமிழ்டெக் எடிட்டர்ஸ் சரிபார்த்தது.

0:00
0:00
🔒 Listen வசதி subscribers-க்கு மட்டும். Subscribe செய்யுங்கள்

முக்கிய விஷயங்கள்

  • Dart தான் Flutter app எழுத use ஆகும் language — இதை தாண்டி நேரடியா widgets-க்கு போக முடியாது.
  • Null safety ( ? , ! , late ) தான் Java அல்லது JavaScript-ல இருந்து வர்றவங்களுக்கு மிகப்பெரிய mindset shift.
  • final, const ரெண்டும் பார்க்க ஒரே மாரி தெரியும், ஆனா பொருள் வேற — இதை mix பண்றதுதான் beginner errors-ல பாதி.
  • Named constructors, arrow functions தான் Flutter widget code-ஐ சின்னதா, clean-ஆ வைக்க Dart கொடுக்கும் tool.
  • Future, async/await — API call, UPI payment status check மாரி நேரம் எடுக்கற வேலைக்கு இதுதான் வழி.

Dart அப்படின்னா என்ன, Flutter கத்துக்கிறவங்க ஏன் முதல்ல இதை கத்துக்கணும்?

Dart-ஐ Google தனியா Flutter-க்காக உருவாக்கின language. Flutter-ஐ furniture-ஆ நினைச்சுக்கோங்க, Dart அந்த carpentry tools. Saw எப்படி பிடிக்கணும்னு தெரியாம furniture செய்ய முடியாது இல்லையா? பலருக்கும் தெரியாத ஒரு விஷயம் சொல்றேன். Forum-ல "என் Flutter app வேலை செய்யல" என்று கேட்கும் கேள்விகள்ல பாதிக்கு மேல, அது real-ல Dart problem தான், Flutter costume போட்டிருக்கும். ஒரு missing ? , confuse ஆன final , வேண்டிய arguments எடுக்காத constructor — இதெல்லாம் Dart issue, widget issue இல்ல.

அதனால pubspec.yaml-ஐ open பண்றதுக்கு முன்னாடி, வெறும் Dart-ல கொஞ்ச நேரம் செலவு பண்ணுங்க. Widget வேண்டாம், emulator வேண்டாம், ஒரு simple main.dart file-ஐ dart run வைச்சு run பண்ணி பாருங்க. இந்த இரண்டு மணி நேரம் தான் அடுத்த இரண்டு வாரத்த save பண்ணும்.

Variables, final, const-ஐ Dart-ல எப்படி handle பண்ணலாம்?

Dart variables typed தான், ஆனா var வைச்சா type-ஐ தானா guess பண்ணிடும். Type-ஐ எழுதணும்னு force இல்ல.

void main() {
  var city = "Chennai"; // type inferred as String
  int rupees = 500;
  double discount = 10.5;
  bool isPrime = true;

  final today = DateTime.now(); // once set, but value known only at runtime
  const taxRate = 0.18; // fixed even before app runs

  print("$city order total with tax: ${rupees + (rupees * taxRate)}");
  print("Ordered on: $today");
}

final vs const-ஐ குழப்பிக்கிறது தான் பல beginners-க்கு பிரச்சனை. final அதாவது "நான் இதை ஒரு முறை தான் set பண்ணுவேன், ஆனா value-வை app run ஆகும்போது தான் தெரியும்" — DateTime.now() மாரி. const அதாவது "இந்த value app ஆரம்பிக்கும் முன்னாடியே fix ஆகிடும்" — GST rate மாரி, hardcode பண்ணின text மாரி.

Simple rule: value-க்கு clock, network call, அல்லது user input தேவைன்னா final வைங்க. நீங்களே hardcode பண்ணும் number/text-ஆ இருந்தா const வைங்க.

Null safety அப்படின்னா என்ன, ? , ! , late எப்போ use பண்ணலாம்?

Java அல்லது plain JavaScript பழக்கம் இருந்தா இது கொஞ்சம் அலியன் மாரி தெரியும். Dart-ல, நீங்க வேணும்னு சொல்லாம ஒரு variable null ஆக முடியாது.

void main() {
  String name = "Arun"; // இது ஒரு நாளும் null ஆக முடியாது
  String? nickname;      // ? means இது null-ஆக இருக்கலாம்

  nickname = "Aru";
  print(nickname?.toUpperCase()); // safe: null இல்லாம இருந்தா தான் print ஆகும்

  late String branch; // promise: நான் use பண்ணும் முன்னாடி value வச்சிடுவேன்
  branch = "OMR, Chennai";
  print(branch);
}

? போட்டா "இது null-ஆகவும் இருக்கலாம்" என்று Dart-க்கு சொல்றீங்க. ! போட்டா "நம்பு என்னை, இது null இல்ல" என்று force பண்றீங்க — இது சரியா இல்லேன்னா app crash ஆகும். late-ஐ use பண்ணும்போது, "இப்போ value இல்ல, ஆனா use பண்ணும் முன்னாடி கொடுத்துடுவேன்" என்று Dart-க்கு promise கொடுக்கிறீங்க.

Functions, arrow syntax Dart-ல எப்படி சுருக்கமா எழுதலாம்?

ஒரு வரி logic இருந்தா, curly braces, return keyword எல்லாம் வேணாம். Arrow (=>) syntax use பண்ணலாம்.

int addGst(int amount) {
  return amount + (amount * 18 ~/ 100);
}

// அதே logic, arrow syntax-ல
int addGstShort(int amount) => amount + (amount * 18 ~/ 100);

void main() {
  print(addGst(1000));
  print(addGstShort(1000));
}

இதே arrow style தான் Flutter widgets-ல build() function-க்கு அடியில, onPressed: () => print("Tapped") மாரி இடங்கள்ல ரொம்ப அதிகமா வரும். அதனால இப்போவே பழகிடுங்க.

Classes, named constructors Flutter widgets-ல எப்படி use ஆகும்?

Dart-ல class basic OOP தான், ஆனா Flutter-ல named constructors ரொம்ப common — ஒரே class-ஐ வேற வேற வழியா create பண்ண உதவும்.

class Order {
  final String item;
  final double amount;

  Order(this.item, this.amount); // default constructor

  Order.cashOnDelivery(this.item) : amount = 0; // named constructor

  void printOrder() {
    print("$item - Rs.$amount");
  }
}

void main() {
  final order1 = Order("Phone Case", 299.0);
  final order2 = Order.cashOnDelivery("Grocery Bag");

  order1.printOrder();
  order2.printOrder();
}

Flutter-ல Text.rich(), Container.expand() மாரி named constructors பாத்திருப்பீங்க. இதே pattern தான் — ஒரே class-க்கு வேற வேற entry point.

Future, async/await எப்படி வேலை செய்யும் — UPI payment status check example?

Network call, file read, UPI payment status check — இதெல்லாம் உடனடியா முடியாது, நேரம் ஆகும். இதுக்காக தான் Future.

Future<String> checkPaymentStatus() async {
  await Future.delayed(Duration(seconds: 2)); // network call simulate
  return "SUCCESS";
}

void main() async {
  print("Payment initiated...");
  final status = await checkPaymentStatus();
  print("Status: $status");
}

async function எப்போவும் Future return பண்ணும். await போட்டா தான் Dart காத்திருக்கும், இல்லேன்னா result வராத முன்னாடியே next line run ஆகிடும்.

யார் எந்த mistake பண்ணி trouble-ல மாட்டுறாங்க?

எங்கே error வர போகுது-ன்னு முன்னாடியே தெரிஞ்சுக்கோங்க:

  • ! operator-ஐ எங்கயும் போட்டுடுறது — value null-ஆ இருந்தா straight-ஆ crash.
  • final, const-ஐ மாத்தி மாத்தி use பண்றது — const value compile-time-ல தெரியணும், DateTime.now() மாரி runtime value-க்கு const போட்டா error.
  • async function-ஐ await செய்யாம விடுறது — print(fetchData()) பண்ணா "Instance of Future" என்று வந்துடும், real value இல்ல.
  • Named constructor-க்கு arguments-ஐ தப்பு order-ல கொடுக்கிறது — Flutter widget code-ல இது common mistake.

Chennai IT ஆபிஸ்ல, interview-ல இது எப்படி use ஆகும்?

Chennai, Bengaluru, Hyderabad-ல இருக்கற பல startups, product companies hybrid apps-க்கு Flutter use பண்றாங்க — single codebase-ல Android, iOS ரெண்டும் கவர் ஆகும்னு. Interview-ல null safety ஏன் வேணும், final vs const difference, Future.wait() எப்படி வேலை செய்யும்-ன்னு கேட்பது ரொம்ப common. இந்த basics clear-ஆ இருந்தா, Flutter widget tree, state management எல்லாம் பின்னாடி ரொம்ப easy-ஆ தெரியும்.

நீங்க இப்போ என்ன பண்ணணும் — practice task?

ஒரு simple Dart file create பண்ணுங்க. Order என்ற class எழுதுங்க, அதுக்கு ஒரு named constructor வைங்க. அப்புறம் checkPaymentStatus() மாரி ஒரு async function எழுதி, Future.delayed() வைச்சு 2 second wait பண்ணி, await use பண்ணி result print பண்ணுங்க. இது dart run வைச்சு run ஆனா, Flutter-ஐ தைரியமா ஆரம்பிக்கலாம்.

List, Map Dart-ல எப்படி use பண்ணலாம் - Flipkart cart example வைச்சு பார்க்கலாம்?

Flutter app எழுதும்போது ஒரு single value மட்டும் வச்சுக்கிட்டு உக்காரமுடியாது. Flipkart cart-ல 5 products இருக்கும், ஒரு UPI transaction history-ல பல entries இருக்கும் - இதையெல்லாம் handle பண்றதுக்கு Dart-ல List, Map, Set தான் basic tools. List அதாவது ஒரு ordered group of items, உதாரணமாக List<String> cartItems = ["Shoes", "Watch", "Bag"]; இது cart-ல இருக்கற products-ஐ order-ஆ வச்சுக்கும். Map அதாவது key-value pair, உதாரணமாக Map<String, double> prices = {"Shoes": 1200.0, "Watch": 899.0}; இதுல key போட்டா direct-ஆ value கிடைக்கும், List-ல மாரி index தேடி அலையவேண்டாம்.

இதை நம்ம daily life-க்கு connect பண்ணி பார்த்தா சுலபமா புரியும். IRCTC ticket booking-ல passenger list ஒரு List ஆகத்தான் இருக்கும் - ஒவ்வொரு passenger-க்கும் name, age, berth type என்று key-value pairs. GPay அல்லது PhonePe transaction history screen திறந்தா, அது internally ஒரு List of Map objects தான், ஒவ்வொரு transaction-க்கும் amount, date, status என்று fields இருக்கும். இதனால Flutter developer ஆகணும்னா, List, Map-ஐ confident-ஆ handle பண்ண தெரியணும், இல்லேன்னா ListView.builder() மாரி basic widgets-ஐ கூட சரியா எழுத முடியாது.

Beginners பண்ற ஒரு common mistake - எதையும் List<dynamic> அல்லது Map<dynamic, dynamic>-ஆ வச்சுக்கிறது. இது compile-time-ல error காட்டாது, ஆனா runtime-ல weird crashes வரும். Type specify பண்ணி List<String>, Map<String, int> மாரி எழுதுங்க, இது null safety-க்கும் உதவும். இன்னொரு mistake - Map-ல ஒரு key இல்லாத state-ல அதை access பண்ணி null error வாங்குறது, இதுக்காக containsKey() check பண்ணிட்டு access பண்ணுங்க. இந்த basics முடிஞ்சதும் நீங்க straight-ஆ Future<List>-க்கு போகலாம் - அதாவது API call ஒரு List of orders return பண்ணும் pattern, இது real Flutter apps-ல எல்லா இடத்திலும் வரும்.

அடிக்கடி கேட்கப்படும் கேள்விகள்

5

Dart கத்துக்காம directly Flutter கத்துக்கலாமா?

கத்துக்கலாம், ஆனா ரொம்ப கன்பூஷன் வரும். Flutter widgets எல்லாம் Dart syntax-லயே தான் இருக்கும், அதனால 2 மணி நேரம் Dart basics முதல்ல பார்த்தா பின்னாடி எளிதா இருக்கும்.

final, const ரெண்டுக்கும் என்ன வித்தியாசம்?

const value app start ஆகும் முன்னாடியே தெரிஞ்சிருக்கணும் (உதா. GST rate). final value run time-ல ஒரு முறை set ஆகும் (உதா. DateTime.now()).

Null safety-ல ! operator எப்போ use பண்ணணும்?

நிச்சயமா value null இல்லனு 100% தெரிஞ்சா மட்டும் ! use பண்ணுங்க. இல்லேன்னா app crash ஆகும் வாய்ப்பு அதிகம்.

async function-ல await போடாம விட்டா என்ன ஆகும்?

Function result வராத முன்னாடியே next line run ஆகிடும், print பண்ணும்போது real value வராம "Instance of Future" என்று வந்துடும்.

Named constructor வேணும்னா ஏன்?

ஒரே class-ஐ வேற வேற வழியா create பண்ண வேண்டும்னா இது உதவும். Flutter-ல Text.rich() மாரி examples இதையே follow பண்றாங்க.

நாளைய டெக் செய்திகள் உங்க WhatsApp-க்கே

தினமும் ஒரு சின்ன update, இலவசம். TamilTech channel-ஐ follow பண்ணுங்க.

What do you think?

people reacted

Keerthika

தமிழ்டெக் எடிட்டோரியல் டீம் · 3,448 கட்டுரைகள்

Keerthika is an editor at TamilTech, the Tamil and English technology publication founded by Praveen Kumar S. She covers AI, smartphones, gadgets, EVs, startups and cybersecurity i...

மேலும் Keerthika

WhatsApp-ல் TamilTech-ஐக் கேளுங்க

டெக் சந்தேகமா? தமிழிலோ ஆங்கிலத்திலோ கேளுங்க — எங்க WhatsApp அசிஸ்டன்ட் TamilTech கட்டுரைகளில் இருந்து சில நொடிகளில் பதில் சொல்லும்.

தொடர்புடைய செய்திகள்

கருத்துகள் (0)

| Supports **bold**, *italic*, `code`

Be the first to comment!

அடுத்த செய்தி Python Install & VS Code Setup — முதல் Hour-லயே சரியா பண்ணுங்க (Windows, Mac, Linux)
Tamiltech

Tamiltech

Install app for faster access

Earn XP 🏆
WhatsApp
Notifications