ڈارٹ 2.14 زبان اور فلٹر 2.5 فریم ورک دستیاب ہے۔

گوگل نے ڈارٹ 2.14 پروگرامنگ لینگویج کی ریلیز کو شائع کیا ہے، جو ڈارٹ 2 کی بنیادی طور پر دوبارہ ڈیزائن کی گئی برانچ کی ترقی کو جاری رکھے ہوئے ہے، جو مضبوط جامد ٹائپنگ کے استعمال سے ڈارٹ زبان کے اصل ورژن سے مختلف ہے (قسم کا خود بخود اندازہ لگایا جا سکتا ہے، لہذا قسموں کی وضاحت ضروری نہیں ہے، لیکن ڈائنامک ٹائپنگ کا اب استعمال نہیں کیا جاتا ہے اور ابتدائی طور پر قسم کو متغیر کو تفویض کیا جاتا ہے اور بعد میں سخت قسم کی جانچ کا اطلاق ہوتا ہے)۔

ڈارٹ زبان کی خصوصیات:

  • واقف اور سیکھنے میں آسان نحو، جاوا اسکرپٹ، سی اور جاوا پروگرامرز کے لیے قدرتی۔
  • تمام جدید ویب براؤزرز اور مختلف قسم کے ماحول کے لیے تیز رفتار لانچ اور اعلی کارکردگی کو یقینی بنانا، پورٹیبل ڈیوائسز سے لے کر طاقتور سرورز تک۔
  • کلاسز اور انٹرفیس کی وضاحت کرنے کی اہلیت جو موجودہ طریقوں اور ڈیٹا کو encapsulation اور دوبارہ استعمال کرنے کی اجازت دیتی ہے۔
  • قسموں کی وضاحت کرنے سے غلطیوں کو ڈیبگ کرنا اور ان کی شناخت کرنا آسان ہو جاتا ہے، کوڈ کو واضح اور زیادہ پڑھنے کے قابل بناتا ہے، اور فریق ثالث کے ڈویلپرز کے ذریعے اس کی ترمیم اور تجزیہ کو آسان بناتا ہے۔
  • تائید شدہ اقسام میں شامل ہیں: مختلف قسم کے ہیشز، ارے اور فہرستیں، قطاریں، عددی اور سٹرنگ کی اقسام، تاریخ اور وقت کے تعین کے لیے اقسام، ریگولر ایکسپریشنز (RegExp)۔ آپ کی اپنی قسمیں بنانا ممکن ہے۔
  • متوازی عمل کو منظم کرنے کے لیے، الگ تھلگ وصف کے ساتھ کلاسز کا استعمال کرنے کی تجویز ہے، جس کا کوڈ مکمل طور پر الگ الگ میموری ایریا میں الگ تھلگ جگہ پر لاگو ہوتا ہے، پیغامات بھیج کر مرکزی عمل کے ساتھ تعامل کرتا ہے۔
  • لائبریریوں کے استعمال کے لیے سپورٹ جو بڑے ویب پروجیکٹس کی سپورٹ اور ڈیبگنگ کو آسان بناتی ہے۔ تیسرے فریق کے افعال کے نفاذ کو مشترکہ لائبریریوں کی شکل میں شامل کیا جا سکتا ہے۔ درخواستوں کو حصوں میں تقسیم کیا جا سکتا ہے اور ہر حصے کی ترقی کو پروگرامرز کی ایک الگ ٹیم کے سپرد کیا جا سکتا ہے۔
  • ڈارٹ زبان میں ترقی کو سپورٹ کرنے کے لیے تیار کردہ ٹولز کا ایک سیٹ، بشمول ڈائنامک ڈیولپمنٹ کا نفاذ اور کوڈ کی اصلاح کے ساتھ ڈیبگنگ ٹولز ("ترمیم کریں اور جاری رکھیں")۔
  • ڈارٹ زبان میں ترقی کو آسان بنانے کے لیے، یہ ایک SDK، ایک پیکیج مینیجر پب، ایک جامد کوڈ تجزیہ کار dart_analyzer، لائبریریوں کا ایک سیٹ، ایک مربوط ترقیاتی ماحول DartPad اور IntelliJ IDEA، WebStorm، Emacs، Sublime Text کے لیے Dart-enabled پلگ ان کے ساتھ آتا ہے۔ 2 اور ویم۔
  • لائبریریوں اور افادیت کے ساتھ اضافی پیکجز پب ریپوزٹری کے ذریعے تقسیم کیے جاتے ہیں، جس میں 20 ہزار سے زیادہ پیکجز ہیں۔

ڈارٹ 2.14 ریلیز میں اہم تبدیلیاں:

  • ایک نیا ٹرپل شفٹ آپریٹر (>>>) شامل کیا گیا ہے، جو ">>" آپریٹر کے برعکس، ریاضی نہیں بلکہ ایک منطقی شفٹ کرتا ہے جو سائن بٹ کو مدنظر رکھے بغیر کام کرتا ہے (شفٹ کو تقسیم کیے بغیر انجام دیا جاتا ہے۔ مثبت اور منفی نمبر)۔
  • قسم کے دلائل پر سے پابندی ہٹا دی گئی جس نے عام فنکشن کی قسموں کو ٹائپ آرگیومنٹ کے طور پر استعمال ہونے سے روک دیا۔ مثال کے طور پر، اب آپ وضاحت کر سکتے ہیں: لیٹ لسٹ (T)> آئی ڈی فنکشنز؛ var کال بیک = [ (ٹی ویلیو) => قدر]؛ دیر سے ایس فنکشن (T)>(S) f؛
  • تشریحات میں اقسام کے ساتھ دلائل کی وضاحت کرنے کی اجازت دیں جیسے @ Deprecated۔ مثال کے طور پر، اب آپ وضاحت کر سکتے ہیں: @TypeHelper (42، "معنی")
  • آبجیکٹ کلاس میں اسٹینڈرڈ لائبریری (کور) میں ہیش، hashAll اور hashAllUnordered کے جامد طریقے شامل کیے گئے ہیں۔ ڈیٹ ٹائم کلاس نے موسم گرما اور سردیوں کے درمیان گھڑیوں کو تبدیل کرتے وقت مقامی وقت کو سنبھالنے میں بہتری لائی ہے جو ایک گھنٹے سے تقسیم نہیں ہوتی ہیں (مثال کے طور پر، آسٹریلیا میں 30 منٹ کا آفسیٹ استعمال کیا جاتا ہے)۔ ایف آئی پیکج نے ایرینا میموری ایلوکیشن میکانزم کے لیے تعاون شامل کیا ہے، جو خود بخود وسائل کو جاری کرتا ہے۔ فائگین پیکج نے سی زبان سے ڈارٹ اقسام کی ٹائپ ڈیف تعریفیں پیدا کرنے کی صلاحیت کو شامل کیا ہے۔
  • pub.dev ریپوزٹری کے 250 مقبول ترین پیکجز اور ٹاپ 94 کے 1000% کو "نال سیفٹی" موڈ استعمال کرنے پر تبدیل کر دیا گیا ہے، جو ایسے متغیرات کو استعمال کرنے کی کوششوں سے ہونے والے کریشوں سے بچیں گے جن کی قدر غیر متعین ہے اور "نول" پر سیٹ ہے۔ " موڈ کا مطلب یہ ہے کہ متغیرات میں null قدریں نہیں ہوسکتی ہیں جب تک کہ انہیں واضح طور پر ویلیو null تفویض نہ کیا جائے۔ موڈ متغیر کی قسموں کا سختی سے احترام کرتا ہے، جو کمپائلر کو اضافی اصلاح کو لاگو کرنے کی اجازت دیتا ہے۔ ٹائپ کمپلائنس کو کمپائل کے وقت چیک کیا جاتا ہے، مثال کے طور پر، اگر آپ کسی متغیر کو ایسی قسم کے ساتھ ویلیو "Null" تفویض کرنے کی کوشش کرتے ہیں جو غیر متعینہ حالت کا مطلب نہیں ہے، جیسے "int"، تو ایک خرابی ظاہر ہوگی۔
  • کوڈ اینالائزر (لنٹر) کے لیے قواعد کے متحد سیٹ تجویز کیے گئے ہیں، جو ڈارٹ اور فلٹر فریم ورک کے لیے کوڈ اسٹائل گائیڈ لائنز کی تعمیل کی جانچ کے لیے بیک وقت مدد فراہم کرتے ہیں۔ تاریخی وجوہات کی بناء پر، فلٹر اور ڈارٹ کے لیے کوڈنگ کے اصول مختلف تھے، اس کے علاوہ، ڈارٹ کے لیے قواعد کے دو سیٹ استعمال میں تھے - گوگل کے پیڈینٹک اور ڈارٹ ڈویلپر کمیونٹی کے اصول۔ ڈارٹ 2.14 لنٹر کے لیے اصولوں کا ایک نیا عام سیٹ متعارف کراتا ہے، جسے نئے ڈارٹ پروجیکٹس اور فلٹر SDK میں بطور ڈیفالٹ استعمال کرنے کا فیصلہ کیا جاتا ہے۔ سیٹ میں بنیادی اصول (lints/core.yaml پیکیج)، تجویز کردہ اضافی اصول (lints/recommended.yaml)، اور Flutter کے لیے مخصوص سفارشات (flutter_lints/flutter.yaml) شامل ہیں۔ پیڈینٹک قواعد کے استعمال کنندگان کو مشورہ دیا جاتا ہے کہ وہ ڈارٹ دستاویزات کی سفارشات کی بنیاد پر کوڈنگ کا نیا انداز استعمال کریں۔
  • فارمیٹر میں، کاسکیڈنگ کوڈ بلاکس کی فارمیٹنگ میں اصلاح کی گئی ہے، جو فارمیٹنگ کی کارکردگی کو نمایاں طور پر بہتر بنا سکتی ہے اور اظہار کے عناصر کی ملکیت کی مبہم تشریح سے بچ سکتی ہے۔ مثال کے طور پر، اظہار میں "..doIt" کو کال کرنا "var result = errorState ? foo : bad..doIt()" کا تعلق "خراب" بلاک کے مشروط حصے سے نہیں، بلکہ پورے اظہار سے ہے، لہذا فارمیٹنگ کرتے وقت اسے الگ کردیا جاتا ہے: var نتیجہ = errorState؟ foo: bad ..doIt();
  • ایپل ایم 1 (سلیکون) پروسیسرز کے لیے سپورٹ SDK میں شامل کر دیا گیا ہے، جس کا مطلب یہ ہے کہ Apple Silicon پروسیسر والے سسٹمز پر Dart VM، یوٹیلیٹیز اور SDK اجزاء کو چلانے کی صلاحیت، اور ان چپس کے لیے قابل عمل فائلوں کو مرتب کرنے میں معاونت۔
  • "dart pub" کمانڈ نے ایک نئی سروس فائل ".pubignore" کے لیے تعاون شامل کیا ہے، جو آپ کو فائلوں کی فہرست کی وضاحت کرنے کی اجازت دیتا ہے جو pub.dev ذخیرہ میں پیکج شائع کرتے وقت چھوڑ دی جائیں گی۔ یہ ترتیبات ".gitignore" نظر انداز کرنے کی فہرست میں مداخلت نہیں کرتی ہیں (کچھ حالات میں، pub.dev ان فائلوں کو منتقل کرنے سے گریز کرنا چاہتا ہے جن کی Git میں ضرورت ہوتی ہے، مثال کے طور پر، ترقی کے دوران استعمال ہونے والی اندرونی اسکرپٹس)۔
  • "ڈارٹ ٹیسٹ" کمانڈ کی کارکردگی کو بہتر بنانے کے لیے کام کیا گیا ہے، جس میں اب ورژن نمبر تبدیل نہ ہونے کی صورت میں پب اسپیک کو تبدیل کرنے کے بعد دوبارہ کمپائلنگ ٹیسٹ کی ضرورت نہیں ہے۔
  • ECMAScript 5 مطابقت کے موڈ میں تالیف کے لیے سپورٹ بند کر دی گئی ہے (تبدیلی کے نتیجے میں IE11 براؤزر کے ساتھ مطابقت ختم ہو جائے گی)۔
  • انفرادی یوٹیلیٹیز سٹیج ہینڈ، ڈارٹ ایف ایم ٹی اور ڈارٹ ٹونیٹیو کو متروک قرار دیا گیا ہے، ان کی جگہ ڈارٹ یوٹیلیٹی کے ذریعے بلٹ ان کمانڈز نے لے لی ہے۔
  • VM Native Extensions میکانزم کو فرسودہ کر دیا گیا ہے۔ ڈارٹ کوڈ سے مقامی کوڈ کو کال کرنے کے لیے، نیا ڈارٹ ایف ایف آئی (فارن فنکشن انٹرفیس) استعمال کرنے کی سفارش کی جاتی ہے۔

اسی وقت، یوزر انٹرفیس فریم ورک فلٹر 2.5 کی ایک اہم ریلیز پیش کی گئی، جسے ری ایکٹ نیٹیو کا متبادل سمجھا جاتا ہے اور ایک کوڈ کی بنیاد پر، iOS، اینڈرائیڈ، ونڈوز، میک او ایس اور لینکس کے لیے ایپلی کیشنز جاری کرنے کی اجازت دیتا ہے۔ پلیٹ فارمز کے ساتھ ساتھ براؤزرز میں چلانے کے لیے ایپلی کیشنز بنائیں۔ Google کی طرف سے تیار کردہ Fuchsia microkernel آپریٹنگ سسٹم کے لیے ایک حسب ضرورت شیل Flutter کی بنیاد پر بنایا گیا ہے۔

فلٹر کوڈ کا بنیادی حصہ ڈارٹ زبان میں لاگو کیا جاتا ہے، اور ایپلی کیشنز پر عمل درآمد کے لیے رن ٹائم انجن C++ میں لکھا جاتا ہے۔ ایپلی کیشنز تیار کرتے وقت، فلٹر کی مقامی ڈارٹ زبان کے علاوہ، آپ C/C++ کوڈ کو کال کرنے کے لیے ڈارٹ فارن فنکشن انٹرفیس استعمال کر سکتے ہیں۔ ٹارگٹ پلیٹ فارمز کے لیے مقامی کوڈ میں ایپلی کیشنز کو مرتب کرکے اعلیٰ کارکردگی کا مظاہرہ کیا جاتا ہے۔ اس صورت میں، ہر تبدیلی کے بعد پروگرام کو دوبارہ مرتب کرنے کی ضرورت نہیں ہے - ڈارٹ ایک ہاٹ ری لوڈ موڈ فراہم کرتا ہے جو آپ کو چلنے والی ایپلیکیشن میں تبدیلیاں کرنے اور نتیجہ کا فوری جائزہ لینے کی اجازت دیتا ہے۔

فلٹر 2.5 میں اہم تبدیلیاں:

  • نمایاں کارکردگی کی اصلاح کی۔ iOS اور macOS پلیٹ فارمز پر، میٹل گرافکس API کے لیے شیڈرز کی پری کمپائلیشن لاگو کر دی گئی ہے۔ غیر مطابقت پذیر واقعات پر کارروائی کرنے کی بہتر کارکردگی۔ تاخیر کے ساتھ ایک مسئلہ حل کیا جب کوڑا اٹھانے والا غیر استعمال شدہ امیجز سے میموری کو دوبارہ حاصل کرتا ہے (مثال کے طور پر، 20 سیکنڈ کے اینیمیٹڈ GIF کے پلے بیک کے دوران، کوڑا اٹھانے کے کاموں کی تعداد 400 سے کم کر کے 4 کر دی گئی تھی۔ ڈارٹ اور مقصد کے درمیان پیغامات بھیجنے میں تاخیر۔ C/Swift کو گھٹا کر 50% (iOS) کر دیا گیا یا Java/Kotlin (Android) کو Apple Silicon چپ پر مبنی سسٹمز کے لیے مقامی تعمیراتی سپورٹ شامل کر دیا گیا۔
    ڈارٹ 2.14 زبان اور فلٹر 2.5 فریم ورک دستیاب ہے۔
  • اینڈرائیڈ پلیٹ فارم کے لیے فل سکرین موڈ میں ایپلی کیشنز چلانے کے لیے سپورٹ قائم کیا گیا ہے۔ "مٹیریل یو" ڈیزائن کے تصور کا نفاذ، جسے اگلی نسل کے میٹریل ڈیزائن کے آپشن کے طور پر پیش کیا گیا، جاری رہا۔ ایک نئی ریاست MaterialState.scrolledUnder شامل کی گئی، سائز تبدیل کرتے وقت اسکرول بارز کے متحرک ڈسپلے کو لاگو کیا، اور نوٹیفکیشن بینرز کی نمائش کے لیے ایک نیا انٹرفیس تجویز کیا۔
  • آٹو فوکس، نمائش، فلیش، زوم، شور کو کم کرنے اور ریزولوشن کو کنٹرول کرنے کے لیے ٹولز کا اضافہ کرتے ہوئے کیمرے کے پلگ ان کی صلاحیتوں کو نمایاں طور پر بڑھا دیا گیا ہے۔
  • ڈیولپر ٹولز (DevTools) کو ایک اپ ڈیٹ ویجیٹ انسپیکشن موڈ کے ساتھ ساتھ رینڈرنگ میں تاخیر کی شناخت اور شیڈر کمپلیشن کو ٹریک کرنے کے ٹولز کو شامل کرنے کے لیے بہتر بنایا گیا ہے۔
    ڈارٹ 2.14 زبان اور فلٹر 2.5 فریم ورک دستیاب ہے۔
  • بصری اسٹوڈیو کوڈ اور IntelliJ/Android اسٹوڈیو کے لیے بہتر پلگ ان۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں