Google-ը ներկայացրել է Flutter 2 օգտագործողի ինտերֆեյսի մշակման շրջանակը, որը նշանավորում է նախագծի վերափոխումը բջջային հավելվածների մշակման շրջանակից դեպի ունիվերսալ շրջանակ՝ ցանկացած տեսակի ծրագիր ստեղծելու համար, ներառյալ աշխատասեղանի ծրագրերը և վեբ հավելվածները։
Flutter-ը դիտվում է որպես React Native-ի այլընտրանք և թույլ է տալիս թողարկել հավելվածներ բազմաթիվ հարթակների, այդ թվում՝ iOS-ի համար՝ օգտագործելով մեկ կոդային բազա։ Android, Windows, macOS и Linux, ինչպես նաև բրաուզերներում աշխատելու համար նախատեսված հավելվածներ: Flutter 1-ում նախկինում գրված բջջային հավելվածները կարող են հարմարեցվել համակարգչի և վեբի համար՝ առանց կոդը վերաշարադրելու Flutter 2-ին անցնելուց հետո:
Flutter կոդի հիմնական մասը ներդրված է Dart լեզվով, իսկ հավելվածների կատարման ժամանակի շարժիչը գրված է C++-ով։ Հավելվածներ մշակելիս, բացի Flutter-ի մայրենի Dart լեզվից, կարող եք օգտագործել Dart Foreign Function ինտերֆեյսը C/C++ կոդը կանչելու համար: Կատարման բարձր կատարողականությունը ձեռք է բերվում թիրախային հարթակների համար հավելվածները հայրենի կոդի մեջ կազմելու միջոցով: Այս դեպքում, յուրաքանչյուր փոփոխությունից հետո ծրագիրը պետք չէ վերակոմպիլյացիայի ենթարկել. Dart-ն ապահովում է տաք վերաբեռնման ռեժիմ, որը թույլ է տալիս փոփոխություններ կատարել գործող հավելվածում և անմիջապես գնահատել արդյունքը:
Ասվում է, որ Flutter 2-ը լիարժեք աջակցություն է տրամադրում արտադրական տեղակայման համար հարմար վեբ հավելվածներ ստեղծելու համար: Նշվում են Flutter-ը վեբի համար օգտագործելու երեք հիմնական սցենարներ՝ ինքնուրույն վեբ հավելվածների մշակում (PWA, Progressive Web Apps), մեկ էջանոց վեբ հավելվածների ստեղծում (SPA, Single page apps) և բջջային հավելվածների վեբ հավելվածների վերածում: Վեբ մշակման գործիքների առանձնահատկություններից են 2D և 3D գրաֆիկայի ռենդերինգի արագացման մեխանիզմների օգտագործումը, էկրանին տարրերի ճկուն դասավորությունը և WebAssembly-ում կոմպիլացված CanvasKit ռենդերինգի շարժիչը:
Համակարգչային հավելվածների աջակցությունը ներկայումս բետա տարբերակում է և կկայունացվի այս տարվա ապագա թողարկման մեջ: Canonical-ը, Microsoft-ը և Toyota-ն հայտարարել են Flutter-ի մշակման աջակցության մասին: Canonical-ը Flutter-ն ընտրել է որպես իր հավելվածների հիմնական շրջանակ և նաև օգտագործում է Flutter-ը նոր տեղադրողի մշակման համար: UbuntuMicrosoft-ը Flutter-ը հարմարեցրել է բազմաէկրաններով ծալովի սարքերի համար, ինչպիսին է Surface Duo-ն: Toyota-ն նախատեսում է օգտագործել Flutter-ը ավտոմեքենաների ինֆոզվարճանքի համակարգերի համար: Flutter-ը նաև աշխատում է Google-ի միկրոմիջուկային օպերացիոն համակարգի՝ Fuchsia-ի օգտագործողի ինտերֆեյսի վրա:

Միաժամանակ հրատարակվեց Dart 2.12 ծրագրավորման լեզվի թողարկումը, որը շարունակում է արմատապես վերաձևավորված Dart 2 ճյուղի զարգացումը: Dart 2-ը տարբերվում է Dart լեզվի սկզբնական տարբերակից ուժեղ ստատիկ տիպավորման օգտագործմամբ (տեսակները կարող են որոշվել ավտոմատ կերպով, ուստի տեսակների նշումը պարտադիր չէ, բայց դինամիկ տիպավորումն այլևս չի օգտագործվում, և փոփոխականին վերագրվում է սկզբնապես հաշվարկված տեսակը, և հետագայում կիրառվում է խիստ տիպի ստուգում):
Թողարկումը աչքի է ընկնում զրոյական անվտանգության ռեժիմի կայունացմամբ, որը կխուսափի անորոշ արժեք ունեցող և Null արժեք ունեցող փոփոխականներ օգտագործելու փորձերի հետևանքով առաջացած խափանումներից: Ռեժիմը ենթադրում է, որ փոփոխականները չեն կարող ունենալ անորոշ արժեքներ, եթե դրանց հստակորեն չի նշանակվել զրոյական արժեքը: Ռեժիմը խստորեն հաշվի է առնում փոփոխականների տեսակները, ինչը թույլ է տալիս կոմպիլյատորին կիրառել լրացուցիչ օպտիմալացումներ: Տիպի համապատասխանությունը ստուգվում է կոմպիլյացիայի ժամանակ, օրինակ, եթե փորձ է արվում Null արժեքը նշանակել այնպիսի փոփոխականի, որի տեսակը չի ենթադրում անորոշ վիճակ, օրինակ՝ int, կհայտնվի սխալ:
Dart 2.12-ի մեկ այլ կարևոր բարելավումը FFI գրադարանի կայուն ներդրումն է, որը հնարավորություն է տալիս ստեղծել բարձր արդյունավետությամբ կոդ, որը կարող է մուտք գործել C API-ներ: Կատարվել են արդյունավետության և չափի օպտիմալացումներ: Ավելացվել են մշակողի գործիքներ և Flutter-ի միջոցով գրված կոդի պրոֆիլավորման համակարգ, ինչպես նաև Dart և Flutter հավելվածներ մշակելու նոր պլագիններ: Android Studio/IntelliJ և VS Code։

Source: opennet.ru
