Iaith Dart 2.14 a fframwaith Flutter 2.5 ar gael

Mae Google wedi cyhoeddi rhyddhau iaith raglennu Dart 2.14, sy'n parhau â datblygiad cangen o Dart 2 wedi'i hailgynllunio'n radical, sy'n wahanol i fersiwn wreiddiol yr iaith Dart trwy ddefnyddio teipio statig cryf (gellir casglu mathau yn awtomatig, felly nid oes angen nodi mathau, ond nid yw teipio deinamig yn cael ei ddefnyddio mwyach a'i gyfrifo i ddechrau mae'r math yn cael ei neilltuo i'r newidyn a gwiriad math llym yn cael ei gymhwyso wedyn).

Nodweddion yr iaith Dart:

  • Cystrawen gyfarwydd a hawdd ei ddysgu, naturiol ar gyfer rhaglenwyr JavaScript, C a Java.
  • Sicrhau lansiad cyflym a pherfformiad uchel ar gyfer pob porwr gwe modern a gwahanol fathau o amgylcheddau, o ddyfeisiau cludadwy i weinyddion pwerus.
  • Y gallu i ddiffinio dosbarthiadau a rhyngwynebau sy'n caniatáu amgáu ac ailddefnyddio dulliau a data presennol.
  • Mae pennu mathau yn ei gwneud hi'n haws dadfygio a nodi gwallau, yn gwneud y cod yn gliriach ac yn fwy darllenadwy, ac yn symleiddio ei addasu a'i ddadansoddi gan ddatblygwyr trydydd parti.
  • Mae mathau a gefnogir yn cynnwys: gwahanol fathau o hashes, araeau a rhestrau, ciwiau, mathau rhifol a llinynnol, mathau ar gyfer pennu dyddiad ac amser, mynegiadau rheolaidd (RegExp). Mae'n bosibl creu eich mathau eich hun.
  • Er mwyn trefnu gweithrediad cyfochrog, cynigir defnyddio dosbarthiadau gyda'r priodoledd ynysu, y mae ei god yn cael ei weithredu'n gyfan gwbl mewn gofod ynysig mewn man cof ar wahân, gan ryngweithio â'r brif broses trwy anfon negeseuon.
  • Cefnogaeth i'r defnydd o lyfrgelloedd sy'n symleiddio cefnogaeth a dadfygio prosiectau gwe mawr. Gellir cynnwys gweithrediad swyddogaethau trydydd parti ar ffurf llyfrgelloedd a rennir. Gellir rhannu ceisiadau yn rhannau ac ymddiried datblygiad pob rhan i dîm ar wahân o raglenwyr.
  • Set o offer parod i gefnogi datblygiad yn yr iaith Dart, gan gynnwys gweithredu offer datblygu deinamig a dadfygio gyda chywiro cod ar y hedfan (“golygu a pharhau”).
  • Er mwyn symleiddio datblygiad yn yr iaith Dart, mae'n dod gyda SDK, tafarn rheolwr pecyn, dadansoddwr cod statig dart_analyzer, set o lyfrgelloedd, amgylchedd datblygu integredig DartPad ac ategion wedi'u galluogi gan Dart ar gyfer IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 a Vim.
  • Dosberthir pecynnau ychwanegol gyda llyfrgelloedd a chyfleustodau trwy'r ystorfa dafarnau, sydd â mwy nag 20 mil o becynnau.

Newidiadau mawr yn natganiad Dart 2.14:

  • Mae gweithredwr sifft triphlyg newydd (>>>) wedi'i ychwanegu, sydd, yn wahanol i'r gweithredwr “>>”, yn perfformio nid rhifyddeg, ond newid rhesymegol sy'n gweithio heb ystyried y did arwydd (perfformir y shifft heb rannu i mewn i rhifau positif a negyddol).
  • Wedi dileu'r cyfyngiad ar ddadleuon math a oedd yn atal mathau o ffwythiannau generig rhag cael eu defnyddio fel dadl math. Er enghraifft, nawr gallwch chi nodi: Rhestr hwyr (T)>idSwyddogaethau; var galwad yn ôl = [ (gwerth T) => gwerth]; hwyr S Swyddogaeth (T)>(S) f;
  • Caniatáu nodi dadleuon gyda mathau mewn anodiadau megis @Deprecated. Er enghraifft, gallwch nawr nodi: @TypeHelper (42, "Yr ystyr")
  • Mae'r dulliau statig hash, hashAll a hashAllUnordered wedi'u hychwanegu at y llyfrgell safonol (craidd) yn y dosbarth Gwrthrych. Mae'r dosbarth DateTime wedi gwella'r modd yr ymdrinnir ag amser lleol wrth drosi clociau rhwng amser yr haf a'r gaeaf na ellir eu rhannu ag awr (er enghraifft, yn Awstralia defnyddir gwrthbwyso o 30 munud). Mae'r pecyn ffi wedi ychwanegu cefnogaeth i'r mecanwaith dyrannu cof arena, sy'n rhyddhau adnoddau yn awtomatig. Mae'r pecyn ffigen wedi ychwanegu'r gallu i gynhyrchu diffiniadau typedef o fathau Dart o'r iaith C.
  • Mae'r 250 o becynnau mwyaf poblogaidd o ystorfa pub.dev a 94% o'r 1000 uchaf wedi'u newid i ddefnyddio'r modd “diogelwch null”, a fydd yn osgoi damweiniau a achosir gan ymdrechion i ddefnyddio newidynnau y mae eu gwerth heb ei ddiffinio ac wedi'i osod i “Null "" Mae'r modd yn awgrymu na all newidynnau gael gwerthoedd nwl oni bai eu bod yn cael y gwerth null yn benodol. Mae'r modd yn parchu mathau amrywiol yn llym, sy'n caniatáu i'r casglwr gymhwyso optimeiddiadau ychwanegol. Mae cydymffurfiad math yn cael ei wirio ar amser llunio, er enghraifft, os ceisiwch aseinio'r gwerth “Null” i newidyn gyda math nad yw'n awgrymu cyflwr heb ei ddiffinio, fel “int”, bydd gwall yn cael ei arddangos.
  • Cynigir setiau unedig o reolau ar gyfer y dadansoddwr cod (linter), gan ddarparu cefnogaeth ar yr un pryd ar gyfer gwirio cydymffurfiaeth â chanllawiau arddull cod ar gyfer Dart a'r fframwaith Flutter. Am resymau hanesyddol, roedd y rheolau codio ar gyfer Flutter a Dart yn wahanol, yn ogystal, ar gyfer Dart roedd dwy set o reolau yn cael eu defnyddio - rhai pedantig gan Google a rheolau gan gymuned datblygwr Dart. Mae Dart 2.14 yn cyflwyno set gyffredin newydd o reolau ar gyfer lint, y penderfynir ei defnyddio yn ddiofyn mewn prosiectau Dart newydd ac yn y SDK Flutter. Mae'r set yn cynnwys rheolau craidd (lints pecyn/core.yaml), rheolau ychwanegol a argymhellir (lints/recommended.yaml), ac argymhellion sy'n benodol i Flutter (flutter_lints/flutter.yaml). Cynghorir defnyddwyr rheolau pedantig i newid i ddefnyddio arddull codio newydd yn seiliedig ar yr argymhellion o ddogfennaeth Dart.
  • Yn fformatiwr, gwnaed optimeiddiadau i fformatio blociau cod rhaeadru, a all wella perfformiad fformatio yn sylweddol ac osgoi dehongliad amwys o berchnogaeth elfennau mynegiant. Er enghraifft, galw "..doIt" yn yr ymadrodd "var result = errorState ? foo : bad..doIt()" nid yw'n ymwneud â rhan amodol y bloc “drwg”, ond y mynegiant cyfan, felly wrth ei fformatio mae bellach wedi'i wahanu: var result = errorState ? foo : drwg ..doIt();
  • Mae cefnogaeth i broseswyr Apple M1 (Silicon) wedi'i ychwanegu at y SDK, gan awgrymu'r gallu i redeg Dart VM, cyfleustodau a chydrannau SDK ar systemau gyda phrosesydd Apple Silicon, a chefnogaeth ar gyfer llunio ffeiliau gweithredadwy ar gyfer y sglodion hyn.
  • Mae'r gorchymyn "dart pub" wedi ychwanegu cefnogaeth ar gyfer ffeil gwasanaeth newydd ".pubignore", sy'n eich galluogi i ddiffinio rhestr o ffeiliau a fydd yn cael eu hepgor wrth gyhoeddi pecyn i'r ystorfa pub.dev. Nid yw'r gosodiadau hyn yn ymyrryd â'r rhestr anwybyddu ".gitnore" (mewn rhai sefyllfaoedd, efallai y bydd pub.dev am osgoi trosglwyddo ffeiliau sydd eu hangen yn Git, er enghraifft, sgriptiau mewnol a ddefnyddir yn ystod datblygiad).
  • Mae gwaith wedi'i wneud i wella perfformiad y gorchymyn “prawf dartiau”, nad yw bellach yn gofyn am ail-grynhoi profion ar ôl newid pubspec os nad yw rhif y fersiwn wedi newid.
  • Mae cefnogaeth ar gyfer llunio modd cydnawsedd ECMAScript 5 wedi dod i ben (bydd y newid yn arwain at golli cydnawsedd â'r porwr IE11).
  • Mae'r cyfleustodau unigol stagehand, dartfmt a dart2native wedi'u datgan yn anarferedig, wedi'u disodli gan orchmynion adeiledig a elwir trwy'r cyfleustodau dartiau.
  • Mae mecanwaith Estyniadau Brodorol VM wedi'i anghymeradwyo. I alw cod brodorol o god Dart, argymhellir defnyddio'r Dart FFI newydd (Rhyngwyneb Swyddogaeth Tramor).

Ar yr un pryd, cyflwynwyd datganiad sylweddol o'r fframwaith rhyngwyneb defnyddiwr Flutter 2.5, sy'n cael ei ystyried fel dewis arall i React Native ac sy'n caniatáu, yn seiliedig ar un sylfaen cod, i ryddhau cymwysiadau ar gyfer y iOS, Android, Windows, macOS a Linux llwyfannau, yn ogystal â chreu cymwysiadau i'w rhedeg mewn porwyr. Mae cragen arfer ar gyfer system weithredu microkernel Fuchsia a ddatblygwyd gan Google wedi'i hadeiladu ar sail Flutter.

Gweithredir prif ran y cod Flutter yn yr iaith Dart, ac mae'r peiriant amser rhedeg ar gyfer gweithredu cymwysiadau wedi'i ysgrifennu yn C ++. Wrth ddatblygu cymwysiadau, yn ogystal ag iaith frodorol Dart Flutter, gallwch ddefnyddio rhyngwyneb Dart Foreign Function i alw cod C/C++. Cyflawnir perfformiad gweithredu uchel trwy lunio cymwysiadau i god brodorol ar gyfer llwyfannau targed. Yn yr achos hwn, nid oes angen ail-grynhoi'r rhaglen ar ôl pob newid - mae Dart yn darparu modd ail-lwytho poeth sy'n eich galluogi i wneud newidiadau i raglen redeg a gwerthuso'r canlyniad ar unwaith.

Newidiadau mawr yn Flutter 2.5:

  • Wedi gwneud optimeiddio perfformiad sylweddol. Ar lwyfannau iOS a macOS, mae rhag-grynhoad o arlliwwyr ar gyfer yr API graffeg Metel wedi'i roi ar waith. Gwell effeithlonrwydd prosesu digwyddiadau asyncronig. Wedi datrys problem gydag oedi pan fydd y casglwr sbwriel yn adennill cof o ddelweddau nas defnyddiwyd (er enghraifft, yn ystod chwarae GIF animeiddiedig 20 eiliad, gostyngwyd nifer y gweithrediadau casglu sbwriel o 400 i 4. Oedi wrth drosglwyddo negeseuon rhwng Dart ac Amcan- Gostyngwyd C/Swift i 50% (iOS) neu Java/Kotlin (Android) Ychwanegwyd cefnogaeth adeiladu brodorol ar gyfer systemau yn seiliedig ar sglodyn Apple Silicon.
    Iaith Dart 2.14 a fframwaith Flutter 2.5 ar gael
  • Ar gyfer y platfform Android, mae cefnogaeth ar gyfer rhedeg cymwysiadau yn y modd sgrin lawn wedi'i sefydlu. Parhaodd gweithrediad y cysyniad dylunio “Deunydd Chi”, a gyflwynir fel opsiwn Dylunio Deunydd cenhedlaeth nesaf. Ychwanegwyd MaterialState.scrolledUnder cyflwr newydd, arddangosiad deinamig o fariau sgrolio wrth newid maint, a chynigiodd ryngwyneb newydd ar gyfer arddangos baneri hysbysu.
  • Mae galluoedd y camera plug-in wedi'u hehangu'n sylweddol, gan ychwanegu offer ar gyfer rheoli autofocus, amlygiad, fflach, chwyddo, lleihau sŵn a datrysiad.
  • Mae offer datblygwyr (DevTools) wedi'u gwella i gynnwys modd arolygu teclyn wedi'i ddiweddaru, yn ogystal ag offer ar gyfer nodi oedi wrth rendro ac olrhain crynhoad lliwiwr.
    Iaith Dart 2.14 a fframwaith Flutter 2.5 ar gael
  • Gwell ategion ar gyfer Visual Studio Code a IntelliJ/Android Studio.

Ffynhonnell: opennet.ru

Ychwanegu sylw