տեղի ունեցավ ծրագրավորման լեզվի թողարկում Dart 2.8, որը շարունակում է արմատապես վերափոխված Dart 2 մասնաճյուղի զարգացումը, որը կենտրոնացած է վեբ և բջջային համակարգերի զարգացման վրա և օպտիմիզացված է հաճախորդի կողմից բաղադրիչներ ստեղծելու համար:
Dart 2-ը տարբերվում է սկզբնական Dart լեզվից իր ուժեղ ստատիկ մուտքագրման կիրառմամբ (տեսակները կարող են ենթադրվել ավտոմատ կերպով, ուստի տիպի ճշգրտումը կամընտիր է, բայց դինամիկ մուտքագրումն այլևս չի օգտագործվում, և սկզբնական հաշվարկված տեսակը վերագրվում է փոփոխականին և խիստ տեսակի ստուգումը կատարվում է: հետագայում կիրառվել): Վեբ հավելվածների մշակման համար առաջարկվել է մի շարք հատուկ գրադարաններ, ինչպիսիք են dart:html, ինչպես նաև Angular վեբ շրջանակը: Խթանում է շարժական հավելվածների ստեղծման շրջանակը Հարթել, որի հիման վրա, ի թիվս այլ բաների, կառուցվում է Google-ում մշակվող միկրոմիջուկի նոր օպերացիոն համակարգի օգտատերերի կեղևը։ Fuchsia.
Նոր թողարկումում.
Ավելացվել է Null արժեքը անվտանգ օգտագործելու միջոց՝ խախտելով հետընթաց համատեղելիությունը: Օրինակ, կոմպիլյացիայի ժամանակի սխալը այժմ կուղարկվի, եթե փորձ արվի վերագրել «Null» արժեքը չսահմանված տիպի փոփոխականին, ինչպիսին է «int»: Սահմանափակումներ են մտցվել նաև փոփոխականների համատեղելիության վերաբերյալ Nullable և non Nullable տեսակների հետ, ինչպիսիք են «int?» և «int» («int» տիպով փոփոխականին կարելի է վերագրել «int» տեսակի փոփոխական, բայց ոչ հակառակը): Նույնը վերաբերում է «return» հայտարարության մեջ վերադարձված փոփոխականներին. եթե ֆունկցիայի մարմնում «Null» վիճակ չթույլատրող տիպով փոփոխականին արժեք չի վերագրվում, կոմպիլյատորը կցուցադրի սխալ: Այս փոփոխությունները թույլ կտան խուսափել խափանումներից, որոնք առաջացել են փոփոխականներ օգտագործելու փորձերից, որոնց արժեքը սահմանված չէ և դրված է «Null»:
պահոց pub.dev անցել է 10 հազար փաթեթի շեմը։ Որպես Dart 2.8-ի տրամադրման ցիկլի մի մաս, pub.dev-ից փաթեթների առբերման կատարումը զգալիորեն բարելավվել է՝ աջակցելով փաթեթների որոնմանը մի քանի զուգահեռ շղթաների մեջ «pub get» հրամանը կատարելիս, ինչպես նաև ծույլ նախնական կոմպիլյացիա՝ «Pub.»-ի կատարման ժամանակ: pub run» հրամանը։ Flutter-ի վրա հիմնված նոր նախագծի համար «pub get» հրամանի փորձարկումը ցույց տվեց շահագործման ժամանակի նվազում 6.5-ից մինչև 2.5 վայրկյան, իսկ ավելի մեծ ծրագրերի համար, ինչպիսիք են Flutter պատկերասրահը, 15-ից մինչև 3 վայրկյան:
Ավելացվեց նոր «pub հնացած» հրաման՝ տեղադրված փաթեթներից բոլոր կախվածությունները թարմացնելու համար: Օգտագործելով «pub հնացած» հրամանը, դուք կարող եք գնահատել, առանց pubspec ֆայլում փոփոխություններ կատարելու, արդյոք կան բոլոր կախվածությունների նոր հիմնական տարբերակները, որոնք կապված են նշված փաթեթի հետ: Ի տարբերություն «pub upgrade»-ի՝ նոր հրամանը ստուգում է ոչ միայն pubspec-ին համապատասխան տարբերակները, այլև ավելի նոր ճյուղերը։ Օրինակ՝ «foo: ^1.3.0» և «bar: ^2.0.0» կապակցված կախվածություններ ունեցող փաթեթի համար «pub-ը հնացած» գործարկելը ցույց կտա ինչպես հասանելի մասնաճյուղերի, այնպես էլ ավելի նոր մասնաճյուղերի առկայությունը.
Ծանոթ և հեշտ սովորվող շարահյուսություն, բնական JavaScript, C և Java ծրագրավորողների համար:
Արագ գործարկում և բարձր կատարողականության ապահովում բոլոր ժամանակակից վեբ բրաուզերների և տարբեր տեսակի միջավայրերի համար՝ շարժական սարքերից մինչև հզոր սերվերներ.
Դասեր և ինտերֆեյսներ սահմանելու ունակություն, որոնք թույլ են տալիս ներառել և վերօգտագործել գոյություն ունեցող մեթոդներն ու տվյալները.
Տիպերի հստակեցումը հեշտացնում է վրիպազերծումը և սխալների հայտնաբերումը, ծածկագիրը դարձնում է ավելի պարզ և ընթեռնելի, ինչպես նաև հեշտացնում է դրա փոփոխությունն ու վերլուծությունը երրորդ կողմի մշակողների կողմից:
Աջակցվող տեսակները ներառում են՝ տարբեր տեսակի հեշեր, զանգվածներ և ցուցակներ, հերթեր, թվային և տողերի տեսակներ, ամսաթվի և ժամի որոշման տեսակներ, կանոնավոր արտահայտություններ (RegExp): Միգուցե ստեղծելով ձեր սեփականը տեսակներ;
Զուգահեռ կատարումը կազմակերպելու համար առաջարկվում է օգտագործել isolate հատկանիշով դասեր, որոնց ծածկագիրը ամբողջությամբ կատարվում է մեկուսացված տարածքում առանձին հիշողության տարածքում՝ փոխազդելով հիմնական գործընթացի հետ՝ ուղարկելով հաղորդագրություններ.
Աջակցություն գրադարանների օգտագործմանը, որոնք հեշտացնում են մեծ վեբ նախագծերի աջակցությունն ու վրիպազերծումը: Երրորդ կողմի գործառույթների իրականացումը կարող է ներառվել ընդհանուր գրադարանների տեսքով: Հավելվածները կարելի է բաժանել մասերի և յուրաքանչյուր մասի մշակումը վստահել ծրագրավորողների առանձին թիմին;
Պատրաստի գործիքների մի շարք, որոնք աջակցում են Dart լեզվի զարգացմանը, ներառյալ դինամիկ մշակման և վրիպազերծման գործիքների ներդրումը կոդերի շտկումով («խմբագրել և շարունակել»);