Available ang Dart 2.14 na wika at Flutter 2.5 framework

Inilathala ng Google ang paglabas ng Dart 2.14 programming language, na nagpapatuloy sa pagbuo ng isang sangay ng Dart 2 na radikal na muling idisenyo, na naiiba sa orihinal na bersyon ng wikang Dart sa paggamit ng malakas na static na pag-type (maaaring awtomatikong matukoy ang mga uri, kaya tinukoy ang mga uri ay hindi kinakailangan, ngunit ang dynamic na pag-type ay hindi na ginagamit at ang paunang kalkulasyon ang uri ay itinalaga sa variable at ang mahigpit na pagsusuri ng uri ay inilapat pagkatapos).

Mga tampok ng wikang Dart:

  • Pamilyar at madaling matutunan ang syntax, natural para sa JavaScript, C at Java programmer.
  • Tinitiyak ang mabilis na paglulunsad at mataas na pagganap para sa lahat ng modernong web browser at iba't ibang uri ng mga kapaligiran, mula sa mga portable na device hanggang sa makapangyarihang mga server.
  • Ang kakayahang tukuyin ang mga klase at interface na nagbibigay-daan sa encapsulation at muling paggamit ng mga kasalukuyang pamamaraan at data.
  • Ang pagtukoy ng mga uri ay nagpapadali sa pag-debug at pagtukoy ng mga error, ginagawang mas malinaw at mas nababasa ang code, at pinapasimple ang pagbabago at pagsusuri nito ng mga third-party na developer.
  • Kasama sa mga sinusuportahang uri ang: iba't ibang uri ng mga hash, array at listahan, mga pila, numeric at mga uri ng string, mga uri para sa pagtukoy ng petsa at oras, mga regular na expression (RegExp). Posible na lumikha ng iyong sariling mga uri.
  • Upang ayusin ang parallel execution, iminungkahi na gumamit ng mga klase na may ihiwalay na katangian, ang code na kung saan ay ganap na isinasagawa sa nakahiwalay na espasyo sa isang hiwalay na lugar ng memorya, na nakikipag-ugnayan sa pangunahing proseso sa pamamagitan ng pagpapadala ng mga mensahe.
  • Suporta para sa paggamit ng mga aklatan na nagpapasimple sa suporta at pag-debug ng malalaking proyekto sa web. Maaaring isama ang mga third-party na pagpapatupad ng mga function sa anyo ng mga shared library. Maaaring hatiin ang mga aplikasyon sa mga bahagi at ipagkatiwala ang pagbuo ng bawat bahagi sa isang hiwalay na pangkat ng mga programmer.
  • Isang hanay ng mga tool na handa na upang suportahan ang pag-unlad sa wikang Dart, kabilang ang pagpapatupad ng mga dynamic na pag-develop at mga tool sa pag-debug na may mabilis na pagwawasto ng code ("edit-and-continue").
  • Upang pasimplehin ang pag-develop sa wikang Dart, ito ay may kasamang SDK, isang package manager pub, isang static code analyzer dart_analyzer, isang set ng mga library, isang integrated development environment na DartPad at Dart-enabled na mga plugin para sa IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 at Vim.
  • Ang mga karagdagang pakete na may mga aklatan at kagamitan ay ipinamamahagi sa pamamagitan ng pub repository, na mayroong higit sa 20 libong mga pakete.

