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.
- 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.
- Uzlaboti spraudÅi programmai Visual Studio Code un IntelliJ/Android Studio.
Avots: opennet.ru