Dart 2.14 hom lus thiab Flutter 2.5 lub moj khaum muaj

Google tau tshaj tawm qhov kev tso tawm ntawm Dart 2.14 programming lus, uas txuas ntxiv kev txhim kho ntawm radically redesigned Dart 2 ceg, uas txawv los ntawm cov thawj version ntawm Dart lus nyob rau hauv kev siv ntawm muaj zog static typing (hom yuav inferred txiav, yog li kev qhia. hom tsis tsim nyog, tab sis dynamic typing tsis siv lawm thiab thawj zaug xam cov hom yog muab rau qhov sib txawv thiab nruj hom tshuaj xyuas yog tom qab siv).

Cov yam ntxwv ntawm Dart lus:

  • Paub thiab yooj yim-rau-kawm syntax, ntuj rau JavaScript, C thiab Java programmers.
  • Ua kom muaj kev tshaj tawm sai thiab ua haujlwm siab rau txhua qhov web browsers niaj hnub thiab ntau hom kev ib puag ncig, los ntawm cov khoom siv nqa tau mus rau cov servers muaj zog.
  • Lub peev xwm los txhais cov chav kawm thiab cov interfaces uas tso cai rau encapsulation thiab rov siv cov txheej txheem thiab cov ntaub ntawv uas twb muaj lawm.
  • Kev qhia tshwj xeeb ua rau nws yooj yim dua rau kev debug thiab txheeb xyuas qhov yuam kev, ua rau cov cai meej dua thiab nyeem tau yooj yim, thiab ua kom yooj yim rau nws cov kev hloov kho thiab kev tshuaj xyuas los ntawm cov neeg tsim tawm thib peb.
  • Cov hom kev txhawb nqa muaj xws li: ntau hom hashes, arrays thiab cov npe, queues, cov lej thiab cov hlua, hom kev txiav txim siab hnub thiab sijhawm, cov lus qhia tsis tu ncua (RegExp). Nws yog ua tau los tsim koj tus kheej hom.
  • Txhawm rau txhim kho kev ua kom sib luag, nws tau thov kom siv cov chav kawm nrog tus cwj pwm cais, cov cai ntawm kev ua tiav tag nrho hauv qhov chaw sib cais hauv thaj chaw nco, cuam tshuam nrog cov txheej txheem tseem ceeb los ntawm kev xa cov lus.
  • Kev them nyiaj yug rau kev siv cov tsev qiv ntawv uas yooj yim rau kev txhawb nqa thiab kev debugging ntawm lub vev xaib loj. Thib peb cov kev siv ntawm cov haujlwm tuaj yeem suav nrog hauv daim ntawv ntawm cov tsev qiv ntawv sib koom. Cov ntawv thov tuaj yeem muab faib ua ntu thiab tso siab rau kev txhim kho ntawm txhua ntu rau ib pab pawg neeg ua haujlwm sib cais.
  • Ib txheej ntawm cov cuab yeej npaj tau los txhawb kev txhim kho hauv cov lus Dart, suav nrog kev siv cov kev txhim kho dynamic thiab debugging cov cuab yeej nrog kev kho code ntawm ya ("kho-thiab-mus txuas ntxiv").
  • Txhawm rau kom yooj yim txoj kev loj hlob hauv cov lus Dart, nws los nrog SDK, tus thawj tswj hwm pob pub, tus lej ntsuas tus lej zoo li qub dart_analyzer, pawg tsev qiv ntawv, ib puag ncig kev txhim kho DartPad thiab Dart-enabled plugins rau IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 and Vim.
  • Cov pob khoom ntxiv nrog cov tsev qiv ntawv thiab cov khoom siv hluav taws xob tau muab faib los ntawm cov chaw tso khoom pub dawb, uas muaj ntau dua 20 txhiab pob khoom.

