Dart 2.14 nga pinulongan ug Flutter 2.5 nga gambalay anaa

Gipatik sa Google ang pagpagawas sa Dart 2.14 programming language, nga nagpadayon sa pag-uswag sa usa ka radikal nga gidesinyo pag-usab nga sanga sa Dart 2, nga lahi sa orihinal nga bersyon sa Dart nga pinulongan pinaagi sa paggamit sa lig-on nga static nga pag-type (ang mga tipo mahimong awtomatik nga mahibal-an, busa Ang pagtino sa mga tipo dili kinahanglan, apan ang dinamikong pag-type wala na gigamit ug sa sinugdan gikuwenta ang tipo gi-assign sa variable ug ang estrikto nga pagsusi sa tipo gisunod dayon).

Mga bahin sa Dart nga pinulongan:

  • Pamilyar ug dali nga makat-on nga syntax, natural alang sa JavaScript, C ug Java nga mga programmer.
  • Pagsiguro sa paspas nga paglansad ug taas nga pasundayag alang sa tanan nga modernong mga web browser ug lainlaing mga lahi sa palibot, gikan sa madaladala nga mga aparato hangtod sa kusgan nga mga server.
  • Ang abilidad sa paghubit sa mga klase ug mga interface nga nagtugot sa encapsulation ug paggamit pag-usab sa kasamtangan nga mga pamaagi ug datos.
  • Ang pagtino sa mga tipo makapasayon ​​sa pag-debug ug pag-ila sa mga sayop, paghimo sa code nga mas tin-aw ug mas mabasa, ug gipasayon ​​ang pag-usab ug pagtuki niini sa mga third-party nga developers.
  • Ang gisuportahan nga mga tipo naglakip sa: lain-laing mga matang sa hash, arrays ug mga lista, pila, numeric ug string type, tipo para sa pagtino sa petsa ug oras, regular nga mga ekspresyon (RegExp). Posible ang paghimo sa imong kaugalingon nga mga tipo.
  • Aron ma-organisar ang parallel execution, gisugyot nga gamiton ang mga klase nga adunay isolate attribute, ang code nga hingpit nga gipatuman sa hilit nga wanang sa usa ka bulag nga lugar sa panumduman, nga nakig-uban sa panguna nga proseso pinaagi sa pagpadala mga mensahe.
  • Suporta alang sa paggamit sa mga librarya nga nagpayano sa suporta ug pag-debug sa dagkong mga proyekto sa web. Ang mga pagpatuman sa ikatulo nga partido sa mga gimbuhaton mahimong maapil sa porma sa gipaambit nga mga librarya. Ang mga aplikasyon mahimong bahinon ngadto sa mga bahin ug itugyan ang pagpalambo sa matag bahin ngadto sa lain nga grupo sa mga programmer.
  • Usa ka hugpong sa andam nga mga himan aron suportahan ang pag-uswag sa Dart nga pinulongan, lakip ang pagpatuman sa dinamikong pag-uswag ug mga himan sa pag-debug nga adunay pagtul-id sa code sa langaw ("edit-ug-padayon").
  • Aron pasimplehon ang pag-uswag sa Dart nga pinulongan, kini adunay SDK, usa ka package manager pub, usa ka static code analyzer dart_analyzer, usa ka set sa mga librarya, usa ka integrated development environment nga DartPad ug Dart-enabled nga mga plugins alang sa IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 ug vim.
  • Ang dugang nga mga pakete nga adunay mga librarya ug mga gamit giapod-apod pinaagi sa pub repository, nga adunay labaw pa sa 20 ka libo nga mga pakete.

