Հասանելի են Dart 2.14 լեզուն և Flutter 2.5 շրջանակը

Google-ը հրապարակել է Dart 2.14 ծրագրավորման լեզվի թողարկումը, որը շարունակում է Dart 2-ի արմատապես վերանախագծված ճյուղի զարգացումը, որը տարբերվում է Dart լեզվի սկզբնական տարբերակից ուժեղ ստատիկ մուտքագրման օգտագործմամբ (տեսակները կարող են ենթադրվել ավտոմատ կերպով, այնպես որ. տեսակները նշելն անհրաժեշտ չէ, բայց դինամիկ մուտքագրումն այլևս չի օգտագործվում, և սկզբում հաշվարկված տեսակը վերագրվում է փոփոխականին, և այնուհետև կիրառվում է խիստ տեսակի ստուգում):

Dart լեզվի առանձնահատկությունները.

  • Ծանոթ և հեշտ սովորվող շարահյուսություն, բնական JavaScript, C և Java ծրագրավորողների համար:
  • Արագ գործարկում և բարձր կատարողականության ապահովում բոլոր ժամանակակից վեբ բրաուզերների և տարբեր տեսակի միջավայրերի համար՝ շարժական սարքերից մինչև հզոր սերվերներ:
  • Դասեր և միջերեսներ սահմանելու ունակություն, որոնք թույլ են տալիս ներառել և վերօգտագործել գոյություն ունեցող մեթոդները և տվյալները:
  • Տիպերի հստակեցումը հեշտացնում է վրիպազերծումը և սխալների հայտնաբերումը, ծածկագիրը դարձնում է ավելի պարզ և ընթեռնելի, ինչպես նաև հեշտացնում է դրա փոփոխությունն ու վերլուծությունը երրորդ կողմի մշակողների կողմից:
  • Աջակցվող տեսակները ներառում են՝ տարբեր տեսակի հեշեր, զանգվածներ և ցուցակներ, հերթեր, թվային և տողերի տեսակներ, ամսաթվի և ժամի որոշման տեսակներ, կանոնավոր արտահայտություններ (RegExp): Հնարավոր է ստեղծել ձեր սեփական տեսակները։
  • Զուգահեռ կատարումը կազմակերպելու համար առաջարկվում է օգտագործել isolate հատկանիշով դասեր, որոնց ծածկագիրը ամբողջությամբ կատարվում է մեկուսացված տարածության մեջ առանձին հիշողության տարածքում՝ փոխազդելով հիմնական գործընթացի հետ՝ ուղարկելով հաղորդագրություններ։
  • Աջակցություն գրադարանների օգտագործմանը, որոնք հեշտացնում են մեծ վեբ նախագծերի աջակցությունն ու վրիպազերծումը: Երրորդ կողմի գործառույթների իրականացումը կարող է ներառվել ընդհանուր գրադարանների տեսքով: Հավելվածները կարելի է բաժանել մասերի և յուրաքանչյուր մասի մշակումը վստահել ծրագրավորողների առանձին թիմին։
  • Պատրաստի գործիքների մի շարք, որոնք աջակցում են Dart լեզվի զարգացմանը, ներառյալ դինամիկ մշակման և վրիպազերծման գործիքների ներդրումը կոդերի շտկումով («խմբագրել և շարունակել»):
  • Dart լեզվով զարգացումը պարզեցնելու համար այն գալիս է SDK-ով, փաթեթների կառավարիչ փաբով, ստատիկ կոդերի անալիզատորով dart_analyzer, գրադարանների մի շարք, ինտեգրված զարգացման միջավայր DartPad և Dart միացված պլագիններ IntelliJ IDEA-ի, WebStorm-ի, Emacs-ի, Sublime Text-ի համար: 2 և Վիմ.
  • Գրադարաններով և կոմունալ ծառայություններով լրացուցիչ փաթեթներ են բաշխվում փաբի պահեստի միջոցով, որն ունի ավելի քան 20 հազար փաթեթ։

Dart 2.14 թողարկման հիմնական փոփոխությունները.

  • Ավելացվել է նոր եռակի հերթափոխի օպերատոր (>>>), որը, ի տարբերություն «>>» օպերատորի, կատարում է ոչ թե թվաբանություն, այլ տրամաբանական տեղաշարժ, որն աշխատում է առանց նշանի բիթը հաշվի առնելու (հերթափոխը կատարվում է առանց բաժանելու. դրական և բացասական թվեր):
  • Հեռացվել է տիպի արգումենտների սահմանափակումը, որը խանգարում էր ընդհանուր ֆունկցիաների տեսակների օգտագործմանը որպես տիպի արգումենտ: Օրինակ, այժմ կարող եք նշել՝ ուշ ցուցակ (T)>idFunctions; var հետ զանգ = [ (T արժեք) => արժեք]; ուշ S ֆունկցիա (T)>(S) f;
  • Թույլատրել արգումենտներ նշել տեսակների հետ ծանոթագրություններում, ինչպիսիք են @Deprecated: Օրինակ, այժմ կարող եք նշել՝ @TypeHelper (42, «Իմաստը»)
  • Ստատիկ մեթոդները hash, hashAll և hashAllUnordered ավելացվել են Object դասի ստանդարտ գրադարանին (core): DateTime դասը բարելավել է տեղական ժամանակի կառավարումը ամառային և ձմեռային ժամանակների միջև ժամացույցները փոխարկելիս, որոնք չեն բաժանվում մեկ ժամի վրա (օրինակ, Ավստրալիայում օգտագործվում է 30 րոպեի շեղում): ffi փաթեթն ավելացրել է աջակցություն արենայի հիշողության բաշխման մեխանիզմին, որն ավտոմատ կերպով ազատում է ռեսուրսները: Ffigen փաթեթն ավելացրել է C լեզվից Dart տեսակների տիպային սահմանումներ ստեղծելու հնարավորությունը:
  • pub.dev պահոցից 250 ամենահայտնի փաթեթները և թոփ-94-ի 1000%-ը անցել են «null Security» ռեժիմի օգտագործմանը, որը կխուսափի փոփոխականների օգտագործման փորձերի հետևանքով առաջացած խափանումներից, որոնց արժեքը սահմանված չէ և դրված է «Null»: "" Ռեժիմը ենթադրում է, որ փոփոխականները չեն կարող ունենալ զրոյական արժեքներ, քանի դեռ նրանց բացահայտորեն չի նշանակվել null արժեքը: Ռեժիմը խստորեն հարգում է փոփոխականների տեսակները, ինչը թույլ է տալիս կոմպիլյատորին կիրառել լրացուցիչ օպտիմալացումներ։ Տիպի համապատասխանությունը ստուգվում է կոմպիլյացիայի ժամանակ, օրինակ, եթե փորձեք «Null» արժեքը վերագրել փոփոխականին այնպիսի տիպով, որը չի ենթադրում չսահմանված վիճակ, օրինակ՝ «int», կցուցադրվի սխալ:
  • Առաջարկվում են կոդի անալիզատորի (linter) կանոնների միասնական հավաքածուներ, որոնք միաժամանակ ապահովում են Dart-ի և Flutter շրջանակի կոդի ոճի ուղեցույցների համապատասխանությունը ստուգելու համար: Պատմական պատճառներով, Flutter-ի և Dart-ի կոդավորման կանոնները տարբեր էին, բացի այդ, Dart-ի համար կիրառում էին երկու կանոններ՝ մանկական Google-ից և կանոններ Dart մշակողների համայնքից: Dart 2.14-ը ներկայացնում է նոր ընդհանուր կանոնների մի շարք լինտերի համար, որը որոշվում է լռելյայն օգտագործել նոր Dart նախագծերում և Flutter SDK-ում: Հավաքածուն ներառում է հիմնական կանոններ (lints/core.yaml փաթեթ), առաջարկվող լրացուցիչ կանոններ (lints/recommended.yaml) և Flutter-ին հատուկ առաջարկություններ (flutter_lints/flutter.yaml): Պեդանտական ​​կանոնների օգտատերերին խորհուրդ է տրվում անցնել կոդավորման նոր ոճի՝ Dart փաստաթղթերի առաջարկությունների հիման վրա:
  • Ձևաչափիչում օպտիմիզացումներ են կատարվել կասկադային կոդերի բլոկների ձևաչափման համար, ինչը կարող է զգալիորեն բարելավել ձևաչափման կատարումը և խուսափել արտահայտման տարրերի սեփականության երկիմաստ մեկնաբանությունից: Օրինակ՝ կանչելով «..doIt» արտահայտությունը «var result = errorState ? foo: bad..doIt()»-ը վերաբերում է ոչ թե «վատ» բլոկի պայմանական մասին, այլ ամբողջ արտահայտությանը, այնպես որ ձևաչափելիս այն այժմ առանձնացվում է՝ var result = errorState ? foo: վատ ..doIt();
  • Աջակցություն Apple M1 (Silicon) պրոցեսորներին ավելացվել է SDK-ին, ինչը ենթադրում է և՛ Dart VM, և՛ կոմունալ ծառայություններ և SDK բաղադրիչներ գործարկելու հնարավորություն Apple Silicon պրոցեսորով համակարգերում, և՛ աջակցություն այս չիպերի համար գործարկվող ֆայլեր կազմելու համար:
  • «Dart pub» հրամանն ավելացրել է «.pubignore» ծառայության նոր ֆայլի աջակցությունը, որը թույլ է տալիս սահմանել այն ֆայլերի ցանկը, որոնք բաց կթողնեն փաթեթը pub.dev պահոցում հրապարակելիս: Այս կարգավորումները չեն խանգարում «.gitignore» անտեսման ցանկին (որոշ իրավիճակներում pub.dev-ը կարող է խուսափել Git-ում անհրաժեշտ ֆայլերի փոխանցումից, օրինակ՝ մշակման ընթացքում օգտագործվող ներքին սկրիպտները):
  • Աշխատանք է տարվել բարելավելու «dart test» հրամանի կատարումը, որն այժմ չի պահանջում pubspec-ը փոխելուց հետո թեստեր վերակոմպիլյացիա կատարել, եթե տարբերակի համարը չի փոխվել։
  • ECMAScript 5-ի համատեղելիության ռեժիմում կոմպիլյացիայի աջակցությունը դադարեցվել է (փոփոխությունը կհանգեցնի IE11 բրաուզերի հետ համատեղելիության կորստի):
  • Անհատական ​​կոմունալ ծրագրերը stagehand, dartfmt և dart2native-ը հայտարարվել են հնացած՝ փոխարինված ներկառուցված հրամաններով, որոնք կոչվում են dart utility-ի միջոցով:
  • VM Native Extensions մեխանիզմը հնացել է: Դարտ կոդից հայրենի կոդ կանչելու համար խորհուրդ է տրվում օգտագործել նոր Dart FFI-ն (Օտարերկրյա ֆունկցիոնալ ինտերֆեյս):

Միևնույն ժամանակ, ներկայացվել է Flutter 2.5 օգտատիրոջ միջերեսի շրջանակի զգալի թողարկումը, որը համարվում է React Native-ի այլընտրանք և թույլ է տալիս մեկ կոդային բազայի հիման վրա թողարկել հավելվածներ iOS-ի, Android-ի, Windows-ի, macOS-ի և Linux-ի համար։ հարթակներ, ինչպես նաև ստեղծել հավելվածներ՝ բրաուզերներում աշխատելու համար: Flutter-ի հիման վրա ստեղծվել է Google-ի կողմից մշակված Fuchsia microkernel օպերացիոն համակարգի հատուկ պատյան:

Flutter կոդի հիմնական մասը ներդրված է Dart լեզվով, իսկ հավելվածների կատարման ժամանակի շարժիչը գրված է C++-ով։ Հավելվածներ մշակելիս, բացի Flutter-ի մայրենի Dart լեզվից, կարող եք օգտագործել Dart Foreign Function ինտերֆեյսը C/C++ կոդը կանչելու համար: Կատարման բարձր կատարողականությունը ձեռք է բերվում թիրախային հարթակների համար հավելվածները հայրենի կոդի մեջ կազմելու միջոցով: Այս դեպքում, յուրաքանչյուր փոփոխությունից հետո ծրագիրը պետք չէ վերակոմպիլյացիայի ենթարկել. Dart-ն ապահովում է տաք վերաբեռնման ռեժիմ, որը թույլ է տալիս փոփոխություններ կատարել գործող հավելվածում և անմիջապես գնահատել արդյունքը:

Հիմնական փոփոխություններ Flutter 2.5-ում.

  • Կատարել է զգալի կատարողականի օպտիմալացում: iOS և macOS հարթակներում իրականացվել է Metal գրաֆիկական API-ի համար shader-ների նախնական հավաքում։ Ասինխրոն իրադարձությունների մշակման բարելավված արդյունավետությունը: Լուծվել է ուշացումների հետ կապված խնդիրը, երբ աղբահավաքը վերականգնում է հիշողությունը չօգտագործված պատկերներից (օրինակ, 20 վայրկյանանոց անիմացիոն GIF-ի նվագարկման ժամանակ աղբահանության գործողությունների թիվը կրճատվել է 400-ից մինչև 4-ի: Dart-ի և Objective-ի միջև հաղորդագրություններ փոխանցելիս ուշացումներ կան: C/Swift-ը կրճատվել է մինչև 50% (iOS) կամ Java/Kotlin (Android) Ավելացվել է Apple Silicon չիպի վրա հիմնված համակարգերի բնօրինակ կառուցման աջակցություն:
    Հասանելի են Dart 2.14 լեզուն և Flutter 2.5 շրջանակը
  • Android պլատֆորմի համար ստեղծվել է ամբողջական էկրանով հավելվածների գործարկման աջակցություն: Շարունակվել է «Material You» դիզայնի հայեցակարգի իրականացումը, որը ներկայացված է որպես հաջորդ սերնդի Material Design տարբերակ: Ավելացրել է նոր վիճակ MaterialState.scrolledUnder, ներդրել է ոլորման գծերի դինամիկ ցուցադրում չափափոխելիս և առաջարկել է նոր ինտերֆեյս՝ ծանուցումների պաստառներ ցուցադրելու համար:
  • Տեսախցիկի plug-in-ի հնարավորությունները զգալիորեն ընդլայնվել են՝ ավելացնելով ավտոմատ ֆոկուսը, լուսարձակումը, լուսացույցը, խոշորացումը, աղմուկի նվազեցումը և լուծաչափը կառավարելու գործիքներ:
  • Մշակողի գործիքները (DevTools) բարելավվել են՝ ներառելով վիջեթի ստուգման թարմացված ռեժիմը, ինչպես նաև մատուցման հետաձգումները և ստվերների հավաքագրմանը հետևելու գործիքներ:
    Հասանելի են Dart 2.14 լեզուն և Flutter 2.5 շրջանակը
  • Բարելավված պլագիններ Visual Studio Code-ի և IntelliJ/Android Studio-ի համար:

Source: opennet.ru

Добавить комментарий