Dart 2.14-taal en Flutter 2.5-raamwerk beskikbaar

Google het 'n vrystelling van die Dart 2.14-programmeertaal gepubliseer, wat voortgaan met die ontwikkeling van 'n radikaal herontwerpte Dart 2-tak, wat verskil van die oorspronklike weergawe van die Dart-taal deur sterk statiese tik te gebruik (tipes kan outomaties afgelei word, dus is die spesifiseer van tipes nie nodig nie, maar dinamiese tik word nie meer gebruik nie en is aanvanklik bereken die tipe word aan die veranderlike toegeken en dan word streng tipe kontrolering toegepas).

Dart taal kenmerke:

  • 'n Bekende en maklik om te leer sintaksis wat natuurlik is vir JavaScript-, C- en Java-programmeerders.
  • Verskaf vinnige opstart en hoë werkverrigting vir alle moderne webblaaiers en verskillende soorte omgewings, van draagbare toestelle tot kragtige bedieners.
  • Die vermoë om klasse en koppelvlakke te definieer om inkapseling moontlik te maak en bestaande metodes en data te hergebruik.
  • Deur tipes te spesifiseer, maak dit makliker om foute te ontfout en op te spoor, maak die kode duideliker en meer leesbaar, en maak dit makliker vir derdeparty-ontwikkelaars om dit te verfyn en te ontleed.
  • Onder die ondersteunde tipes: verskeie tipes hashes, skikkings en lyste, toue, numeriese en string tipes, datum en tyd tipes, gereelde uitdrukkings (RegExp). Dit is moontlik om jou eie tipes te skep.
  • Om parallelle uitvoering te organiseer, word voorgestel om klasse te gebruik met die isolate-kenmerk, waarvan die kode geheel en al in 'n geïsoleerde ruimte in 'n aparte geheue-area uitgevoer word, in wisselwerking met die hoofproses deur boodskappe te stuur.
  • Ondersteuning vir die gebruik van biblioteke wat die ondersteuning en ontfouting van groot webprojekte vereenvoudig. Derdeparty-implementerings van funksies kan ingesluit word as gedeelde biblioteke. Toepassings kan in dele opgebreek word en die ontwikkeling van elke deel kan aan 'n aparte span programmeerders toegewys word.
  • 'n Stel gereedgemaakte nutsmiddels om ontwikkeling in die Dart-taal te ondersteun, insluitend die implementering van dinamiese ontwikkelingsinstrumente en ontfouting met kodekorreksie onmiddellik ("wysig-en-gaan voort").
  • 'n SDK, 'n kroegpakketbestuurder, 'n dart_analyzer statiese kode-ontleder, 'n stel biblioteke, 'n DartPad IDE en Dart-geaktiveerde inproppe vir IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 en Vim word verskaf om Dart-ontwikkeling te vereenvoudig.
  • Bykomende pakkette met biblioteke en nutsdienste word versprei deur die kroegbewaarplek, wat meer as 20 XNUMX pakkette het.

