Na voljo sta jezik Dart 2.14 in okvir Flutter 2.5

Google je objavil izdajo programskega jezika Dart 2.14, ki nadaljuje razvoj radikalno prenovljene veje Dart 2, ki se od prvotne različice jezika Dart razlikuje po uporabi močnega statičnega tipkanja (vrste je mogoče sklepati samodejno, tako da določanje tipov ni potrebno, vendar se dinamično tipkanje ne uporablja več in prvotno izračunani tip je dodeljen spremenljivki, nato pa se uporabi strogo preverjanje tipa).

Lastnosti jezika Dart:

  • Poznana sintaksa, ki jo je enostavno naučiti, je naravna za programerje JavaScript, C in Java.
  • Zagotavljanje hitrega zagona in visoke zmogljivosti za vse sodobne spletne brskalnike in različne vrste okolij, od prenosnih naprav do zmogljivih strežnikov.
  • Sposobnost definiranja razredov in vmesnikov, ki omogočajo enkapsulacijo in ponovno uporabo obstoječih metod in podatkov.
  • Določanje vrst olajša odpravljanje napak in prepoznavanje napak, naredi kodo jasnejšo in berljivejšo ter poenostavi njeno spreminjanje in analizo s strani razvijalcev tretjih oseb.
  • Podprti tipi vključujejo: različne tipe zgoščenih vrednosti, nizov in seznamov, čakalne vrste, številske in nizovne tipe, tipe za določanje datuma in časa, regularne izraze (RegExp). Možno je ustvariti lastne vrste.
  • Za organizacijo vzporednega izvajanja je predlagana uporaba razredov z atributom izolacije, katerih koda se v celoti izvaja v izoliranem prostoru v ločenem pomnilniškem območju, ki komunicira z glavnim procesom s pošiljanjem sporočil.
  • Podpora za uporabo knjižnic, ki poenostavijo podporo in razhroščevanje velikih spletnih projektov. Izvedbe funkcij tretjih oseb se lahko vključijo v obliki deljenih knjižnic. Aplikacije lahko razdelimo na dele in razvoj vsakega dela zaupamo ločeni ekipi programerjev.
  • Nabor že pripravljenih orodij za podporo razvoju v jeziku Dart, vključno z implementacijo dinamičnega razvoja in orodij za odpravljanje napak s sprotnim popravkom kode (»uredi in nadaljuj«).
  • Za poenostavitev razvoja v jeziku Dart prihaja s SDK-jem, pubom za upravljanje paketov, analizatorjem statične kode dart_analyzer, nizom knjižnic, integriranim razvojnim okoljem DartPad in vtičniki, ki podpirajo Dart, za IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 in Vim.
  • Dodatni paketi s knjižnicami in pripomočki se distribuirajo prek repozitorija pub, ki ima več kot 20 tisoč paketov.

Večje spremembe v izdaji Dart 2.14:

  • Dodan je bil nov operator trojnega premika (>>>), ki za razliko od operatorja “>>” ne izvede aritmetičnega, temveč logični premik, ki deluje brez upoštevanja bita predznaka (premik se izvede brez delitve na pozitivna in negativna števila).
  • Odstranjena je omejitev argumentov vrste, ki je preprečevala uporabo generičnih tipov funkcij kot argumenta vrste. Na primer, zdaj lahko določite: pozni seznam (T)>idFunctions; var povratni klic = [ (T vrednost) => vrednost]; pozna funkcija S (T)>(S) f;
  • Dovoli določanje argumentov s tipi v opombah, kot je @Deprecated. Na primer, zdaj lahko določite: @TypeHelper (42, "Pomen")
  • Statične metode hash, hashAll in hashAllUnordered so bile dodane v standardno knjižnico (jedro) v razredu Object. Razred DateTime je izboljšal obravnavo lokalnega časa pri pretvorbi ur med poletnim in zimskim časom, ki ni deljiv z eno uro (v Avstraliji se na primer uporablja zamik 30 minut). Paket ffi je dodal podporo za mehanizem dodeljevanja pomnilnika arene, ki samodejno sprosti vire. Paket ffigen je dodal možnost generiranja definicij typedef tipov Dart iz jezika C.
  • 250 najbolj priljubljenih paketov iz repozitorija pub.dev in 94 % izmed 1000 najboljših je bilo preklopljenih na način »null safety«, ki bo preprečil zrušitve, ki jih povzročajo poskusi uporabe spremenljivk, katerih vrednost je nedefinirana in nastavljena na »Null«. ” " Način pomeni, da spremenljivke ne morejo imeti ničelnih vrednosti, razen če jim je izrecno dodeljena ničelna vrednost. Način strogo upošteva vrste spremenljivk, kar prevajalniku omogoča uporabo dodatnih optimizacij. Skladnost s tipom se preveri med prevajanjem; če na primer poskusite dodeliti vrednost »Null« spremenljivki s tipom, ki ne pomeni nedefiniranega stanja, kot je »int«, se bo prikazala napaka.
  • Predlagani so poenoteni nizi pravil za analizator kode (linter), ki zagotavljajo sočasno podporo za preverjanje skladnosti s smernicami za stil kode za Dart in ogrodje Flutter. Zaradi zgodovinskih razlogov so bila pravila kodiranja za Flutter in Dart različna, poleg tega sta bila za Dart v uporabi dva niza pravil - pedantna Googlova pravila in pravila skupnosti razvijalcev Dart. Dart 2.14 uvaja nov skupni nabor pravil za linter, za katerega je bilo odločeno, da se privzeto uporablja v novih projektih Dart in v Flutter SDK. Nabor vključuje osnovna pravila (paket lints/core.yaml), priporočena dodatna pravila (lints/recommended.yaml) in priporočila, specifična za Flutter (flutter_lints/flutter.yaml). Uporabnikom pedantnih pravil svetujemo, da preidejo na uporabo novega stila kodiranja, ki temelji na priporočilih iz dokumentacije Dart.
  • V formaterju so bile izvedene optimizacije oblikovanja blokov kaskadne kode, ki lahko znatno izboljšajo zmogljivost oblikovanja in se izognejo dvoumni razlagi lastništva izraznih elementov. Na primer, klic "..doIt" v izrazu "var result = errorState? foo : bad..doIt()« ne zadeva pogojnega dela bloka »bad«, ampak celotnega izraza, zato je pri oblikovanju zdaj ločen: var result = errorState ? foo : slabo ..doIt();
  • Podpora za procesorje Apple M1 (Silicon) je bila dodana SDK-ju, kar pomeni možnost izvajanja Dart VM, pripomočkov in komponent SDK v sistemih s procesorjem Apple Silicon ter podporo za prevajanje izvedljivih datotek za te čipe.
  • Ukaz "dart pub" je dodal podporo za novo servisno datoteko ".pubignore", ki vam omogoča, da določite seznam datotek, ki bodo preskočene pri objavi paketa v repozitoriju pub.dev. Te nastavitve ne vplivajo na seznam prezrtih ».gitignore« (v nekaterih situacijah se bo pub.dev morda želel izogniti prenosu datotek, ki so potrebne v Gitu, na primer notranjih skriptov, uporabljenih med razvojem).
  • Opravljeno je bilo delo za izboljšanje zmogljivosti ukaza »dart test«, ki zdaj ne zahteva ponovnega prevajanja testov po spremembi pubspec, če se številka različice ni spremenila.
  • Podpora za prevajanje v združljivem načinu ECMAScript 5 je bila ukinjena (sprememba bo povzročila izgubo združljivosti z brskalnikom IE11).
  • Posamezni pripomočki stagehand, dartfmt in dart2native so bili razglašeni za zastareli, nadomeščeni z vgrajenimi ukazi, klicanimi prek pripomočka dart.
  • Mehanizem izvornih razširitev VM je bil opuščen. Za klic izvorne kode iz kode Dart je priporočljivo uporabiti novi Dart FFI (vmesnik tujih funkcij).

