Dili i gjuhës Dart 2.14 dhe kornizës Flutter 2.5 janë të disponueshme.

Kompania Google publikoi version e gjuhës së programimit Dart 2.14, duke vazhduar zhvillimin e degës së ridizajnuar të Dart 2, e cila ndryshon nga versioni origjinal i gjuhës Dart për shkak të përdorimit të tipizimit të fortë statik (tipet mund të nxirren automatikisht, prandaj përcaktimi i tipeve nuk është i detyrueshëm, por tipizimi dinamik nuk përdoret më dhe tjetra tipi i llogaritur fillimisht është i ngjeshur për ndryshore dhe më pas aplikohet një kontroll i saktë i tipit).

Veçoritë e gjuhës Dart:

  • SintaksĂ« e njohur dhe e thjeshtĂ« pĂ«r t'u mĂ«suar, e natyrshme pĂ«r programuesit nĂ« JavaScript, C dhe Java.
  • Sigurimi i njĂ« fillimi tĂ« shpejtĂ« dhe performance tĂ« lartĂ« pĂ«r tĂ« gjitha shfletuesit modernĂ« dhe llojet e ndryshme tĂ« mjediseve, nga pajisjet portative deri te ato tĂ« fuqishme. serverĂ«sh.
  • MundĂ«sia pĂ«r tĂ« pĂ«rcaktuar klasa dhe interface, duke lejuar pĂ«rdorimin e inkapsulimit dhe ripĂ«rdorimin e metodave dhe tĂ« dhĂ«nave ekzistuese.
  • ShĂ«nimi i tipave lejon thjeshtimin e procesit tĂ« debugimit dhe identifikimit tĂ« gabimeve, e bĂ«n kodin mĂ« tĂ« qartĂ« dhe mĂ« tĂ« lexueshĂ«m, e lehtĂ«son pĂ«rmirĂ«simin dhe analizĂ«n nga zhvilluesit e jashtĂ«m.
  • Mes tipeve tĂ« mbĂ«shtetur janĂ«: llojet e ndryshme tĂ« hash-eve, masivave dhe listave, radhĂ«t, llojet numerike dhe string, tipet pĂ«r pĂ«rcaktimin e datĂ«s dhe orĂ«s, shprehjet e rregullta (RegExp). Ka mundĂ«sinĂ« e krijimit tĂ« tipave tĂ« vet.
  • PĂ«r organizimin e ekzekutimit paralel, propozohet pĂ«rdorimi i klasave me atributin isolate, kodi i tĂ« cilĂ«ve ekzekutohet plotĂ«sisht nĂ« njĂ« hapĂ«sirĂ« tĂ« izoluar nĂ« njĂ« zonĂ« tĂ« veçantĂ« tĂ« memories, duke bashkĂ«punuar me procesin kryesor nĂ«pĂ«rmjet dĂ«rgimit tĂ« mesazheve.
  • MbĂ«shtetje pĂ«r pĂ«rdorimin e bibliotekave qĂ« thjeshtojnĂ« mbĂ«shtetje dhe debugimin e projekteve tĂ« mĂ«dha web. Implementimet e jashtme tĂ« funksioneve mund tĂ« lidhen si biblioteka tĂ« ndara. Aplikacionet mund tĂ« ndahen nĂ« pjesĂ« dhe t'i besohet zhvillimi i secilĂ«s pjesĂ« njĂ« ekipi tĂ« veçantĂ« programuesish.
  • NjĂ« grup mjetesh tĂ« gatshme pĂ«r mbĂ«shtetje tĂ« zhvillimit nĂ« gjuhĂ«n Dart, duke pĂ«rfshirĂ« implementimin e mjeteve tĂ« zhvillimit dinamik dhe debugimit me korrigjimin e kodit nĂ« flukso («edit-and-continue»).
  • PĂ«r lehtĂ«simin e zhvillimit nĂ« gjuhĂ«n Dart, ofrohet SDK, menaxheri i paketave pub, analizatori statik i kodit dart_analyzer, njĂ« grup bibliotekash, ambienti i integruar i zhvillimit DartPad dhe shtesat me mbĂ«shtetje pĂ«r Dart pĂ«r IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 dhe Vim.
  • Paketa shtesĂ« me biblioteka dhe mjete shpĂ«rndahen pĂ«rmes depot pub, e cila pĂ«rmban mĂ« shumĂ« se 20,000 paketa.

