Lugha ya Dart 2.14 na mfumo wa Flutter 2.5 unapatikana

Google imechapisha toleo la lugha ya programu ya Dart 2.14, ambayo inaendelea ukuzaji wa tawi lililoundwa upya la Dart 2, ambalo linatofautiana na toleo la asili la lugha ya Dart kwa utumiaji wa uandishi thabiti wa tuli (aina zinaweza kuzingatiwa kiotomatiki, kwa hivyo. kubainisha aina si lazima, lakini uchapaji unaobadilika hautumiki tena na hapo awali kukokotwa aina hiyo imepewa kigeugeu na ukaguzi wa aina kali unatumika baadaye).

Vipengele vya lugha ya Dart:

  • Sintaksia inayofahamika na rahisi kujifunza, asilia kwa watengeneza programu wa JavaScript, C na Java.
  • Kuhakikisha uzinduzi wa haraka na utendakazi wa hali ya juu kwa vivinjari vyote vya kisasa vya wavuti na aina mbalimbali za mazingira, kutoka kwa vifaa vinavyobebeka hadi seva zenye nguvu.
  • Uwezo wa kufafanua madarasa na violesura vinavyoruhusu ujumuishaji na utumiaji tena wa mbinu na data zilizopo.
  • Kubainisha aina hurahisisha utatuzi na kutambua makosa, hurahisisha msimbo kuwa wazi na kusomeka zaidi, na hurahisisha urekebishaji na uchanganuzi wake na wasanidi programu wengine.
  • Aina zinazotumika ni pamoja na: aina mbalimbali za heshi, safu na orodha, foleni, aina za nambari na mfuatano, aina za kuamua tarehe na wakati, maneno ya kawaida (RegExp). Inawezekana kuunda aina zako mwenyewe.
  • Ili kuandaa utekelezaji sambamba, inapendekezwa kutumia madarasa na sifa ya pekee, kanuni ambayo inatekelezwa kabisa katika nafasi ya pekee katika eneo la kumbukumbu tofauti, kuingiliana na mchakato kuu kwa kutuma ujumbe.
  • Usaidizi wa matumizi ya maktaba ambayo hurahisisha usaidizi na utatuzi wa miradi mikubwa ya wavuti. Utekelezaji wa majukumu ya wahusika wengine unaweza kujumuishwa katika mfumo wa maktaba zinazoshirikiwa. Maombi yanaweza kugawanywa katika sehemu na kukabidhi maendeleo ya kila sehemu kwa timu tofauti ya watayarishaji programu.
  • Seti ya zana zilizotengenezwa tayari kusaidia maendeleo katika lugha ya Dart, ikijumuisha utekelezaji wa zana madhubuti za ukuzaji na utatuzi kwa urekebishaji wa msimbo kwenye nzi ("hariri-na-endelea").
  • Ili kurahisisha ukuzaji katika lugha ya Dart, inakuja na SDK, baa ya kidhibiti kifurushi, kichanganuzi cha msimbo tuli dart_analyzer, seti ya maktaba, mazingira jumuishi ya ukuzaji DartPad na programu-jalizi zinazowezeshwa na Dart za IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 na Vim.
  • Vifurushi vya ziada na maktaba na huduma husambazwa kupitia hazina ya baa, ambayo ina vifurushi zaidi ya elfu 20.

Mabadiliko makubwa katika toleo la Dart 2.14:

  • Opereta mpya ya zamu tatu (>>>) imeongezwa, ambayo, tofauti na opereta ">>", haifanyi hesabu, lakini mabadiliko ya kimantiki ambayo hufanya kazi bila kuzingatia alama ya ishara (mabadiliko hufanywa bila kugawanyika ndani. nambari chanya na hasi).
  • Imeondoa kizuizi cha hoja za aina ambacho kilizuia aina za fomula za jumla kutumiwa kama hoja ya aina. Kwa mfano, sasa unaweza kutaja: Orodha ya marehemu (T)>idFunctions; var callback = [ (T thamani) => thamani]; marehemu S Kazi (T)>(S) f;
  • Ruhusu kubainisha hoja zilizo na aina katika maelezo kama vile @Deprecated. Kwa mfano, sasa unaweza kubainisha: @TypeHelper (42, "Maana")
  • Mbinu tuli za hashi, hashAll na hashAllUnordered zimeongezwa kwenye maktaba ya kawaida (msingi) katika darasa la Object. Darasa la DateTime limeboresha utunzaji wa saa za ndani wakati wa kubadilisha saa kati ya majira ya kiangazi na majira ya baridi ambazo haziwezi kugawanywa kwa saa moja (kwa mfano, nchini Australia urekebishaji wa dakika 30 hutumiwa). Kifurushi cha ffi kimeongeza usaidizi kwa utaratibu wa ugawaji kumbukumbu ya uwanja, ambao hutoa rasilimali kiotomatiki. Kifurushi cha ffigen kimeongeza uwezo wa kutoa ufafanuzi wa typedef wa aina za Dart kutoka kwa lugha ya C.
  • Vifurushi 250 maarufu zaidi kutoka hazina ya pub.dev na 94% ya top-1000 vimebadilishwa hadi kwa kutumia hali ya "null usalama", ambayo itaepuka ajali zinazosababishwa na majaribio ya kutumia vigeu ambavyo thamani yake haijafafanuliwa na imewekwa kwa "Null. "" Hali hiyo ina maana kwamba vigeu haviwezi kuwa na thamani batili isipokuwa viwe vimepewa thamani hiyo kwa uwazi. Hali hiyo inaheshimu kabisa aina tofauti, ambayo inaruhusu mkusanyaji kutumia uboreshaji zaidi. Utiifu wa aina huangaliwa wakati wa kukusanya, kwa mfano, ukijaribu kugawa thamani ya "Null" kwa kigezo chenye aina ambayo haimaanishi hali isiyobainishwa, kama vile "int", hitilafu itaonyeshwa.
  • Seti zilizounganishwa za sheria za kichanganuzi cha msimbo (linter) zinapendekezwa, zikitoa usaidizi kwa wakati mmoja kwa kuangalia kufuata miongozo ya mtindo wa msimbo wa Dart na mfumo wa Flutter. Kwa sababu za kihistoria, sheria za uandishi wa Flutter na Dart zilikuwa tofauti, kwa kuongezea, kwa Dart kulikuwa na seti mbili za sheria zinazotumika - zile za pedantic kutoka Google na sheria kutoka kwa jamii ya wasanidi wa Dart. Dart 2.14 inatanguliza seti mpya ya sheria za kawaida za linter, ambayo inaamuliwa kutumiwa kwa chaguo-msingi katika miradi mipya ya Dart na katika Flutter SDK. Seti hii inajumuisha sheria za msingi (lints/core.yaml package), sheria za ziada zinazopendekezwa (lints/recommended.yaml), na mapendekezo mahususi ya Flutter (flutter_lints/flutter.yaml). Watumiaji wa sheria za pedantic wanashauriwa kubadili kutumia mtindo mpya wa usimbaji kulingana na mapendekezo kutoka kwa nyaraka za Dart.
  • Katika umbizo, uboreshaji umefanywa kwa uumbizaji wa vizuizi vya msimbo, ambayo inaweza kuboresha kwa kiasi kikubwa utendakazi wa uumbizaji na kuepuka tafsiri ya utata ya umiliki wa vipengele vya kujieleza. Kwa mfano, kuita "..doIt" katika usemi "var result = errorState ? foo : bad..doIt()" haihusu sehemu ya masharti ya kizuizi "mbaya", lakini usemi mzima, kwa hivyo wakati wa kuumbiza sasa umetenganishwa: var result = errorState ? foo : mbaya ..fanya();
  • Usaidizi kwa vichakataji vya Apple M1 (Silicon) umeongezwa kwenye SDK, ikimaanisha uwezo wa kuendesha Dart VM, huduma na vipengee vya SDK kwenye mifumo iliyo na kichakataji cha Apple Silicon, na usaidizi wa kuunda faili zinazoweza kutekelezeka za chipsi hizi.
  • Amri ya "dart pub" imeongeza usaidizi kwa faili mpya ya huduma ".pubignore", ambayo hukuruhusu kufafanua orodha ya faili ambazo zitarukwa wakati wa kuchapisha kifurushi kwenye hazina ya pub.dev. Mipangilio hii haiingiliani na orodha ya kupuuza ya ".gitignore" (katika hali zingine, pub.dev inaweza kutaka kuzuia kuhamisha faili zinazohitajika katika Git, kwa mfano, hati za ndani zinazotumiwa wakati wa usanidi).
  • Kazi imefanywa ili kuboresha utendaji wa amri ya "mtihani wa dart", ambayo sasa hauhitaji kurejesha vipimo baada ya kubadilisha pubspec ikiwa nambari ya toleo haijabadilika.
  • Usaidizi wa utungaji katika modi ya uoanifu ya ECMAScript 5 umekatishwa (mabadiliko hayo yatasababisha kupoteza uoanifu na kivinjari cha IE11).
  • Huduma za kibinafsi za hatua, dartfmt na dart2native zimetangazwa kuwa hazitumiki, nafasi yake kuchukuliwa na amri zilizojumuishwa zinazoitwa kupitia matumizi ya dart.
  • Utaratibu wa VM Native Extensions umeacha kutumika. Ili kupiga simu msimbo asili kutoka kwa msimbo wa Dart, inashauriwa kutumia Dart FFI mpya (Kiolesura cha Kazi za Kigeni).

Wakati huo huo, kutolewa muhimu kwa mfumo wa kiolesura cha mtumiaji Flutter 2.5 iliwasilishwa, ambayo inachukuliwa kuwa mbadala wa React Native na inaruhusu, kwa msingi wa msingi mmoja wa nambari, kutoa programu za iOS, Android, Windows, macOS na. Majukwaa ya Linux, pamoja na kuunda programu za kuendesha katika vivinjari. Gamba maalum la mfumo wa uendeshaji wa microkernel wa Fuchsia uliotengenezwa na Google umejengwa kwa msingi wa Flutter.

Sehemu kuu ya nambari ya Flutter inatekelezwa katika lugha ya Dart, na injini ya wakati wa kutekeleza programu imeandikwa katika C ++. Unapotengeneza programu, pamoja na lugha asilia ya Flutter ya Dart, unaweza kutumia kiolesura cha Dart Foreign Function kupiga msimbo wa C/C++. Utendaji wa hali ya juu unapatikana kwa kukusanya programu kwa msimbo asilia kwa majukwaa lengwa. Katika kesi hii, mpango hauhitaji kurejeshwa baada ya kila mabadiliko - Dart hutoa hali ya kupakia upya moto ambayo inakuwezesha kufanya mabadiliko kwenye programu inayoendesha na mara moja kutathmini matokeo.

Mabadiliko makubwa katika Flutter 2.5:

  • Imeboresha utendakazi muhimu. Kwenye majukwaa ya iOS na macOS, utayarishaji wa vivuli vya API ya michoro ya Metal umetekelezwa. Ufanisi ulioboreshwa wa usindikaji wa matukio ya asynchronous. Ilisuluhisha suala na ucheleweshaji wakati mkusanya takataka anapochukua kumbukumbu kutoka kwa picha ambazo hazijatumiwa (kwa mfano, wakati wa uchezaji wa GIF ya uhuishaji ya sekunde 20, idadi ya shughuli za kukusanya taka ilipunguzwa kutoka 400 hadi 4. Ucheleweshaji wakati wa kupitisha ujumbe kati ya Dart na Lengo- C/Swift ilipunguzwa hadi 50% (iOS) au Java/Kotlin (Android) Imeongeza usaidizi wa muundo asili kwa mifumo inayolingana na chipu ya Apple Silicon.
    Lugha ya Dart 2.14 na mfumo wa Flutter 2.5 unapatikana
  • Kwa jukwaa la Android, usaidizi wa kuendesha programu katika hali ya skrini nzima umeanzishwa. Utekelezaji wa dhana ya muundo wa "Nyenzo Wewe", iliyowasilishwa kama chaguo la Usanifu wa Nyenzo ya kizazi kijacho, uliendelea. Imeongeza hali mpya ya MaterialState.scrolledUnder, imetekeleza onyesho thabiti la pau za kusogeza wakati wa kubadilisha ukubwa, na kupendekeza kiolesura kipya cha kuonyesha mabango ya arifa.
  • Uwezo wa programu-jalizi ya kamera umepanuliwa kwa kiasi kikubwa, na kuongeza zana za kudhibiti ulengaji otomatiki, mfiduo, flash, zoom, kupunguza kelele na azimio.
  • Zana za Wasanidi Programu (DevTools) zimeboreshwa ili kujumuisha hali iliyosasishwa ya ukaguzi wa wijeti, pamoja na zana za kutambua ucheleweshaji wa uwasilishaji na ufuatiliaji wa mkusanyiko wa shader.
    Lugha ya Dart 2.14 na mfumo wa Flutter 2.5 unapatikana
  • Programu-jalizi zilizoboreshwa za Msimbo wa Visual Studio na IntelliJ/Android Studio.

Chanzo: opennet.ru

Kuongeza maoni