Saadaval on Dart 2.14 ja Flutter 2.5 raamistik.

Google on avaldanud programmeerimiskeele Dart 2.14 versiooni, mis jätkab Dart 2 oluliselt ümber töötatud haru arendamist. See erineb algsest Dart keele variandist tugeva staatilise tüübikontrolli kasutamise poolest (tüübid võivad automaatselt tuletada, seega tüüpide määramine pole kohustuslik, kuid dünaamilist tüübikontrolli ei kasutata enam, ning algselt tuletatud tüüp kinnitatakse muutuja külge ja edaspidi rakendatakse ranget tüübi kontrolli).

Darti keele omadused:

  • Tuttav ja lihtne õppida süntaks, mis on loomulik JavaScripti, C ja Java programmeerijatele.
  • Kiire käivitamine ja kõrge jõudlus kõigis kaasaegsetes veebibrauserites ja erinevates keskkondades, alates kantavatest seadmetest kuni võimsate süsteemideni. serverite.
  • Klasside ja liideste määramine, mis võimaldab kapseldamist ja olemasolevate meetodite ning andmete taaskasutamist.
  • Tüüpide määramine muudab tõrkeotsingu ja vigade avastamise lihtsamaks, teeb koodi selgemaks ja loetavamaks, lihtsustab selle täiendamist ja analüüsi teiste arendajate poolt.
  • Toetatud tüüpide seas: erinevad hash'id, massiivid ja nimekirjad, järjekorrad, numbrilised ja stringitüübid, kuupäeva ja aja määramise tüübid, regulaaravaldised (RegExp). On võimalus luua oma tüüpe.
  • Paralleelse täitmise korraldamiseks soovitatakse kasutada klasse, millel on atribuut isolate, mille kood täidetakse täielikult isoleeritud ruumis eraldi mälu piirkonnas, suheldes põhiprotsessiga sõnumite saatmise kaudu.
  • Toetatakse raamatukogude kasutamist, mis lihtsustavad suurte veebiprojektide hooldust ja tõrkeotsingut. Kolmandate osapoolte funktsioonide rakendused võivad olla integreeritud jagatud raamatukogudena. Rakendusi saab jagada osadeks ja iga osa arendamine võib olla usaldatud eraldi programmeerijate meeskonnale.
  • Valmis tööriistade kogum arenduseks Dart keeles, sealhulgas dünaamilise arenduse ja tõrkeotsingu vahendite rakendamine jooksva koodi parandamisega ('edit-and-continue').
  • Darti arendamise lihtsustamiseks on saadaval SDK, pakettide haldur pub, staatiline koodianalüsaator dart_analyzer, raamatukogude komplekt, integreeritud arenduskeskkond DartPad ning Dart toetavad pistikprogrammid IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 ja Vim jaoks.
  • Lisapakette koos raamistike ja utiliididega levitatakse pub-repositooriumi kaudu, mis sisaldab üle 20 000 paketi.

Dart 2.14 väljaande põhimuudatused:

  • Lisatud uus kolmekordse nihke operaator (>>>), mis erineb operaatorist „>>“ ning teeb mitte aritmeetilist, vaid loogilist nihke, toimides ilma märgibiti arvestamiseta (nihke teostamine toimub ilma positiivsete ja negatiivsete arvude eristamiseta).
  • Argumentide tüübi piirangud on eemaldatud, mis takistasid kasutamast üldisi funktsiooni tüüpe argumentidena. Näiteks on nüüd võimalik märkida: late List<T Function(T)> idFunctions; var callback = [(T value) => value]; late S Function<S extends T Function(T)>(S) f;
  • Argumentide määramine tüüpidega annotatsioonides, nagu @Deprecated, on lubatud. Näiteks on nüüd võimalik märkida: @TypeHelper(42, "Tähendus")
  • Standardteeki (core) on klassile Object lisatud staatilised meetodid hash, hashAll ja hashAllUnordered. Klassile DateTime on parendatud kohaliku aja käsitlemist, kui tunnid vahelduvad suve- ja talveaja vahel, mis ei ole täpselt üks tund (näiteks Austraalias on 30-minutiline nihke kasutamine). Paketti ffi on lisatud toimetusmehhanismi tugi, mis automaatselt vabastab ressursid. Paketti ffigen on lisatud võimalus genereerida typedef-tüübi määratlusi Dart keele C-keelest.
  • 250 populaarsimat paketti pub.dev hoidlast ja 94% top-1000-st on tõlgitud null-turvalisuse režiimi rakendamiseks, mis võimaldab vältida kokkuvarisemisi, mis on põhjustatud muutujate kasutamisest, mille väärtus ei ole määratletud ja on seatud nulliks. Režiim tähendab, et muutujatel ei saa olla määratlemata väärtusi, kui neile ei ole selgelt määratud null-väärtust. Režiimis arvestatakse muutujate tüüpe, mis võimaldab kompilatoril rakendada täiendavaid optimeerimisi. Tüüpide vastavust kontrollitakse kompileerimise ajal, näiteks juhul, kui proovitakse määrata null-väärtus muutujale, mille tüüp ei toeta määratlemata olekut, nagu näiteks int, annab see veateate.
  • Koodianalüsaatorile (linter) on välja pakutud ühtsed reeglite kogumid, mis tagavad samal ajal stiilisoovituste järgimise kontrolli Dart'i ja Flutter'i raamistiku jaoks. Ajaloolistel põhjustel olid Flutter'i ja Dart'i koodistandardid erinevad; lisaks kasutas Dart'i kogukond kaht erinevat reeglite kogumit: Google'i pedantsed ja kogukonna reeglid. Dart 2.14 toob välja uue ühise linter'i reeglite kogumi, mille kasutamine on otsustatud vaikimisi uutes Dart projektides ja Flutter SDK-s. Kogum sisaldab põhireegleid (pakett lints/core.yaml), soovitatud lisareegleid (lints/recommended.yaml) ja Flutter'ile spetsiifilisi soovitusi (flutter_lints/flutter.yaml). Pedantsete reeglite kasutajatele soovitatakse üle minna uuele kodeerimistavale, mis põhineb Dart'i dokumentatsioonis esitatud soovitustel.
  • Formatterisse on tehtud optimeerimisi koodiblokkide vormindamisel, mis võimaldavad oluliselt suurendada vormindamise tõhusust ja vältida elementide kuuluvuse ebaselget tõlgendamist. Näiteks väljendi „var result = errorState ? foo : bad..doIt()” korral viitab „..doIt” mitte tingimuslikule osale plokis „bad”, vaid kogu väljendile, seega vormindamisel eraldatakse see nüüd: var result = errorState ? foo : bad ..doIt();
  • SDK-sse on lisatud toetus Apple M1 (Silicon) protsessoritele, mis hõlmab nii Dart VM-i, utiliitide ja SDK komponente Apple Siliconi protsessoriga süsteemides käivitamise võimalust kui ka executible failide kompileerimise toetamist nimetatud kiipidele.
  • Käsku „dart pub” on lisatud tugi uuele teenindusfailile „.pubignore”, mis võimaldab määrata failide nimekirja, mis jäetakse välja paketihalduses pub.dev-s. Määratud seaded ei kattu „.gitignore” ignoreerimisnimekirjaga (mõnes olukorras peab pub.dev-s mitte edastama faile, mis on vajalikud Gitis, näiteks sisemised skriptid, mida kasutatakse arendamisel).
  • Tehtud tööd "dart test" meeskonna jõudluse parandamiseks, mis nüüd ei vaja testide korduvat kompileerimist pärast pubspec'i muudatust, kui versiooninumber ei ole muutunud.
  • Kompileerimise toetus režiimis lõpetatud ECMAScript 5 ühilduvuses (muudatus viib IE11 brauseriga ühilduvuse kadumiseni). IE11).
  • Eraldi utiliidid stagehand, dartfmt ja dart2native on deklareeritud vananenuks, mille asemel on toodud sisseehitatud käsud, mida saab kasutada dart utiliidi kaudu.
  • VM Native Extensions mehhanism on kuulutatud vananenuks. Soovitatav on kasutada uut Dart FFI (Foreign Function Interface) abil natiivkoodi kutsumiseks Dart koodist.

Samaaegselt esitusel on oluline Flutter 2.5 kasutajaliidese raamistiku väljaanne, mida käsitletakse React Native'i alternatiivina ja mis võimaldab ühe koodibaasi põhjal luua rakendusi iOS, Android, Windows, macOS ja Linux platvormidele ning luua rakendusi, mis käivituvad brauserites. Flutter põhjal on välja töötatud Google'i mikrokernel operatsioonisüsteemi Fuchsia kasutajaliidese kest.

Flutteri põhikood on kirjutatud Dart-keeles, samas kui rakenduste käitusmootor on kirjutatud C++-s. Rakenduste arendamisel on Flutteri natiivset Dart-keelt lisaks võimalik kasutada Dart Foreign Functioni liidest C/C++ koodi kutsumiseks. Suurt jõudlust saavutatakse rakenduste kompileerimise kaudu sihtruumi masina koodiks. Samuti ei ole programmi pärast iga muudatust vaja uuesti kompileerida — Dart pakub kuuma taaskäivitamise režiimi, mis võimaldab teha muudatusi töötavas rakenduses ja kohe tulemusi hinnata.

Peamised muudatused Flutter 2.5:

  • On iOS and macOS platforms, significant performance optimizations have been implemented. Shader precompilation for the Metal graphics API has been enabled. The efficiency of asynchronous event processing has been improved. The issue of delays when the garbage collector frees memory from unused images has been resolved (for example, during the playback of a 20-second animated GIF, the number of garbage collection operations has been reduced from 400 to 4). Delays in message transmission between Dart and Objective-C/Swift (iOS) or Java/Kotlin (Android) have been reduced by up to 50%. Native compilation support has been added for systems based on Apple Silicon chips.
    Saadaval on Dart 2.14 ja Flutter 2.5 raamistik.
  • For the Android platform, support for apps functioning in fullscreen mode has been established. The implementation of the 'Material You' design concept, presented as a next-generation version of Material Design, has continued. A new state, MaterialState.scrolledUnder, has been added, dynamic scrollbar visibility during resizing has been implemented, and a new interface for displaying notification banners has been proposed.
  • Plugin'i kaameras tööks võimalused on oluliselt laienenud, nüüd on saadaval automaatfookuse, ekspositsiooni, välgu, suumimise, mürasummutuse ja resolutsiooni juhtimise vahendid.
  • Arendajatele mõeldud tööriistu (DevTools) on parendatud, seal hulgas on nüüd saadaval uuendatud vidinate inspektsioonirežiim ning vahendid, mis aitavad tuvastada joonistamise viivitusi ja jälgida shaderite kompileerimist.
    Saadaval on Dart 2.14 ja Flutter 2.5 raamistik.
  • Visual Studio Code'i ja IntelliJ/Android Studio pluginid on parendatud.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster