Dart 2.14 lang ak Flutter 2.5 kad ki disponib

Google te pibliye liberasyon langaj pwogramasyon Dart 2.14 la, ki kontinye devlopman yon branch radikalman reamenaje Dart 2, ki diferan de vèsyon orijinal lang Dart pa itilize fò sezisman estatik (kalite yo ka dedwi otomatikman, kidonk. spesifye kalite pa nesesè, men sezisman dinamik yo pa itilize ankò epi okòmansman kalkile kalite a asiyen nan varyab la epi tcheke tip strik yo imedyatman aplike).

Karakteristik nan lang Dart la:

  • Sentaks abitye ak fasil pou aprann, natirèl pou pwogramasyon JavaScript, C ak Java.
  • Asire lansman rapid ak pèfòmans segondè pou tout navigatè entènèt modèn ak divès kalite anviwònman, soti nan aparèy pòtab ak sèvè pwisan.
  • Kapasite pou defini klas ak koòdone ki pèmèt ankapsulasyon ak reitilizasyon metòd ak done ki egziste deja.
  • Espesifye kalite fè li pi fasil pou debogaj ak idantifye erè, fè kòd la pi klè ak pi lizib, epi senplifye modifikasyon li yo ak analiz pa devlopè twazyèm pati.
  • Kalite sipòte yo enkli: divès kalite hashes, etalaj ak lis, ke moun kap kriye, kalite nimerik ak fisèl, kalite pou detèmine dat ak lè, ekspresyon regilye (RegExp). Li posib yo kreye kalite pwòp ou yo.
  • Pou òganize ekzekisyon paralèl, li pwopoze pou itilize klas ki gen atribi izole, kòd ki egzekite antyèman nan espas izole nan yon zòn memwa separe, kominike avèk pwosesis prensipal la pa voye mesaj.
  • Sipò pou itilize bibliyotèk ki senplifye sipò ak debogaj gwo pwojè entènèt. Twazyèm pati enplemantasyon nan fonksyon yo ka enkli nan fòm lan nan bibliyotèk pataje. Aplikasyon yo ka divize an pati epi konfye devlopman chak pati nan yon ekip separe pwogramè yo.
  • Yon seri zouti pare pou sipòte devlopman nan lang Dart, ki gen ladan aplikasyon devlopman dinamik ak zouti debogaj ak koreksyon kòd sou vole ("edit-and-continue").
  • Pou senplifye devlopman nan lang Dart, li vini ak yon SDK, yon pub manadjè pake, yon analizè kòd estatik dart_analyzer, yon seri bibliyotèk, yon anviwònman devlopman entegre DartPad ak grefon ki pèmèt Dart pou IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 ak Vim.
  • Lòt pake ki gen bibliyotèk ak sèvis piblik yo distribye atravè repozitwa pub la, ki gen plis pase 20 mil pakè.

Gwo chanjman nan lage Dart 2.14:

  • Yo te ajoute yon nouvo operatè triple shift (>>>), ki, kontrèman ak ">>" operatè a, fè pa yon aritmetik, men yon chanjman lojik ki travay san yo pa pran an kont ti siy la (chanjman an fèt san yo pa divize an nimewo pozitif ak negatif).
  • Retire restriksyon sou agiman kalite ki anpeche kalite fonksyon jenerik yo itilize kòm yon agiman kalite. Pou egzanp, kounye a ou ka presize: anreta Lis (T)>idFunctions; var callback = [ (T valè) => valè]; anreta S Fonksyon (T)>(S) f;
  • Pèmèt espesifye agiman ak kalite nan anotasyon tankou @Deprecated. Pou egzanp, ou ka kounye a presize: @TypeHelper (42, "Siyifikasyon an")
  • Metòd estatik hash, hashAll ak hashAllUnordered yo te ajoute nan bibliyotèk estanda (nwayo) nan klas Objè a. Klas DateTime a amelyore fason pou yo manyen lè lokal yo lè yo konvèti revèy ant lè ete ak lè ivè ki pa divizib pa inèdtan (pa egzanp, nan Ostrali yo itilize yon konpanse 30 minit). Pake ffi a te ajoute sipò pou mekanis alokasyon memwa tèren an, ki otomatikman degaje resous yo. Pake ffigen an te ajoute kapasite pou jenere definisyon typedef nan kalite Dart nan lang C a.
  • 250 pakè ki pi popilè ki soti nan depo pub.dev ak 94% nan tèt-1000 yo te chanje nan lè l sèvi avèk mòd "nil sekirite", ki pral evite aksidan ki te koze pa tantativ pou sèvi ak varyab ki gen valè pa defini epi mete nan "Nil". "" Mòd la implique ke varyab yo pa ka gen valè nil sof si yo bay yo klèman valè nil la. Mòd la estrikteman respekte kalite varyab, ki pèmèt konpilatè a aplike optimize adisyonèl. Konfòmite tip tcheke nan moman konpile, pou egzanp, si ou eseye bay valè "Nil" nan yon varyab ak yon kalite ki pa vle di eta endefini, tankou "int", yon erè ap parèt.
  • Yo pwopoze seri règ inifye pou analizè kòd (linter), ki bay sipò similtane pou tcheke konfòmite ak direktiv stil kòd pou Dart ak kad Flutter la. Pou rezon istorik, règ yo kodaj pou Flutter ak Dart te diferan, anplis, pou Dart te gen de seri règ yo itilize - sa ki pedantik soti nan Google ak règ nan kominote a pwomotè Dart. Dart 2.14 prezante yon nouvo seri règ komen pou linter, ki deside yo dwe itilize pa default nan nouvo pwojè Dart ak nan Flutter SDK la. Seri a gen ladan règ debaz (lints/core.yaml pake), règ adisyonèl rekòmande (lints/recommended.yaml), ak rekòmandasyon espesifik pou Flutter (flutter_lints/flutter.yaml). Itilizatè yo nan règ pedantik yo konseye yo chanje nan sèvi ak yon nouvo style kodaj ki baze sou rekòmandasyon ki soti nan dokiman an Dart.
  • Nan fòmatè, yo te fè optimize fòma blòk kòd kaskad yo, sa ki ka siyifikativman amelyore pèfòmans fòma epi evite entèpretasyon anbigwi nan pwopriyetè eleman ekspresyon yo. Pou egzanp, rele "..doIt" nan ekspresyon "var rezilta = errorState? foo : bad..doIt()” pa konsène pati kondisyonèl blòk “move” a, men tout ekspresyon an, kidonk lè fòma li separe kounye a: var result = errorState ? foo : move ..doIt();
  • Sipò pou processeurs Apple M1 (Silisyòm) yo te ajoute nan SDK a, sa vle di tou de kapasite nan kouri Dart VM, sèvis piblik ak konpozan SDK sou sistèm ki gen yon processeur Apple Silisyòm, ak sipò pou konpile dosye ègzèkutabl pou chips sa yo.
  • Kòmand "dart pub" la te ajoute sipò pou yon nouvo fichye sèvis ".pubignore", ki pèmèt ou defini yon lis fichye yo pral sote lè w ap pibliye yon pake nan depo pub.dev la. Anviwònman sa yo pa entèfere ak lis inyore ".gitignore" (nan kèk sitiyasyon, pub.dev ka vle evite transfere dosye ki nesesè nan Git, pou egzanp, scripts entèn yo itilize pandan devlopman).
  • Travay yo te fè pou amelyore pèfòmans kòmandman "tès flechèt", ki kounye a pa mande pou rekonpile tès apre chanje pubspec si nimewo vèsyon an pa chanje.
  • Sipò pou konpilasyon nan mòd konpatibilite ECMAScript 5 yo sispann (chanjman an pral lakòz pèt konpatibilite ak navigatè IE11 la).
  • Yo te deklare sèvis piblik endividyèl stagehand, dartfmt ak dart2native demode, ranplase pa kòmandman entegre yo rele nan sèvis piblik flechèt la.
  • Mekanis VM Native Extensions la te obsève. Pou rele kòd natif natal ki soti nan kòd Dart, li rekòmande pou itilize nouvo Dart FFI (Foreign Function Interface).