Hkrati je bila predstavljena pomembna izdaja ogrodja uporabniškega vmesnika Flutter 2.5, ki velja za alternativo React Native in omogoča na podlagi ene kodne baze izdajo aplikacij za iOS, Android, Windows, macOS in Linux. platforme, kot tudi ustvarjanje aplikacij za izvajanje v brskalnikih. Lupina po meri za operacijski sistem z mikrojedri Fuchsia, ki jo je razvil Google, je zgrajena na osnovi Flutterja.

Glavni del kode Flutter je implementiran v jeziku Dart, izvajalni mehanizem za izvajanje aplikacij pa je napisan v C++. Pri razvoju aplikacij lahko poleg Flutterjevega izvornega jezika Dart uporabite vmesnik Dart Foreign Function za klic kode C/C++. Visoka zmogljivost izvajanja je dosežena s prevajanjem aplikacij v izvorno kodo za ciljne platforme. V tem primeru programa po vsaki spremembi ni treba znova prevesti - Dart ponuja način vročega ponovnega nalaganja, ki vam omogoča spreminjanje delujoče aplikacije in takojšnjo oceno rezultata.

Glavne spremembe v Flutterju 2.5:

  • Opravili pomembne optimizacije delovanja. Na platformah iOS in macOS je bila izvedena predkompilacija senčil za grafični API Metal. Izboljšana učinkovitost obdelave asinhronih dogodkov. Odpravljena je težava z zamudami, ko zbiralnik smeti ponovno pridobi pomnilnik iz neuporabljenih slik (na primer med predvajanjem 20-sekundnega animiranega GIF-a je bilo število operacij zbiranja smeti zmanjšano s 400 na 4. Zakasnitve pri prenosu sporočil med Dartom in Objective- C/Swift so bili zmanjšani na 50 % (iOS) ali Java/Kotlin (Android). Dodana izvorna podpora za gradnjo za sisteme, ki temeljijo na čipu Apple Silicon.
    Na voljo sta jezik Dart 2.14 in okvir Flutter 2.5
  • Za platformo Android je vzpostavljena podpora za izvajanje aplikacij v celozaslonskem načinu. Nadaljevala se je implementacija oblikovalskega koncepta »Material You«, predstavljenega kot možnost materialnega oblikovanja naslednje generacije. Dodano novo stanje MaterialState.scrolledUnder, implementiran dinamični prikaz drsnih trakov pri spreminjanju velikosti in predlagan nov vmesnik za prikaz pasic z obvestili.
  • Zmogljivosti vtičnika kamere so bile znatno razširjene, dodana so orodja za nadzor samodejnega ostrenja, osvetlitve, bliskavice, povečave, zmanjšanja šuma in ločljivosti.
  • Orodja za razvijalce (DevTools) so bila izboljšana tako, da vključujejo posodobljen način pregledovanja gradnikov ter orodja za prepoznavanje zamud pri upodabljanju in sledenje prevajanju senčil.
    Na voljo sta jezik Dart 2.14 in okvir Flutter 2.5
  • Izboljšani vtičniki za Visual Studio Code in IntelliJ/Android Studio.

Vir: opennet.ru

Dodaj komentar