Mga pangunahing pagbabago sa paglabas ng Dart 2.14:

  • Ang isang bagong triple shift operator (>>>) ay naidagdag, na, hindi katulad ng ">>" operator, ay hindi gumaganap ng isang aritmetika, ngunit isang lohikal na shift na gumagana nang hindi isinasaalang-alang ang sign bit (ang shift ay ginaganap nang hindi nahahati sa positibo at negatibong mga numero).
  • Inalis ang paghihigpit sa mga argumento ng uri na pumipigil sa paggamit ng mga generic na uri ng function bilang isang argument ng uri. Halimbawa, maaari mo na ngayong tukuyin ang: late List (T)>idFunctions; var callback = [ (T value) => halaga]; late S Function (T)>(S) f;
  • Payagan ang pagtukoy ng mga argumento na may mga uri sa mga anotasyon gaya ng @Deprecated. Halimbawa, maaari mo na ngayong tukuyin ang: @TypeHelper (42, "Ang kahulugan")
  • Ang mga static na pamamaraan na hash, hashAll at hashAllUnordered ay naidagdag sa karaniwang library (core) sa klase ng Object. Pinahusay ng klase ng DateTime ang lokal na oras kapag nagko-convert ng mga orasan sa pagitan ng tag-araw at taglamig na hindi nahahati ng isang oras (halimbawa, sa Australia, ginagamit ang offset na 30 minuto). Ang ffi package ay nagdagdag ng suporta para sa mekanismo ng paglalaan ng memorya ng arena, na awtomatikong naglalabas ng mga mapagkukunan. Ang ffigen package ay nagdagdag ng kakayahang bumuo ng mga typedef na kahulugan ng mga uri ng Dart mula sa C na wika.
  • Ang 250 pinakasikat na package mula sa repository ng pub.dev at 94% ng top-1000 ay inilipat sa paggamit ng "null safety" mode, na maiiwasan ang mga pag-crash na dulot ng mga pagtatangka na gumamit ng mga variable na ang halaga ay hindi natukoy at nakatakda sa "Null " " Ang mode ay nagpapahiwatig na ang mga variable ay hindi maaaring magkaroon ng mga null na halaga maliban kung sila ay tahasang itinalaga ang halaga na null. Mahigpit na nirerespeto ng mode ang mga uri ng variable, na nagpapahintulot sa compiler na maglapat ng mga karagdagang pag-optimize. Ang uri ng pagsunod ay sinusuri sa oras ng pag-compile, halimbawa, kung susubukan mong italaga ang value na "Null" sa isang variable na may uri na hindi nagpapahiwatig ng hindi natukoy na estado, tulad ng "int", isang error ang ipapakita.
  • Ang pinag-isang hanay ng mga panuntunan para sa code analyzer (linter) ay iminungkahi, na nagbibigay ng sabay-sabay na suporta para sa pagsuri sa pagsunod sa mga alituntunin sa istilo ng code para sa Dart at ang Flutter framework. Para sa mga makasaysayang kadahilanan, ang mga panuntunan sa pag-coding para sa Flutter at Dart ay magkaiba, bilang karagdagan, para sa Dart ay mayroong dalawang hanay ng mga panuntunang ginagamit - mga pedantic mula sa Google at mga panuntunan mula sa komunidad ng developer ng Dart. Ang Dart 2.14 ay nagpapakilala ng bagong karaniwang hanay ng mga panuntunan para sa linter, na napagpasyahan na gamitin bilang default sa mga bagong proyekto ng Dart at sa Flutter SDK. Kasama sa set ang mga pangunahing panuntunan (lints/core.yaml package), inirerekomendang mga karagdagang panuntunan (lints/recommended.yaml), at Flutter-specific na rekomendasyon (flutter_lints/flutter.yaml). Pinapayuhan ang mga gumagamit ng pedantic rules na lumipat sa paggamit ng bagong istilo ng coding batay sa mga rekomendasyon mula sa dokumentasyon ng Dart.
  • Sa formatter, ang mga pag-optimize ay ginawa sa pag-format ng mga cascading code block, na maaaring makabuluhang mapabuti ang pagganap ng pag-format at maiwasan ang hindi maliwanag na interpretasyon ng pagmamay-ari ng mga elemento ng expression. Halimbawa, ang pagtawag sa "..doIt" sa expression na "var result = errorState ? foo : bad..doIt()" ay hindi tumutukoy sa kondisyonal na bahagi ng "masamang" bloke, ngunit ang buong expression, kaya kapag ang pag-format ay hiwalay na ito ngayon: var result = errorState ? foo : masama ..doIt();
  • Ang suporta para sa mga processor ng Apple M1 (Silicon) ay idinagdag sa SDK, na nagpapahiwatig ng parehong kakayahang patakbuhin ang Dart VM, mga utility at mga bahagi ng SDK sa mga system na may processor ng Apple Silicon, at suporta para sa pag-compile ng mga executable na file para sa mga chip na ito.
  • Ang command na "dart pub" ay nagdagdag ng suporta para sa isang bagong file ng serbisyo na ".pubignore", na nagbibigay-daan sa iyong tukuyin ang isang listahan ng mga file na lalaktawan kapag nag-publish ng package sa repository ng pub.dev. Ang mga setting na ito ay hindi nakakasagabal sa listahan ng ".gitignore" na balewalain (sa ilang sitwasyon, maaaring iwasan ng pub.dev ang paglilipat ng mga file na kailangan sa Git, halimbawa, mga panloob na script na ginagamit sa panahon ng pag-develop).
  • Ang trabaho ay ginawa upang mapabuti ang pagganap ng "dart test" na utos, na ngayon ay hindi nangangailangan ng muling pag-compile ng mga pagsubok pagkatapos baguhin ang pubspec kung ang numero ng bersyon ay hindi nagbago.
  • Ang suporta para sa compilation sa ECMAScript 5 compatibility mode ay hindi na ipinagpatuloy (ang pagbabago ay magreresulta sa pagkawala ng compatibility sa IE11 browser).
  • Ang mga indibidwal na utility stagehand, dartfmt at dart2native ay idineklara na hindi na ginagamit, pinalitan ng mga built-in na command na tinatawag sa pamamagitan ng dart utility.
  • Ang mekanismo ng VM Native Extensions ay hindi na ginagamit. Upang tumawag sa katutubong code mula sa Dart code, inirerekomendang gamitin ang bagong Dart FFI (Foreign Function Interface).

Kasabay nito, ipinakita ang isang makabuluhang paglabas ng balangkas ng user interface na Flutter 2.5, na itinuturing na alternatibo sa React Native at nagbibigay-daan, batay sa isang base ng code, na maglabas ng mga application para sa iOS, Android, Windows, macOS at Mga platform ng Linux, pati na rin ang paglikha ng mga application na tatakbo sa mga browser. Ang isang custom na shell para sa Fuchsia microkernel operating system na binuo ng Google ay binuo batay sa Flutter.

Ang pangunahing bahagi ng Flutter code ay ipinatupad sa wikang Dart, at ang runtime engine para sa pagpapatupad ng mga application ay nakasulat sa C++. Kapag bumubuo ng mga application, bilang karagdagan sa katutubong wika ng Dart ng Flutter, maaari mong gamitin ang interface ng Dart Foreign Function upang tawagan ang C/C++ code. Ang mataas na pagganap ng pagpapatupad ay nakakamit sa pamamagitan ng pag-compile ng mga application sa native code para sa mga target na platform. Sa kasong ito, ang programa ay hindi kailangang i-recompiled pagkatapos ng bawat pagbabago - Dart ay nagbibigay ng isang mainit na reload mode na nagbibigay-daan sa iyo upang gumawa ng mga pagbabago sa isang tumatakbong application at agad na suriin ang resulta.

Mga pangunahing pagbabago sa Flutter 2.5:

  • Gumawa ng makabuluhang pag-optimize ng pagganap. Sa mga platform ng iOS at macOS, ipinatupad ang precompilation ng mga shader para sa Metal graphics API. Pinahusay na kahusayan ng pagproseso ng mga asynchronous na kaganapan. Nalutas ang isang isyu sa mga pagkaantala kapag ang kolektor ng basura ay nagre-reclaim ng memorya mula sa mga hindi nagamit na larawan (halimbawa, sa panahon ng pag-playback ng isang 20 segundong animated na GIF, ang bilang ng mga operasyon sa pangongolekta ng basura ay nabawasan mula 400 hanggang 4. Mga pagkaantala kapag nagpapasa ng mga mensahe sa pagitan ng Dart at Layunin- Ang C/Swift ay binawasan sa 50% (iOS) o Java/Kotlin (Android) Idinagdag ang native build support para sa mga system batay sa Apple Silicon chip.
    Available ang Dart 2.14 na wika at Flutter 2.5 framework
  • Para sa platform ng Android, naitatag ang suporta para sa pagpapatakbo ng mga application sa full screen mode. Ipinagpatuloy ang pagpapatupad ng konsepto ng disenyo na "Material You", na ipinakita bilang susunod na henerasyong opsyon sa Material Design. Nagdagdag ng bagong estado na MaterialState.scrolledUnder, nagpatupad ng dynamic na pagpapakita ng mga scroll bar kapag nagre-resize, at nagmungkahi ng bagong interface para sa pagpapakita ng mga banner ng notification.
  • Ang mga kakayahan ng camera plug-in ay makabuluhang pinalawak, pagdaragdag ng mga tool para sa pagkontrol ng autofocus, exposure, flash, zoom, pagbabawas ng ingay at resolution.
  • Ang mga tool ng developer (DevTools) ay pinahusay upang isama ang isang na-update na mode ng inspeksyon ng widget, pati na rin ang mga tool para sa pagtukoy ng mga pagkaantala sa pag-render at pagsubaybay sa compilation ng shader.
    Available ang Dart 2.14 na wika at Flutter 2.5 framework
  • Mga pinahusay na plugin para sa Visual Studio Code at IntelliJ/Android Studio.

Pinagmulan: opennet.ru

Magdagdag ng komento