Dart 2.14 taal en Flutter 2.5 framework beskikber

Google hat de frijlitting fan 'e programmeartaal Dart 2.14 publisearre, dy't de ûntwikkeling fan in radikaal opnij ûntworpen tûke fan Dart 2 trochgiet, dy't ferskilt fan' e orizjinele ferzje fan 'e Dart-taal troch it brûken fan sterke statyske typen (typen kinne automatysk ôfliede, dus it opjaan fan typen is net nedich, mar dynamysk typen wurdt net mear brûkt en earst berekkene wurdt it type tawiisd oan de fariabele en strikte typekontrôle wurdt dêrnei tapast).

Funksjes fan 'e Dart-taal:

  • Fertroude en maklik te learen syntaksis, natuerlik foar JavaSkript-, C- en Java-programmeurs.
  • Snelle lansearring en hege prestaasjes garandearje foar alle moderne webbrowsers en ferskate soarten omjouwings, fan draachbere apparaten oant krêftige servers.
  • De mooglikheid om klassen en ynterfaces te definiearjen dy't ynkapseling en opnij brûke fan besteande metoaden en gegevens.
  • It opjaan fan typen makket it makliker om flaters te debuggen en te identifisearjen, makket de koade dúdliker en lêsber, en simplifies de wiziging en analyse derfan troch ûntwikkelders fan tredden.
  • Stipe typen omfetsje: ferskate soarten hashes, arrays en listen, wachtrijen, numerike en tekenrige typen, typen foar it bepalen fan datum en tiid, reguliere útdrukkingen (RegExp). It is mooglik om jo eigen soarten te meitsjen.
  • Om parallelle útfiering te organisearjen, wurdt it foarsteld om klassen te brûken mei it isolate-attribút, wêrfan de koade folslein yn isolearre romte wurdt útfierd yn in apart ûnthâldgebiet, ynteraksje mei it haadproses troch berjochten te ferstjoeren.
  • Stipe foar it brûken fan biblioteken dy't de stipe en debuggen fan grutte webprojekten ferienfâldigje. Implementaasjes fan funksjes fan tredden kinne wurde opnommen yn 'e foarm fan dielde bibleteken. Applikaasjes kinne wurde ferdield yn dielen en fertrouwe de ûntwikkeling fan elk diel oan in apart team fan programmeurs.
  • In set fan klearmakke ark om ûntwikkeling te stypjen yn 'e Dart-taal, ynklusyf de ymplemintaasje fan dynamyske ûntwikkeling en debuggen-ark mei koadekorreksje op 'e flecht ("bewurkje-en-trochgean").
  • Om ûntwikkeling yn 'e Dart-taal te ferienfâldigjen, komt it mei in SDK, in pakketbehearder pub, in statyske koadeanalysator dart_analyzer, in set biblioteken, in yntegreare ûntwikkelingsomjouwing DartPad en Dart-ynskeakele plugins foar IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 en wim.
  • Oanfoljende pakketten mei biblioteken en nutsbedriuwen wurde ferspraat fia de pub-repository, dy't mear as 20 tûzen pakketten hat.

