Dart 2.14 хэл болон Flutter 2.5 фреймворк ашиглах боломжтой

Google компани Dart 2.14 програмчлалын хэлийг гаргасан бөгөөд энэ нь Dart 2-ын үндсэн хувилбараас хүчтэй статик бичих (төрлийг автоматаар дүгнэх боломжтой) ашиглан эрс өөрчилсөн Dart XNUMX салбарыг үргэлжлүүлэн хөгжүүлж байна. төрлүүд шаардлагагүй, гэхдээ динамик бичихийг ашиглахаа больсон бөгөөд анхны тооцооллыг тухайн төрлийг хувьсагчдад оноож, дараа нь хатуу төрлийн шалгалтыг хэрэглэнэ).

Дарт хэлний онцлог:

  • JavaScript, C, Java программистуудад зориулсан танил, сурахад хялбар синтакс.
  • Зөөврийн төхөөрөмжөөс эхлээд хүчирхэг серверүүд хүртэл орчин үеийн бүх вэб хөтчүүд болон янз бүрийн төрлийн орчныг хурдан эхлүүлэх, өндөр гүйцэтгэлийг хангах.
  • Одоо байгаа арга, өгөгдлийг багтаах, дахин ашиглах боломжийг олгодог анги, интерфейсийг тодорхойлох чадвар.
  • Төрлийг зааж өгөх нь дибаг хийх, алдааг тодорхойлоход хялбар болгож, кодыг илүү ойлгомжтой, уншихад хялбар болгож, гуравдагч этгээдийн хөгжүүлэгчид өөрчлөх, дүн шинжилгээ хийхэд хялбар болгодог.
  • Дэмжигдсэн төрлүүдэд: төрөл бүрийн хэш, массив ба жагсаалт, дараалал, тоон болон мөрийн төрлүүд, огноо, цагийг тодорхойлох төрөл, ердийн илэрхийлэл (RegExp) орно. Өөрийнхөө төрлийг бий болгох боломжтой.
  • Зэрэгцээ гүйцэтгэлийг зохион байгуулахын тулд код нь тусдаа санах ойн бүсэд бүхэлдээ тусгаарлагдсан орон зайд, мессеж илгээх замаар үндсэн процесстой харьцдаг, тусгаарлах шинж чанартай ангиудыг ашиглахыг санал болгож байна.
  • Томоохон вэб төслүүдийг дэмжих, дибаг хийхийг хялбаршуулдаг номын сангуудыг ашиглахад дэмжлэг үзүүлэх. Гуравдагч этгээдийн функцүүдийн хэрэгжилтийг дундын номын сангийн хэлбэрээр оруулж болно. Аппликейшнүүдийг хэсэг болгон хувааж, хэсэг тус бүрийн боловсруулалтыг програмистуудын тусдаа багт даатгаж болно.
  • Dart хэл дээрх хөгжлийг дэмжих бэлэн хэрэгслүүдийн багц, үүнд код засах динамик хөгжүүлэлт, дибаг хийх хэрэгслийг шууд хэрэгжүүлэх (“засварлах, үргэлжлүүлэх”).
  • Dart хэл дээрх хөгжлийг хялбарчлахын тулд энэ нь SDK, багц менежер паб, статик код анализатор dart_analyzer, номын сангуудын багц, DartPad хөгжүүлэлтийн нэгдсэн орчин, IntelliJ IDEA, WebStorm, Emacs, Sublime Text-д зориулсан Dart-ийг идэвхжүүлсэн залгаасуудтай ирдэг. 2 ба Vim.
  • Номын сан, хэрэгслүүд бүхий нэмэлт багцуудыг 20 мянга гаруй багц бүхий паб репозитороор дамжуулан түгээдэг.

Dart 2.14 хувилбарт гарсан томоохон өөрчлөлтүүд:

  • Гурвалсан ээлжийн шинэ оператор (>>>) нэмэгдсэн бөгөөд энэ нь ">>" оператороос ялгаатай нь арифметик биш, харин тэмдгийн битийг харгалзахгүйгээр ажилладаг логик шилжилтийг гүйцэтгэдэг (шилжилтийг хуваахгүйгээр гүйцэтгэдэг) эерэг ба сөрөг тоо).
  • Ерөнхий функцийн төрлийг төрлийн аргумент болгон ашиглахаас сэргийлсэн төрлийн аргументуудын хязгаарлалтыг арилгасан. Жишээлбэл, одоо та дараахыг зааж өгч болно: хожуу жагсаалт (T)>idFunctions; var back call = [ (T утга) => утга]; хожуу S функц (T)>(S) f;
  • @Deprecated гэх мэт тэмдэглэгээнд төрөлтэй аргументуудыг зааж өгөхийг зөвшөөрөх. Жишээлбэл, та одоо дараахыг зааж өгч болно: @TypeHelper (42, "Утга")
  • Hash, hashAll болон hashAllUnordered статик аргуудыг Object ангиллын стандарт номын санд (гол) нэмсэн. DateTime анги нь нэг цагт хуваагддаггүй зун, өвлийн цагийн хооронд цагийг хөрвүүлэхэд орон нутгийн цагийг ашиглах чадварыг сайжруулсан (жишээлбэл, Австралид 30 минутын зөрүүг ашигладаг). Ffi багц нь нөөцийг автоматаар гаргадаг arena санах ойн хуваарилалтын механизмын дэмжлэгийг нэмсэн. Ffigen багц нь C хэлнээс Dart төрлүүдийн typedef тодорхойлолтыг үүсгэх чадварыг нэмсэн.
  • pub.dev репозитороос хамгийн алдартай 250 багц, шилдэг 94 багцын 1000% нь "null security" горимд шилжсэн бөгөөд энэ нь утга нь тодорхойгүй, "Null" гэж тохируулсан хувьсагчдыг ашиглах оролдлогын улмаас үүсэх эвдрэлээс зайлсхийх болно. "" Энэ горим нь хувьсагчдад null утгыг тодорхой зааж өгөөгүй л бол null утгатай байж болохгүй гэсэн үг юм. Энэ горим нь хувьсагчийн төрлүүдийг хатуу хүндэтгэдэг бөгөөд энэ нь хөрвүүлэгчид нэмэлт оновчлол хийх боломжийг олгодог. Төрөл нийцэж байгаа эсэхийг эмхэтгэх үед шалгадаг, жишээлбэл, "int" гэх мэт тодорхойгүй төлөвтэй хувьсагчид "Null" утгыг оноохыг оролдвол алдаа гарч ирнэ.
  • Dart болон Flutter фреймворкийн кодын загварын удирдамжтай нийцэж байгаа эсэхийг шалгахад нэгэн зэрэг дэмжлэг үзүүлэх кодын анализатор (линтер)-ийн нэгдсэн дүрмийн багцыг санал болгож байна. Түүхэн шалтгааны улмаас Flutter болон Dart-ийн кодчиллын дүрмүүд өөр байсан бөгөөд үүнээс гадна Dart-ийн хувьд Google-ийн педантик дүрэм, Dart хөгжүүлэгчдийн нийгэмлэгийн дүрэм гэсэн хоёр багц дүрмийг ашигладаг байсан. Dart 2.14 нь шинэ Dart төслүүд болон Flutter SDK-д анхдагчаар ашиглахаар шийдсэн linter-ийн шинэ нийтлэг дүрмийг танилцуулж байна. Энэхүү багцад үндсэн дүрмүүд (lints/core.yaml багц), санал болгосон нэмэлт дүрмүүд (lints/recommended.yaml) болон Flutter-ийн тусгай зөвлөмжүүд (flutter_lints/flutter.yaml) багтсан болно. Педантик дүрмийн хэрэглэгчид Dart баримт бичгийн зөвлөмжийн дагуу шинэ кодчилол ашиглахыг зөвлөж байна.
  • Форматлагч дээр шаталсан кодын блокуудын форматыг оновчтой болгосон бөгөөд энэ нь форматын гүйцэтгэлийг мэдэгдэхүйц сайжруулж, илэрхийлэлийн элементүүдийн өмчлөлийн талаар хоёрдмол утгатай тайлбараас зайлсхийх боломжтой. Жишээ нь, "var үр дүн = errorState" илэрхийлэл дэх "..doIt" -ийг дуудаж байна уу? foo : bad..doIt()” нь “муу” блокийн нөхцөлт хэсэг биш, харин бүх илэрхийлэлд хамаатай тул форматлахдаа одоо тусгаарлагдана: var result = errorState ? foo : муу ..doIt();
  • Apple M1 (Silicon) процессоруудын дэмжлэгийг SDK-д нэмсэн нь Apple Silicon процессортой систем дээр Dart VM, хэрэгслүүд болон SDK бүрэлдэхүүн хэсгүүдийг ажиллуулах, мөн эдгээр чипүүдэд гүйцэтгэх боломжтой файлуудыг хөрвүүлэхэд дэмжлэг үзүүлэх боломжтой гэсэн үг юм.
  • "Dart pub" команд нь ".pubignore" шинэ үйлчилгээний файлын дэмжлэгийг нэмсэн бөгөөд энэ нь pub.dev репозиторт багц нийтлэх үед алгасах файлуудын жагсаалтыг тодорхойлох боломжийг олгодог. Эдгээр тохиргоо нь ".gitignore" үл тоомсорлох жагсаалтад саад болохгүй (зарим тохиолдолд pub.dev нь Git-д шаардлагатай файлуудыг, жишээлбэл, хөгжүүлэлтийн явцад ашигласан дотоод скриптүүдийг шилжүүлэхээс зайлсхийхийг хүсч болно).
  • Хувилбарын дугаар өөрчлөгдөөгүй бол pubspec-ийг өөрчилсний дараа дахин тест хийх шаардлагагүй болсон "dart test" командын гүйцэтгэлийг сайжруулах ажил хийгдсэн.
  • ECMAScript 5 нийцтэй горимд эмхэтгэх дэмжлэг зогссон (өөрчлөлт нь IE11 хөтөчтэй нийцэхгүй болоход хүргэнэ).
  • Stagehand, dartfmt болон dart2native-ийн бие даасан хэрэгслүүдийг хуучирсан гэж зарлаж, dart хэрэгслээр дамжуулан дуудагдсан суулгасан командуудаар сольсон.
  • VM Native Өргөтгөлийн механизм хуучирсан. Dart кодоос эх код руу залгахын тулд шинэ Dart FFI (Гадаад функцийн интерфейс) ашиглахыг зөвлөж байна.

