Dart 2.14 ede ati Flutter 2.5 ilana ti o wa

Google ti ṣe atẹjade itusilẹ ti ede siseto Dart 2.14, eyiti o tẹsiwaju idagbasoke ti ẹka ti a tunṣe ti ipilẹṣẹ ti Dart 2, eyiti o yatọ si ẹya atilẹba ti ede Dart nipasẹ lilo titẹ aimi ti o lagbara (awọn oriṣi le ni oye laifọwọyi, nitorinaa Awọn iru asọye ko ṣe pataki, ṣugbọn titẹ agbara ko ni lilo ati ni ibẹrẹ ṣe iṣiro iru naa ni a yan si oniyipada ati pe ayẹwo iru to muna ni atẹle naa yoo lo).

Awọn ẹya ara ẹrọ ti ede Dart:

  • Imọmọ ati irọrun lati kọ ẹkọ sintasi, adayeba fun JavaScript, C ati awọn olupilẹṣẹ Java.
  • Ni idaniloju ifilọlẹ iyara ati iṣẹ ṣiṣe giga fun gbogbo awọn aṣawakiri wẹẹbu ode oni ati awọn oriṣiriṣi awọn agbegbe, lati awọn ẹrọ to ṣee gbe si awọn olupin ti o lagbara.
  • Agbara lati setumo awọn kilasi ati awọn atọkun ti o fun laaye encapsulation ati ilotunlo ti wa tẹlẹ ọna ati data.
  • Ṣiṣeto awọn oriṣi jẹ ki o rọrun lati yokokoro ati idanimọ awọn aṣiṣe, jẹ ki koodu naa di mimọ ati kika diẹ sii, ati irọrun iyipada ati itupalẹ rẹ nipasẹ awọn olupilẹṣẹ ẹni-kẹta.
  • Awọn oriṣi atilẹyin pẹlu: awọn oriṣi awọn hashes, awọn akojọpọ ati awọn atokọ, awọn ila, nomba ati awọn oriṣi okun, awọn oriṣi fun ṣiṣe ipinnu ọjọ ati akoko, awọn ikosile deede (RegExp). O ṣee ṣe lati ṣẹda awọn iru ti ara rẹ.
  • Lati ṣeto ipaniyan ti o jọra, o ni imọran lati lo awọn kilasi pẹlu ẹya iyasọtọ, koodu ti eyiti o ṣe ni kikun ni aaye ti o ya sọtọ ni agbegbe iranti lọtọ, ibaraenisepo pẹlu ilana akọkọ nipasẹ fifiranṣẹ awọn ifiranṣẹ.
  • Atilẹyin fun lilo awọn ile-ikawe ti o rọrun atilẹyin ati ṣiṣatunṣe awọn iṣẹ akanṣe wẹẹbu nla. Awọn imuse ẹni-kẹta ti awọn iṣẹ le wa ni irisi awọn ile-ikawe pinpin. Awọn ohun elo le pin si awọn apakan ati fi igbẹkẹle idagbasoke ti apakan kọọkan si ẹgbẹ ọtọtọ ti awọn olutọpa.
  • Eto awọn irinṣẹ ti a ti ṣetan lati ṣe atilẹyin idagbasoke ni ede Dart, pẹlu imuse ti idagbasoke ti o ni agbara ati awọn irinṣẹ n ṣatunṣe aṣiṣe pẹlu atunṣe koodu lori fo (“Ṣatunkọ-ati-tẹsiwaju”).
  • Lati jẹ ki idagbasoke rọrun ni ede Dart, o wa pẹlu SDK kan, ile-ọti oluṣakoso package kan, adarọ ese koodu aimi dart_analyzer, akojọpọ awọn ile ikawe kan, agbegbe idagbasoke iṣọpọ DartPad ati awọn afikun Dart-agbara fun IntelliJ IDEA, WebStorm, Emacs, Ọrọ ti o gaju 2 ati Vim.
  • Awọn idii afikun pẹlu awọn ile-ikawe ati awọn ohun elo ti pin nipasẹ ibi-ipamọ ọti, eyiti o ni diẹ sii ju awọn idii 20 ẹgbẹrun.

Awọn ayipada nla ni idasilẹ Dart 2.14:

  • A ti ṣafikun oniṣẹ iṣipo mẹta mẹta (>>), eyiti, ko dabi oniṣẹ “>>”, kii ṣe iṣiro, ṣugbọn iṣipopada ọgbọn ti o ṣiṣẹ laisi akiyesi ami ami si (iyipada naa ṣe laisi pinpin si rere ati odi awọn nọmba).
  • Yọkuro ihamọ lori iru awọn ariyanjiyan ti o ṣe idiwọ awọn iru iṣẹ jeneriki lati ṣee lo bi ariyanjiyan iru. Fun apẹẹrẹ, ni bayi o le pato: Akojọ pẹ (T)> Awọn iṣẹ id; var callback = [ (T iye) => iye]; pẹ Iṣẹ S (T)>(S) f;
  • Gba laaye ni pato awọn ariyanjiyan pẹlu awọn oriṣi ninu awọn asọye gẹgẹbi @Deprecated. Fun apẹẹrẹ, o le sọ pato: @TypeHelper (42, "Itumọ naa")
  • Awọn ọna aimi hash, hashAll ati hashAllUnordered ni a ti ṣafikun si ile-ikawe boṣewa (mojuto) ni kilasi Nkan. Kilasi DateTime ti ni ilọsiwaju mimu mimu akoko agbegbe pada nigbati o ba yipada awọn aago laarin igba ooru ati akoko igba otutu ti ko ṣee pin fun wakati kan (fun apẹẹrẹ, ni Australia aiṣedeede ti ọgbọn iṣẹju ni a lo). Apoti ffi ti ṣafikun atilẹyin fun ẹrọ ipin iranti gbagede, eyiti o ṣe idasilẹ awọn orisun laifọwọyi. Apo ffigen ti ṣafikun agbara lati ṣe ipilẹṣẹ awọn asọye typedef ti awọn iru Dart lati ede C.
  • Awọn idii 250 ti o gbajumọ julọ lati ibi ipamọ pub.dev ati 94% ti oke-1000 ti yipada si lilo ipo “ailewu asan”, eyiti yoo yago fun awọn ipadanu ti o ṣẹlẹ nipasẹ awọn igbiyanju lati lo awọn oniyipada ti iye wọn jẹ aisọye ati ṣeto si “Null "" Ipo naa tumọ si pe awọn oniyipada ko le ni awọn iye asan ayafi ti wọn ba sọtọ ni kedere iye asan. Ipo muna bọwọ fun awọn oriṣi oniyipada, eyiti ngbanilaaye alakojọ lati lo awọn iṣapeye afikun. Iru ibamu ni a ṣayẹwo ni akoko akopọ, fun apẹẹrẹ, ti o ba gbiyanju lati fi iye “Null” si oniyipada kan pẹlu iru ti ko tumọ si ipo aisọye, gẹgẹbi “int”, aṣiṣe yoo han.
  • Awọn ipilẹ ti iṣọkan ti awọn ofin fun oluyanju koodu (linter) ni a dabaa, pese atilẹyin nigbakanna fun ṣiṣe ayẹwo ibamu pẹlu awọn ilana ara koodu fun Dart ati ilana Flutter. Fun awọn idi itan, awọn ofin ifaminsi fun Flutter ati Dart yatọ, ni afikun, fun Dart awọn eto ofin meji wa ni lilo - awọn ẹlẹṣẹ lati Google ati awọn ofin lati agbegbe idagbasoke Dart. Dart 2.14 ṣafihan eto tuntun ti o wọpọ ti awọn ofin fun linter, eyiti o pinnu lati ṣee lo nipasẹ aiyipada ni awọn iṣẹ akanṣe Dart tuntun ati ni Flutter SDK. Eto naa pẹlu awọn ofin ipilẹ (lints/core.yaml package), awọn ofin afikun ti a ṣeduro (lints/recommended.yaml), ati awọn iṣeduro kan pato Flutter (flutter_lints/flutter.yaml). Awọn olumulo ti awọn ofin pedantic ni imọran lati yipada si lilo ara ifaminsi tuntun ti o da lori awọn iṣeduro lati inu iwe Dart.
  • Ni ọna kika, a ti ṣe awọn iṣapeye si tito akoonu ti awọn bulọọki koodu cascading, eyiti o le mu iṣẹ ṣiṣe kika ni pataki ati yago fun itumọ aibikita ti nini ti awọn eroja ikosile. Fun apẹẹrẹ, pipe "..doIt" ninu ikosile "var esi = errorState? foo : bad..doIt ()” ko kan apakan ipo ti bulọọki “buburu”, ṣugbọn gbogbo ikosile, nitorinaa nigbati o ba ṣe akoonu o ti yapa bayi: var result = errorState? foo: buburu ..doIt ();
  • Atilẹyin fun awọn olutọsọna Apple M1 (Silicon) ti ṣafikun si SDK, ti o tumọ mejeeji agbara lati ṣiṣẹ Dart VM, awọn ohun elo ati awọn paati SDK lori awọn eto pẹlu ero isise Apple Silicon, ati atilẹyin fun iṣakojọpọ awọn faili ṣiṣe fun awọn eerun wọnyi.
  • Aṣẹ “dart pub” ti ṣafikun atilẹyin fun faili iṣẹ tuntun kan “.pubignore”, eyiti o fun ọ laaye lati ṣalaye atokọ ti awọn faili ti yoo fo nigba titẹjade package kan si ibi ipamọ pub.dev. Awọn eto wọnyi ko ni dabaru pẹlu atokọ aibikita “.gitignore” (ni awọn ipo miiran, pub.dev le fẹ lati yago fun gbigbe awọn faili ti o nilo ni Git, fun apẹẹrẹ, awọn iwe afọwọkọ inu ti a lo lakoko idagbasoke).
  • A ti ṣe iṣẹ lati mu ilọsiwaju ti aṣẹ “idanwo dart” ṣiṣẹ, eyiti ko nilo awọn idanwo atunkopọ lẹhin iyipada pubspec ti nọmba ẹya ko ba yipada.
  • Atilẹyin fun akojọpọ ni ipo ibamu ECMAScript 5 ti dawọ duro (iyipada yoo ja si isonu ti ibamu pẹlu ẹrọ aṣawakiri IE11).
  • Awọn ohun elo onikaluku ni ipele ọwọ, dartfmt ati dart2native ni a ti kede pe ko ti pẹ, rọpo nipasẹ awọn aṣẹ ti a ṣe sinu ti a pe nipasẹ ohun elo dart.
  • Ilana Awọn amugbooro abinibi VM ti jẹ idinku. Lati pe koodu abinibi lati koodu Dart, o gba ọ niyanju lati lo Dart FFI tuntun (Ibaraẹnisọrọ Iṣẹ Ajeji).

Ni akoko kanna, itusilẹ pataki ti ilana wiwo olumulo Flutter 2.5 ni a gbekalẹ, eyiti o jẹ yiyan si React Native ati gba laaye, da lori ipilẹ koodu kan, lati tu awọn ohun elo silẹ fun iOS, Android, Windows, macOS ati Lainos awọn iru ẹrọ, bakannaa ṣẹda awọn ohun elo lati ṣiṣẹ ni awọn aṣawakiri. Ikarahun aṣa fun Fuchsia microkernel ẹrọ ṣiṣe nipasẹ Google ti wa ni itumọ ti lori ipilẹ Flutter.

Apa akọkọ ti koodu Flutter ti wa ni imuse ni ede Dart, ati ẹrọ akoko ṣiṣe fun ṣiṣe awọn ohun elo ni a kọ sinu C ++. Nigbati o ba n dagbasoke awọn ohun elo, ni afikun si ede abinibi ti Flutter, o le lo wiwo Iṣẹ Iṣẹ Dart Ajeji lati pe koodu C/C++. Iṣe ipaniyan giga jẹ aṣeyọri nipasẹ iṣakojọpọ awọn ohun elo si koodu abinibi fun awọn iru ẹrọ ibi-afẹde. Ni ọran yii, eto naa ko nilo lati tun ṣe igbasilẹ lẹhin iyipada kọọkan - Dart pese ipo atunbere gbona ti o fun ọ laaye lati ṣe awọn ayipada si ohun elo nṣiṣẹ ati ṣe iṣiro abajade lẹsẹkẹsẹ.

Awọn ayipada nla ni Flutter 2.5:

  • Ṣe awọn iṣapeye iṣẹ ṣiṣe pataki. Lori awọn iru ẹrọ iOS ati macOS, iṣapejọ ti awọn shaders fun API awọn eya aworan ti ni imuse. Imudara ilọsiwaju ti sisẹ awọn iṣẹlẹ asynchronous. Ti yanju ọrọ kan pẹlu awọn idaduro nigbati agbasọ idoti n gba iranti pada lati awọn aworan ti ko lo (fun apẹẹrẹ, lakoko ṣiṣiṣẹsẹhin ti GIF ere idaraya iṣẹju-aaya 20, nọmba awọn iṣẹ ikojọpọ idoti ti dinku lati 400 si 4. Awọn idaduro nigbati gbigbe awọn ifiranṣẹ ranṣẹ laarin Dart ati Idi- C/Swift dinku si 50% (iOS) tabi Java/Kotlin (Android) ti a ṣafikun atilẹyin kikọ abinibi fun awọn eto ti o da lori chirún Apple Silicon.
    Dart 2.14 ede ati Flutter 2.5 ilana ti o wa
  • Fun iru ẹrọ Android, atilẹyin fun ṣiṣe awọn ohun elo ni ipo iboju kikun ti ni idasilẹ. Imuse ti ero apẹrẹ “Ohun elo Iwọ”, ti a gbekalẹ bi aṣayan Apẹrẹ Ohun elo ti o tẹle, tẹsiwaju. Fikun-un ipinlẹ titun MaterialState.scrolledUnder, imuse ifihan agbara ti awọn ọpa yi lọ nigbati o ba tun ṣe iwọn, o si dabaa wiwo tuntun fun iṣafihan awọn asia iwifunni.
  • Awọn agbara ti plug-in kamẹra ti ni ilọsiwaju ni pataki, fifi awọn irinṣẹ fun iṣakoso idojukọ aifọwọyi, ifihan, filasi, sisun, idinku ariwo ati ipinnu.
  • Awọn irinṣẹ Olùgbéejáde (DevTools) ti ni ilọsiwaju lati pẹlu ipo iṣayẹwo ẹrọ ailorukọ imudojuiwọn, ati awọn irinṣẹ fun idamo awọn idaduro ṣiṣe ati titọpa akopọ shader.
    Dart 2.14 ede ati Flutter 2.5 ilana ti o wa
  • Awọn afikun ti ilọsiwaju fun koodu Studio wiwo ati IntelliJ/Android Studio.

orisun: opennet.ru

Fi ọrọìwòye kun