Zimanê Dart 2.14 û çarçoveya Flutter 2.5 heye

Google serbestberdana zimanê bernamenûsê Dart 2.14 weşand, ku pêşveçûna şaxek ji nû ve dîzaynkirî ya radîkal a Dart 2 didomîne, ku ji guhertoya orîjînal a zimanê Dart bi karanîna tîpên statîk ên bihêz cuda dibe (cûreyên xwe bixweber têne destnîşan kirin, lewra diyarkirina cûreyan ne hewce ye, lê tîpkirina dînamîk êdî nayê bikar anîn û di destpêkê de tê hesibandin celeb ji guhêrbar re tê destnîşankirin û dûv re kontrolkirina tîpa hişk tê sepandin).

Taybetmendiyên zimanê Dart:

  • Hevoksaziya naskirî û fêrbûna hêsan, ji bo bernamenûsên JavaScript, C û Java xwezayî ye.
  • Piştrastkirina destpêkirina bilez û performansa bilind ji bo hemî gerokên webê yên nûjen û cûrbecûr hawîrdoran, ji cîhazên portable heya serverên hêzdar.
  • Kapasîteya danasîna çîn û navgînên ku rê didin vegirtin û ji nû ve karanîna rêbaz û daneyên heyî.
  • Diyarkirina cûreyan rêkûpêkkirin û tespîtkirina xeletiyan hêsantir dike, kodê zelaltir û xwendîtir dike, û guherandin û analîza wê ji hêla pêşdebirên partiya sêyemîn ve hêsan dike.
  • Cûreyên piştgirî ev in: cûrbecûr heş, rêz û navnîşan, rêz, celebên hejmarî û rêzikan, celebên ji bo destnîşankirina tarîx û demê, vegotinên birêkûpêk (RegExp). Ew gengaz e ku hûn celebên xwe çêbikin.
  • Ji bo organîzekirina darvekirina paralel, tê pêşniyar kirin ku çînên bi taybetmendiya veqetandinê bikar bînin, koda ku bi tevahî li cîhê veqetandî li cîhek bîranînek cihêreng tê darve kirin, bi şandina peyaman bi pêvajoya sereke re têkilî daynin.
  • Piştgiriya ji bo karanîna pirtûkxaneyên ku piştgirî û xeletkirina projeyên mezin ên malperê hêsan dikin. Pêkanîna fonksiyonên partiya sêyem dikare di forma pirtûkxaneyên hevpar de bêne nav kirin. Serlêdan dikarin li beşan bêne dabeş kirin û pêşkeftina her beşê bi tîmek bernamenûsan ve were veqetandin.
  • Komek amûrên hazir ên ku piştgirî didin pêşkeftina bi zimanê Dart, di nav de pêkanîna pêşkeftina dînamîkî û amûrên verastkirinê yên bi rastkirina kodê li ser piyan ("biguherîne-û-dewam bike").
  • Ji bo hêsankirina pêşkeftina bi zimanê Dart, ew bi SDK, pubek rêvebirê pakêtê, analîzkerek koda statîk dart_analyzer, komek pirtûkxane, jîngehek pêşkeftinê ya yekbûyî DartPad û pêvekên çalak-Dart ji bo IntelliJ IDEA, WebStorm, Emacs, Sublime Text tê. 2 û Vim.
  • Pakêtên din ên bi pirtûkxane û karûbaran re bi navgîniya depoya pubê, ku zêdetirî 20 hezar pakêt hene, têne belav kirin.

Guhertinên sereke di berdana Dart 2.14 de:

  • Operatorek nû ya sêalî (>>>) hate zêdekirin, ku, berevajî operatora ">>", ne hejmarî, lê veguheztinek mentiqî pêk tîne ku bêyî hesabkirina bit nîşanê kar dike (guheztin bêyî dabeşkirin tê kirin. hejmarên erênî û neyînî).
  • Qedexekirina li ser argumanên tîpan ku rê nade ku celebên fonksiyonên gelemperî wekî argumanek tîp werin bikar anîn rakirin. Mînakî, niha hûn dikarin diyar bikin: Lîsteya dereng (T)>idFunctions; var bangback = [ (T nirx) => nirx]; Dereng S Fonksiyon (T)>(S) f;
  • Destûrê bide diyarkirina argûmanên bi cureyên di şîroveyên wek @Deprecated. Mînakî, hûn niha dikarin diyar bikin: @TypeHelper (42, "Wateya")
  • Rêbazên statîk hash, hashAll û hashAllUnordered di çîna Object de li pirtûkxaneya standard (bingeh) hatine zêdekirin. Dersa DateTime dema guheztina demjimêrên di navbera dema havîn û zivistanê de ku bi yek saetê nayê dabeş kirin (mînakek, li Avusturalya 30 hûrdem tê bikar anîn) guheztina demjimêrên herêmî çêtir kiriye. Pakêta ffi ji bo mekanîzmaya veqetandina bîra arene, ku bixweber çavkaniyan berdide, piştgirî zêde kiriye. Pakêta ffigen şiyana çêkirina pênaseyên cureyên Dart ji zimanê C zêde kiriye.
  • 250 pakêtên herî populer ên ji depoya pub.dev û 94% ji top-1000-ê hatine veguheztin bo karanîna moda "ewlehiya null", ku dê ji têkçûnên ku ji ber hewildanên karanîna guhêrbarên ku nirxa wan ne diyar e û wekî "Null" hatî danîn dûr bixe. ”” Mode tê vê wateyê ku guhêrbar nikarin xwedî nirxên null bin heya ku ew bi eşkere nirxa null neyên destnîşankirin. Mode bi hişkî cûreyên guhêrbar rêz digire, ku destûrê dide berhevkar ku xweşbîniyên zêde bicîh bîne. Lihevhatina tîpê di dema berhevkirinê de tê kontrol kirin, mînakî, heke hûn hewl bidin ku nirxa "Null" li guhêrbarek bi celebek ku nayê wateya rewşa nenaskirî, wek "int" veqetînin, dê xeletiyek were xuyang kirin.
  • Komên yekbûyî yên qaîdeyên ji bo analyzera kodê (linter) têne pêşniyar kirin, ku ji bo kontrolkirina lihevhatina rêwerzên şêwaza kodê ji bo Dart û çarçoveya Flutter piştgirîya hevdem peyda dike. Ji ber sedemên dîrokî, qaîdeyên kodkirinê yên Flutter û Dart cûda bûn, ji bilî vê, ji bo Dart du rêzikên qaîdeyan di kar de bûn - yên pedantîk ji Google û qaîdeyên ji civata pêşdebirên Dart. Dart 2.14 komek qaîdeyên hevpar ên nû ji bo linter destnîşan dike, ku biryar e ku ji hêla xwerû ve di projeyên nû yên Dart û di Flutter SDK de were bikar anîn. Set qaîdeyên bingehîn (pakêta lints/core.yaml), qaîdeyên zêde yên pêşniyarkirî (lints/recommended.yaml), û pêşniyarên taybetî yên Flutter (flutter_lints/flutter.yaml) vedihewîne. Bikarhênerên qaîdeyên pedantîk têne şîret kirin ku li ser bingeha pêşnîyarên ji belgeya Dart-ê veguherînin şêwazek kodkirina nû bikar bînin.
  • Di formatterê de, optimîzasyon ji bo formatkirina blokên kodê yên kaskadê hatine çêkirin, ku dikare bi girîngî performansa formatkirinê baştir bike û ji şirovekirina nezelal a xwedîtiya hêmanên derbirînê dûr bixe. Mînakî, gazîkirina "..doIt" di îfadeya "var encam = errorState ? foo : bad..doIt()" ne beşa şertî ya bloka "xirab" e, lê bi tevahî îfadeyê re têkildar e, ji ber vê yekê dema ku format dike êdî ew ji hev vediqete: var encam = errorState ? foo : xerab ..doIt();
  • Piştgiriya ji bo pêvajoyên Apple M1 (Silicon) li SDK-ê hate zêdekirin, ku tê vê wateyê ku hem kapasîteya xebitandina Dart VM, karûbar û hêmanên SDK-ê li ser pergalên bi pêvajoyek Apple Silicon re, hem jî piştgirî ji bo berhevkirina pelên îcrakar ji bo van çîpên.
  • Fermana "dart pub" piştgirî ji dosyaya karûbarê nû ".pubignore" re zêde kiriye, ku destûrê dide te ku hûn navnîşek pelên ku dema pakêtek li depoya pub.dev biweşînin diyar bikin. Van mîhengan bi navnîşa paşguhkirina ".gitignore" re têkildar nabin (di hin rewşan de, dibe ku pub.dev bixwaze ji veguheztina pelên ku di Git-ê de hewce ne, ji bo nimûne, nivîsarên hundurîn ên ku di dema pêşkeftinê de têne bikar anîn) dûr bixe.
  • Xebat ji bo baştirkirina performansa fermana "testa dart" hatîye kirin, ku naha piştî guheztina pubspecê heke hejmara guhertoyê nehatibe guhertin, ceribandinên ji nû ve berhevkirina hewce nake.
  • Piştgiriya berhevkirinê di moda lihevhatina ECMAScript 5 de hate sekinandin (guhertin dê bibe sedema windabûna lihevhatina bi geroka IE11 re).
  • Karûbarên takekesî stagehand, dartfmt û dart2native hatine qewirandin, li şûna wan fermanên çêkirî yên ku bi navgîniya dart ve têne gazî kirin hatine veguheztin.
  • Mekanîzmaya Berfirehkirina VM Native hate betal kirin. Ji bo ku hûn koda xwemalî ji koda Dart re bang bikin, tê pêşniyar kirin ku Dart FFI-ya nû (Navenda Fonksiyona Biyanî) bikar bînin.

Di heman demê de, serbestberdanek girîng a çarçoveya navbeynkariya bikarhêner Flutter 2.5 hate pêşkêş kirin, ku wekî alternatîfek ji React Native re tê hesibandin û dihêle, li ser bingeha yek kodê, serîlêdanên ji bo iOS, Android, Windows, macOS û Linux serbest berde. platforman, û her weha serîlêdanan biafirînin ku di gerokan de bixebitin. Ji bo pergala xebitandinê ya mîkrokernelê Fuchsia ku ji hêla Google ve hatî pêşve xistin şêlek xwerû li ser bingeha Flutter-ê hatî çêkirin.

Beşa sereke ya koda Flutter bi zimanê Dart ve hatî bicîh kirin, û motora xebitandinê ya ji bo pêkanîna serîlêdanan bi C ++ hatî nivîsandin. Dema ku serîlêdanan pêşve dibin, ji bilî zimanê Dart-ê yê Flutter-ê, hûn dikarin pêwendiya Karê Derve ya Dart bikar bînin da ku koda C/C++ bang bikin. Performansa darvekirinê ya bilind bi berhevkirina serîlêdanan li koda xwemalî ya ji bo platformên armanc têne bidestxistin. Di vê rewşê de, ne hewce ye ku bername piştî her guheztinê ji nû ve were berhev kirin - Dart moda nûvekirina germ peyda dike ku dihêle hûn guheztinan li serîlêdanek xebitandinê bikin û tavilê encamê binirxînin.

Guhertinên sereke di Flutter 2.5 de:

  • Optimîzasyonên performansa girîng çêkir. Li ser platformên iOS û macOS-ê, ji bo API-ya grafîkên Metal-ê pêş-berhevkirina shaderan hatîye bicîh kirin. Berbiçavkirina çêtirîn pêvajoyên bûyerên asynchronous. Pirsgirêka derengbûnê çareser kir dema ku berhevkarê çopê bîranînê ji wêneyên ku nehatine bikar anîn vedigerîne (mînak, di dema lêdana GIFek anîmasyonek 20 çirkî de, hejmara operasyonên berhevkirina çopê ji 400-an daket 4. Dereng di dema derbaskirina peyaman de di navbera Dart û Objective- C/Swift ji %50 (iOS) an Java/Kotlin (Android) hate kêm kirin.
    Zimanê Dart 2.14 û çarçoveya Flutter 2.5 heye
  • Ji bo platforma Android-ê, piştgirî ji bo xebitandina sepanan di moda ekrana tevahî de hate saz kirin. Pêkanîna konsepta sêwirana "Materyal Tu", ku wekî vebijarkek sêwirana materyalê ya nifşê din hate pêşkêş kirin, berdewam kir. Dewletek nû MaterialState.scrolledUnder lê zêde kir, dema ku mezinahî diguhezîne pêşandana dînamîkî ya barikên gerokê pêk anî, û ji bo nîşandana pankartên ragihandinê navbeynek nû pêşniyar kir.
  • Kapasîteyên pêveka kamerayê bi girîngî hatine berfireh kirin, amûrên ji bo kontrolkirina otofokus, xuyangkirin, flash, zoom, kêmkirina deng û çareseriyê zêde kirine.
  • Amûrên pêşdebiran (DevTools) hatine baştir kirin da ku moda vekolîna widgetê ya nûvekirî, û her weha amûrên ji bo tespîtkirina derengiyên vegotinê û şopandina berhevkirina şaderê vedihewîne.
    Zimanê Dart 2.14 û çarçoveya Flutter 2.5 heye
  • Pêvekên çêtirkirî yên ji bo Visual Studio Code û IntelliJ/Android Studio.

Source: opennet.ru

Add a comment