Dart 2.15 programming mutauro uye Flutter 2.8 chimiro chiripo

Google yakaburitsa kuburitswa kweiyo Dart 2.15 programming language, iyo inoenderera mberi nekuvandudzwa kwebazi rakagadziridzwa zvakanyanya reDart 2, iro rinosiyana neshanduro yekutanga yemutauro weDart nekushandisa yakasimba static typing (mhando dzinogona kunyorerwa otomatiki, saka. kudoma mhando hazvidiwe, asi typing ine simba haichashandiswe uye yekutanga komputa mhando inopihwa kune iyo shanduko uye yakasimba yemhando yekutarisa inozoiswa).

Zvimiro zvemutauro weDart:

  • Kujairika uye nyore-kudzidza-syntax, yakasikwa yeJavaScript, C uye Java programmers.
  • Kuve nechokwadi chekuvhurwa nekukurumidza uye kushanda kwepamusoro kune ese emazuvano mabhurawuza ewebhu uye akasiyana marudzi enzvimbo, kubva pamidziyo inotakurika kuenda kumaseva ane simba.
  • Iko kugona kutsanangura makirasi uye interfaces inobvumira encapsulation uye kushandiswazve kwemaitiro aripo uye data.
  • Kudoma mhando kunoita kuti zvive nyore kugadzirisa uye kuona zvikanganiso, kunoita kuti kodhi ive yakajeka uye iverengeke, uye inorerutsa kugadziridzwa kwayo uye kuongororwa nevagadziri vebato rechitatu.
  • Mhando dzinotsigirwa dzinosanganisira: marudzi akasiyana-siyana emahashi, mitsara uye rondedzero, mitsetse, nhamba nemhando dzetambo, marudzi ekuona zuva nenguva, matauriro anogara aripo (RegExp). Zvinokwanisika kugadzira mhando dzako.
  • Kuronga kuuraya kwakafanana, zvinokurudzirwa kushandisa makirasi ane ega hunhu, iyo kodhi inotevedzwa zvachose munzvimbo yakasarudzika munzvimbo yakaparadzana yekurangarira, ichipindirana neiyo huru maitiro nekutumira mameseji.
  • Tsigiro yekushandiswa kwemaraibhurari anorerutsa rutsigiro nekugadzirisa mapurojekiti makuru ewebhu. Kuitwa kwechitatu-bato kwemabasa kunogona kuverengerwa mumhando yemaraibhurari akagovaniswa. Zvishandiso zvinogona kukamurwa kuita zvikamu uye kupa kusimudzira kwechikamu chimwe nechimwe kune chakasiyana timu yevagadziri.
  • Seti yezvishandiso zvakagadzirirwa kutsigira budiriro mumutauro weDart, kusanganisira kuisirwa kwesimba rekusimudzira uye kugadzirisa maturusi ane kodhi yekugadzirisa panhunzi ("edit-and-continue").
  • Kurerutsa budiriro mumutauro weDart, inouya neSDK, pasuru maneja pub, static code analyzer dart_analyzer, seti yemaraibhurari, yakasanganiswa budiriro nharaunda DartPad uye Dart-inogonesa plugins yeIntelliJ IDEA, WebStorm, Emacs, Sublime Chinyorwa. 2 uye vim.
  • Mapakeji ekuwedzera ane maraibhurari uye zvinoshandiswa anogoverwa kuburikidza neiyo pub repository, iyo ine zviuru makumi maviri nemaviri mapakeji.

Shanduko huru muDart 2.15 kuburitswa:

  • Inopa maturusi ekukurumidza kuenderana kuita kwemabasa nekuzviparadzanisa nevamwe vanobata. Pane akawanda-musimboti masisitimu, iyo Dart yekumhanya nekusarudzika inomhanyisa kodhi yekushandisa pane imwe CPU musimboti uye inoshandisa mamwe macores kuita masisitimu mabasa akadai seasynchronous I/O, kunyorera mafaera, kana kufonera network. Kune maapplication anofanirwa kuuraya vanobata avo akafanana, semuenzaniso, kupa animation mune interface, zvinokwanisika kuvhura mabhuraki akaparadzana ekodhi (yega), akaparadzaniswa kubva kune mumwe nemumwe uye achiitwa pane mamwe maCPU cores panguva imwe chete netambo huru yekushandisa. . Kuti udzivirire pane zvikanganiso zvinomuka kana panguva imwe chete yekushandiswa kwekodhi ichishanda neseti imwechete yedata, kugovana kwezvinhu zvinochinjika mumabhuroko akasiyana-siyana kunorambidzwa, uye modhi-inopfuudza meseji inoshandiswa pakudyidzana pakati pevanobata.

    Dart 2.15 inosuma pfungwa nyowani - mapoka ega ega (mapoka ega), ayo anobvumidza iwe kuronga kugovaniswa kuwana kune akasiyana emukati data zvimiro mumabhuraki ega ari chikamu cheboka rimwe chete, izvo zvinogona kuderedza zvakanyanya pamusoro kana uchibatana pakati pevanobata muboka. . Semuyenzaniso, kutangisa imwe bhuroka yekuzviparadzanisa nevamwe muboka riripo inokurumidza ka100 uye inoda 10-100 nguva shoma yekuyeuka pane kutangisa yakaparadzana block block, nekuda kwekubviswa kwekudiwa kwekutanga chirongwa data zvimiro.

    Kunyangwe idi rekuti zvivharo zvekuzviparadzanisa muboka zvichiri kurambidza kugovaniswa kuwanikwa kwezvinhu zvinochinjika, mapoka anoshandisa yakagovaniswa murwi ndangariro, iyo inogona kukurumidza kukurumidzira kutamiswa kwezvinhu kubva kune rimwe bhuroko kuenda kune rimwe pasina chikonzero chekuita zviwanikwa-yakakura makopi mashandiro. Iyo vhezheni nyowani zvakare inobvumidza iwe kupfuudza mhedzisiro yemubati kana uchifonera Isolate.exit() kuendesa data kumubereki kupatsanura block pasina kukopa mashandiro. Pamusoro pezvo, iyo meseji yekufambisa meseji yakagadziridzwa - madiki uye epakati mameseji ave kugadziriswa kanenge kasere nekukurumidza. Zvinhu zvinogona kupfuudzwa pakati pezvitsaurwa uchishandisa iyo SendPort.send() kufona zvinosanganisira mamwe marudzi emabasa, kuvharwa, uye mateki.

  • Mumaturusi ekugadzira anonongedzera kumabasa ega ega mune zvimwe zvinhu (kubvarura-kubvarura), zvirambidzo zvekugadzira zvakafanana anonongedzera mukodhi yekuvaka zvakabviswa, izvo zvinogona kubatsira kana uchivaka mainterface zvichienderana neFlutter raibhurari. Semuyenzaniso, kugadzira Column widget iyo inosanganisira akawanda Mameseji majeti, unogona kufonera ".map()" uye kupfuudza anonongedzera kuText.new muvaki weChinyorwa chinhu: kirasi FruitWidget inowedzera StatelessWidget {@override Widget kuvaka(BuildContext context) { return Column( vana: ['Apple', 'Orange'].map(Text.new).toList()); }}
  • Mikana yakabatana nekushandiswa kwemaitiro anonongedzera yakawedzerwa. Yakawedzera kugona kushandisa generic nzira uye basa anonongedzera kugadzira isiri-generic nzira uye pointer: T id. (T kukosha) => kukosha; var intId = id ; // inobvumirwa mushanduro 2.15 pachinzvimbo che "int Function(int) intId = id;" const fo = id; // chinongedzo chekushanda id. const c1 = fo ;
  • Iyo dart:core raibhurari yakavandudza rutsigiro rweenum, semuenzaniso, iwe unogona ikozvino kuburitsa kukosha kwetambo kubva kune yega yega kukosha kwe enum uchishandisa ".name" nzira, sarudza maitiro nemazita, kana kuenzanisa mapeya emhando: enum MyEnum {one , maviri, matatu } void main() {print(MyEnum.one.name); // "imwe" ichadhindwa. dhinda(MyEnum.values.byName('mbiri') == MyEnum.two); // "chokwadi" chichadhindwa. mepu yekupedzisira = MyEnum.values.asNameMap(); dhinda(mepu['vatatu'] == MyEnum.three); // "chokwadi". }
  • A pointer compression technique yakaitwa iyo inobvumira kushandiswa kweimwe compact inomiririra yeanongedza munzvimbo 64-bit kana 32-bit kero nzvimbo inokwana kugadzirisa (hapana kupfuura 4 GB yendangariro inoshandiswa). Miedzo yakaratidza kuti optimization yakadai inoita kuti zvibvire kudzikisa saizi yemurwi neinosvika gumi%. MuFlutter SDK, iyo modhi nyowani yatove yakagoneswa kuAndroid nekukasira, uye yakarongwa kuti igoneswe kune iOS mukuburitswa kunotevera.
  • Iyo Dart SDK inosanganisira maturusi ekugadzirisa uye kuongororwa kwekuita (DevTools), ayo akambopihwa mune imwe pasuru.
  • Zvishandiso zvakawedzerwa kune "dart pub" kuraira uye pub.dev package repositori yekutevera kuburitswa netsaona kweruzivo rwakavanzika, semuenzaniso, kusiya zvitupa zvekuenderera mberi kwekubatanidza masisitimu uye makore mukati mepakeji. Kana kuvuza kwakadaro kwaonekwa, kuitiswa kwe "dart pub publish" murairo kuchakanganiswa nemhosho meseji. Kana paiva nenhema, zvinokwanisika kudarika cheki kuburikidza nerunyoro ruchena.
  • Iko kugona kukanzura yakatoburitswa vhezheni yepasuru yawedzerwa kune pub.dev repository, semuenzaniso, kana zvikanganiso zvine njodzi kana kusasimba zvikaonekwa. Kare, pakururamisa kwakadaro, tsika yacho yaive yekuburitsa vhezheni yekururamisa, asi mune mamwe mamiriro ezvinhu zvakakosha kukanzura kuburitswa kuripo uye nekuchimbidza kumisa kumwe kugovera kwayo (semuenzaniso, kana kururamisa kusati kwagadzirira kana kana kusunungurwa kwakazara kwave kuripo. rakabudiswa nekukanganisa pachinzvimbo cheyedzo vhezheni). Mushure mekukanzurwa, pasuru yacho haichazivikanwe mumirairo ye "pub get" uye "pub upgrade", uye pane masisitimu akatoiisa, yambiro yakakosha inopihwa nguva inotevera kana "pub get" inoitwa.
  • Yakawedzerwa dziviriro kubva panjodzi (CVE-2021-22567) inokonzerwa nekushandiswa kwemavara eunicode mukodhi inoshandura kurongeka kwekuratidzira.
  • Yakagadzirisa kusagadzikana (CVE-2021-22568) iyo inokutendera iwe kutevedzera mumwe mushandisi wepub.dev paunenge uchiburitsa mapakeji kune yechitatu-bato server inogamuchira pub.dev oauth2 yekuwana tokens. Semuyenzaniso, kusazvibata kwacho kunogona kushandiswa kurwisa maseva emukati neemakambani epasuru. Vagadziri vanongotambira mapakeji pa pub.dev havabatwe nenyaya iyi.

Panguva imwecheteyo, kuburitswa kwakakosha kweiyo mushandisi interface framework Flutter 2.8 yakaunzwa, iyo inoonekwa seimwe nzira yeReact Native uye inobvumira, zvichibva pane imwechete kodhi base, kuburitsa zvikumbiro zve iOS, Android, Windows, macOS uye. Linux mapuratifomu, pamwe nekugadzira maapplication ekumhanya mumabrowser. Iyo yakasarudzika shell yeFuchsia microkernel inoshanda sisitimu yakagadziriswa neGoogle inovakwa pahwaro hweFlutter. Zvinocherechedzwa kuti mumwedzi mitanhatu yapfuura, nhamba yeFlutter 2 application muGoogle Play Store yakawedzera kubva ku200 zviuru kusvika 375 zviuru, i.e. kanenge kaviri.

Chikamu chikuru cheFlutter kodhi chinoitwa mumutauro weDart, uye injini yekumhanyisa yekushandisa yakanyorwa muC ++. Paunenge uchigadzira maapplication, kuwedzera kuFlutter's native Dart mutauro, unogona kushandisa iyo Dart Yekunze Basa rekushanda kufonera C/C++ kodhi. Kuita kwepamusoro kunowanikwa nekunyora zvikumbiro kune kodhi yekodhi yemapuratifomu anotangwa. Muchiitiko ichi, chirongwa hachidi kudzokororwa mushure mekuchinja kwega kwega - Dart inopa inopisa reload modhi iyo inokutendera iwe kuti uchinje kune inomhanya application uye nekukasira ongorora mhedzisiro.

Pakati peshanduko mukuburitswa kutsva kweFlutter, optimization yekumhanyisa kumhanya uye ndangariro kushandiswa panharembozha kunoonekwa. Zviri nyore kubatanidza maapplication kubackend masevhisi akadai seFirebase neGoogle Cloud. Zvishandiso zvekubatanidza neGoogle Ads zvakadzikamiswa. Tsigiro yemakamera uye webhu plugins yakagadziridzwa zvakanyanya. Zvishandiso zvitsva zvakakurudzirwa kurerutsa budiriro, semuenzaniso, widget yakawedzerwa kuti ive yechokwadi uchishandisa Firebase. Iyo Flame injini, yakagadzirirwa kugadzira mitambo ye2D uchishandisa Flutter, yakagadziridzwa.

Source: opennet.ru

Voeg