Sleutelveranderinge in die vrystelling van Dart 2.14:

  • 'n Nuwe drievoudige skof-operateur (>>>) is bygevoeg, wat, anders as die ">>"-operateur, nie 'n rekenkunde uitvoer nie, maar 'n logiese verskuiwing wat nie die tekenbis in ag neem nie (die verskuiwing word uitgevoer sonder om te verdeel in positiewe en negatiewe getalle).
  • Verwyder die beperking op tipe argumente wat verhoed het dat generiese funksietipes as 'n tipe argument gebruik word. Byvoorbeeld, nou kan jy spesifiseer: laat Lys (T)>idFunctions; var terugbel = [ (T-waarde) => waarde]; laat S Funksie (T)>(S) f;
  • Dit word toegelaat om argumente met tipes in aantekeninge soos @Deprecated te spesifiseer. Byvoorbeeld, jy kan nou spesifiseer: @TypeHelper (42, "Die betekenis")
  • Die statiese metodes hash, hashAll en hashAllUordered is by die standaard biblioteek (kern) in die Object-klas gevoeg. Verbeterde verwerking van plaaslike tyd in die DatumTyd-klas wanneer horlosies tussen somer- en wintertyd omgeskakel word wat nie 'n veelvoud van een uur is nie (byvoorbeeld, in Australië word 'n afwyking van 30 minute gebruik). Die ffi-pakket het ondersteuning bygevoeg vir die arena-geheuetoewysingsmeganisme, wat hulpbronne outomaties vrystel. Het die vermoë bygevoeg om Dart-tipedefs vanaf C by die ffigen-pakket te genereer.
  • Die 250 gewildste pakkette van die pub.dev-bewaarplek en 94% van die top-1000 is geskuif om die Nul-veiligheidsmodus te gebruik, wat ineenstortings sal vermy wat veroorsaak word deur pogings om veranderlikes te gebruik waarvan die waarde nie gedefinieer is nie en op Null gestel is. Die modus impliseer dat veranderlikes nie ongedefinieerde waardes kan hê nie, tensy hulle uitdruklik op nul gestel is. Die modus neem die tipe veranderlikes streng in ag, wat die samesteller toelaat om bykomende optimalisering toe te pas. Tipe-passing word gekontroleer tydens samestelling, byvoorbeeld, as jy probeer om die waarde "Nul" toe te ken aan 'n veranderlike met 'n tipe wat nie 'n onbepaalde toestand impliseer nie, soos "int", sal 'n fout vertoon word.
  • Eenvormige stelle reëls vir die kode-ontleder (linter) word voorgestel, wat gelyktydige ondersteuning bied vir die nagaan van voldoening aan die kodestylriglyne vir Dart en die Flutter-raamwerk. Om historiese redes het die koderingsreëls vir Flutter en Dart verskil, daarby was daar vir Dart twee stelle reëls in die alledaagse lewe – pedanties van Google en reëls van die Dart-ontwikkelaargemeenskap. Dart 2.14 stel 'n nuwe algemene reëlstel vir linter bekend, wat die verstek is vir nuwe Dart-projekte en die Flutter SDK. Die stel bevat kernreëls (lints/core.yaml-pakket), aanbevole bykomende reëls (lints/recommended.yaml), en Flutter-spesifieke aanbevelings (flutter_lints/flutter.yaml). Gebruikers van pedantiese reëls word aangemoedig om oor te skakel na die gebruik van die nuwe koderingstyl gebaseer op die aanbevelings in die Dart-dokumentasie.
  • In formatterer is optimalisering gemaak vir die formatering van kaskadekodeblokke, wat formateringprestasie aansienlik kan verbeter en dubbelsinnige interpretasie van die eienaarskap van uitdrukkingselemente kan vermy. Byvoorbeeld, roep "..doIt" in die uitdrukking "var result = errorState ? foo : bad..doIt()" verwys nie na die voorwaardelike deel van die "slegte" blok nie, maar na die hele uitdrukking, dus word dit nou geskei tydens formatering: var result = errorState ? foo : sleg ..doenDit();
  • Ondersteuning vir Apple M1 (Silicon) verwerkers is by die SDK gevoeg, wat beide die vermoë impliseer om Dart VM, nutsprogramme en SDK-komponente op stelsels met 'n Apple Silicon-verwerker te laat loop, sowel as ondersteuning vir die samestelling van uitvoerbare lêers vir hierdie skyfies.
  • Ondersteuning vir 'n nuwe dienslêer ".pubignore" is by die "dart pub"-opdrag gevoeg, wat jou toelaat om 'n lys lêers te spesifiseer wat oorgeslaan sal word wanneer 'n pakket na die pub.dev-bewaarplek gepubliseer word. Hierdie instellings meng nie in met die ".gitignore" ignoreerlys nie (in sommige situasies hoef pub.dev nie lêers te commit wat Git nodig het nie, soos interne ontwikkelingsskrifte).
  • Werk is gedoen om die werkverrigting van die "dart test"-opdrag te verbeter, wat nou nie hersamestelling van toetse vereis nadat die pubspec verander is nie, indien die weergawenommer nie verander het nie.
  • Ondersteuning vir samestelling in ECMAScript 5-versoenbaarheidsmodus laat val (verandering sal lei tot verlies aan verenigbaarheid met IE11).
  • Die selfstandige stagehand-, dartfmt- en dart2native-nutsprogramme is afgekeur, vervang deur ingeboude opdragte wat deur die dart-nutsmiddel geroep word.
  • Die VM Native Extensions-meganisme is opgeskort. Om inheemse kode vanaf Dart-kode te bel, word dit aanbeveel om die nuwe Dart FFI (Foreign Function Interface) te gebruik.

