Dart 2.15 ede siseto ati Flutter 2.8 ilana ti o wa

Google ti ṣe atẹjade itusilẹ ti ede siseto Dart 2.15, eyiti o tẹsiwaju idagbasoke ti ẹka ti a tunṣe ti ipilẹṣẹ ti Dart 2, eyiti o yatọ si ẹya atilẹba ti ede Dart nipasẹ lilo titẹ aimi ti o lagbara (awọn oriṣi le ni oye laifọwọyi, nitorinaa Awọn iru asọye ko ṣe pataki, ṣugbọn titẹ agbara ko ni lilo ati ni ibẹrẹ ṣe iṣiro iru naa ni a yan si oniyipada ati pe ayẹwo iru to muna ni atẹle naa yoo lo).

Awọn ẹya ara ẹrọ ti ede Dart:

  • Imọmọ ati irọrun lati kọ ẹkọ sintasi, adayeba fun JavaScript, C ati awọn olupilẹṣẹ Java.
  • Ni idaniloju ifilọlẹ iyara ati iṣẹ ṣiṣe giga fun gbogbo awọn aṣawakiri wẹẹbu ode oni ati awọn oriṣiriṣi awọn agbegbe, lati awọn ẹrọ to ṣee gbe si awọn olupin ti o lagbara.
  • Agbara lati setumo awọn kilasi ati awọn atọkun ti o fun laaye encapsulation ati ilotunlo ti wa tẹlẹ ọna ati data.
  • Ṣiṣeto awọn oriṣi jẹ ki o rọrun lati yokokoro ati idanimọ awọn aṣiṣe, jẹ ki koodu naa di mimọ ati kika diẹ sii, ati irọrun iyipada ati itupalẹ rẹ nipasẹ awọn olupilẹṣẹ ẹni-kẹta.
  • Awọn oriṣi atilẹyin pẹlu: awọn oriṣi awọn hashes, awọn akojọpọ ati awọn atokọ, awọn ila, nomba ati awọn oriṣi okun, awọn oriṣi fun ṣiṣe ipinnu ọjọ ati akoko, awọn ikosile deede (RegExp). O ṣee ṣe lati ṣẹda awọn iru ti ara rẹ.
  • Lati ṣeto ipaniyan ti o jọra, o ni imọran lati lo awọn kilasi pẹlu ẹya iyasọtọ, koodu ti eyiti o ṣe ni kikun ni aaye ti o ya sọtọ ni agbegbe iranti lọtọ, ibaraenisepo pẹlu ilana akọkọ nipasẹ fifiranṣẹ awọn ifiranṣẹ.
  • Atilẹyin fun lilo awọn ile-ikawe ti o rọrun atilẹyin ati ṣiṣatunṣe awọn iṣẹ akanṣe wẹẹbu nla. Awọn imuse ẹni-kẹta ti awọn iṣẹ le wa ni irisi awọn ile-ikawe pinpin. Awọn ohun elo le pin si awọn apakan ati fi igbẹkẹle idagbasoke ti apakan kọọkan si ẹgbẹ ọtọtọ ti awọn olutọpa.
  • Eto awọn irinṣẹ ti a ti ṣetan lati ṣe atilẹyin idagbasoke ni ede Dart, pẹlu imuse ti idagbasoke ti o ni agbara ati awọn irinṣẹ n ṣatunṣe aṣiṣe pẹlu atunṣe koodu lori fo (“Ṣatunkọ-ati-tẹsiwaju”).
  • Lati jẹ ki idagbasoke rọrun ni ede Dart, o wa pẹlu SDK kan, ile-ọti oluṣakoso package kan, adarọ ese koodu aimi dart_analyzer, akojọpọ awọn ile ikawe kan, agbegbe idagbasoke iṣọpọ DartPad ati awọn afikun Dart-agbara fun IntelliJ IDEA, WebStorm, Emacs, Ọrọ ti o gaju 2 ati Vim.
  • Awọn idii afikun pẹlu awọn ile-ikawe ati awọn ohun elo ti pin nipasẹ ibi ipamọ ile-ọti, eyiti o ni awọn idii 22 ẹgbẹrun.