Ndryshimet kryesore në versionin Dart 2.14:

  • ËshtĂ« shtuar njĂ« operator i ri i lĂ«vizjes sĂ« trefishtĂ« (>>>) qĂ«, pĂ«r dallim nga operatori (>>), kryen njĂ« lĂ«vizje logjike pa pasur parasysh bitin nĂ«nshkues (lĂ«vizja bĂ«het pa ndarjen e numrave nĂ« pozitive dhe negative).
  • ËshtĂ« hequr kufizimi mbi argumentet e tipit, qĂ« nuk lejonin pĂ«rdorimin e tipeve tĂ« pĂ«rgjithshĂ«m si argumente me tip. PĂ«r shembull, tani mund tĂ« pĂ«rcaktoni: late List<T Function(T)> idFunctions; var callback = [(T value) => value]; late S Function<S extends T Function(T)>(S) f;
  • Lejohet pĂ«rcaktimi i argumenteve me tipe nĂ« anotacionet, si @Deprecated. PĂ«r shembull, tani mund tĂ« pĂ«rcaktoni: @TypeHelper(42, "The meaning")
  • NĂ« bibliotekĂ«n standarde (core) nĂ« klasĂ«n Object janĂ« shtuar metodat statike hash, hashAll dhe hashAllUnordered. NĂ« klasĂ«n DateTime Ă«shtĂ« pĂ«rmirĂ«suar trajtimi i kohĂ«s lokale kur kaloni orĂ«t midis kohĂ«s verore dhe dimĂ«rore qĂ« s'Ă«shtĂ« njĂ« orĂ« e plotĂ« (pĂ«r shembull, nĂ« Australi pĂ«rdoret njĂ« ndryshim prej 30 minutash). NĂ« paketĂ«n ffi Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r mekanizmin e alokimit tĂ« memories nĂ« arenĂ«, e cila liron automatikisht burimet. NĂ« paketĂ«n ffigen Ă«shtĂ« shtuar mundĂ«sia e gjenerimit tĂ« pĂ«rcaktimeve typedef tĂ« tipeve Dart nga gjuha C.
  • 250 paketet mĂ« tĂ« njohura nga repository pub.dev dhe 94% e tĂ« dhĂ«nave nĂ« top-1000 janĂ« pĂ«rkthyer pĂ«r tĂ« pĂ«rdorur modin e sigurt tĂ« pĂ«rdorimit tĂ« vlerĂ«s "Null" (null safety), i cili ndihmon nĂ« shmangien e dĂ«shtimeve qĂ« shkaktohen nga pĂ«rpjekjet pĂ«r tĂ« pĂ«rdorur variabla qĂ« nuk janĂ« tĂ« definuar dhe qĂ« janĂ« caktuar nĂ« "Null". Ky mod paramendon qĂ« variablat nuk mund tĂ« kenĂ« vlera tĂ« pandĂ«rshimta, nĂ«se nuk u caktohet gjithmonĂ« njĂ« vlerĂ« null. NĂ« kĂ«tĂ« mod janĂ« tĂ« pĂ«rllogaritura me kujdes tipet e variablave, gjĂ« qĂ« i lejon kompilatorit tĂ« zbatojĂ« optimizime tĂ« tjera. PĂ«rputhshmĂ«ria e tipeve kontrollohet nĂ« fazĂ«n e kompilimit, pĂ«r shembull, nĂ«se pĂ«rpiqeni tĂ« caktosh njĂ« vlerĂ« "Null" njĂ« variabli me tipin qĂ« nuk pĂ«rfshin njĂ« gjendje tĂ« pandĂ«rshimtĂ«, si "int", do tĂ« gjenerohet njĂ« gabim.
  • JanĂ« propozuar grupe tĂ« unifikuara rregullash pĂ«r analizuesin e kodit (linter), i cili siguruan mbĂ«shtetje tĂ« pĂ«rbashkĂ«t pĂ«r verifikimin e ndjekjes sĂ« rekomandimeve pĂ«r stilin e formĂ«simit tĂ« kodit si pĂ«r Dart ashtu edhe pĂ«r framework-un Flutter. PĂ«r arsye historike, rregullat e formĂ«simit tĂ« kodit pĂ«r Flutter dhe Dart ndryshonin, pĂ«r mĂ« tepĂ«r, pĂ«r Dart ishin nĂ« pĂ«rdorim dy grupe rregullash - ato pedante nga Google dhe rregullat nga komuniteti i zhvilluesve tĂ« Dart. NĂ« Dart 2.14 Ă«shtĂ« paraqitur njĂ« grup i ri i pĂ«rbashkĂ«t rregullash pĂ«r linter, i cili Ă«shtĂ« vendosur tĂ« pĂ«rdoret nga default nĂ« projektet e reja Dart dhe nĂ« Flutter SDK. Grupi pĂ«rfshin rregulla bazĂ« (paketi lints/core.yaml), rregulla shtesĂ« tĂ« rekomanduara (lints/recommended.yaml) dhe rekomandime specifike pĂ«r Flutter (flutter_lints/flutter.yaml). PĂ«rdoruesve tĂ« rregullave pedante u rekomandohet tĂ« kalojnĂ« nĂ« pĂ«rdorimin e stilit tĂ« ri tĂ« kodimit, tĂ« bazuar nĂ« rekomandimet nga dokumentacioni i Dart.
  • NĂ« formatter janĂ« bĂ«rĂ« optimizime nĂ« formatimin e bllokĂ«ve tĂ« kodit kaskad, qĂ« lejojnĂ« tĂ« rritet ndjeshĂ«m performanca e formatimit dhe tĂ« shmangen keqkuptimet lidhur me pĂ«rkatĂ«sinĂ« e elementeve tĂ« shprehjes. PĂ«r shembull, thirrja "..doIt" nĂ« shprehjen "var result = errorState ? foo : bad..doIt()" i pĂ«rket jo pjesĂ«s kushtetuese tĂ« bllokut "bad" por tĂ«rĂ« shprehjes, prandaj nĂ« formatim tani ndahet: var result = errorState ? foo : bad ..doIt();
  • NĂ« SDK Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r procesorĂ«t Apple M1 (Silicon), duke pĂ«rfshirĂ« si mundĂ«sinĂ« e funksionimit tĂ« Dart VM, utilitarĂ«ve dhe komponentĂ«ve tĂ« SDK nĂ« sisteme me procesor Apple Silicon, ashtu edhe mbĂ«shtetje pĂ«r kompilimin e skedarĂ«ve ekzekutivĂ« pĂ«r kĂ«to çipa.
  • EkipĂ«s "dart pub" i Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r njĂ« skedĂ« ndihmĂ«se tĂ« re " .pubignore", e cila lejon pĂ«rcaktimin e njĂ« liste skedarĂ«sh qĂ« do tĂ« injorohen gjatĂ« publikimit tĂ« paketĂ«s nĂ« repositorin pub.dev. Konfigurimet e pĂ«rcaktuara nuk pĂ«rputhen me listĂ«n e injorimit " .gitignore" (nĂ« disa raste, nĂ« pub.dev kĂ«rkohet qĂ« tĂ« mos dĂ«rgohen skedarĂ« qĂ« nevojitet nĂ« Git, siç janĂ« skedarĂ«t e brendshĂ«m qĂ« pĂ«rdoren gjatĂ« zhvillimit).
  • PunĂ«t pĂ«r pĂ«rmirĂ«simin e performancĂ«s sĂ« ekipit "dart test" janĂ« realizuar, i cili tani nuk kĂ«rkon ri-kompilim tĂ« testeve pas ndryshimit tĂ« pubspec, nĂ«se numri i versionit nuk ka ndryshuar.
  • MbĂ«shtetja pĂ«r kompilimin nĂ« modalitetin e kompatibilitetit me ECMAScript 5 Ă«shtĂ« ndĂ«rprerĂ« (ndryshimi do tĂ« çojĂ« nĂ« humbjen e kompatibilitetit me shfletuesin IE11).
  • Disa utilitete si stagehand, dartfmt dhe dart2native janĂ« shpallur si tĂ« vjetra, dhe janĂ« zĂ«vendĂ«suar me komanda tĂ« ndĂ«rtuara, tĂ« thirrura pĂ«rmes utilitetit dart.
  • Mekanizmi i Zgjerimeve Native tĂ« VM-sĂ« Ă«shtĂ« shpallur si i vjetruar. PĂ«r thirrjen e kodit tĂ« native nga kodi nĂ« gjuhĂ«n Dart rekomandohet pĂ«rdorimi i ndĂ«rfaqes sĂ« re Dart FFI (Foreign Function Interface).

