Dart 2.14 ulwimi kunye neFlutter 2.5 isakhelo esikhoyo

UGoogle upapashe ukukhutshwa kolwimi lwenkqubo lweDart 2.14, oluqhubeleka nophuhliso lwesebe elihlengahlengiswe ngokugqibeleleyo leDart 2, elahlukileyo kwinguqulelo yoqobo yolwimi lweDart ngokusetyenziswa kochwethezo olomeleleyo (iintlobo zinokuchazwa ngokuzenzekelayo, ngoko ke ukukhankanya iindidi akukho mfuneko, kodwa ukuchwetheza okuguquguqukayo akusasetyenziswa kwaye ekuqaleni kubalwe uhlobo lwabelwa uguqulo kunye nohlobo olungqongqo lokujonga kusetyenziswa emva koko).

Iimpawu zolwimi lweDart:

  • Iqhelekile kwaye kulula ukuyifunda i-syntax, yendalo yeJavaScript, iC kunye nabaprogram beJava.
  • Ukuqinisekisa ukuqaliswa okukhawulezayo kunye nokusebenza okuphezulu kuzo zonke iibhrawuza zewebhu zanamhlanje kunye neentlobo ezahlukeneyo zeemeko, ukusuka kwizixhobo eziphathwayo ukuya kwiiseva ezinamandla.
  • Ukukwazi ukuchaza iiklasi kunye nojongano oluvumela ukufakwa kunye nokusetyenziswa kwakhona kweendlela ezikhoyo kunye neenkcukacha.
  • Ukukhankanya iintlobo kwenza kube lula ukulungisa iimpazamo kunye nokuchonga iimpazamo, kwenza ikhowudi icace kwaye ifundeke ngakumbi, kwaye ilula ukuguqulwa kwayo kunye nohlalutyo ngabaphuhlisi beqela lesithathu.
  • Iindidi ezixhaswayo zibandakanya: iindidi ngeendidi zeehashes, ii-arrays kunye noluhlu, imigca, amanani kunye neendidi zemitya, iindidi zokumisela umhla kunye nexesha, amabinzana aqhelekileyo (RegExp). Kuyenzeka ukuba wenze iintlobo zakho.
  • Ukuququzelela ukuphunyezwa okufanayo, kucetywayo ukusebenzisa iiklasi ezinophawu olulodwa, ikhowudi eyenziwa ngokupheleleyo kwindawo esecaleni kwindawo yememori eyahlukileyo, isebenzisana nenkqubo ephambili ngokuthumela imiyalezo.
  • Inkxaso yokusetyenziswa kwamathala eencwadi enza lula inkxaso kunye nokulungiswa kweeprojekthi ezinkulu zewebhu. Ukuphunyezwa kwemisebenzi yomntu wesithathu kunokuqukwa ngohlobo lwamathala eencwadi ekwabelwana ngawo. Izicelo zinokwahlulwa zibe ngamacandelo kwaye zinikezele uphuhliso lwecandelo ngalinye kwiqela elahlukileyo labadwelisi benkqubo.
  • Iseti yezixhobo esele zenziwe ukuxhasa uphuhliso kulwimi lweDart, kubandakanywa ukuphunyezwa kophuhliso oluguquguqukayo kunye nezixhobo zokulungisa izixhobo kunye nokulungiswa kwekhowudi kwi-fly ("hlela-and-continue").
  • Ukwenza lula uphuhliso kulwimi lweDart, luza kunye ne-SDK, i-pack manager pub, i-static code analyzer dart_analyzer, isethi yamathala eencwadi, indawo edibeneyo yophuhliso i-DartPad kunye ne-Dart-enabled plugins ye-IntelliJ IDEA, i-WebStorm, i-Emacs, i-Sublime Text. 2 kunye neVim.
  • Iiphakheji ezongezelelweyo ezinamathala eencwadi kunye nezixhobo ezisetyenziswayo zisasazwa kwindawo yogcino-pub, enamaphakheji angaphezu kwamawaka angama-20.

Utshintsho olukhulu kukukhutshwa kwe-Dart 2.14:

  • Umsebenzisi omtsha we-triple shift (>>>) yongezwe, leyo, ngokungafaniyo nomsebenzisi ">>", akenzi i-arithmetic, kodwa utshintsho olunengqondo olusebenza ngaphandle kokuthathela ingqalelo i-bit sign (utshintsho lwenziwa ngaphandle kokwahlula phakathi amanani a-positive kunye ne-negative).
  • Kususwe uthintelo kwiimpikiswano zodidi ezithintele iintlobo zemisebenzi eqhelekileyo ekubeni isetyenziswe njengohlobo lwempikiswano. Umzekelo, ngoku ungakhankanya: uLuhlu lwasemva kwexesha (T)>idFunctions; var callback = [ (ixabiso leT) => ixabiso]; kade S Umsebenzi (T)>(I) f;
  • Vumela iingxoxo ezikhankanyiweyo ezineentlobo kwizichasiselo ezinje nge-@Deprecated. Umzekelo, ngoku ungacacisa: @TypeHelper (42, "Intsingiselo")
  • Iindlela ezimileyo hash, hashAll kunye ne-hashAllUnordered zongezwe kwilayibrari eqhelekileyo (engundoqo) kudidi Lwento. Iklasi yeDateTime iphucule ukuphatha ixesha lasekuhlaleni xa kuguqulwa iiwotshi phakathi kwexesha lasehlotyeni nasebusika ezingohlulwahlulwanga ngeyure enye (umzekelo, eOstreliya kusetyenziswa ioffset yemizuzu engama-30). Iphakheji ye-fi yongeze inkxaso yendlela yokwabiwa kwememori ye-arena, ekhupha ngokuzenzekelayo izixhobo. Iphakheji ye-ffigen yongeze ukukwazi ukuvelisa iinkcazo ze-typedef zeentlobo ze-Dart ukusuka kulwimi lwe-C.
  • Iiphakheji ze-250 ezithandwa kakhulu kwi-pub.dev repository kunye ne-94% ye-top-1000 ziye zatshintshelwa ekusebenziseni "ukhuseleko olungenanto", oluya kuphepha ukuphahlazeka okubangelwa ukuzama ukusebenzisa iiguquguquko ezinexabiso elingachazwanga kwaye libekwe kwi "Null". "" Imowudi ithetha ukuba izinto eziguquguqukayo azinakuba namaxabiso angasebenziyo ngaphandle kokuba zinikwe ngokucacileyo ixabiso elingento. Imowudi ihlonipha ngokungqongqo iindidi eziguquguqukayo, ezivumela umqambi ukuba asebenzise ulungiso olongezelelweyo. Ukuthotyelwa kohlobo kuhlolwa ngexesha lokuqokelela, umzekelo, ukuba uzama ukunika ixabiso elithi "Null" kuguquko olunohlobo olungathethi imo engachazwanga, njenge "int", impazamo iya kuboniswa.
  • Iisethi ezidibeneyo zemithetho ye-code analyzer (linter) zicetywayo, zibonelela ngenkxaso ngaxeshanye ukujonga ukuthotyelwa kwemigaqo yekhowudi ye-Dart kunye nesakhelo seFlutter. Ngenxa yezizathu zembali, imithetho yekhowudi ye-Flutter kunye ne-Dart yahlukile, ukongeza, kwi-Dart kwakukho iiseti ezimbini zemithetho esetyenziswayo-i-pedantic evela kuGoogle kunye nemithetho evela kuluntu lokuphuhlisa i-Dart. I-Dart 2.14 yazisa isethi entsha yemigaqo ye-linter, egqitywe ukuba isetyenziswe ngokungagqibekanga kwiiprojekthi ezintsha ze-Dart nakwi-Flutter SDK. Iseti ibandakanya imigaqo engundoqo (i-package lints/core.yaml), imithetho eyongezelelweyo ecetyiswayo (i-lints/recommended.yaml), kunye ne-Flutter-specific recommendation (flutter_lints/flutter.yaml). Abasebenzisi bemigaqo ye-pedantic bayacetyiswa ukuba batshintshele ekusebenziseni isimbo esitsha sekhowudi esekelwe kwiingcebiso ezivela kumaxwebhu e-Dart.
  • Kwifomatha, ukulungelelaniswa kwenzelwe ukufomathwa kweebhloko zekhowudi ye-cascading, enokuphucula ngokubonakalayo ukusebenza kokufomatha kunye nokuphepha ukutolika okungaqondakaliyo kobunikazi bezinto zokuvakalisa. Umzekelo, ukufowunela "..doIt" kwintetho ethi "var result = errorState? foo : bad..doIt()” ayikhathaleli indawo emiselweyo yebhloko β€œembi”, kodwa ibinzana elipheleleyo, ngoko xa ufomatha ngoku yahluliwe: var result = errorState ? foo : kubi ..doIt();
  • Inkxaso ye-Apple M1 (i-Silicon) iprosesa yongezwe kwi-SDK, ethetha zombini amandla okuqhuba i-Dart VM, izinto ezisetyenziswayo kunye namacandelo e-SDK kwiinkqubo ezine-Apple Silicon processor, kunye nenkxaso yokuqulunqa iifayile eziphunyeziweyo zezi chips.
  • Umyalelo we "dart pub" wongeze inkxaso yefayile yenkonzo entsha ".pubignore", ekuvumela ukuba uchaze uluhlu lweefayile eziya kutsitywa xa upapasha ipakethe kwindawo yokugcina i-pub.dev. Ezi zicwangciso aziphazamisi ".gitignore" uluhlu lokungahoyi (kwezinye iimeko, i-pub.dev inokufuna ukunqanda ukuthumela iifayile ezifunekayo kwi-Git, umzekelo, izikripthi zangaphakathi ezisetyenziswe ngexesha lophuhliso).
  • Umsebenzi wenziwa ukuphucula ukusebenza komyalelo "wovavanyo lwedart", ngoku awufuni ukubuyisela iimvavanyo emva kokutshintsha i-pubspec ukuba inombolo yoguqulelo ayitshintshanga.
  • Inkxaso yokuhlanganiswa kwimodi yokuhambelana ye-ECMAScript ye-5 iyekile (utshintsho luya kubangela ukulahlekelwa kokuhambelana ne-IE11 browser).
  • Izinto eziluncedo zomntu ngamnye zeqonga, i-dartfmt kunye ne-dart2native zichazwe njengeziphelelwe lixesha, endaweni yazo yimiyalelo eyakhelweyo ebizwa ngosetyenziso lwedart.
  • Indlela ye-VM Native Extensions iye yarhoxiswa. Ukufowunela ikhowudi yendalo esuka kwikhowudi yeDart, kuyacetyiswa ukuba usebenzise i-Dart FFI entsha (I-Foreign Function Interface).