Grutte feroaringen yn Dart 2.14 release:

  • Der is in nije triple shift-operator (>>>) tafoege, dy't, yn tsjinstelling ta de ">>"-operator, gjin rekkenjen útfiert, mar in logyske ferskowing dy't wurket sûnder rekken te hâlden mei it tekenbit (de ferskowing wurdt útfierd sûnder te dielen yn positive en negative sifers).
  • Fuortsmite de beheining op type arguminten dy't foarkommen dat generyske funksje typen wurde brûkt as in type argumint. Bygelyks, no kinne jo oantsjutte: late List (T)>idFunctions; var callback = [ (T wearde) => wearde]; late S Funksje (T)> (S) f;
  • Tastean it opjaan fan arguminten mei typen yn annotaasjes lykas @Deprecated. Jo kinne no bygelyks oantsjutte: @TypeHelper (42, "De betsjutting")
  • De statyske metoaden hash, hashAll en hashAllUordered binne tafoege oan de standertbibleteek (kearn) yn 'e Object-klasse. De DateTime-klasse hat ferbettere ôfhanneling fan lokale tiid by it konvertearjen fan klokken tusken simmer- en wintertiid dy't net dielber binne troch ien oere (bygelyks yn Austraalje wurdt in offset fan 30 minuten brûkt). It ffi-pakket hat stipe tafoege foar it meganisme foar it tawizen fan ûnthâld fan 'e arena, dy't boarnen automatysk frijlitte. It ffigen-pakket hat de mooglikheid tafoege om typedef-definysjes fan Dart-typen te generearjen út 'e C-taal.
  • De 250 populêrste pakketten fan 'e pub.dev-repository en 94% fan' e top-1000 binne oerskeakele nei it brûken fan 'e "nul feiligens" modus, dy't crashes sil foarkomme troch besykjen om fariabelen te brûken wêrfan de wearde net definieare is en ynsteld op "Null" "" De modus ymplisearret dat fariabelen gjin nulwearden kinne hawwe, útsein as se de wearde null eksplisyt wurde tawiisd. De modus respektearret fariabele typen strikt, wêrtroch de kompilator ekstra optimisaasjes kin tapasse. Typekonformiteit wurdt kontrolearre op kompilaasjetiid, bygelyks as jo besykje de wearde "Null" ta te jaan oan in fariabele mei in type dat gjin undefinieare steat ymplisearret, lykas "int", sil in flater werjûn wurde.
  • Unified sets fan regels foar de koade analyzer (linter) wurdt foarsteld, it bieden fan simultane stipe foar in kontrôle neilibjen fan koade styl rjochtlinen foar Dart en it Flutter ramt. Om histoaryske redenen wiene de kodearringsregels foar Flutter en Dart oars, boppedat wiene d'r foar Dart twa sets regels yn gebrûk - pedantyske fan Google en regels fan 'e Dart-ûntwikkeldersmienskip. Dart 2.14 yntrodusearret in nije mienskiplike set regels foar linter, dy't wurdt besletten om standert te brûken yn nije Dart-projekten en yn 'e Flutter SDK. De set befettet kearnregels (lints/core.yaml pakket), oanrikkemandearre oanfoljende regels (lints/recommended.yaml), en Flutter-spesifike oanbefellings (flutter_lints/flutter.yaml). Brûkers fan pedantyske regels wurde advisearre om te wikseljen nei it brûken fan in nije kodearringstyl basearre op de oanbefellings fan 'e Dart-dokumintaasje.
  • Yn formatter binne optimisaasjes makke foar de opmaak fan cascadearjende koadeblokken, dy't de opmaakprestaasjes signifikant kinne ferbetterje en dûbelsinnige ynterpretaasje fan it eigendom fan ekspresje-eleminten foarkomme. Bygelyks, ropt "..doIt" yn 'e útdrukking "var result = errorState? foo : bad..doIt()" giet net oer it betingsten diel fan it "minne" blok, mar de hiele ekspresje, dus by it opmaak is it no skieden: var result = errorState ? foo : bad ..doIt();
  • Stipe foar Apple M1 (Silicon) processors is tafoege oan de SDK, wat betsjuttet sawol de mooglikheid om Dart VM, nutsbedriuwen en SDK-komponinten út te fieren op systemen mei in Apple Silicon-prosessor, en stipe foar it kompilearjen fan útfierbere bestannen foar dizze chips.
  • It kommando "dart pub" hat stipe tafoege foar in nij tsjinstbestân ".pubignore", wêrtroch jo in list mei bestannen kinne definiearje dy't sille wurde oerslein by it publisearjen fan in pakket nei it pub.dev-repository. Dizze ynstellings interferearje net mei de negearjelist ".gitignore" (yn guon situaasjes kin pub.dev miskien it oerdragen fan bestannen foarkomme dy't nedich binne yn Git, bygelyks ynterne skripts dy't brûkt wurde by ûntwikkeling).
  • Der is wurk dien om de prestaasjes fan it kommando "dart test" te ferbetterjen, dy't no gjin opnij kompilearjen fan tests fereasket nei it feroarjen fan pubspec as it ferzjenûmer net feroare is.
  • Stipe foar kompilaasje yn ECMAScript 5-kompatibiliteitsmodus is beëinige (de wiziging sil resultearje yn ferlies fan kompatibiliteit mei de IE11-blêder).
  • De yndividuele nutsbedriuwen stagehand, dartfmt en dart2native binne ferâldere ferklearre, ferfongen troch ynboude kommando's dy't wurde neamd troch it dart-hulpprogramma.
  • It VM Native Extensions-meganisme is ôfkard. Om native koade te neamen fan Dart-koade, is it oan te rieden om de nije Dart FFI (Foreign Function Interface) te brûken.