Një lëshim i rëndësishëm i kornizës për ndërtimin e ndërfaqeve të përdoruesit Flutter 2.5 është prezantuar, i cili konsiderohet si një alternativë për React Native dhe lejon që, përmes një bazë kodi të vetme, të lëshohen aplikacione për platformat iOS, Android, Windows, macOS dhe Linux, si dhe të krijohen aplikacione për t'u drejtuar në shfletues. Flutter ofron një ndërfaqe përdoruesi të ndërtuar në sistemin mikro-kernel Fuchsia, që është në zhvillim nga Google.

Pjesa kryesore e kodit tĂ« Flutter Ă«shtĂ« realizuar nĂ« gjuhĂ«n Dart, ndĂ«rsa motori runtime pĂ«r ekzekutimin e aplikacioneve Ă«shtĂ« shkruar nĂ« C++. GjatĂ« zhvillimit tĂ« aplikacioneve, pĂ«rveç gjuhĂ«s natyrale pĂ«r Flutter, Dart, mund tĂ« pĂ«rdoret ndĂ«rfaqja Dart Foreign Function pĂ«r tĂ« calls kodin nĂ« C/C++. Performanca e lartĂ« e ekzekutimit arrihet falĂ« kompilimit tĂ« aplikacioneve nĂ« kodin machine pĂ«r platformat e synuara. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, programi nuk ka nevojĂ« tĂ« riprogramohet pas çdo ndryshimi — Dart ofron modalitetin e rifreskimit tĂ« nxehtĂ«, i cili lejon tĂ« bĂ«hen ndryshime nĂ« aplikacionin qĂ« Ă«shtĂ« duke punuar dhe menjĂ«herĂ« tĂ« vlerĂ«sohet rezultati.