Kev hloov pauv loj hauv Dart 2.14 tso tawm:

  • Tus neeg teb xov tooj hloov tshiab triple (>>>) tau ntxiv, uas, tsis zoo li ">>" tus neeg teb xov tooj, ua tsis tau tus lej lej, tab sis qhov kev hloov pauv uas ua haujlwm yam tsis xav txog qhov kos npe me ntsis (kev hloov pauv tau ua yam tsis tau faib rau hauv tus lej zoo thiab tsis zoo).
  • Tshem tawm cov kev txwv ntawm hom kev sib cav uas tiv thaiv hom kev ua haujlwm ntawm kev siv los ua hom kev sib cav. Piv txwv li, tam sim no koj tuaj yeem qhia meej: Lub Npe lig (T)>idFunctions; var callback = [ (T nqi) => tus nqi]; lig S Function (T)>(S) f;
  • Tso cai qhia cov lus sib cav nrog hom hauv annotations xws li @Deprecated. Piv txwv li, tam sim no koj tuaj yeem hais qhia: @TypeHelper (42, "Lub ntsiab lus")
  • Cov txheej txheem zoo li qub hash, hashAll thiab hashAllUnordered tau ntxiv rau hauv cov tsev qiv ntawv qauv (core) hauv chav kawm Object. Chav kawm DateTime tau txhim kho kev tuav ntawm lub sijhawm hauv zos thaum hloov cov moos ntawm lub caij ntuj sov thiab lub caij ntuj no uas tsis muab faib los ntawm ib teev (piv txwv li, hauv Australia ib qho offset ntawm 30 feeb yog siv). Lub pob ffi tau ntxiv kev txhawb nqa rau lub arena memory allocation mechanism, uas cia li tso cov peev txheej. Lub pob ffigen tau ntxiv lub peev xwm los tsim cov ntsiab lus typedef ntawm Dart hom los ntawm hom C.
  • Lub 250 pob nrov tshaj plaws los ntawm pub.dev repository thiab 94% ntawm cov saum toj kawg nkaus-1000 tau hloov mus rau kev siv "null kev nyab xeeb" hom, uas yuav zam kev sib tsoo los ntawm kev sim siv cov hloov pauv uas nws tus nqi tsis tau txhais thiab teem rau "Null "" Hom implies tias qhov sib txawv tsis tuaj yeem muaj qhov tsis muaj nuj nqis tshwj tsis yog tias lawv tau qhia meej meej rau tus nqi null. Hom nruj me ntsis hwm cov hom sib txawv, uas tso cai rau lub compiler siv cov kev ua kom zoo ntxiv. Hom kev ua raws li kev soj ntsuam ntawm lub sijhawm sib sau, piv txwv li, yog tias koj sim muab tus nqi "Null" rau qhov sib txawv nrog hom uas tsis hais txog lub xeev tsis tau txhais, xws li "int", qhov yuam kev yuav tshwm sim.
  • Cov txheej txheem sib koom ua ke ntawm cov cai rau tus lej ntsuas (linter) tau npaj tseg, muab kev txhawb nqa ib txhij rau kev kuaj xyuas kev ua raws li cov qauv txheej txheem rau Dart thiab Flutter lub moj khaum. Rau cov laj thawj keeb kwm, cov cai coding rau Flutter thiab Dart yog qhov sib txawv, ntxiv rau, rau Dart muaj ob txoj cai siv - pedantic los ntawm Google thiab cov cai los ntawm Dart developer zej zog. Dart 2.14 qhia txog cov txheej txheem tshiab rau linter, uas tau txiav txim siab siv los ntawm lub neej ntawd hauv Dart project tshiab thiab hauv Flutter SDK. Cov txheej txheem suav nrog cov cai tseem ceeb (lints/core.yaml pob), pom zoo cov cai ntxiv (lints/recommended.yaml), thiab Flutter-cov lus pom zoo (flutter_lints/flutter.yaml). Cov neeg siv ntawm cov cai pedantic tau qhia kom hloov mus rau kev siv cov coding tshiab raws li cov lus pom zoo los ntawm cov ntaub ntawv Dart.
  • Nyob rau hauv formatter, optimizations tau ua rau formatting ntawm cascading code blocks, uas muaj peev xwm ho txhim kho formatting kev ua tau zoo thiab tsis txhob ambiguous txhais ntawm cov tswv cuab ntawm cov ntsiab lus. Piv txwv li, hu "..doIt" hauv qhov kev qhia "var result = errorState ? foo : bad..doIt()” txhawj xeeb tsis yog qhov xwm txheej ntawm qhov β€œphem” thaiv, tab sis tag nrho cov lus qhia, yog li thaum formatting nws tam sim no sib cais: var result = errorState ? foo : phem ..doIt();
  • Kev them nyiaj yug rau Apple M1 (Silicon) processors tau ntxiv rau SDK, hais txog ob lub peev xwm los khiav Dart VM, cov khoom siv hluav taws xob thiab SDK cov khoom ntawm cov tshuab nrog Apple Silicon processor, thiab txhawb kev sau cov ntaub ntawv ua tiav rau cov chips no.
  • Cov lus txib "dart pub" tau ntxiv kev txhawb nqa rau cov ntaub ntawv kev pabcuam tshiab ".pubignore", uas tso cai rau koj los txhais cov npe ntawm cov ntaub ntawv uas yuav raug hla thaum tshaj tawm ib pob rau pub.dev repository. Cov chaw no tsis cuam tshuam nrog ".gitignore" tsis quav ntsej daim ntawv teev npe (hauv qee qhov xwm txheej, pub.dev yuav xav kom tsis txhob hloov cov ntaub ntawv uas xav tau hauv Git, piv txwv li, cov ntawv sau sab hauv siv thaum lub sijhawm txhim kho).
  • Kev ua haujlwm tau ua tiav los txhim kho qhov kev ua tau zoo ntawm "dart test" hais kom ua, uas tam sim no tsis tas yuav rov ua dua cov kev sim tom qab hloov pubspec yog tus lej version tsis tau hloov pauv.
  • Kev them nyiaj yug rau muab tso ua ke nyob rau hauv ECMAScript 5 compatibility hom tau raug txiav lawm (qhov kev hloov yuav ua rau poob ntawm compatibility nrog IE11 browser).
  • Cov khoom siv hluav taws xob ntawm tus kheej stagehand, dartfmt thiab dart2native tau tshaj tawm tias tsis siv lawm, hloov los ntawm cov lus txib ua hauv hu ua los ntawm dart utility.
  • VM Native Extensions mechanism tau raug tso tseg. Txhawm rau hu xov tooj ib txwm muaj los ntawm Dart code, nws raug nquahu kom siv Dart FFI tshiab (Foreign Function Interface).