Kwangelo xesha, ukukhutshwa okubalulekileyo kwesakhelo somsebenzisi we-Flutter 2.5 kwaboniswa, ethathwa njengenye indlela yeReact Native kwaye ivumela, ngokusekwe kwisiseko sekhowudi enye, ukukhulula izicelo ze-iOS, Android, Windows, macOS kunye neLinux. amaqonga, kunye nokudala izicelo ukuba ziqhutywe kwizikhangeli. Iqokobhe lesiko leFuchsia microkernel inkqubo yokusebenza ephuhliswe nguGoogle yakhiwe kwisiseko seFlutter.

Inxalenye ephambili yekhowudi ye-Flutter iphunyezwe ngolwimi lwe-Dart, kwaye injini ye-runtime yokuqhuba izicelo ibhalwe kwi-C ++. Xa uphuhlisa izicelo, ukongeza kulwimi lweDart lweFlutter, ungasebenzisa ujongano lweDart Foreign Function ukufowunela ikhowudi yeC/C++. Ukusebenza okuphezulu kufezekiswa ngokuqulunqa izicelo kwikhowudi yemveli yamaqonga ekujoliswe kuwo. Kule meko, inkqubo ayifuni ukuphinda iphinde ihlaziywe emva kotshintsho ngalunye - i-Dart ibonelela ngemowudi yokulayisha kwakhona eshushu ekuvumela ukuba wenze utshintsho kwisicelo esisebenzayo kwaye uvavanye ngokukhawuleza umphumo.

Utshintsho olukhulu kwiFlutter 2.5:

  • Yenze ulungelelwaniso lokusebenza olubalulekileyo. Kwiiplatifomu ze-iOS kunye ne-macOS, ukuqulunqwa kwangaphambili kweeshadi ze-Metal graphics API iphunyeziwe. Ukuphuculwa kokusebenza kweziganeko ze-asynchronous. Kusonjululwe umba ngolibaziseko xa umqokeleli wenkunkuma ebuyisela inkumbulo kwimifanekiso engasetyenziswanga (umzekelo, ngexesha lokudlala i-GIF ene-animated yemizuzwana engama-20, inani lemisebenzi yokuqokelelwa kwenkunkuma yancitshiswa ukusuka kuma-400 ukuya ku-4. Ukulibaziseka xa kudluliswa imiyalezo phakathi kweDart kunye neNjongo- I-C / Swift yancitshiswa ukuya kwi-50% (iOS) okanye iJava / Kotlin (i-Android) Inkxaso yokwakhiwa kwendabuko yongezwa kwiinkqubo ezisekelwe kwi-chip ye-Apple Silicon.
    Dart 2.14 ulwimi kunye neFlutter 2.5 isakhelo esikhoyo
  • Kwiqonga le-Android, inkxaso yokuqhuba izicelo kwimowudi yesikrini esigcweleyo isekiwe. Ukuphunyezwa kwengcamango yokuyila "iMaterial You", enikezelwa njengesizukulwana esilandelayo sokukhetha uYilo lweMathiriyeli, iqhubekile. Kongezwe imo entsha MaterialState.scrolledUnder, kuphunyezwe umboniso oguquguqukayo weebar zokuskrola xa uhlengahlengisa, kwaye icetywa ujongano olutsha lokubonisa iibhena zesaziso.
  • Izakhono ze-plug-in zekhamera ziye zandiswa kakhulu, zongeza izixhobo zokulawula i-autofocus, i-exposure, i-flash, i-zoom, ukunciphisa ingxolo kunye nesisombululo.
  • Izixhobo zonjiniyela (i-DevTools) ziphuculwe ukubandakanya imowudi yokuhlola iwijethi ehlaziyiweyo, kunye nezixhobo zokuchonga ukulibaziseka kokunikezelwa kunye nokulandelela ukuhlanganiswa kwe-shader.
    Dart 2.14 ulwimi kunye neFlutter 2.5 isakhelo esikhoyo
  • Iiplagi eziphuculweyo zeKhowudi ye-Visual Studio kunye ne-IntelliJ/Android Studio.

umthombo: opennet.ru

Yongeza izimvo