Awọn ayipada nla ni idasilẹ Dart 2.15:

  • Pese irinṣẹ fun sare ni afiwe ipaniyan ti awọn iṣẹ-ṣiṣe pẹlu ipinya ti handlers. Lori awọn ọna ṣiṣe-pupọ, akoko asiko Dart nipasẹ aiyipada nṣiṣẹ koodu ohun elo lori ọkan Sipiyu inu ọkan ati lo awọn ohun kohun miiran lati ṣe awọn iṣẹ ṣiṣe eto bii I/O asynchronous, kikọ si awọn faili, tabi ṣiṣe awọn ipe nẹtiwọọki. Fun awọn ohun elo ti o nilo lati ṣiṣẹ awọn olutọju wọn ni afiwe, fun apẹẹrẹ, lati ṣe ere idaraya ni wiwo, o ṣee ṣe lati ṣe ifilọlẹ awọn bulọọki lọtọ ti koodu (ya sọtọ), ti o ya sọtọ si ara wọn ati ṣiṣẹ lori awọn ohun kohun Sipiyu miiran nigbakanna pẹlu okun ohun elo akọkọ. . Lati daabobo lodi si awọn aṣiṣe ti o dide nigbati ipaniyan nigbakanna ti koodu ti n ṣiṣẹ pẹlu ṣeto data kanna, pinpin awọn nkan mutable ni awọn bulọọki ipinya ti o yatọ jẹ eewọ, ati pe a lo awoṣe gbigbe ifiranṣẹ kan fun ibaraenisepo laarin awọn olutọju.

    Dart 2.15 ṣafihan imọran tuntun kan - awọn ẹgbẹ idena ti o ya sọtọ (awọn ẹgbẹ ipinya), eyiti o fun ọ laaye lati ṣeto iraye si pinpin si ọpọlọpọ awọn ẹya data inu ni awọn bulọọki ipinya ti o jẹ apakan ti ẹgbẹ kanna, eyiti o le dinku ni pataki nigbati o ba n ṣe ajọṣepọ laarin awọn olutọju ni ẹgbẹ kan. . Fun apẹẹrẹ, ifilọlẹ afikun bulọọki ipinya ni ẹgbẹ ti o wa tẹlẹ jẹ awọn akoko 100 yiyara ati nilo awọn akoko 10-100 kere si iranti ju ifilọlẹ bulọọki ipinya lọtọ, nitori imukuro iwulo lati ṣe ipilẹṣẹ awọn ẹya data eto.

    Bi o ti jẹ pe awọn bulọọki ipinya ninu ẹgbẹ kan tun ṣe idiwọ iraye si pinpin si awọn nkan iyipada, awọn ẹgbẹ lo iranti okiti ti o pin, eyiti o le mu iyara gbigbe awọn nkan pọ si lati bulọọki kan si omiiran laisi iwulo lati ṣe awọn iṣẹ idaako to lekoko. Ẹya tuntun tun gba ọ laaye lati kọja abajade ti oluṣakoso nigbati o n pe Isolate.exit () lati gbe data lọ si bulọki ti o ya sọtọ laisi didakọ awọn iṣẹ. Ni afikun, ẹrọ gbigbe ifiranṣẹ ti jẹ iṣapeye - awọn ifiranṣẹ kekere ati alabọde ti ni ilọsiwaju ni bayi ni awọn akoko 8 yiyara. Awọn nkan ti o le kọja laarin awọn ipinya ni lilo ipe SendPort.send () pẹlu awọn iru iṣẹ kan, awọn pipade, ati awọn itọpa akopọ.

  • Ninu awọn irinṣẹ fun ṣiṣẹda awọn itọka si awọn iṣẹ kọọkan ni awọn ohun miiran (yiya-pipa), awọn ihamọ lori ṣiṣẹda awọn itọka kanna ni koodu olupilẹṣẹ ti yọkuro, eyiti o le wulo nigbati awọn atọkun ile ti o da lori ile-ikawe Flutter. Fun apẹẹrẹ, lati ṣẹda ẹrọ ailorukọ Ọwọn kan ti o pẹlu ọpọlọpọ awọn ẹrọ ailorukọ Ọrọ, o le pe “.map()” ati ṣe awọn itọka si Text.new ti o kọ ọrọ ọrọ: kilasi FruitWidget gbooro si StatelessWidget {@override Widget build(BuildContext context) {pada Column (awọn ọmọ: ['Apple', 'Orange']).map (Text.new) .toList ()); }}
  • Awọn aye ti o ni nkan ṣe pẹlu lilo awọn itọka iṣẹ ti pọ si. Ṣe afikun agbara lati lo awọn ọna jeneriki ati awọn itọka iṣẹ lati ṣẹda ọna ti kii ṣe jeneriki ati itọka: T id (T iye) => iye; var intId = id ; // laaye ni version 2.15 dipo ti "int Išė (int) intId = id;" const fo = id; // itọka si id iṣẹ. const c1 = fo ;
  • Ile-ikawe dart:core ti ni ilọsiwaju atilẹyin fun awọn enums, fun apẹẹrẹ, o le ṣe jade ni bayi iye okun kan lati iye enum kọọkan nipa lilo ọna “.name”, yan awọn iye nipa orukọ, tabi baramu awọn iye meji: enum MyEnum {ọkan , meji, mẹta} ofo akọkọ () {titẹ (MyEnum.one.name); // "ọkan" yoo wa ni titẹ. titẹ (MyEnum.values.byName ('meji') == MyEnum.meji); // "otitọ" yoo wa ni titẹ. ik map = MyEnum.values.asNameMap (); tẹjade (maapu ['mẹta'] == MyEnum.mẹta); // "otitọ". }
  • Ilana funmorawon ijuboluwole ti jẹ imuse ti o fun laaye lilo aṣoju iwapọ diẹ sii ti awọn itọka ni awọn agbegbe 64-bit ti aaye adirẹsi 32-bit ba to fun sisọ (ko si ju 4 GB ti iranti lo). Awọn idanwo ti fihan pe iru iṣapeye jẹ ki o ṣee ṣe lati dinku iwọn okiti nipasẹ isunmọ 10%. Ninu Flutter SDK, ipo tuntun ti ṣiṣẹ tẹlẹ fun Android nipasẹ aiyipada, ati pe a gbero lati mu ṣiṣẹ fun iOS ni itusilẹ ọjọ iwaju.
  • Dart SDK pẹlu awọn irinṣẹ fun ṣiṣatunṣe ati itupalẹ iṣẹ (DevTools), eyiti a ti pese tẹlẹ ni akojọpọ lọtọ.
  • A ti ṣafikun awọn irinṣẹ si aṣẹ “dart pub” ati awọn ibi ipamọ package pub.dev lati tọpa atẹjade airotẹlẹ ti alaye asiri, fun apẹẹrẹ, fifi awọn iwe-ẹri silẹ fun awọn eto iṣọpọ lemọlemọ ati awọn agbegbe awọsanma inu package. Ti o ba ti rii iru awọn n jo, ipaniyan ti aṣẹ “dart pub publish” yoo ni idilọwọ pẹlu ifiranṣẹ aṣiṣe. Ti idaniloju eke ba wa, o ṣee ṣe lati fori ayẹwo nipasẹ atokọ funfun kan.
  • Agbara lati fagilee ẹya ti a tẹjade tẹlẹ ti package kan ti ṣafikun si ibi ipamọ pub.dev, fun apẹẹrẹ, ti awọn aṣiṣe ti o lewu tabi awọn ailagbara ba ṣe awari. Ni iṣaaju, fun iru awọn atunṣe, iṣe naa ni lati gbejade ẹya atunṣe, ṣugbọn ni awọn ipo kan o jẹ dandan lati fagilee itusilẹ ti o wa tẹlẹ ki o dawọ pinpin siwaju sii ni iyara (fun apẹẹrẹ, ti atunṣe ko ba ti ṣetan tabi ti itusilẹ ni kikun ba wa. ti a tẹjade nipasẹ aṣiṣe dipo ẹya idanwo). Lẹhin ifagile, package ko ni idanimọ mọ ni awọn aṣẹ “ọti gba” ati “igbegasoke”, ati lori awọn eto ti o ti fi sii tẹlẹ, ikilọ pataki kan ni a fun ni nigbamii ti “ọti gba” ti ṣiṣẹ.
  • Idaabobo ti a ṣafikun lodi si ailagbara kan (CVE-2021-22567) ṣẹlẹ nipasẹ lilo awọn ohun kikọ unicode ninu koodu ti o yi aṣẹ ifihan pada.
  • Ti o wa titi ailagbara kan (CVE-2021-22568) ti o fun ọ laaye lati ṣe afarawe olumulo pub.dev miiran nigba titẹjade awọn idii si olupin ẹnikẹta ti o gba awọn ami wiwọle pub.dev oauth2. Fun apẹẹrẹ, ailagbara naa le ṣee lo lati kọlu inu ati awọn olupin akojọpọ ajọ. Awọn olupilẹṣẹ ti o gbalejo awọn idii nikan lori pub.dev ko ni fowo nipasẹ ọran yii.

Ni akoko kanna, itusilẹ pataki ti ilana wiwo olumulo Flutter 2.8 ni a gbekalẹ, eyiti o jẹ yiyan si React Native ati gba laaye, da lori ipilẹ koodu kan, lati tu awọn ohun elo silẹ fun iOS, Android, Windows, macOS ati Awọn iru ẹrọ Linux, bakannaa ṣẹda awọn ohun elo lati ṣiṣẹ ni awọn aṣawakiri. Ikarahun aṣa fun Fuchsia microkernel ẹrọ ṣiṣe nipasẹ Google ti wa ni itumọ ti lori ipilẹ Flutter. O ṣe akiyesi pe ni oṣu mẹfa sẹhin, nọmba awọn ohun elo Flutter 2 ni ile itaja Google Play ti pọ si lati 200 ẹgbẹrun si 375 ẹgbẹrun, ie. fere lemeji.

Apa akọkọ ti koodu Flutter ti wa ni imuse ni ede Dart, ati ẹrọ akoko ṣiṣe fun ṣiṣe awọn ohun elo ni a kọ sinu C ++. Nigbati o ba n dagbasoke awọn ohun elo, ni afikun si ede abinibi ti Flutter, o le lo wiwo Iṣẹ Iṣẹ Dart Ajeji lati pe koodu C/C++. Iṣe ipaniyan giga jẹ aṣeyọri nipasẹ iṣakojọpọ awọn ohun elo si koodu abinibi fun awọn iru ẹrọ ibi-afẹde. Ni ọran yii, eto naa ko nilo lati tun ṣe igbasilẹ lẹhin iyipada kọọkan - Dart pese ipo atunbere gbona ti o fun ọ laaye lati ṣe awọn ayipada si ohun elo nṣiṣẹ ati ṣe iṣiro abajade lẹsẹkẹsẹ.

Lara awọn ayipada ninu itusilẹ tuntun ti Flutter, iṣapeye iyara ifilọlẹ ati agbara iranti lori awọn ẹrọ alagbeka jẹ akiyesi. O rọrun lati so awọn ohun elo pọ si awọn iṣẹ ẹhin bii Firebase ati Google Cloud. Awọn irinṣẹ fun isọpọ pẹlu Awọn ipolowo Google ti ni imuduro. Atilẹyin fun awọn kamẹra ati awọn afikun wẹẹbu ti ni ilọsiwaju ni pataki. Awọn irinṣẹ tuntun ti dabaa lati jẹ ki idagbasoke rọrun, fun apẹẹrẹ, ẹrọ ailorukọ kan ti ṣafikun fun ijẹrisi nipa lilo Firebase. Ẹrọ ina, ti a ṣe apẹrẹ fun idagbasoke awọn ere 2D ni lilo Flutter, ti ni imudojuiwọn.

orisun: opennet.ru

Fi ọrọìwòye kun