Dart 2.14 hizkuntza eta Flutter 2.5 markoa eskuragarri daude

Google-k Dart 2.14 programazio-lengoaia argitaratu du, Dart 2-ren errotik birdiseinatu den adar baten garapenarekin jarraitzen duena, Dart hizkuntzaren jatorrizko bertsiotik desberdintzen dena idazketa estatiko sendoa erabiltzeagatik (motak automatikoki ondoriozta daitezke, beraz. motak zehaztea ez da beharrezkoa, baina idazketa dinamikoa jada ez da erabiltzen eta hasieran kalkulatzen da mota aldagaiari esleitzen zaio eta ondoren mota egiaztatze zorrotza aplikatzen da).

Dart hizkuntzaren ezaugarriak:

  • Sintaxi ezaguna eta ikasteko erraza, JavaScript, C eta Java programatzaileentzat naturala.
  • Abiarazte azkarra eta errendimendu handia bermatzea web arakatzaile moderno guztientzat eta hainbat ingurune motarentzat, gailu eramangarrietatik hasi eta zerbitzari indartsuetaraino.
  • Lehendik dauden metodoak eta datuak kapsulatzea eta berrerabiltzea ahalbidetzen duten klaseak eta interfazeak definitzeko gaitasuna.
  • Motak zehazteak erroreak araztea eta identifikatzea errazten du, kodea argiago eta irakurgarriagoa egiten du eta hirugarrenen garatzaileek aldatzea eta aztertzea errazten du.
  • Onartutako motak honako hauek dira: hainbat hash, matrize eta zerrenda motak, ilarak, zenbakizko eta kate motak, data eta ordua zehazteko motak, adierazpen erregularrak (RegExp). Posible da zure motak sortzea.
  • Exekuzio paraleloa antolatzeko, isolatu atributua duten klaseak erabiltzea proposatzen da, eta horien kodea osorik espazio isolatu batean exekutatzen da aparteko memoria-eremu batean, prozesu nagusiarekin elkarreraginean mezuak bidaliz.
  • Web proiektu handien laguntza eta arazketa errazten duten liburutegiak erabiltzeko laguntza. Hirugarrenen funtzioen inplementazioak liburutegi partekatuen moduan sar daitezke. Aplikazioak zatitan banatu daitezke eta zati bakoitzaren garapena programatzaile talde bereizi baten esku utzi.
  • Dart lengoaian garapena laguntzeko prest egindako tresna multzoa, garapen dinamikoa eta arazketa tresnak inplementatzea barne, kode-zuzenketarekin batera ("editatu eta jarraitu").
  • Dart hizkuntzan garapena sinplifikatzeko, SDK bat, pakete kudeatzaile pub bat, kode analizatzaile estatiko bat dart_analyzer, liburutegi multzo bat, garapen-ingurune integratua DartPad eta IntelliJ IDEA, WebStorm, Emacs, Sublime Text-erako Dart-en gaitutako pluginak ditu. 2 eta Vim.
  • Liburutegiak eta utilitateak dituzten pakete gehigarriak pub biltegiaren bidez banatzen dira, 20 mila pakete baino gehiago dituena.

Aldaketa nagusiak Dart 2.14 bertsioan:

  • Desplazamendu hirukoitzeko operadore berria (>>>) gehitu da, zeinak, β€œ>>” eragileak ez bezala, ez du aritmetika bat egiten, zeinu-bita kontuan hartu gabe funtzionatzen duen desplazamendu logiko bat baizik (desplazamendua zatitu gabe egiten da. zenbaki positiboak eta negatiboak).
  • Funtzio-mota generikoak mota-argumentu gisa erabiltzea eragozten zuen mota-argumentuen murrizketa kendu du. Adibidez, orain zehaztu dezakezu: berandu Zerrenda (T)>idFunctions; var deia = [ (T balioa) => balioa]; berandu S Funtzioa (T)>(S) f;
  • Onartu @Deprecated bezalako oharretan motak dituzten argumentuak zehaztea. Adibidez, orain zehaztu dezakezu: @TypeHelper (42, "Esanahia")
  • Hash, hashAll eta hashAllUnordered metodo estatikoak Object klaseko liburutegi estandarrera (nukleoa) gehitu dira. DateTime klaseak tokiko orduaren kudeaketa hobetu du ordu batez zatigarriak ez diren udako eta neguko orduen arteko erlojuak bihurtzean (adibidez, Australian 30 minutuko desplazamendua erabiltzen da). ffi paketeak arena memoria esleitzeko mekanismorako laguntza gehitu du, baliabideak automatikoki askatzen dituena. ffigen paketeak Dart moten typedef definizioak C hizkuntzatik sortzeko gaitasuna gehitu du.
  • Pub.dev biltegiko 250 pakete ezagunenak eta 94 nagusien % 1000 "segurtasun nulua" modura aldatu dira, eta horrek balio zehaztu gabe eta "Null" gisa ezarrita duten aldagaiak erabiltzeko saiakerek eragindako hutsegiteak saihestuko ditu. " " Modu horrek esan nahi du aldagaiek ezin dutela balio nulurik izan, esplizituki balio nulua esleitzen ez bazaie. Moduak zorrozki errespetatzen ditu aldagai motak, eta horri esker, konpilatzaileak optimizazio gehigarriak aplika ditzake. Mota betetzea konpilazio garaian egiaztatzen da, adibidez, "Null" balioa esleitzen saiatzen bazara definitu gabeko egoera inplikatzen ez duen aldagai bati, adibidez, "int", errore bat bistaratuko da.
  • Kode analizatzailerako (linter) arau-multzo bateratuak proposatzen dira, Dart-en eta Flutter esparruko kode-estiloen jarraibideen betetzea egiaztatzeko aldi berean laguntza eskainiz. Arrazoi historikoengatik, Flutter eta Dart-en kodetze-arauak desberdinak ziren, gainera, Dart-entzat bi arau-multzo zeuden erabiltzen: Google-ren pedanteak eta Dart garatzaileen komunitatearen arauak. Dart 2.14-k linter-erako arau komun berri bat aurkezten du, Dart proiektu berrietan eta Flutter SDK-n lehenespenez erabiltzea erabakitzen dena. Multzoak oinarrizko arauak (lints/core.yaml paketea), gomendatutako arau gehigarriak (lints/recommended.yaml) eta Flutter-en berariazko gomendioak (flutter_lints/flutter.yaml) ditu. Arau pedanteen erabiltzaileei Dart-en dokumentazioko gomendioetan oinarritutako kodeketa-estilo berri bat erabiltzera aldatzea gomendatzen zaie.
  • Formateatzailean, optimizazioak egin dira kaskadako kode-blokeen formateatzeari, formatearen errendimendua nabarmen hobetu eta adierazpen-elementuen jabetzaren interpretazio anbiguoa ekiditeko. Adibidez, "..doIt" deituz "var result = errorState ? foo : bad..doIt()”-k ez dio β€œtxarra” blokearen baldintzapeko zatiari, adierazpen osoa baizik, beraz, formateatzen denean bereizten da: var result = errorState ? foo : txarra ..doIt();
  • Apple M1 (Silicon) prozesadoreentzako euskarria gehitu da SDK-ra, eta horrek esan nahi du Dart VM, utilitateak eta SDK osagaiak Apple Silicon prozesadorea duten sistemetan exekutatzeko gaitasuna eta txip hauetarako fitxategi exekutagarriak konpilatzeko laguntza.
  • "Dart pub" komandoak ".pubignore" zerbitzu-fitxategi berri baterako laguntza gehitu du, eta horri esker, pakete bat pub.dev biltegian argitaratzean saltatu egingo diren fitxategien zerrenda defini dezakezu. Ezarpen hauek ez dute ".gitignore" baztertze-zerrenda oztopatzen (zenbait egoeratan, pub.dev-ek Git-en beharrezkoak diren fitxategiak transferitzea saihestu nahi du, adibidez, garapenean erabilitako barne-scriptak).
  • Lan egin da "dart test" komandoaren errendimendua hobetzeko, orain ez baitu probak birkonpilatu behar pubspec aldatu ondoren bertsio-zenbakia aldatu ez bada.
  • ECMAScript 5 bateragarritasun moduan konpilatzeko laguntza eten egin da (aldaketak IE11 arakatzailearekin bateragarritasuna galduko du).
  • Stagehand, dartfmt eta dart2native utilitate indibidualak zaharkituta geratu dira, dardo utilitatearen bidez deitutako komando integratuak ordezkatuta.
  • VM Native Extensions mekanismoa zaharkituta geratu da. Dart kodetik jatorrizko kodea deitzeko, Dart FFI (Atzerriko Funtzio Interfazea) berria erabiltzea gomendatzen da.

Aldi berean, Flutter 2.5 erabiltzailearen interfaze-esparruaren bertsio esanguratsu bat aurkeztu zen, React Native-ren alternatibatzat hartzen dena eta kode oinarri batean oinarrituta, iOS, Android, Windows, macOS eta Linux-erako aplikazioak askatzeko aukera ematen duena. plataformak, baita nabigatzaileetan exekutatzeko aplikazioak sortzea ere. Google-k garatutako Fuchsia mikrokernel sistema eragilerako shell pertsonalizatua Flutter-en oinarrituta eraiki da.

Flutter kodearen zati nagusia Dart hizkuntzan inplementatuta dago, eta aplikazioak exekutatzeko exekuzio-motorra C++-n idatzita dago. Aplikazioak garatzerakoan, Flutterren jatorrizko Dart hizkuntzaz gain, Dart Foreign Function interfazea erabil dezakezu C/C++ kodea deitzeko. Exekuzio-errendimendu handia xede-plataformetarako aplikazioak jatorrizko kode batera konpilatuz lortzen da. Kasu honetan, programa ez da aldaketa bakoitzaren ondoren berriro konpilatu behar - Dart-ek birkargatzeko modu beroa eskaintzen du, exekutatzen ari den aplikazio batean aldaketak egiteko eta emaitza berehala ebaluatzeko aukera ematen duena.

Flutter 2.5-en aldaketa nagusiak:

  • Errendimenduaren optimizazio garrantzitsuak egin ditu. iOS eta macOS plataformetan, Metal graphics APIrako itzalgailuen aurre-konpilazioa ezarri da. Gertaera asinkronoak prozesatzeko eraginkortasuna hobetu da. Zabor-biltzaileak erabili gabeko irudietatik memoria berreskuratzen duenean atzerapenen arazo bat konpondu da (adibidez, 20 segundoko GIF animatu bat erreproduzitzean, zabor bilketa eragiketa kopurua 400etik 4ra murriztu zen. Atzerapenak Dart eta Objective arteko mezuak pasatzean- C/Swift % 50era murriztu zen (iOS) edo Java/Kotlin (Android) Apple Silicon txipan oinarritutako sistemen jatorrizko eraikuntzarako euskarria gehitu zen.
    Dart 2.14 hizkuntza eta Flutter 2.5 markoa eskuragarri daude
  • Android plataformarako, aplikazioak pantaila osoko moduan exekutatzeko laguntza ezarri da. "Material You" diseinu-kontzeptuaren ezarpenak jarraitu zuen, hurrengo belaunaldiko Material Design aukera gisa aurkeztua. MaterialState.scrolledUnder egoera berri bat gehitu da, korritze-barren bistaratze dinamikoa inplementatu du tamaina aldatzean eta interfaze berri bat proposatu du jakinarazpen-pankartak bistaratzeko.
  • Kameraren plug-inaren gaitasunak nabarmen zabaldu dira, fokatze automatikoa, esposizioa, flasha, zooma, zarata murriztea eta bereizmena kontrolatzeko tresnak gehituz.
  • Garatzaile-tresnak (DevTools) hobetu dira widget-en ikuskapen-modu eguneratua sartzeko, baita errendatze-atzerapenak identifikatzeko eta itzalgailuen konpilazioaren jarraipena egiteko tresnak ere.
    Dart 2.14 hizkuntza eta Flutter 2.5 markoa eskuragarri daude
  • Visual Studio Coderako eta IntelliJ/Android Studiorako pluginak hobetuak.

Iturria: opennet.ru

Gehitu iruzkin berria