Ndryshimet kryesore në Flutter 2.5:

  • JanĂ« bĂ«rĂ« optimizime tĂ« mĂ«dha tĂ« performancĂ«s. NĂ« platformat iOS dhe macOS, Ă«shtĂ« realizuar parakompozimi i shaderave pĂ«r API-nĂ« grafike Metal. Eficienca nĂ« pĂ«rpunimin e ngjarjeve asinkrone Ă«shtĂ« pĂ«rmirĂ«suar. Problemi me vonesat gjatĂ« lirimit tĂ« memorie nga mbledhĂ«si i plehrave pĂ«r imazhet e papĂ«rdorura Ă«shtĂ« zgjidhur (p.sh., gjatĂ« riprodhimit tĂ« njĂ« GIF-i tĂ« animuar 20-sekondĂ«sh, numri i aktiviteteve tĂ« mbledhjes sĂ« plehrave Ă«shtĂ« reduktuar nga 400 nĂ« 4. Vonisat gjatĂ« transferimit tĂ« mesazheve midis Dart dhe Objective-C/Swift (iOS) ose Java/Kotlin (Android) janĂ« reduktuar deri nĂ« 50%. ËshtĂ« shtuar mbĂ«shtetje pĂ«r ndĂ«rtimin native pĂ«r sistemet e bazuara nĂ« çipin Apple Silicon.
    Dili i gjuhës Dart 2.14 dhe kornizës Flutter 2.5 janë të disponueshme.
  • PĂ«r platformĂ«n Android, Ă«shtĂ« vendosur mbĂ«shtetje pĂ«r funksionimin e aplikacioneve nĂ« ekran tĂ« plotĂ«. ËshtĂ« vazhduar realizimi i konceptit tĂ« dizajnit "Material You", i cili paraqitet si njĂ« variant i Material Design-it tĂ« brezit tĂ« ardhshĂ«m. ËshtĂ« shtuar njĂ« gjendje e re MaterialState.scrolledUnder, Ă«shtĂ« realizuar shfaqja dinamike e shiritave tĂ« rrotullimit gjatĂ« ndryshimit tĂ« madhĂ«sisĂ« dhe Ă«shtĂ« ofruar njĂ« ndĂ«rfaqe e re pĂ«r shfaqjen e banderolave me njoftime.
  • JanĂ« zgjeruar ndjeshĂ«m mundĂ«sitĂ« e plugin-it pĂ«r punĂ« me kamerĂ«n, ku janĂ« shtuar mjete pĂ«r menaxhimin e autofokuseve, ekspozitĂ«s, flash-it, zmadhen, zbutjen e zhurmave dhe rezolutĂ«n.
  • JanĂ« pĂ«rmirĂ«suar mjetet pĂ«r zhvilluesit (DevTools), ku ka lindur njĂ« mod i rishikuar pĂ«r inspektimin e widget-eve, si dhe janĂ« ofruar mjete pĂ«r identifikimin e vonesave gjatĂ« pĂ«rfaqĂ«simit dhe pĂ«r ndjekjen e kompilimit tĂ« shaders.
    Dili i gjuhës Dart 2.14 dhe kornizës Flutter 2.5 janë të disponueshme.
  • JanĂ« pĂ«rmirĂ«suar plugin-et pĂ«r Visual Studio Code dhe IntelliJ/Android Studio.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster