Dart 2.14 dili və Flutter 2.5 çərçivəsi mövcuddur

Google Dart 2.14 proqramlaşdırma dilinin buraxılışını nəşr etdi, o, Dart 2-nin köklü şəkildə yenidən işlənmiş qolunun inkişafını davam etdirir, Dart dilinin orijinal versiyasından güclü statik yazmanın istifadəsi ilə fərqlənir (növlər avtomatik olaraq müəyyən edilə bilər, buna görə də növlərin göstərilməsinə ehtiyac yoxdur, lakin dinamik tipləmə artıq istifadə edilmir və ilkin olaraq hesablanan tip dəyişənə təyin edilir və sonradan ciddi tip yoxlaması tətbiq edilir).

Dart dilinin xüsusiyyətləri:

  • JavaScript, C və Java proqramçıları üçün təbii olan tanış və öyrənilməsi asan sintaksis.
  • Portativ cihazlardan tutmuş güclü serverlərə qədər bütün müasir veb-brauzerlər və müxtəlif növ mühitlər üçün sürətli işə salınma və yüksək performansın təmin edilməsi.
  • Mövcud metod və məlumatların inkapsulyasiyasına və təkrar istifadəsinə imkan verən sinifləri və interfeysləri müəyyən etmək bacarığı.
  • Növlərin müəyyən edilməsi səhvləri aradan qaldırmağı və aşkar etməyi asanlaşdırır, kodu daha aydın və oxunaqlı edir və üçüncü tərəf tərtibatçıları tərəfindən onun dəyişdirilməsini və təhlilini asanlaşdırır.
  • Dəstəklənən növlərə aşağıdakılar daxildir: müxtəlif növ heşlər, massivlər və siyahılar, növbələr, rəqəmli və sətir tipləri, tarix və vaxtı təyin etmək üçün növlər, müntəzəm ifadələr (RegExp). Öz növlərinizi yaratmaq mümkündür.
  • Paralel icranı təşkil etmək üçün kodu ayrı bir yaddaş sahəsində tamamilə təcrid olunmuş məkanda yerinə yetirilən, mesajların göndərilməsi ilə əsas proseslə qarşılıqlı əlaqədə olan isolate atributlu siniflərdən istifadə etmək təklif olunur.
  • Böyük veb layihələrin dəstəklənməsini və sazlanmasını asanlaşdıran kitabxanaların istifadəsinə dəstək. Funksiyaların üçüncü tərəf tətbiqləri ortaq kitabxanalar şəklində daxil edilə bilər. Tətbiqləri hissələrə bölmək və hər bir hissənin işlənməsini ayrıca proqramçılar komandasına həvalə etmək olar.
  • Dart dilində inkişafı dəstəkləmək üçün hazır alətlər toplusu, o cümlədən dinamik inkişaf və kod korreksiyası ilə sazlama vasitələrinin tətbiqi (“redaktə et və davam et”).
  • Dart dilində inkişafı asanlaşdırmaq üçün o, SDK, paket meneceri pub, statik kod analizatoru dart_analyzer, kitabxanalar dəsti, inteqrasiya olunmuş inkişaf mühiti DartPad və IntelliJ IDEA, WebStorm, Emacs, Sublime Text üçün Dart-la aktivləşdirilən plaginlərlə gəlir. 2 və Vim.
  • Kitabxanalar və kommunal xidmətlər olan əlavə paketlər 20 mindən çox paketi olan pub repozitoriyası vasitəsilə paylanır.

Dart 2.14 buraxılışında əsas dəyişikliklər:

  • “>>” operatorundan fərqli olaraq arifmetik deyil, işarə bitini nəzərə almadan işləyən məntiqi yerdəyişmə yerinə yetirən yeni üçqat sürüşmə operatoru (>>>) əlavə edildi (köçürmə bölünmədən həyata keçirilir). müsbət və mənfi ədədlər).
  • Ümumi funksiya növlərinin növ arqumenti kimi istifadə edilməsinə mane olan növ arqumentləri üzrə məhdudiyyət aradan qaldırıldı. Məsələn, indi təyin edə bilərsiniz: gec Siyahı (T)>idFunctions; var geri çağırış = [ (T dəyəri) => dəyər]; gec S Funksiyası (T)>(S) f;
  • @Deprecated kimi annotasiyalarda növlərlə arqumentlərin göstərilməsinə icazə verin. Məsələn, indi təyin edə bilərsiniz: @TypeHelper (42, "Məna")
  • Hash, hashAll və hashAllUnordered statik üsulları Object sinfində standart kitabxanaya (əsas) əlavə edilmişdir. DateTime sinfi bir saata bölünməyən yay və qış vaxtı arasında saatları çevirərkən yerli vaxtın idarə edilməsini təkmilləşdirmişdir (məsələn, Avstraliyada 30 dəqiqəlik ofsetdən istifadə olunur). Ffi paketi resursları avtomatik olaraq buraxan arena yaddaşının bölüşdürülməsi mexanizmi üçün dəstək əlavə etdi. Ffigen paketi C dilindən Dart növlərinin typedef təriflərini yaratmaq imkanı əlavə etdi.
  • Pub.dev repozitoriyasından ən populyar 250 paket və ilk 94 paketin 1000%-i “null təhlükəsizlik” rejimindən istifadəyə keçib, bu, dəyəri qeyri-müəyyən və “Null” olaraq təyin edilmiş dəyişənlərdən istifadə cəhdləri nəticəsində yaranan qəzaların qarşısını alacaq. ” " Rejim o deməkdir ki, dəyişənlərə açıq şəkildə null dəyəri təyin edilmədikcə null dəyərləri ola bilməz. Rejim dəyişən tiplərə ciddi şəkildə hörmət edir ki, bu da kompilyatora əlavə optimallaşdırmalar tətbiq etməyə imkan verir. Tip uyğunluğu kompilyasiya zamanı yoxlanılır, məsələn, “Null” dəyərini “int” kimi qeyri-müəyyən vəziyyəti nəzərdə tutmayan tipli dəyişənə təyin etməyə cəhd etsəniz, xəta göstərilir.
  • Dart və Flutter çərçivəsi üçün kod stili təlimatlarına uyğunluğu yoxlamaq üçün eyni vaxtda dəstək verən kod analizatoru (linter) üçün vahid qaydalar dəstləri təklif olunur. Tarixi səbəblərə görə, Flutter və Dart üçün kodlaşdırma qaydaları fərqli idi, əlavə olaraq, Dart üçün istifadə olunan iki qaydalar dəsti var idi - Google-dan pedantik olanlar və Dart tərtibatçı cəmiyyətinin qaydaları. Dart 2.14 yeni Dart layihələrində və Flutter SDK-da standart olaraq istifadə edilməsinə qərar verilən linter üçün yeni ümumi qaydalar toplusunu təqdim edir. Dəstə əsas qaydalar (lints/core.yaml paketi), tövsiyə olunan əlavə qaydalar (lints/recommended.yaml) və Flutter-ə xüsusi tövsiyələr (flutter_lints/flutter.yaml) daxildir. Pedantik qaydaların istifadəçilərinə Dart sənədlərinin tövsiyələri əsasında yeni kodlaşdırma üslubundan istifadə etməyə keçmələri tövsiyə olunur.
  • Formatlaşdırıcıda kaskad kod bloklarının formatlaşdırılmasına optimallaşdırmalar edilmişdir ki, bu da formatlaşdırma performansını əhəmiyyətli dərəcədə yaxşılaşdıra və ifadə elementlərinin mülkiyyət hüququnun qeyri-müəyyən şərhinin qarşısını ala bilər. Məsələn, "..doIt" ifadəsində "var nəticə = errorState ? foo : bad..doIt()” “pis” blokun şərti hissəsinə deyil, bütün ifadəyə aiddir, ona görə də formatlaşdırarkən indi ayrılır: var result = errorState ? foo : pis ..doIt();
  • Apple M1 (Silicon) prosessorları üçün dəstək SDK-ya əlavə edilib ki, bu da həm Apple Silicon prosessoru olan sistemlərdə Dart VM-ni, kommunal proqramları və SDK komponentlərini işə salmaq imkanı, həm də bu çiplər üçün icra edilə bilən faylların tərtib edilməsi dəstəyini nəzərdə tutur.
  • "Dart pub" əmri paketi pub.dev repozitoriyasına dərc edərkən buraxılacaq faylların siyahısını müəyyən etməyə imkan verən yeni ".pubignore" xidmət faylı üçün dəstək əlavə edib. Bu parametrlər “.gitignore” iqnor siyahısına mane olmur (bəzi hallarda pub.dev Git-də lazım olan faylları, məsələn, inkişaf zamanı istifadə olunan daxili skriptləri köçürməkdən çəkinə bilər).
  • Versiya nömrəsi dəyişməyibsə, pubspec dəyişdirildikdən sonra testlərin yenidən tərtib edilməsini tələb etməyən “dart test” əmrinin işini yaxşılaşdırmaq üçün işlər görülüb.
  • ECMAScript 5 uyğunluq rejimində kompilyasiya dəstəyi dayandırıldı (dəyişiklik IE11 brauzeri ilə uyğunluğun itirilməsi ilə nəticələnəcək).
  • Stephand, dartfmt və dart2native fərdi yardım proqramları köhnəlmiş elan edildi, dart yardım proqramı vasitəsilə çağırılan daxili əmrlərlə əvəz olundu.
  • VM Native Extensions mexanizmi köhnəldi. Dart kodundan yerli kodu çağırmaq üçün yeni Dart FFI (Xarici Funksiya İnterfeysi) istifadə etmək tövsiyə olunur.

Eyni zamanda, React Native-ə alternativ hesab edilən və bir kod bazası əsasında iOS, Android, Windows, macOS və Linux üçün proqramları buraxmağa imkan verən Flutter 2.5 istifadəçi interfeysi çərçivəsinin əhəmiyyətli buraxılışı təqdim edildi. platformalar, həmçinin brauzerlərdə işləmək üçün proqramlar yaratmaq. Google tərəfindən hazırlanmış Fuchsia mikrokernel əməliyyat sistemi üçün xüsusi qabıq Flutter əsasında qurulub.

Flutter kodunun əsas hissəsi Dart dilində həyata keçirilir və proqramların icrası üçün iş vaxtı mühərriki C++ dilində yazılmışdır. Tətbiqlər hazırlayarkən Flutterin doğma Dart dilindən əlavə, siz C/C++ kodunu çağırmaq üçün Dart Xarici Funksiya interfeysindən istifadə edə bilərsiniz. Yüksək icra performansı tətbiqləri hədəf platformalar üçün yerli koda tərtib etməklə əldə edilir. Bu halda, hər dəyişiklikdən sonra proqramın yenidən tərtib edilməsinə ehtiyac yoxdur - Dart, işləyən proqrama dəyişikliklər etməyə və dərhal nəticəni qiymətləndirməyə imkan verən qaynar yenidən yükləmə rejimini təmin edir.

Flutter 2.5-də əsas dəyişikliklər:

  • Əhəmiyyətli performans optimallaşdırmaları etdi. iOS və macOS platformalarında Metal qrafika API üçün şeyderlərin əvvəlcədən tərtibi həyata keçirilib. Asinxron hadisələrin işlənməsinin təkmilləşdirilmiş səmərəliliyi. Zibil toplayıcı istifadə olunmamış şəkillərdən yaddaşı bərpa edərkən gecikmələrlə bağlı problem həll edildi (məsələn, 20 saniyəlik animasiyalı GIF-in oxunması zamanı zibil toplama əməliyyatlarının sayı 400-dən 4-ə endirildi. Dart və Objective- arasında mesajların ötürülməsi zamanı gecikmələr. C/Swift 50%-ə endirildi (iOS) və ya Java/Kotlin (Android) Apple Silicon çipinə əsaslanan sistemlər üçün yerli quraşdırma dəstəyi əlavə edildi.
    Dart 2.14 dili və Flutter 2.5 çərçivəsi mövcuddur
  • Android platforması üçün proqramların tam ekran rejimində işləməsi üçün dəstək yaradılıb. Yeni nəsil Material Design variantı kimi təqdim edilən “Material You” dizayn konsepsiyasının həyata keçirilməsi davam etdirildi. MaterialState.scrolledUnder yeni vəziyyəti əlavə edildi, ölçüsünü dəyişdirərkən sürüşmə çubuqlarının dinamik ekranını həyata keçirdi və bildiriş bannerlərini göstərmək üçün yeni interfeys təklif etdi.
  • Kamera plagininin imkanları əhəmiyyətli dərəcədə genişləndirilmiş, avtofokus, ekspozisiya, flaş, böyütmə, səs-küyün azaldılması və ayırdetmə qabiliyyətinə nəzarət üçün alətlər əlavə edilmişdir.
  • Tərtibatçı alətləri (DevTools) yenilənmiş vidjet yoxlama rejimini, həmçinin göstərmə gecikmələrini müəyyən etmək və şeyder tərtibini izləmək üçün alətləri daxil etmək üçün təkmilləşdirilmişdir.
    Dart 2.14 dili və Flutter 2.5 çərçivəsi mövcuddur
  • Visual Studio Code və IntelliJ/Android Studio üçün təkmilləşdirilmiş plaginlər.

Mənbə: opennet.ru

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