Pieejama Dart 2.14 valoda un Flutter 2.5 ietvars

Google ir publicējusi programmÄ“Å”anas valodas Dart 2.14 izlaidumu, kas turpina radikāli pārveidota Dart 2 atzara izstrādi, kas no Dart valodas sākotnējās versijas atŔķiras ar spēcÄ«gas statiskās maŔīnrakstÄ«Å”anas izmantoÅ”anu (tipus var secināt automātiski, tāpēc precizējot tipi nav nepiecieÅ”ami, bet dinamiskā rakstÄ«Å”ana vairs netiek izmantota, un sākotnējais aprēķins tiek pieŔķirts mainÄ«gajam, un pēc tam tiek piemērota stingra tipa pārbaude).

Dart valodas iezīmes:

  • PazÄ«stama un viegli apgÅ«stama sintakse, dabiska JavaScript, C un Java programmētājiem.
  • Ātras palaiÅ”anas un augstas veiktspējas nodroÅ”ināŔana visām mÅ«sdienu tÄ«mekļa pārlÅ«kprogrammām un dažāda veida vidēm, sākot no pārnēsājamām ierÄ«cēm lÄ«dz jaudÄ«giem serveriem.
  • Iespēja definēt klases un saskarnes, kas ļauj iekapsulēt un atkārtoti izmantot esoŔās metodes un datus.
  • Veidu norādÄ«Å”ana atvieglo atkļūdoÅ”anu un kļūdu identificÄ“Å”anu, padara kodu skaidrāku un lasāmāku, kā arÄ« vienkārÅ”o tā modifikāciju un analÄ«zi, ko veic treŔās puses izstrādātāji.
  • AtbalstÄ«tie veidi ir: dažāda veida jaucējkodoli, masÄ«vi un saraksti, rindas, ciparu un virkņu veidi, datuma un laika noteikÅ”anas veidi, regulārās izteiksmes (RegExp). Ir iespēja izveidot savus tipus.
  • Paralēlās izpildes organizÄ“Å”anai tiek piedāvāts izmantot klases ar atribÅ«tu izolēt, kuru kods tiek pilnÄ«bā izpildÄ«ts izolētā telpā atseviŔķā atmiņas zonā, mijiedarbojoties ar galveno procesu, nosÅ«tot ziņojumus.
  • Atbalsts tādu bibliotēku izmantoÅ”anai, kas vienkārÅ”o lielu tÄ«mekļa projektu atbalstu un atkļūdoÅ”anu. TreŔās puses funkciju ievieÅ”anas var iekļaut koplietojamo bibliotēku veidā. Lietojumprogrammas var sadalÄ«t daļās un katras daļas izstrādi uzticēt atseviŔķai programmētāju komandai.
  • Gatavu rÄ«ku komplekts Dart valodas izstrādes atbalstam, ieskaitot dinamiskas izstrādes un atkļūdoÅ”anas rÄ«ku ievieÅ”anu ar koda korekciju lidojumā (ā€œrediģēt un turpinātā€).
  • Lai vienkārÅ”otu izstrādi Dart valodā, tajā ir iekļauts SDK, pakotņu pārvaldnieka pubs, statiskā koda analizators dart_analyzer, bibliotēku komplekts, integrēta izstrādes vide DartPad un ar Dart iespējoti spraudņi IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 un Vim.
  • Papildu pakotnes ar bibliotēkām un utilÄ«tprogrammām tiek izplatÄ«tas caur kroga repozitoriju, kurā ir vairāk nekā 20 tÅ«kstoÅ”i pakeÅ”u.