Tagelyk waard in wichtige release fan it brûkersynterface-ramt Flutter 2.5 presintearre, dat wurdt beskôge as in alternatyf foar React Native en lit, basearre op ien koadebasis, applikaasjes frijlitte foar de iOS, Android, Windows, macOS en Linux platfoarms, lykas ek applikaasjes meitsje om te rinnen yn browsers. In oanpaste shell foar it Fuchsia-mikrokernel-bestjoeringssysteem ûntwikkele troch Google is boud op basis fan Flutter.

It haaddiel fan 'e Flutter-koade wurdt ymplementearre yn' e Dart-taal, en de runtime-motor foar it útfieren fan applikaasjes is skreaun yn C ++. By it ûntwikkeljen fan applikaasjes, neist Flutter's memmetaal Dart, kinne jo de Dart Foreign Function-ynterface brûke om C/C++-koade op te roppen. Hege útfieringsprestaasjes wurde berikt troch it kompilearjen fan applikaasjes nei native koade foar doelplatfoarms. Yn dit gefal hoecht it programma nei elke wiziging net opnij te kompilearjen - Dart biedt in hot reload-modus wêrmei jo wizigingen kinne meitsje oan in rinnende applikaasje en it resultaat daliks evaluearje kinne.

Grutte feroaringen yn Flutter 2.5:

  • Makke wichtige prestaasjesoptimalisaasjes. Op de iOS- en macOS-platfoarms is prekompilaasje fan shaders foar de Metal graphics API ymplementearre. Ferbettere effisjinsje fan it ferwurkjen fan asynchrone eveneminten. In probleem oplost mei fertragingen doe't de garbage collector ûnthâld weromlûkt fan net brûkte ôfbyldings (Bygelyks, tidens it ôfspieljen fan in 20-sekonde animearre GIF, waard it oantal garbage collection operaasjes fermindere fan 400 nei 4. Fertragingen by it trochjaan fan berjochten tusken Dart en Objective- C / Swift waarden fermindere nei 50% (iOS) of Java / Kotlin (Android) Added native build-stipe foar systemen basearre op de Apple Silicon-chip.
    Dart 2.14 taal en Flutter 2.5 framework beskikber
  • Foar it Android-platfoarm is stipe foar it útfieren fan applikaasjes yn folslein skermmodus fêststeld. De ymplemintaasje fan it ûntwerpkonsept "Material You", presintearre as in opsje foar materiaalûntwerp fan folgjende generaasje, gie troch. In nije steat tafoege MaterialState.scrolledUnder, dynamyske werjefte fan rôlbalken ymplementearre by it feroarjen fan grutte, en in nije ynterface foarstelde foar it werjaan fan notifikaasjebanners.
  • De mooglikheden fan 'e kamera-plug-in binne signifikant útwreide, en tafoegje ark foar it kontrolearjen fan autofokus, eksposysje, flits, zoom, lûdreduksje en resolúsje.
  • Developer-ark (DevTools) binne ferbettere om in bywurke widget-ynspeksjemodus op te nimmen, lykas ark foar it identifisearjen fan renderingsfertragingen en it folgjen fan shader-kompilaasje.
    Dart 2.14 taal en Flutter 2.5 framework beskikber
  • Ferbettere plugins foar Visual Studio Code en IntelliJ / Android Studio.

Boarne: opennet.ru

Add a comment