Daghang mga pagbag-o sa pagpagawas sa Dart 2.14:

  • Usa ka bag-ong triple shift operator (>>>) ang gidugang, nga, dili sama sa ">>" operator, naghimo dili usa ka aritmetika, apan usa ka lohikal nga pagbalhin nga molihok nga wala gikonsiderar ang sign bit (ang pagbalhin gihimo nga wala gibahin sa positibo ug negatibo nga mga numero).
  • Gikuha ang restriction sa type nga argumento nga nagpugong sa generic function type nga gamiton isip type argument. Pananglitan, karon mahimo nimong ipiho ang: ulahi nga Listahan (T)>idFunctions; var callback = [ (T bili) => bili]; ulahi nga S Function (T)>(S) f;
  • Tugoti ang pagtino sa mga argumento nga adunay mga tipo sa mga anotasyon sama sa @Deprecated. Pananglitan, mahimo nimong ipiho ang: @TypeHelper (42, "Ang kahulogan")
  • Ang static nga mga pamaagi hash, hashAll ug hashAllUnordered gidugang sa standard library (core) sa Object class. Ang klase sa DateTime nagpauswag sa pagdumala sa lokal nga oras kung ang pag-convert sa mga orasan tali sa ting-init ug panahon sa tingtugnaw nga dili mabahin sa usa ka oras (pananglitan, sa Australia usa ka offset nga 30 minuto ang gigamit). Ang ffi package nagdugang og suporta para sa mekanismo sa alokasyon sa memorya sa arena, nga awtomatik nga nagpagawas sa mga kahinguhaan. Ang ffigen package nagdugang ug abilidad sa pagmugna ug typedef nga mga kahulugan sa Dart type gikan sa C nga pinulongan.
  • Ang 250 ka labing inila nga mga pakete gikan sa pub.dev repository ug 94% sa top-1000 gibalhin sa paggamit sa "null safety" mode, nga makalikay sa mga crash nga gipahinabo sa mga pagsulay sa paggamit sa mga variable kansang bili dili matino ug gibutang sa "Null "" Ang mode nagpasabot nga ang mga baryable dili mahimong adunay null values ​​gawas kon kini klaro nga gihatag sa value null. Ang mode estrikto nga nagtahod sa mga variable nga tipo, nga nagtugot sa compiler nga magamit ang dugang nga mga pag-optimize. Ang pagsunod sa tipo gisusi sa oras sa pag-compile, pananglitan, kung sulayan nimo nga i-assign ang kantidad nga "Null" sa usa ka variable nga adunay usa ka tipo nga wala magpasabut nga wala mahibal-an nga kahimtang, sama sa "int", usa ka sayup ang ipakita.
  • Ang hiniusang hugpong sa mga lagda alang sa code analyzer (linter) gisugyot, nga naghatag og dungan nga suporta alang sa pagsusi sa pagsunod sa code style guidelines para sa Dart ug sa Flutter nga gambalay. Alang sa mga hinungdan sa kasaysayan, lahi ang mga lagda sa coding alang sa Flutter ug Dart, dugang pa, alang sa Dart adunay duha ka hugpong sa mga lagda nga gigamit - mga pedantic gikan sa Google ug mga lagda gikan sa komunidad sa developer sa Dart. Ang Dart 2.14 nagpaila sa usa ka bag-ong komon nga hugpong sa mga lagda alang sa linter, nga nakahukom nga gamiton nga default sa bag-ong mga proyekto sa Dart ug sa Flutter SDK. Ang set naglakip sa kinauyokan nga mga lagda (lints/core.yaml package), girekomendar nga dugang nga mga lagda (lints/recommended.yaml), ug Flutter-specific nga mga rekomendasyon (flutter_lints/flutter.yaml). Ang mga tiggamit sa pedantic nga mga lagda gitambagan nga mobalhin sa paggamit sa usa ka bag-ong estilo sa coding base sa mga rekomendasyon gikan sa dokumentasyon sa Dart.
  • Sa formatter, gihimo ang mga pag-optimize sa pag-format sa mga bloke sa cascading code, nga makapauswag sa performance sa pag-format ug malikayan ang dili klaro nga paghubad sa pagpanag-iya sa mga elemento sa ekspresyon. Pananglitan, ang pagtawag sa "..doIt" sa ekspresyong "var result = errorState ? foo : bad..doIt()” wala maghisgot sa conditional nga bahin sa “bad” block, apan ang tibuok nga ekspresyon, mao nga sa diha nga ang pag-format kini karon gibulag: var result = errorState ? foo : dili maayo ..doIt();
  • Ang suporta alang sa Apple M1 (Silicon) nga mga processor gidugang ngadto sa SDK, nga nagpasabot sa abilidad sa pagpadagan sa Dart VM, mga utilities ug SDK nga mga sangkap sa mga sistema nga adunay Apple Silicon nga processor, ug suporta sa pag-compile sa mga executable nga mga file alang niini nga mga chips.
  • Ang "dart pub" nga sugo midugang og suporta para sa bag-ong service file nga ".pubignore", nga nagtugot kanimo sa pagpasabot sa usa ka lista sa mga file nga laktawan kon mag-publish ug package ngadto sa pub.dev repository. Kini nga mga setting dili makabalda sa ".gitignore" nga lista sa dili pagtagad (sa pipila ka mga sitwasyon, ang pub.dev mahimong gusto nga likayan ang pagbalhin sa mga file nga gikinahanglan sa Git, pananglitan, mga internal nga script nga gigamit sa panahon sa pagpalambo).
  • Gihimo ang trabaho aron mapaayo ang pasundayag sa "dart test" nga mando, nga karon wala magkinahanglan pag-recompile nga mga pagsulay pagkahuman sa pagbag-o sa pubspec kung ang numero sa bersyon wala mausab.
  • Ang suporta alang sa pag-compile sa ECMAScript 5 compatibility mode gihunong na (ang kausaban moresulta sa pagkawala sa compatibility sa IE11 browser).
  • Ang tagsa-tagsa nga utilities stagehand, dartfmt ug dart2native gideklarar nga obsolete, gipulihan sa mga built-in nga commands nga gitawag pinaagi sa dart utility.
  • Ang mekanismo sa VM Native Extensions wala na gigamit. Aron matawag ang lumad nga code gikan sa Dart code, girekomenda nga gamiton ang bag-ong Dart FFI (Foreign Function Interface).

Sa samang higayon, usa ka mahinungdanong pagpagawas sa user interface framework Flutter 2.5 gipresentar, nga giisip nga alternatibo sa React Native ug nagtugot, base sa usa ka code base, sa pagpagawas sa mga aplikasyon alang sa iOS, Android, Windows, macOS ug Linux. mga plataporma, ingon man paghimo og mga aplikasyon nga modagan sa mga browser. Ang usa ka naandan nga kabhang alang sa Fuchsia microkernel operating system nga gimugna sa Google gitukod base sa Flutter.

Ang nag-unang bahin sa Flutter code gipatuman sa Dart nga pinulongan, ug ang runtime nga makina alang sa pagpatuman sa mga aplikasyon gisulat sa C++. Kung nag-develop sa mga aplikasyon, dugang sa lumad nga Dart nga pinulongan sa Flutter, mahimo nimong gamiton ang interface sa Dart Foreign Function aron tawagan ang C/C++ code. Ang taas nga pasundayag sa pagpatuman makab-ot pinaagi sa pag-compile sa mga aplikasyon sa lumad nga code alang sa mga target nga platform. Sa kini nga kaso, ang programa dili kinahanglan nga i-recompile pagkahuman sa matag pagbag-o - Dart naghatag usa ka mainit nga reload mode nga nagtugot kanimo sa paghimo sa mga pagbag-o sa usa ka nagdagan nga aplikasyon ug diha-diha dayon sa pagtimbang-timbang sa resulta.

Mga dagkong pagbag-o sa Flutter 2.5:

  • Naghimo hinungdanon nga pag-optimize sa pasundayag. Sa mga platform sa iOS ug macOS, gipatuman ang precompilation sa mga shaders para sa Metal graphics API. Gipauswag nga kahusayan sa pagproseso sa mga asynchronous nga panghitabo. Nasulbad ang usa ka isyu sa mga paglangay sa dihang ang tigkolekta sa basura mobawi sa panumduman gikan sa wala magamit nga mga hulagway (pananglitan, atol sa pag-playback sa 20-segundos nga animated GIF, ang gidaghanon sa mga operasyon sa pagkolekta sa basura gikunhoran gikan sa 400 ngadto sa 4. Ang mga paglangan sa dihang nagpasa sa mga mensahe tali sa Dart ug Objective- Ang C/Swift gikunhoran ngadto sa 50% (iOS) o Java/Kotlin (Android) Gidugang ang lumad nga suporta sa pagtukod alang sa mga sistema base sa Apple Silicon chip.
    Dart 2.14 nga pinulongan ug Flutter 2.5 nga gambalay anaa
  • Alang sa plataporma sa Android, natukod ang suporta sa pagpadagan sa mga aplikasyon sa full screen mode. Ang pagpatuman sa konsepto sa disenyo nga "Material Ikaw", nga gipresentar isip sunod nga henerasyon nga opsyon sa Material Design, nagpadayon. Gidugang ang usa ka bag-ong estado nga MaterialState.scrolledUnder, gipatuman ang dinamikong pagpakita sa mga scroll bar kung gibag-o ang gidak-on, ug gisugyot ang usa ka bag-ong interface alang sa pagpakita sa mga banner sa pagpahibalo.
  • Ang mga kapabilidad sa plug-in sa camera labi nga gipalapdan, nagdugang mga himan alang sa pagkontrol sa autofocus, exposure, flash, zoom, pagkunhod sa kasaba ug resolusyon.
  • Ang mga himan sa developer (DevTools) gipauswag aron maapil ang usa ka gi-update nga mode sa pag-inspeksyon sa widget, ingon man mga himan alang sa pag-ila sa mga paglangan sa paghubad ug pagsubay sa shader compilation.
    Dart 2.14 nga pinulongan ug Flutter 2.5 nga gambalay anaa
  • Gipaayo nga mga plugins alang sa Visual Studio Code ug IntelliJ/Android Studio.

Source: opennet.ru

Idugang sa usa ka comment