Il-lingwa Dart 2.14 u l-qafas Flutter 2.5 disponibbli

Google ppubblikat ir-rilaxx tal-lingwa ta 'programmar Dart 2.14, li tkompli l-iżvilupp ta' fergħa ddisinjata radikalment mill-ġdid ta 'Dart 2, li hija differenti mill-verżjoni oriġinali tal-lingwa Dart bl-użu ta' tajpjar statiku qawwi (it-tipi jistgħu jiġu dedotti awtomatikament, għalhekk li tispeċifika t-tipi mhix meħtieġa, iżda t-tajpjar dinamiku m'għadux jintuża u inizjalment ikkalkulat it-tip huwa assenjat għall-varjabbli u sussegwentement jiġi applikat verifika stretta tat-tip).

Karatteristiċi tal-lingwa Dart:

  • Sintassi familjari u faċli biex titgħallem, naturali għal programmaturi JavaScript, C u Java.
  • L-iżgurar ta 'tnedija veloċi u prestazzjoni għolja għall-web browsers moderni kollha u diversi tipi ta' ambjenti, minn tagħmir portabbli għal servers b'saħħithom.
  • Il-ħila li tiddefinixxi klassijiet u interfaces li jippermettu l-inkapsulament u l-użu mill-ġdid ta 'metodi u data eżistenti.
  • L-ispeċifikazzjoni tat-tipi tagħmilha aktar faċli biex tiddibaggja u tidentifika l-iżbalji, tagħmel il-kodiċi aktar ċar u aktar leġibbli, u tissimplifika l-modifika u l-analiżi tagħha minn żviluppaturi terzi.
  • Tipi appoġġjati jinkludu: diversi tipi ta 'hashes, arrays u listi, kjuwijiet, tipi numeriċi u string, tipi għad-determinazzjoni tad-data u l-ħin, espressjonijiet regolari (RegExp). Huwa possibbli li toħloq it-tipi tiegħek.
  • Biex tiġi organizzata l-eżekuzzjoni parallela, huwa propost li jintużaw klassijiet bl-attribut iżolat, li l-kodiċi tagħhom huwa esegwit kompletament fi spazju iżolat f'żona ta 'memorja separata, li jinteraġixxu mal-proċess prinċipali billi jintbagħtu messaġġi.
  • Appoġġ għall-użu ta 'libreriji li jissimplifikaw l-appoġġ u d-debugging ta' proġetti kbar tal-web. Implimentazzjonijiet ta 'partijiet terzi ta' funzjonijiet jistgħu jiġu inklużi fil-forma ta 'libreriji kondiviżi. L-applikazzjonijiet jistgħu jinqasmu f'partijiet u jafdaw l-iżvilupp ta 'kull parti lil tim separat ta' programmaturi.
  • Sett ta’ għodod lesti biex jappoġġjaw l-iżvilupp fil-lingwa Dart, inkluża l-implimentazzjoni ta’ żvilupp dinamiku u għodod ta’ debugging b’korrezzjoni tal-kodiċi fuq il-fly (“edit-and-continue”).
  • Biex tissimplifika l-iżvilupp fil-lingwa Dart, tiġi flimkien ma 'SDK, pub maniġer tal-pakketti, analizzatur tal-kodiċi statiku dart_analyzer, sett ta' libreriji, ambjent ta 'żvilupp integrat DartPad u plugins ppermettiet Dart għal IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 u Vim.
  • Pakketti addizzjonali bil-libreriji u l-utilitajiet huma mqassma permezz tar-repożitorju tal-pub, li għandu aktar minn 20 elf pakkett.

Bidliet ewlenin fir-rilaxx ta' Dart 2.14:

  • Ġie miżjud operatur triple shift ġdid (>>>), li, kuntrarjament għall-operatur “>>”, iwettaq mhux aritmetika, iżda shift loġiku li jaħdem mingħajr ma jqis il-bit tas-sinjal (iċ-ċaqliq isir mingħajr ma jinqasam fi numri pożittivi u negattivi).
  • Neħħew ir-restrizzjoni fuq l-argumenti tat-tip li żammew it-tipi ta' funzjonijiet ġeneriċi milli jintużaw bħala argument tat-tip. Per eżempju, issa tista 'tispeċifika: tard Lista (T)>idFunzjonijiet; var callback = [ (Valur T) => valur]; tard S Funzjoni (T)>(S) f;
  • Ħalli l-ispeċifikazzjoni ta' argumenti b'tipi f'annotazzjonijiet bħal @Deprecated. Pereżempju, issa tista' tispeċifika: @TypeHelper (42, "It-tifsira")
  • Il-metodi statiċi hash, hashAll u hashAllUnordered ġew miżjuda mal-librerija standard (qalba) fil-klassi Object. Il-klassi DateTime tejbet l-immaniġġjar tal-ħin lokali meta tikkonverti l-arloġġi bejn il-ħin tas-sajf u tax-xitwa li mhumiex diviżibbli b'siegħa (pereżempju, fl-Awstralja tintuża offset ta' 30 minuta). Il-pakkett ffi żied appoġġ għall-mekkaniżmu ta 'allokazzjoni tal-memorja tal-arena, li awtomatikament jirrilaxxa r-riżorsi. Il-pakkett ffigen żied il-kapaċità li jiġġenera definizzjonijiet typedef tat-tipi Dart mill-lingwa Ċ.
  • Il-250 pakkett l-aktar popolari mir-repożitorju pub.dev u 94% tal-aqwa 1000 ġew mibdula għall-użu tal-modalità "sigurtà null", li se tevita ħabtiet ikkawżati minn tentattivi biex jintużaw varjabbli li l-valur tagħhom mhuwiex definit u ssettjat għal "Null". " " Il-mod jimplika li l-varjabbli ma jistax ikollhom valuri nulli sakemm ma jiġux assenjati espliċitament il-valur null. Il-mod tirrispetta b'mod strett it-tipi varjabbli, li jippermetti lill-kompilatur japplika ottimizzazzjonijiet addizzjonali. Il-konformità tat-tip tiġi ċċekkjata fil-ħin tal-kompilazzjoni, pereżempju, jekk tipprova tassenja l-valur "Null" għal varjabbli b'tip li ma jimplikax stat mhux definit, bħal "int", se jintwera żball.
  • Huma proposti settijiet unifikati ta 'regoli għall-analizzatur tal-kodiċi (linter), li jipprovdu appoġġ simultanju għall-iċċekkjar tal-konformità mal-linji gwida tal-istil tal-kodiċi għal Dart u l-qafas Flutter. Għal raġunijiet storiċi, ir-regoli tal-kodifikazzjoni għal Flutter u Dart kienu differenti, barra minn hekk, għal Dart kien hemm żewġ settijiet ta 'regoli fl-użu - dawk pedantiċi minn Google u regoli mill-komunità tal-iżviluppaturi Dart. Dart 2.14 jintroduċi sett komuni ġdid ta' regoli għal linter, li huwa deċiż li jintuża awtomatikament fi proġetti Dart ġodda u fl-SDK Flutter. Is-sett jinkludi regoli ewlenin (lints/core.yaml package), regoli addizzjonali rakkomandati (lints/recommended.yaml), u rakkomandazzjonijiet speċifiċi għal Flutter (flutter_lints/flutter.yaml). L-utenti ta 'regoli pedantiċi huma avżati biex jaqilbu għall-użu ta' stil ta 'kodifikazzjoni ġdid ibbażat fuq ir-rakkomandazzjonijiet mid-dokumentazzjoni tad-Dart.
  • Fil-formatter, saru ottimizzazzjonijiet għall-ifformattjar ta 'blokki ta' kodiċi cascading, li jistgħu jtejbu b'mod sinifikanti l-prestazzjoni tal-ifformattjar u jevitaw interpretazzjoni ambigwa tas-sjieda tal-elementi tal-espressjoni. Pereżempju, issejjaħ "..doIt" fl-espressjoni "var result = errorState ? foo : bad..doIt()” ma tikkonċernax il-parti kondizzjonali tal-blokka “ħażina”, iżda l-espressjoni kollha, għalhekk meta tifformattja hija issa separata: var result = errorState ? foo : ħażin ..doIt();
  • L-appoġġ għall-proċessuri Apple M1 (Silicon) ġie miżjud mal-SDK, li jimplika kemm il-kapaċità li tħaddem Dart VM, utilitajiet u komponenti SDK fuq sistemi bi proċessur Apple Silicon, kif ukoll appoġġ għall-kompilazzjoni ta 'fajls eżekutibbli għal dawn iċ-ċipep.
  • Il-kmand "dart pub" żied appoġġ għal fajl ta 'servizz ġdid ".pubignore", li jippermettilek tiddefinixxi lista ta' fajls li se jinqabżu meta tippubblika pakkett għar-repożitorju pub.dev. Dawn is-settings ma jinterferixxux mal-lista ta 'jinjora ".gitignore" (f'xi sitwazzjonijiet, pub.dev jista' jkun irid jevita li jittrasferixxi fajls li huma meħtieġa f'Git, pereżempju, skripts interni użati waqt l-iżvilupp).
  • Sar xogħol biex titjieb il-prestazzjoni tal-kmand "dart test", li issa ma jeħtieġx testijiet ta 'rikompilazzjoni mill-ġdid wara li tinbidel pubspec jekk in-numru tal-verżjoni ma nbidilx.
  • L-appoġġ għall-kumpilazzjoni fil-mod ta 'kompatibilità ECMAScript 5 twaqqaf (il-bidla tirriżulta f'telf ta' kompatibilità mal-browser IE11).
  • L-utilitajiet individwali stagehand, dartfmt u dart2native ġew iddikjarati skaduti, sostitwiti minn kmandi integrati msejħa permezz tal-utilità tad-dart.
  • Il-mekkaniżmu VM Native Extensions ġie deprecato. Biex issejjaħ kodiċi nattiv mill-kodiċi Dart, huwa rakkomandat li tuża l-Dart FFI (Interface tal-Funzjoni Barranija) il-ġdida.

