Puo ea lenaneo la Dart 2.15 le moralo oa Flutter 2.8 o teng

Google e phatlalalitse tokollo ea puo ea lenaneo la Dart 2.15, e tsoelang pele nts'etsopele ea lekala le hlophisitsoeng bocha la Dart 2, le fapaneng le mofuta oa pele oa puo ea Dart ts'ebelisong ea mofuta o matla oa ho thaepa (mefuta e ka hlalosoa ka bo eona, ka hona mefuta ha e hlokahale, empa ho thaepa ka matla ha ho sa sebelisoa 'me palo ea pele ea mofuta o abeloa ho feto-fetoha le tlhahlobo e tiileng ea mofuta o sebelisoang hamorao).

Likarolo tsa puo ea Dart:

  • Syntax e tsebahalang ebile e bonolo ho ithuta, ea tlhaho bakeng sa baetsi ba mananeo ba JavaScript, C le Java.
  • Ho netefatsa ho qala ka potlako le ts'ebetso e phahameng bakeng sa libatli tsohle tsa sejoale-joale tsa marang-rang le mefuta e fapaneng ea tikoloho, ho tloha ho lisebelisoa tse nkehang ho isa ho li-server tse matla.
  • Bokhoni ba ho hlalosa lihlopha le li-interfaces tse lumellang ho kenyelletsa le ho sebelisa mekhoa e teng le data hape.
  • Ho hlakisa mefuta ho etsa hore ho be bonolo ho lokisa liphoso le ho tseba liphoso, ho etsa hore khoutu e hlake haholoanyane, e balehe haholoanyane, 'me e nolofatsa tokiso le tlhahlobo ea eona ke bahlahisi ba mokha oa boraro.
  • Mefuta e tšehetsoeng e kenyelletsa: mefuta e fapaneng ea li-hashes, lihlopha le manane, mela, mefuta ea linomoro le likhoele, mefuta ea ho khetholla letsatsi le nako, lipolelo tse tloaelehileng (RegExp). Hoa khoneha ho iketsetsa mefuta ea hau.
  • Ho hlophisa ts'ebetso e ts'oanang, ho khothaletsoa ho sebelisa litlelase tse nang le tšobotsi e ikhethileng, khoutu ea eona e phethisoa ka ho felletseng sebakeng se ka thoko sebakeng se arohaneng sa mohopolo, ho sebelisana le ts'ebetso ea mantlha ka ho romella melaetsa.
  • Ts'ehetso ea ts'ebeliso ea lilaebrari tse nolofatsang ts'ehetso le ho lokisa liphoso tsa merero e meholo ea webo. Ts'ebetsong ea mekhatlo ea boraro ea mesebetsi e ka kenyelletsoa ka mokhoa oa lilaebrari tse arolelanoang. Likopo li ka aroloa ka likarolo ebe li beha nts'etsopele ea karolo ka 'ngoe ho sehlopha se ikemetseng sa baetsi ba mananeo.
  • Sehlopha sa lisebelisoa tse lokiselitsoeng ho ts'ehetsa nts'etsopele ea puo ea Dart, ho kenyeletsoa ts'ebetsong ea ntlafatso e matla le lisebelisoa tsa ho lokisa liphoso ka tokiso ea khoutu hang-hang ("edit-and-continue").
  • Ho nolofatsa nts'etsopele ea puo ea Dart, e tla le SDK, pub ea mookameli oa sephutheloana, static code analyzer dart_analyzer, sete ea lilaebrari, tikoloho e kopaneng ea nts'etsopele ea DartPad le li-plugins tse nolofalitsoeng ke Dart tsa IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 le Vim.
  • Liphutheloana tse ling tse nang le lilaebrari le lits'ebeletso li ajoa sebakeng sa polokelo ea litaba, se nang le liphutheloana tse ka bang likete tse 22.

Liphetoho tse kholo tokollong ea Dart 2.15:

  • E fana ka lisebelisoa tsa ho etsa mesebetsi e bapileng ka potlako ka ho itšehla thajana. Lits'ebetsong tse nang le mefuta e mengata, nako ea ho sebetsa ea Dart ka mokhoa o ikhethileng e tsamaisa khoutu ea ts'ebeliso ho mantlha e le 'ngoe ea CPU mme e sebelisa li-cores tse ling ho etsa mesebetsi ea sistimi joalo ka Asynchronous I/O, ho ngolla lifaele, kapa ho letsetsa marang-rang. Bakeng sa lits'ebetso tse hlokang ho sebetsa ka mokhoa o ts'oanang, ho etsa mohlala, ho fana ka animation ka har'a sehokelo, hoa khonahala ho qala li-block tsa khoutu (ho itšehla thajana), tse arohaneng le tse ling, 'me li phethiloe ho li-cores tse ling tsa CPU ka nako e le ngoe le khoele ea mantlha ea kopo. . Ho sireletsa khahlanong le liphoso tse hlahang ha ho etsoa ka nako e le 'ngoe ea khoutu e sebetsang ka sete e tšoanang ea data, ho arolelana lintho tse ka fetoloang ka har'a li-blocks tse fapaneng ho thibetsoe,' me mohlala oa ho fetisa molaetsa o sebelisoa bakeng sa ho sebelisana pakeng tsa bahlokomeli.

    Dart 2.15 e hlahisa mohopolo o mocha - lihlopha tse arohaneng tsa li-block (lihlopha tse ikhethileng), tse u lumellang hore u hlophise phihlello e arolelanoang ho meaho e fapaneng ea data ea ka hare ka li-blocks tse ka thoko tseo e leng karolo ea sehlopha se le seng, se ka fokotsang haholo holimo ha u sebelisana pakeng tsa batšoasi ba sehlopha. . Ka mohlala, ho qala thibelo e eketsehileng ea ho itšehla thajana sehlopheng se seng se ntse se le teng ke makhetlo a 100 ka potlako 'me ho hloka 10-100 makhetlo a fokolang ho hopola ho feta ho qala thibelo e arohaneng ea ho itšehla thajana, ka lebaka la ho felisoa ha tlhokahalo ea ho qala mekhoa ea data ea lenaneo.

    Ho sa tsotellehe 'nete ea hore ho itšehla thajana diboloko ka sehlopha sa ntse e thibela ho kopanela ho kena lintho tse ka feto-fetoha, lihlopha li sebelisa qubu ea memori e arolelanoang, e ka potlakisang ho fetisoa ha lintho ho tloha bolokong bo bong ho ea ho bo bong ntle le tlhokahalo ea ho etsa ts'ebetso ea kopi e matla haholo. Phetolelo e ncha e boetse e u lumella ho fetisa sephetho sa sebatli ha u letsetsa Isolate.exit() ho fetisetsa data ho motsoali a le mong block ntle le ho kopitsa ts'ebetso. Ho feta moo, mokhoa oa ho fetisa melaetsa o ntlafalitsoe - melaetsa e menyenyane le e mahareng e se e sebetsoa ka makhetlo a ka bang 8 ka potlako. Lintho tse ka fetisoang lipakeng tsa libaka tse ikhethileng ka ho sebelisa mohala oa SendPort.send() li kenyelletsa mefuta e meng ea ts'ebetso, ho koaloa, le ho sala morao.

  • Ho lisebelisoa tsa ho theha litsupa bakeng sa mesebetsi ea motho ka mong linthong tse ling (ho tabola), lithibelo tsa ho theha litsupa tse ts'oanang ho khoutu ea sehahi li tlositsoe, tse ka thusang ha ho aha li-interfaces tse thehiloeng ho laeborari ea Flutter. Mohlala, ho theha widget ea Column e kenyelletsang li-widget tse ngata tsa Sengoloa, o ka letsetsa ".map()" mme oa fetisetsa lisupa ho Text.mohahi e mocha oa ntho ea Sengoloa: sehlopha sa FruitWidget se atolosa StatelessWidget { @override Widget build(BuildContext context) {khutlisa Kholomo( bana: ['Apple', 'Orange'].mapa(Text.new).toList()); }}
  • Menyetla e amanang le ts'ebeliso ea litsupa tsa ts'ebetso e ekelitsoe. E kenyellelitse bokhoni ba ho sebelisa mekhoa e tloaelehileng le litsupa tsa ts'ebetso ho theha mokhoa o sa tloaelehang le pointer: T id (T boleng) => boleng; var intId = id ; // e lumelletsoe ho mofuta oa 2.15 sebakeng sa "int Function(int) intId = id;" const fo = id; // sesupo sa ho sebetsa id. const c1 = fo ;
  • Laebrari ea dart:core e ntlafalitse tšehetso ea li-ennum, mohlala, joale u ka ntša boleng ba khoele ho tsoa ho boleng bo bong le bo bong ba enum u sebelisa mokhoa oa ".name", khetha boleng ka mabitso, kapa u bapise lipara tsa boleng: enum MyEnum {one , tse peli, tse tharo } ntho e ka sehloohong () {print(MyEnum.one.name); // "e le 'ngoe" e tla hatisoa. hatisa(MyEnum.values.byName('peli') == MyEnum.two); // "'nete" e tla hatisoa. 'mapa oa ho qetela = MyEnum.values.asNameMap(); hatisa('mapa['tharo'] == MyEnum.three); // "'nete". }
  • Ho kentsoe tšebetsong mokhoa oa ho hatella oa pointer o lumellang ts'ebeliso ea ponts'o e kopaneng ea lisupa libakeng tsa 64-bit haeba sebaka sa aterese sa 32-bit se lekane bakeng sa ho rarolla (ha ho sebelisoe memori ea 4 GB). Liteko li bonts'itse hore ntlafatso e joalo e etsa hore ho khonehe ho fokotsa boholo ba qubu ka hoo e ka bang 10%. Ho Flutter SDK, mokhoa o mocha o se o ntse o nolofalitsoe bakeng sa Android ka ho sa feleng, 'me o reriloe hore o tla fuoa iOS tokollong e tlang.
  • Dart SDK e kenyelletsa lisebelisoa tsa ho lokisa liphoso le tlhahlobo ea ts'ebetso (DevTools), tseo pele li neng li fanoa ka sephutheloana se arohaneng.
  • Lisebelisoa li kenyellelitsoe taelong ea "dart pub" le polokelong ea liphutheloana tsa pub.dev ho latela phatlalatso ea lekunutu ea tlhahisoleseling ea lekunutu, mohlala, ho siea lintlha tsa lits'ebetso tse tsoelang pele tsa kopanyo le tikoloho ea maru ka har'a sephutheloana. Haeba ho ka fumanoa ho lutla ho joalo, ho phethahatsa taelo ea "dart pub publish" ho tla sitisoa ke molaetsa oa phoso. Haeba ho ne ho e-na le phoso e fosahetseng, ho ka khoneha ho feta cheke ka lethathamo le lesoeu.
  • Bokhoni ba ho hlakola mofuta o seng o hatisitsoe oa sephutheloana bo kentsoe polokelong ea pub.dev, mohlala, haeba liphoso tse kotsi kapa bofokoli li fumanoa. Nakong e fetileng, bakeng sa litokiso tse joalo, mokhoa ona e ne e le ho phatlalatsa phetolelo e lokisoang, empa maemong a mang ho hlokahala ho hlakola tokollo e teng le ho emisa ka potlako kabo ea eona e tsoelang pele (mohlala, haeba tokiso e e-s'o lokisoe kapa haeba tokollo e feletseng e ne e le teng. e hatisitsoeng ka phoso sebakeng sa mofuta oa teko). Ka mor'a ho hlakoloa, sephutheloana ha se sa tsejoa ka litaelo tsa "pub get" le "pub upgrade", 'me lits'ebetsong tse seng li se kentse, ho fanoa ka temoso e khethehileng nakong e tlang ha "pub get" e etsoa.
  • Tšireletso e ekelitsoeng khahlanong le ho ba kotsing (CVE-2021-22567) e bakoang ke tšebeliso ea litlhaku tsa unicode khoutu e fetolang tatellano ea pontšo.
  • E tsitsitse ho ba kotsing (CVE-2021-22568) e u lumellang hore u iketsetse mosebelisi e mong oa pub.dev ha u phatlalatsa liphutheloana ho seva sa motho oa boraro se amohelang li-tokens tsa phihlello tsa pub.dev oauth2. Ka mohlala, ho ba kotsing ho ka sebelisoa ho hlasela li-server tsa ka hare le tsa khampani. Bahlahisi ba amohelang liphutheloana feela ho pub.dev ha ba amehe ke taba ena.

Ka nako e ts'oanang, ho ile ha hlahisoa tokollo e kholo ea sebopeho sa mosebelisi Flutter 2.8, e nkuoang e le mokhoa o mong oa React Native mme e lumella, ho ipapisitse le khoutu e le 'ngoe, ho lokolla lits'ebetso tsa iOS, Android, Windows, macOS le. Li-platform tsa Linux, hammoho le ho theha lits'ebetso ho sebetsa ho libatli. Khetla e tloaelehileng bakeng sa sistimi ea ts'ebetso ea Fuchsia microkernel e ntlafalitsoeng ke Google e hahiloe motheong oa Flutter. Hoa hlokomeleha hore likhoeling tse tšeletseng tse fetileng, palo ea likopo tsa Flutter 2 ho Google Play Store e eketsehile ho tloha ho 200 ho ea ho 375 tse likete, i.e. hoo e ka bang habeli.

Karolo e ka sehloohong ea khoutu ea Flutter e sebelisoa ka puo ea Dart, 'me enjene ea nako ea ho sebetsa bakeng sa ho etsa likopo e ngotsoe ka C ++. Ha u etsa lits'ebetso, ho kenyelletsa puo ea tlhaho ea Flutter ea Dart, u ka sebelisa sebopeho sa Dart Foreign Function ho letsetsa khoutu ea C/C++. Ts'ebetso e phahameng ea ts'ebetso e fihlelleha ka ho bokella lits'ebetso ho khoutu ea matsoalloa bakeng sa liforomo tse shebiloeng. Tabeng ena, lenaneo ha le hloke ho tsosolosoa ka mor'a phetoho e 'ngoe le e' ngoe - Dart e fana ka mokhoa o chesang oa ho tsosolosa o u lumellang ho etsa liphetoho ho sesebelisoa se sebetsang 'me hang-hang u hlahlobe sephetho.

Har'a liphetoho tokollong e ncha ea Flutter, ts'ebeliso ea lebelo la ho qala le ts'ebeliso ea memori ho lisebelisoa tsa mehala e bonoa. Ho bonolo ho hokela lits'ebetso ho lits'ebeletso tsa morao-rao tse kang Firebase le Google Cloud. Lisebelisoa tsa ho hokahana le Lipapatso tsa Google li tsitsitse. Tšehetso ea lik'hamera le li-plugins tsa marang-rang e ntlafalitsoe haholo. Lisebelisoa tse ncha li hlahisitsoe ho nolofatsa nts'etsopele, mohlala, widget e kentsoe bakeng sa netefatso ho sebelisoa Firebase. Enjene ea Flame, e etselitsoeng ho nts'etsapele lipapali tsa 2D e sebelisa Flutter, e ntlafalitsoe.

Source: opennet.ru

Eketsa ka tlhaloso