Terselfdertyd word 'n beduidende vrystelling van die Flutter 2.5-gebruikerskoppelvlakraamwerk aangebied, wat beskou word as 'n alternatief vir React Native en u toelaat om toepassings vir iOS-, Android-, Windows-, macOS- en Linux-platforms vry te stel gebaseer op 'n enkele kodebasis, sowel as om toepassings te skep om in blaaiers te laat loop. Op grond van Flutter word die gebruikersdop van die Fuchsia-mikrokernbedryfstelsel wat deur Google ontwikkel is, gebou.

Die grootste deel van die Flutter-kode word in Dart geïmplementeer, en die looptyd-enjin vir die loop van toepassings is in C++ geskryf. Wanneer jy toepassings ontwikkel, kan jy benewens Flutter se moedertaal Dart-taal die Dart Foreign Function-koppelvlak gebruik om C/C++-kode te bel. Hoë looptydprestasie word behaal deur toepassings saam te stel na inheemse kode vir teikenplatforms. Terselfdertyd hoef die program nie na elke verandering weer saamgestel te word nie - Dart bied 'n warm herlaaimodus waarmee jy veranderinge aan 'n lopende toepassing kan maak en die resultaat onmiddellik kan evalueer.

Groot veranderinge in Flutter 2.5:

  • Beduidende prestasie-optimalisasies is gemaak. Shader-voorkompilasie vir die Metal graphics API is op iOS- en macOS-platforms geïmplementeer. Verbeterde doeltreffendheid van die hantering van asynchrone gebeure. Het 'n probleem opgelos met vertragings wanneer die vullisverwyderaar geheue van ongebruikte beelde bevry (byvoorbeeld, tydens die terugspeel van 'n 20-sekonde-geanimeerde GIF, is die aantal vullisverwyderingsbewerkings van 400 tot 4 verminder. Vertraging wanneer boodskappe tussen Dart en Objective-C / Swift is verminder met tot 50% (iOS) of Java/Kotlin (Android) Bygevoeg inheemse bou-ondersteuning vir stelsels gebaseer op die Apple Silicon-skyfie.
    Dart 2.14-taal en Flutter 2.5-raamwerk beskikbaar
  • Vir die Android-platform is ondersteuning gevestig om toepassings in volskermmodus te laat loop. Die implementering van die ontwerpkonsep "Material You", aangebied as 'n variant van die volgende generasie Materiaalontwerp, het voortgegaan. 'n Nuwe toestand MaterialState.scrolledUnder is bygevoeg, rolbalke word dinamies vertoon wanneer die grootte verander word, en 'n nuwe koppelvlak vir die vertoon van kennisgewingbaniere is voorgestel.
  • Die kamera-inprop is baie uitgebrei met kontroles vir outofokus, blootstelling, flits, zoom, geraasvermindering en resolusie.
  • Ontwikkelaarnutsgoed (DevTools) is verbeter met 'n opgedateerde legstuk-inspeksiemodus, sowel as nutsmiddels om leweringsvertragings op te spoor en skadu-samestelling na te spoor.
    Dart 2.14-taal en Flutter 2.5-raamwerk beskikbaar
  • Verbeterde inproppe vir Visual Studio Code en IntelliJ/Android Studio.

Bron: opennet.ru

Voeg 'n opmerking