Nyob rau tib lub sijhawm, qhov kev tso tawm tseem ceeb ntawm tus neeg siv interface lub ntsiab lus Flutter 2.5 tau nthuav tawm, uas yog suav tias yog lwm txoj hauv kev rau React Native thiab tso cai, raws li ib tus lej hauv paus, tso tawm cov ntawv thov rau iOS, Android, Windows, macOS thiab Linux. platforms, nrog rau tsim cov ntawv thov los khiav hauv browsers. Lub plhaub kev cai rau Fuchsia microkernel operating system tsim los ntawm Google yog tsim los ntawm Flutter.

Qhov tseem ceeb ntawm Flutter code yog siv nyob rau hauv Dart lus, thiab lub cav khiav lub sij hawm rau kev ua tiav daim ntawv thov yog sau rau hauv C ++. Thaum tsim cov ntawv thov, ntxiv rau Flutter hom lus Dart, koj tuaj yeem siv Dart Foreign Function interface hu rau C / C ++ code. Kev ua haujlwm siab ua tiav yog ua tiav los ntawm kev sau cov ntawv thov rau cov cai ib txwm muaj rau cov phiaj xwm phiaj xwm. Hauv qhov no, qhov kev zov me nyuam tsis tas yuav rov ua dua tom qab txhua qhov kev hloov pauv - Dart muab cov kev hloov pauv kub uas tso cai rau koj hloov pauv rau daim ntawv thov khiav thiab ntsuas qhov tshwm sim tam sim ntawd.

Kev hloov pauv loj hauv Flutter 2.5:

  • Ua qhov tseem ceeb ua haujlwm optimization. Ntawm iOS thiab macOS platforms, precompilation ntawm shaders rau Hlau graphics API tau raug siv. Txhim kho efficiency ntawm kev ua asynchronous txheej xwm. Tau daws qhov teeb meem nrog kev ncua sij hawm thaum tus neeg khaws khib nyiab rov qab nco qab los ntawm cov duab tsis siv (piv txwv li, thaum ua si ntawm 20-thib ob animated GIF, tus naj npawb ntawm kev khaws cov khib nyiab raug txo los ntawm 400 mus rau 4. Ncua thaum hla cov lus ntawm Dart thiab Objective- C/Swift raug txo mus rau 50% (iOS) lossis Java / Kotlin (Android) Ntxiv cov neeg tsim kev txhawb nqa rau cov tshuab raws li Apple Silicon nti.
    Dart 2.14 hom lus thiab Flutter 2.5 lub moj khaum muaj
  • Rau Android platform, kev txhawb nqa rau kev khiav haujlwm hauv hom puv npo tau tsim. Qhov kev siv ntawm "Material You" tsim lub tswv yim, nthuav tawm raws li qhov kev xaiv tsim khoom tsim tshiab, txuas ntxiv mus. Ntxiv rau lub xeev tshiab MaterialState.scrolledUnder, siv dynamic zaub ntawm scroll bars thaum resizing, thiab npaj ib tug tshiab interface rau tso saib cov ntawv ceeb toom banners.
  • Lub peev xwm ntawm lub koob yees duab plug-in tau nthuav dav, ntxiv cov cuab yeej rau kev tswj autofocus, raug, flash, zoom, txo suab nrov thiab daws teeb meem.
  • Cov cuab yeej tsim tawm (DevTools) tau raug txhim kho kom suav nrog qhov hloov kho tshiab widget tshuaj xyuas hom, nrog rau cov cuab yeej los txheeb xyuas qhov ua kom qeeb thiab taug qab kev sib sau ua ke.
    Dart 2.14 hom lus thiab Flutter 2.5 lub moj khaum muaj
  • Txhim kho plugins rau Visual Studio Code thiab IntelliJ / Android Studio.

Tau qhov twg los: opennet.ru

Ntxiv ib saib