Fl-istess ħin, ġie ppreżentat rilaxx sinifikanti tal-qafas tal-interface tal-utent Flutter 2.5, li huwa meqjus bħala alternattiva għal React Native u jippermetti, abbażi ta' bażi ta' kodiċi waħda, li jirrilaxxa applikazzjonijiet għall-iOS, Android, Windows, macOS u Linux pjattaformi, kif ukoll joħolqu applikazzjonijiet biex jaħdmu fil-browsers. Qoxra tad-dwana għas-sistema operattiva tal-mikrokernel Fuchsia żviluppata minn Google hija mibnija fuq il-bażi ta 'Flutter.

Il-parti prinċipali tal-kodiċi Flutter hija implimentata fil-lingwa Dart, u l-magna runtime għall-eżekuzzjoni tal-applikazzjonijiet hija miktuba f'C++. Meta tiżviluppa applikazzjonijiet, minbarra l-lingwa nattiva tad-Dart ta 'Flutter, tista' tuża l-interface tal-Funzjoni Barranija Dart biex issejjaħ kodiċi C/C++. Prestazzjoni ta 'eżekuzzjoni għolja tinkiseb billi jiġu kkompilati applikazzjonijiet għal kodiċi nattiv għal pjattaformi fil-mira. F'dan il-każ, il-programm m'għandux għalfejn jiġi kkompilat mill-ġdid wara kull bidla - Dart jipprovdi mod ta 'rikarigu sħun li jippermettilek li tagħmel bidliet għal applikazzjoni li taħdem u immedjatament tevalwa r-riżultat.

Bidliet ewlenin fil-Flutter 2.5:

  • Għamel ottimizzazzjonijiet sinifikanti tal-prestazzjoni. Fuq il-pjattaformi iOS u macOS, ġiet implimentata precompilation ta 'shaders għall-API tal-grafika tal-metall. Effiċjenza mtejba fl-ipproċessar ta 'avvenimenti asinkroniċi. Solvuta kwistjoni b'dewmien meta l-kollettur taż-żibel jirriklama memorja minn immaġini mhux użati (per eżempju, waqt daqq ta 'GIF animat ta' 20 sekonda, in-numru ta 'operazzjonijiet ta' ġbir taż-żibel tnaqqas minn 400 għal 4. Dewmien meta jgħaddu messaġġi bejn Dart u Objettiv- C/Swift tnaqqsu għal 50% (iOS) jew Java/Kotlin (Android) Miżjud appoġġ tal-bini nattiv għal sistemi bbażati fuq iċ-ċippa Apple Silicon.
    Il-lingwa Dart 2.14 u l-qafas Flutter 2.5 disponibbli
  • Għall-pjattaforma Android, ġie stabbilit appoġġ għat-tħaddim ta 'applikazzjonijiet fil-modalità ta' skrin sħiħ. L-implimentazzjoni tal-kunċett tad-disinn "Material You", ippreżentat bħala għażla tad-Disinn tal-Materjal tal-ġenerazzjoni li jmiss, kompliet. Żid stat ġdid MaterialState.scrolledUnder, implimenta wirja dinamika ta 'scroll bars meta r-ridimensjonar, u ppropona interface ġdid għall-wiri ta' banners ta 'notifika.
  • Il-kapaċitajiet tal-plug-in tal-kamera ġew estiżi b'mod sinifikanti, u żiedu għodod għall-kontroll tal-autofocus, l-espożizzjoni, il-flash, iż-żum, it-tnaqqis tal-istorbju u r-riżoluzzjoni.
  • Għodod tal-iżviluppatur (DevTools) ġew imtejba biex jinkludu mod ta 'spezzjoni tal-widget aġġornat, kif ukoll għodod għall-identifikazzjoni tad-dewmien ta' rendering u l-kumpilazzjoni ta 'shader tat-traċċar.
    Il-lingwa Dart 2.14 u l-qafas Flutter 2.5 disponibbli
  • Plugins imtejba għal Visual Studio Code u IntelliJ/Android Studio.

Sors: opennet.ru

Żid kumment