An menm tan an, yo te prezante yon lage enpòtan nan kad koòdone itilizatè Flutter 2.5, ki konsidere kòm yon altènativ a React Native epi ki pèmèt, ki baze sou yon sèl baz kòd, lage aplikasyon pou iOS, Android, Windows, macOS ak platfòm Linux, osi byen ke kreye aplikasyon pou kouri nan navigatè yo. Yon kokiy koutim pou sistèm operasyon mikrokernel Fuchsia devlope pa Google bati sou baz Flutter.

Se pati prensipal la nan kòd Flutter aplike nan lang Dart, ak motè a ègzekutabl pou egzekite aplikasyon yo ekri nan C++. Lè w ap devlope aplikasyon yo, anplis lang natif natal Flutter a, ou ka itilize koòdone Fonksyon etranje Dart pou rele kòd C/C++. Pèfòmans ekzekisyon segondè reyalize pa konpile aplikasyon nan kòd natif natal pou platfòm sib. Nan ka sa a, pwogram nan pa bezwen rekonpile apre chak chanjman - Dart bay yon mòd rechaje cho ki pèmèt ou fè chanjman nan yon aplikasyon kouri epi imedyatman evalye rezilta a.

Gwo chanjman nan Flutter 2.5:

  • Te fè optimize pèfòmans enpòtan. Sou platfòm iOS ak macOS yo, prekonpilasyon shaders pou API Metal graphics yo te aplike. Amelyore efikasite nan pwosesis evènman asynchrone. Rezoud yon pwoblèm ak reta lè pèseptè fatra a reprann memwa nan imaj ki pa itilize yo (pa egzanp, pandan lèktur yon GIF anime 20 segonn, kantite operasyon koleksyon fatra te redwi soti nan 400 a 4. Reta lè yo pase mesaj ant Dart ak Objective- C/Swift te redwi a 50% (iOS) oswa Java/Kotlin (Android) Te ajoute sipò natif natal pou sistèm ki baze sou chip Apple Silisyòm lan.
    Dart 2.14 lang ak Flutter 2.5 kad ki disponib
  • Pou platfòm Android, sipò pou kouri aplikasyon yo nan mòd ekran plen yo te etabli. Aplikasyon konsèp konsepsyon "Materyèl ou", prezante kòm yon opsyon konsepsyon materyèl pwochen jenerasyon, kontinye. Te ajoute yon nouvo eta MaterialState.scrolledUnder, aplike ekspozisyon dinamik nan ba woulo liv lè redimansyonman, ak pwopoze yon nouvo koòdone pou montre banyè notifikasyon.
  • Kapasite kamera ploge nan yo te siyifikativman elaji, ajoute zouti pou kontwole autofocus, ekspoze, flash, rale, rediksyon bri ak rezolisyon.
  • Zouti devlopè yo (DevTools) yo te amelyore pou enkli yon mòd enspeksyon widje ki ajou, ansanm ak zouti pou idantifye reta rann ak swiv konpilasyon shader.
    Dart 2.14 lang ak Flutter 2.5 kad ki disponib
  • Plugins amelyore pou Kòd Visual Studio ak IntelliJ/Android Studio.

Sous: opennet.ru

Add nouvo kòmantè