Galvenās izmaiņas Dart 2.14 laidienā:

  • Pievienots jauns trÄ«skārÅ”u maiņu operators (>>>), kas atŔķirÄ«bā no ā€œ>>ā€ operatora veic nevis aritmētisko, bet loÄ£isko nobÄ«di, kas darbojas neņemot vērā zÄ«mes bitu (nobÄ«de tiek veikta, nedalot pozitÄ«vie un negatÄ«vie skaitļi).
  • Noņemts tipa argumentu ierobežojums, kas neļāva vispārÄ«gus funkciju tipus izmantot kā tipa argumentu. Piemēram, tagad varat norādÄ«t: late List (T)>idFunctions; var callback = [ (T vērtÄ«ba) => vērtÄ«ba]; novēlota S funkcija (T)>(S) f;
  • Atļaut anotācijās norādÄ«t argumentus ar veidiem, piemēram, @Deprecated. Piemēram, tagad varat norādÄ«t: @TypeHelper (42, "NozÄ«me")
  • Statiskās metodes hash, hashAll un hashAllUnordered ir pievienotas standarta bibliotēkai (kodolam) klasē Object. Klase DateTime ir uzlabojusi vietējā laika apstrādi, mainot pulksteņus starp vasaras un ziemas laiku, kas nedalās ar vienu stundu (piemēram, Austrālijā tiek izmantota 30 minÅ«Å”u nobÄ«de). ffi pakotnei ir pievienots atbalsts arēnas atmiņas pieŔķirÅ”anas mehānismam, kas automātiski atbrÄ«vo resursus. Paketei ffigen ir pievienota iespēja Ä£enerēt Dart tipu typedef definÄ«cijas no C valodas.
  • 250 populārākās pakotnes no pub.dev repozitorija un 94% no 1000 populārākajām pakotnēm ir pārslēgtas uz "null droŔības" režīmu, kas ļaus izvairÄ«ties no avārijām, ko izraisa mēģinājumi izmantot mainÄ«gos, kuru vērtÄ«ba nav definēta un iestatÄ«ta uz "Null". "" Režīms nozÄ«mē, ka mainÄ«gajiem nevar bÅ«t nulles vērtÄ«bas, ja vien tiem nav skaidri pieŔķirta vērtÄ«ba null. Režīms stingri ievēro mainÄ«gos tipus, kas ļauj kompilatoram piemērot papildu optimizācijas. Tipa atbilstÄ«ba tiek pārbaudÄ«ta kompilÄ“Å”anas laikā, piemēram, ja jÅ«s mēģināt pieŔķirt vērtÄ«bu ā€œNullā€ mainÄ«gajam ar tipu, kas nenozÄ«mē nedefinētu stāvokli, piemēram, ā€œintā€, tiks parādÄ«ta kļūda.
  • Tiek piedāvāti vienoti koda analizatora (linter) noteikumu kopumi, kas nodroÅ”ina vienlaicÄ«gu atbalstu, lai pārbaudÄ«tu atbilstÄ«bu koda stila vadlÄ«nijām Dart un Flutter ietvaram. Vēsturisku iemeslu dēļ Flutter un Dart kodÄ“Å”anas noteikumi bija atŔķirÄ«gi, turklāt Dart tika izmantoti divi noteikumu kopumi - pedantiskie no Google un noteikumi no Dart izstrādātāju kopienas. Dart 2.14 ievieÅ” jaunu kopēju noteikumu kopumu linteram, ko pēc noklusējuma ir nolemts izmantot jaunos Dart projektos un Flutter SDK. Komplektā ir iekļauti pamatnoteikumi (pakete lints/core.yaml), ieteicamie papildu noteikumi (lints/recommended.yaml) un Flutter specifiski ieteikumi (flutter_lints/flutter.yaml). Pedantisku noteikumu lietotājiem ieteicams pāriet uz jauna kodÄ“Å”anas stila izmantoÅ”anu, pamatojoties uz ieteikumiem no Dart dokumentācijas.
  • Formatētājā ir veiktas kaskādes koda bloku formatÄ“Å”anas optimizācijas, kas var ievērojami uzlabot formatÄ“Å”anas veiktspēju un izvairÄ«ties no neviennozÄ«mÄ«gas izteiksmes elementu Ä«paÅ”umtiesÄ«bu interpretācijas. Piemēram, izsaucot "..doIt" izteiksmē "var rezultāts = errorState ? foo : bad..doIt()ā€ neattiecas uz ā€œsliktāā€ bloka nosacÄ«to daļu, bet gan uz visu izteiksmi, tāpēc formatējot tā tagad tiek atdalÄ«ta: var result = errorState ? foo : slikti ..doIt();
  • SDK ir pievienots Apple M1 (Silicon) procesoru atbalsts, kas nozÄ«mē gan iespēju palaist Dart VM, utilÄ«tus un SDK komponentus sistēmās ar Apple Silicon procesoru, gan atbalstu Å”o mikroshēmu izpildāmo failu kompilÄ“Å”anai.
  • Komanda "dart pub" ir pievienojusi atbalstu jaunam pakalpojuma failam ".pubignore", kas ļauj definēt to failu sarakstu, kuri tiks izlaisti, publicējot pakotni pub.dev repozitorijā. Å ie iestatÄ«jumi netraucē ā€œ.gitignoreā€ ignorÄ“Å”anas sarakstam (dažās situācijās pub.dev var vēlēties izvairÄ«ties no Git nepiecieÅ”amo failu, piemēram, izstrādes laikā izmantoto iekŔējo skriptu, pārsÅ«tÄ«Å”anas).
  • Ir veikts darbs, lai uzlabotu komandas ā€œdart testā€ veiktspēju, kas tagad neprasa pārkompilēt testus pēc pubspec maiņas, ja versijas numurs nav mainÄ«jies.
  • Kompilācijas atbalsts ECMAScript 5 saderÄ«bas režīmā ir pārtraukts (izmaiņu rezultātā tiks zaudēta saderÄ«ba ar pārlÅ«kprogrammu IE11).
  • AtseviŔķās utilÄ«tas stagehand, dartfmt un dart2native ir pasludinātas par novecojuŔām, un tās ir aizstātas ar iebÅ«vētām komandām, kas tiek izsauktas, izmantojot dart utilÄ«tu.
  • VM vietējo paplaÅ”inājumu mehānisms ir novecojis. Lai izsauktu vietējo kodu no Dart koda, ieteicams izmantot jauno Dart FFI (Foreign Function Interface).

Tajā paŔā laikā tika prezentēts nozÄ«mÄ«gs lietotāja interfeisa ietvara Flutter 2.5 laidiens, kas tiek uzskatÄ«ts par alternatÄ«vu React Native un ļauj, pamatojoties uz vienu kodu bāzi, izlaist lietojumprogrammas operētājsistēmām iOS, Android, Windows, macOS un Linux. platformām, kā arÄ« izveidot lietojumprogrammas, kas darbojas pārlÅ«kprogrammās. Pielāgots apvalks Fuchsia mikrokodola operētājsistēmai, ko izstrādājis Google, ir izveidots, pamatojoties uz Flutter.

Galvenā Flutter koda daļa ir ieviesta Dart valodā, un izpildlaika dzinējs lietojumprogrammu izpildei ir rakstÄ«ts C++ valodā. Izstrādājot lietojumprogrammas, papildus Flutter dzimtajai Dart valodai varat izmantot Dart Foreign Function saskarni, lai izsauktu C/C++ kodu. Augsta izpildes veiktspēja tiek panākta, lietojumprogrammas kompilējot mērÄ·a platformu vietējā kodā. Å ajā gadÄ«jumā programma nav jāpārkompilē pēc katras izmaiņas ā€“ Dart nodroÅ”ina karstās pārlādÄ“Å”anas režīmu, kas ļauj veikt izmaiņas darbojoŔā lietojumprogrammā un nekavējoties novērtēt rezultātu.

Galvenās izmaiņas Flutter 2.5:

  • Veikta ievērojama veiktspējas optimizācija. IOS un macOS platformās ir ieviesta ēnotāju iepriekŔēja kompilācija Metal grafikas API. Uzlabota asinhrono notikumu apstrādes efektivitāte. Atrisināta problēma ar aizkavi, kad atkritumu savācējs atgÅ«st atmiņu no neizmantotiem attēliem (piemēram, 20 sekunžu animēta GIF atskaņoÅ”anas laikā atkritumu savākÅ”anas darbÄ«bu skaits tika samazināts no 400 lÄ«dz 4. Kavējumi, pārsÅ«tot ziņojumus starp Dart un Objective- C/Swift tika samazināts lÄ«dz 50% (iOS) vai Java/Kotlin (Android). Pievienots native build atbalsts sistēmām, kuru pamatā ir Apple Silicon mikroshēma.
    Pieejama Dart 2.14 valoda un Flutter 2.5 ietvars
  • Android platformai ir izveidots atbalsts lietojumprogrammu palaiÅ”anai pilnekrāna režīmā. Turpinājās dizaina koncepcijas ā€œMaterial Youā€ ievieÅ”ana, kas tika prezentēta kā nākamās paaudzes Materiālu dizaina iespēja. Pievienots jauns stāvoklis MaterialState.scrolledUnder, ieviests dinamisks ritjoslu attēlojums, mainot izmērus, un ierosināts jauns interfeiss paziņojumu reklāmkarogu parādÄ«Å”anai.
  • Kameras spraudņa iespējas ir ievērojami paplaÅ”inātas, pievienojot rÄ«kus autofokusa, ekspozÄ«cijas, zibspuldzes, tālummaiņas, trokŔņu samazināŔanas un izŔķirtspējas kontrolei.
  • Izstrādātāju rÄ«ki (DevTools) ir uzlaboti, iekļaujot atjauninātu logrÄ«ku pārbaudes režīmu, kā arÄ« rÄ«kus renderÄ“Å”anas aizkaves noteikÅ”anai un ēnotāju kompilācijas izsekoÅ”anai.
    Pieejama Dart 2.14 valoda un Flutter 2.5 ietvars
  • Uzlaboti spraudņi programmai Visual Studio Code un IntelliJ/Android Studio.

Avots: opennet.ru

Pievieno komentāru