Үүний зэрэгцээ, React Native-ийн өөр хувилбар гэж тооцогддог Flutter 2.5 хэрэглэгчийн интерфэйсийн хүрээний томоохон хувилбарыг танилцуулсан бөгөөд нэг кодын суурь дээр үндэслэн iOS, Android, Windows, macOS болон бусад үйлдлийн системд зориулсан програмуудыг гаргах боломжийг олгодог. Линукс платформууд, түүнчлэн хөтөч дээр ажиллах програмуудыг бий болгох. Google-ийн боловсруулсан Fuchsia microkernel үйлдлийн системд зориулсан тусгай бүрхүүл нь Flutter-ийн үндсэн дээр бүтээгдсэн.

Flutter кодын үндсэн хэсэг нь Dart хэл дээр хэрэгждэг бөгөөд програмуудыг гүйцэтгэх ажиллах үеийн хөдөлгүүр нь C++ хэл дээр бичигдсэн байдаг. Аппликэйшнүүдийг боловсруулахдаа Flutter-ийн төрөлх Dart хэлээс гадна Dart Foreign Function интерфейсийг ашиглан C/C++ код руу залгаж болно. Зорилтот платформд зориулсан програмуудыг эх код болгон хөрвүүлэх замаар гүйцэтгэлийн өндөр гүйцэтгэлд хүрдэг. Энэ тохиолдолд програмыг өөрчлөлт бүрийн дараа дахин хөрвүүлэх шаардлагагүй - Dart нь ажиллаж байгаа програмд ​​өөрчлөлт оруулах, үр дүнг шууд үнэлэх боломжийг олгодог халуун дахин ачаалах горимыг өгдөг.

Flutter 2.5-ийн томоохон өөрчлөлтүүд:

  • Гүйцэтгэлийн чухал оновчлолуудыг хийсэн. iOS болон macOS платформ дээр Метал график API-д зориулсан шэйдерүүдийн урьдчилсан эмхэтгэлийг хэрэгжүүлсэн. Асинхрон үйл явдлыг боловсруулах үр ашиг сайжирсан. Хог цуглуулагч ашиглаагүй зургуудаас санах ойг сэргээхэд саатал гарсан асуудлыг шийдсэн (жишээлбэл, 20 секундын хөдөлгөөнт GIF-г тоглуулах үед хог цуглуулах үйлдлүүдийн тоог 400-аас 4 болгон бууруулсан. Dart болон Objective- хооронд мессеж дамжуулахад саатал гарсан) C/Swift-ийг 50% (iOS) эсвэл Java/Kotlin (Android) болгон бууруулж, Apple Silicon чип дээр суурилсан системүүдийн эх бүтээх дэмжлэгийг нэмсэн.
    Dart 2.14 хэл болон Flutter 2.5 фреймворк ашиглах боломжтой
  • Андройд платформын хувьд програмуудыг бүтэн дэлгэцийн горимд ажиллуулах дэмжлэгийг бий болгосон. Дараагийн үеийн Материал дизайны хувилбар болгон танилцуулсан "Материал Та" дизайны концепцийн хэрэгжилт үргэлжилсэн. MaterialState.scrolledUnder-ийн шинэ төлөвийг нэмж, хэмжээг өөрчлөх үед гүйлгэх самбаруудын динамик дэлгэцийг хэрэгжүүлж, мэдэгдлийн баннеруудыг харуулах шинэ интерфэйсийг санал болгов.
  • Камерын залгуурын чадавхийг мэдэгдэхүйц өргөжүүлж, автофокус, өртөлт, флэш, томруулах, дуу чимээг бууруулах, нягтралыг хянах хэрэгслүүд нэмэгдсэн.
  • Хөгжүүлэгчийн хэрэгслүүд (DevTools) нь шинэчлэгдсэн виджет шалгах горим, мөн үзүүлэх саатлыг тодорхойлох, шэйдерийн эмхэтгэлийг хянах хэрэгслүүдийг агуулсан сайжруулсан.
    Dart 2.14 хэл болон Flutter 2.5 фреймворк ашиглах боломжтой
  • Visual Studio Code болон IntelliJ/Android Studio-д зориулсан сайжруулсан залгаасууд.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх