ڊارٽ 2.15 پروگرامنگ ٻولي ۽ فلٽر 2.8 فريم ورڪ موجود آهي

گوگل ڊارٽ 2.15 پروگرامنگ ٻولي جو رليز جاري ڪيو آهي، جيڪو ڊارٽ 2 جي بنيادي طور تي نئين سر ترتيب ڏنل برانچ جي ترقي کي جاري رکي ٿو، جيڪو مضبوط جامد ٽائپنگ جي استعمال سان ڊارٽ ٻولي جي اصل ورزن کان مختلف آهي (قسم پاڻمرادو اندازو لڳائي سگهجي ٿو، تنهنڪري قسم جي وضاحت ڪرڻ ضروري نه آهي، پر متحرڪ ٽائپنگ هاڻي استعمال نه ڪئي وئي آهي ۽ شروعاتي طور تي قسم کي مقرر ڪيو ويو آهي متغير ۽ سخت قسم جي چڪاس بعد ۾ لاڳو ٿئي ٿي).

ڊارٽ ٻولي جون خاصيتون:

  • واقف ۽ سکڻ ۾ آسان نحو، قدرتي جاوا اسڪرپٽ، سي ۽ جاوا پروگرامرز لاءِ.
  • سڀني جديد ويب برائوزرن ۽ ماحول جي مختلف قسمن لاءِ تيز لانچ ۽ اعليٰ ڪارڪردگي کي يقيني بڻائڻ، پورٽبل ڊوائيسز کان وٺي طاقتور سرور تائين.
  • ڪلاس ۽ انٽرفيس کي بيان ڪرڻ جي صلاحيت جيڪا موجوده طريقن ۽ ڊيٽا جي انڪپسوليشن ۽ ٻيهر استعمال جي اجازت ڏئي ٿي.
  • قسم جي وضاحت ڪرڻ ان کي ڊيبگ ڪرڻ ۽ غلطين جي نشاندهي ڪرڻ آسان بڻائي ٿي، ڪوڊ کي صاف ۽ وڌيڪ پڙهڻ لائق بڻائي ٿو، ۽ ٽئين پارٽي ڊولپرز پاران ان جي ترميم ۽ تجزيو کي آسان بڻائي ٿو.
  • سپورٽ ٿيل قسمن ۾ شامل آهن: مختلف قسم جا هيش، صفون ۽ لسٽون، قطارون، عددي ۽ اسٽرنگ جا قسم، تاريخ ۽ وقت جي تعين لاءِ قسمون، باقاعده اظهار (RegExp). اهو توهان جي پنهنجي قسم ٺاهڻ لاء ممڪن آهي.
  • متوازي عمل کي منظم ڪرڻ لاءِ، ڪلاسز کي استعمال ڪرڻ جي تجويز ڏني وئي آهي الڳ الڳ وصف سان، جنهن جو ڪوڊ مڪمل طور تي الڳ ٿيل جاءِ ۾ الڳ ميموري واري علائقي ۾، پيغام موڪلڻ سان مکيه عمل سان لهه وچڙ ۾ اچي ٿو.
  • لائبريرين جي استعمال لاءِ مدد جيڪا وڏي ويب پروجيڪٽ جي سپورٽ ۽ ڊيبگنگ کي آسان بڻائي ٿي. ٽئين پارٽي جي عملن جي عملن کي حصيداري لائبريرين جي صورت ۾ شامل ڪري سگھجي ٿو. ايپليڪيشنن کي حصن ۾ ورهائي سگهجي ٿو ۽ هر حصي جي ترقي کي پروگرامرز جي الڳ ٽيم ڏانهن منتقل ڪري سگهجي ٿو.
  • ڊارٽ ٻولي ۾ ڊولپمينٽ کي سپورٽ ڪرڻ لاءِ تيار ٿيل اوزارن جو هڪ سيٽ، جنهن ۾ متحرڪ ڊولپمينٽ جو نفاذ ۽ ڪوڊ جي اصلاح سان ڊيبگنگ ٽولز شامل آهن فلائي تي ("ايڊٽ-۽-جاري").
  • ڊارٽ ٻولي ۾ ترقي کي آسان ڪرڻ لاءِ، اهو هڪ SDK سان گڏ اچي ٿو، هڪ پيڪيج مئنيجر پب، هڪ مستحڪم ڪوڊ اينالائيزر dart_analyzer، لائبريرين جو هڪ سيٽ، هڪ مربوط ترقياتي ماحول DartPad ۽ Dart-enabled plugins for IntelliJ IDEA، WebStorm، Emacs، Sublime Text. 2 ۽ ويم.
  • لائبريرين ۽ يوٽيلٽيز سان گڏ اضافي پيڪيجز پب ريپوزٽري ذريعي ورهايا ويا آهن، جن ۾ اٽڪل 22 هزار پيڪيجز آهن.

ڊارٽ 2.15 رليز ۾ اهم تبديليون:

  • هينڊلر جي الڳ ٿيڻ سان ڪمن جي تيز متوازي عمل لاءِ اوزار مهيا ڪري ٿي. ملٽي-ڪور سسٽم تي، ڊارٽ رن ٽائم ڊفالٽ طور تي هڪ سي پي يو ڪور تي ايپليڪيشن ڪوڊ هلائي ٿو ۽ سسٽم جي ڪمن کي انجام ڏيڻ لاءِ ٻيا ڪور استعمال ڪري ٿو جهڙوڪ Asynchronous I/O، فائلن تي لکڻ، يا نيٽ ورڪ ڪالون ڪرڻ. ايپليڪيشنن لاءِ جن کي پنهنجن هينڊلرن کي متوازي طور تي عمل ڪرڻ جي ضرورت آهي، مثال طور، انٽرفيس ۾ اينيميشن رينڊر ڪرڻ لاءِ، اهو ممڪن آهي ته ڪوڊ جا الڳ بلاڪ (آسوليٽ) شروع ڪيا وڃن، هڪ ٻئي کان الڳ ۽ ٻين سي پي يو ڪور تي هڪ ئي وقت ۾ مکيه ايپليڪيشن ٿريڊ سان گڏ. . غلطين جي خلاف حفاظت لاءِ جيڪي پيدا ٿين ٿيون جڏهن ڪوڊ جي هڪ ئي وقت ۾ ڪم ڪندڙ ڊيٽا جي هڪ ئي سيٽ سان ڪم ڪري رهيو آهي، مختلف الڳ الڳ بلاڪن ۾ تبديل ٿيندڙ شيون شيئر ڪرڻ ممنوع آهي، ۽ هينڊلرن جي وچ ۾ رابطي لاءِ ميسيج پاس ڪرڻ وارو ماڊل استعمال ڪيو ويندو آهي.

    ڊارٽ 2.15 هڪ نئون تصور متعارف ڪرايو آهي - الڳ ٿيل بلاڪ گروپس (آسوليٽ گروپ)، جيڪو توهان کي مختلف اندروني ڊيٽا جي جوڙجڪ تائين گڏيل رسائي کي منظم ڪرڻ جي اجازت ڏئي ٿو الڳ الڳ بلاڪ ۾ جيڪي هڪ ئي گروپ جو حصو آهن، جيڪي خاص طور تي اوور هيڊ کي گهٽائي سگهن ٿا جڏهن هڪ گروپ ۾ هينڊلر جي وچ ۾ رابطي ۾. . مثال طور، هڪ موجوده گروپ ۾ هڪ اضافي آئسوليٽ بلاڪ شروع ڪرڻ 100 ڀيرا تيز آهي ۽ هڪ الڳ الڳ الڳ بلاڪ شروع ڪرڻ کان 10-100 ڀيرا گهٽ ميموري جي ضرورت آهي، پروگرام جي ڊيٽا جي جوڙجڪ کي شروع ڪرڻ جي ضرورت جي خاتمي جي ڪري.

    ان حقيقت جي باوجود ته گروپ ۾ آئسوليٽ بلاڪ اڃا تائين ميوٽبل شئي تائين گڏيل رسائي کي منع ڪن ٿا، گروپ هڪ گڏيل هيپ ميموري استعمال ڪن ٿا، جيڪي وڏي پئماني تي هڪ بلاڪ کان ٻئي بلاڪ تائين شين جي منتقلي کي تيز ڪري سگهن ٿا بغير وسيلن جي شدت واري ڪاپي آپريشن کي انجام ڏيڻ جي. نئون ورزن توهان کي هينڊلر جو نتيجو پاس ڪرڻ جي اجازت ڏئي ٿو جڏهن Isolate.exit() کي ڪال ڪري ڊيٽا کي والدين آئسوليٽ بلاڪ ڏانهن منتقل ڪرڻ لاءِ بغير آپريشن جي ڪاپي ڪرڻ جي. ان کان علاوه، پيغام جي ٽرانسميشن ميڪانيزم کي بهتر ڪيو ويو آهي - ننڍا ۽ وچولي پيغام هاڻي تقريبا 8 ڀيرا تيزيء سان پروسيس ڪيا ويا آهن. شيون جيڪي SendPort.send() ڪال استعمال ڪندي ڌار ڌارن جي وچ ۾ گذري سگھن ٿيون انهن ۾ ڪجھ قسم جا افعال، بندش، ۽ اسٽيڪ جا نشان شامل آھن.

  • ٻين شين ۾ انفرادي ڪمن لاءِ پوائنٽرز ٺاهڻ جي ٽولن ۾ (ٽيئر آف)، ڪنسٽرڪٽر ڪوڊ ۾ ساڳيا پوائنٽر ٺاهڻ تي پابنديون هٽايون ويون آهن، جيڪي فلٽر لائبريري جي بنياد تي انٽرفيس ٺاهڻ وقت ڪارائتو ٿي سگهن ٿيون. مثال طور، ڪالمن ويجيٽ ٺاهڻ لاءِ جنهن ۾ گھڻا ٽيڪسٽ ويجٽ شامل آهن، توهان ".map()" کي ڪال ڪري سگهو ٿا ۽ ٽيڪسٽ اعتراض جي Text.new ڪنسٽرڪٽر ڏانهن پوائنٽر پاس ڪري سگهو ٿا: class FruitWidget expans Stateless Widget { @override Widget build(BuildContext context) { واپسي ڪالم (ٻارن: ['ايپل'، 'نارنگي']. نقشو (Text.new).toList()); } }
  • فنڪشن پوائنٽر جي استعمال سان لاڳاپيل امکانات کي وڌايو ويو آهي. غير عام طريقو ۽ پوائنٽر ٺاهڻ لاءِ عام طريقا ۽ فنڪشن پوائنٽر استعمال ڪرڻ جي صلاحيت شامل ڪئي وئي: T id (T value) => قدر؛ var intId = id ؛ // ورزن 2.15 ۾ اجازت ڏني وئي بدران "int Function(int) intId = id؛" const fo = id؛ // فنڪشن id ڏانهن اشارو. const c1 = fo ؛
  • dart:core لائبريري enums لاءِ سپورٽ کي بهتر بڻايو آهي، مثال طور، توھان ھاڻي ".name" طريقي سان استعمال ڪندي ھر اينيم ويليو مان اسٽرنگ ويليو ڪڍي سگھو ٿا، نالي سان قدر منتخب ڪريو، يا قدرن جو جوڙو ملائي سگھو ٿا: enum MyEnum { one , two, three } void main() { print(MyEnum.one.name)؛ // "هڪ" ڇاپيو ويندو. پرنٽ (MyEnum.values.byName('two') == MyEnum.two)؛ // "سچو" ڇاپيو ويندو. فائنل نقشو = MyEnum.values.asNameMap()؛ پرنٽ(نقشو['ٽي'] == MyEnum.three)؛ // "سچو". }
  • هڪ پوائنٽر ڪمپريشن ٽيڪنڪ لاڳو ڪئي وئي آهي جيڪا 64-bit ماحول ۾ پوائنٽرز جي وڌيڪ جامع نمائندگي جي استعمال جي اجازت ڏئي ٿي جيڪڏهن 32-bit ايڊريس اسپيس ايڊريسنگ لاءِ ڪافي آهي (4 GB کان وڌيڪ ميموري استعمال نه ڪئي وئي آهي). تجربن مان معلوم ٿئي ٿو ته اهڙي اصلاح ان کي ممڪن بڻائي ٿو ته هيپ جي سائيز کي گھٽائڻ لاء تقريبا 10٪. فلٽر SDK ۾، نئون موڊ اڳ ۾ ئي Android لاءِ ڊفالٽ طور تي فعال ڪيو ويو آهي، ۽ مستقبل جي رليز ۾ iOS لاءِ فعال ٿيڻ جي منصوبابندي ڪئي وئي آهي.
  • ڊارٽ SDK ۾ ڊيبگنگ ۽ ڪارڪردگي جي تجزيي لاءِ اوزار شامل آهن (DevTools)، جيڪي اڳ ۾ هڪ الڳ پيڪيج ۾ فراهم ڪيا ويا هئا.
  • اوزار شامل ڪيا ويا آهن ”ڊارٽ پب“ ڪمانڊ ۽ pub.dev پيڪيج ريپوزٽريز کي ڳجهي معلومات جي حادثاتي اشاعت کي ٽريڪ ڪرڻ لاءِ، مثال طور، پيڪيج جي اندر مسلسل انٽيگريشن سسٽم ۽ ڪلائوڊ ماحول لاءِ سندون ڇڏڻ. جيڪڏهن اهڙيون ليڪس ڳوليا ويندا آهن، "ڊارٽ پب پبلش" حڪم جي عمل کي غلطي پيغام سان مداخلت ڪئي ويندي. جيڪڏهن ڪو غلط مثبت هو، اهو ممڪن آهي ته چيڪ کي سفيد لسٽ ذريعي ختم ڪرڻ.
  • پيڪيج جي اڳ ۾ ئي شايع ٿيل نسخي کي رد ڪرڻ جي صلاحيت pub.dev مخزن ۾ شامل ڪئي وئي آهي، مثال طور، جيڪڏهن خطرناڪ غلطيون يا ڪمزوريون دريافت ڪيون وڃن. اڳي، اهڙين تصحيح لاءِ، عملي طور تي هڪ اصلاحي نسخو شايع ڪيو ويندو هو، پر ڪجهه حالتن ۾ اهو ضروري آهي ته موجوده رليز کي منسوخ ڪيو وڃي ۽ فوري طور تي ان جي وڌيڪ ورهاست کي روڪيو وڃي (مثال طور، جيڪڏهن تصحيح اڃا تيار نه آهي يا جيڪڏهن مڪمل رليز هئي. امتحان واري نسخي جي بدران غلطي سان شايع ٿيل). رد ڪرڻ کان پوءِ، پيڪيج جي نشاندهي نه ڪئي وئي آهي ”پب حاصل ڪريو“ ۽ ”پب اپ گريڊ“ ڪمانڊن ۾، ۽ سسٽم تي جيڪي اڳ ۾ ئي ان کي انسٽال ڪري چڪا آهن، هڪ خاص وارننگ جاري ڪئي ويندي آهي ايندڙ وقت ”پب حاصل“ تي عمل ڪيو ويندو.
  • ضمير جي خلاف تحفظ شامل ڪيو ويو (CVE-2021-22567) ڪوڊ ۾ يونيڪوڊ اکرن جي استعمال جي ڪري جيڪو ڊسپلي آرڊر کي تبديل ڪري ٿو.
  • هڪ خطري کي درست ڪيو (CVE-2021-22568) جيڪا توهان کي اجازت ڏئي ٿي ته توهان ٻئي pub.dev استعمال ڪندڙ کي نقل ڪري رهيا آهيو جڏهن پيڪيجز کي ٽئين پارٽي جي سرور تي شايع ڪري ٿو جيڪو قبول ڪري ٿو pub.dev oauth2 رسائي ٽوڪن. مثال طور، نقصانڪار استعمال ٿي سگھي ٿو اندروني ۽ ڪارپوريٽ پيڪيج سرورز تي حملو ڪرڻ لاءِ. ڊولپرز جيڪي صرف pub.dev تي پيڪيجز جي ميزباني ڪندا آهن هن مسئلي کان متاثر نه آهن.

ساڳئي وقت، يوزر انٽرفيس فريم ورڪ فلٽر 2.8 جو هڪ اهم رليز پيش ڪيو ويو، جنهن کي ري ايڪٽ نيٽيو جو متبادل سمجهيو وڃي ٿو ۽ هڪ واحد ڪوڊ جي بنياد تي، iOS، Android، Windows، macOS ۽ ايپليڪيشنن کي جاري ڪرڻ جي اجازت ڏئي ٿو. لينڪس پليٽ فارم، انهي سان گڏ برائوزرن ۾ هلائڻ لاء ايپليڪيشنون ٺاهي. گوگل پاران تيار ڪيل Fuchsia microkernel آپريٽنگ سسٽم لاءِ هڪ ڪسٽم شيل فلٽر جي بنياد تي ٺهيل آهي. ياد رهي ته گذريل ڇهن مهينن دوران گوگل پلي اسٽور تي فلٽر 2 ايپليڪيشنن جو انگ 200 هزار کان وڌي 375 هزار تائين پهچي ويو آهي، يعني. لڳ ڀڳ ٻه ڀيرا.

فلٽر ڪوڊ جو مکيه حصو ڊارٽ ٻولي ۾ لاڳو ڪيو ويو آهي، ۽ ايپليڪيشنن تي عمل ڪرڻ لاء رن ٽائم انجڻ C++ ۾ لکيل آهي. جڏهن ايپليڪيشنون ٺاهي رهيا آهن، فلٽر جي اصلي ڊارٽ ٻولي کان علاوه، توهان استعمال ڪري سگهو ٿا ڊارٽ فارين فنڪشن انٽرفيس کي ڪال ڪرڻ لاءِ C/C++ ڪوڊ. ھدف پليٽ فارمن لاءِ مقامي ڪوڊ ۾ ايپليڪيشنن کي گڏ ڪرڻ سان اعلي ڪارڪردگي ڪارڪردگي حاصل ڪئي ويندي آھي. انهي صورت ۾، پروگرام کي هر تبديلي کان پوء ٻيهر ترتيب ڏيڻ جي ضرورت ناهي - ڊارٽ هڪ گرم ري لوڊ موڊ مهيا ڪري ٿو جيڪا توهان کي هلندڙ ايپليڪيشن ۾ تبديليون ڪرڻ جي اجازت ڏئي ٿي ۽ فوري طور تي نتيجو جو جائزو وٺو.

فلٽر جي نئين رليز ۾ تبديلين جي وچ ۾، موبائل ڊوائيسز تي لانچ جي رفتار ۽ ميموري جي استعمال جي اصلاح کي نوٽ ڪيو ويو آهي. ايپس کي پس منظر سروسز جهڙوڪ فائر بيس ۽ گوگل ڪلائوڊ سان ڳنڍڻ آسان آهي. گوگل اشتهارن سان ضم ٿيڻ جا اوزار مستحڪم ڪيا ويا آهن. ڪئميرا ۽ ويب پلگ ان لاءِ سپورٽ خاص طور تي بهتر ڪئي وئي آهي. ترقي کي آسان ڪرڻ لاءِ نوان اوزار تجويز ڪيا ويا آهن، مثال طور، هڪ ويجيٽ شامل ڪيو ويو آهي تصديق ڪرڻ لاءِ Firebase استعمال ڪندي. فلي انجڻ، فلٽر استعمال ڪندي 2D گيمز ٺاهڻ لاءِ ٺهيل آهي، اپڊيٽ ڪئي وئي آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو