Dart 2.15 basa pamrograman lan Flutter 2.8 framework kasedhiya

Google wis nerbitake rilis basa pamrograman Dart 2.15, sing nerusake pangembangan cabang Dart 2 sing didesain ulang kanthi radikal, sing beda karo versi asli basa Dart kanthi nggunakake ngetik statis sing kuat (jinis bisa disimpulake kanthi otomatis, dadi nemtokake jinis ora perlu, nanging ngetik dinamis ora digunakake maneh lan pisanan ngitung jinis diutus kanggo variabel lan mriksa jinis ketat banjur diterapake).

Fitur basa Dart:

  • Sintaks sing akrab lan gampang dipelajari, alami kanggo programer JavaScript, C lan Java.
  • Mesthekake peluncuran cepet lan kinerja dhuwur kanggo kabeh browser web modern lan macem-macem jinis lingkungan, saka piranti portabel nganti server sing kuat.
  • Kemampuan kanggo nemtokake kelas lan antarmuka sing ngidini enkapsulasi lan nggunakake maneh metode lan data sing wis ana.
  • Nemtokake jinis nggampangake debug lan ngenali kesalahan, nggawe kode luwih cetha lan bisa diwaca, lan nyederhanakake modifikasi lan analisis dening pangembang pihak katelu.
  • Jinis sing didhukung kalebu: macem-macem jinis hash, array lan dhaptar, antrian, jinis angka lan senar, jinis kanggo nemtokake tanggal lan wektu, ekspresi reguler (RegExp). Sampeyan bisa nggawe jinis dhewe.
  • Kanggo ngatur eksekusi paralel, disaranake nggunakake kelas kanthi atribut isolasi, kode sing dieksekusi kabeh ing papan sing terisolasi ing area memori sing kapisah, sesambungan karo proses utama kanthi ngirim pesen.
  • Dhukungan kanggo nggunakake perpustakaan sing nyederhanakake dhukungan lan debugging proyek web gedhe. Implementasi fungsi pihak katelu bisa kalebu ing wangun perpustakaan sing dienggo bareng. Aplikasi bisa dipΓ©rang dadi bagΓ©an lan ngandelake pangembangan saben bagean menyang tim programer sing kapisah.
  • A pesawat saka siap-digawe pribadi kanggo ndhukung pembangunan ing basa Dart, kalebu implementasine pembangunan dinamis lan alat debugging karo koreksi kode on the fly ("sunting-lan-terus").
  • Kanggo nyederhanakake pangembangan ing basa Dart, dilengkapi SDK, pub manajer paket, penganalisa kode statis dart_analyzer, kumpulan perpustakaan, lingkungan pangembangan terintegrasi DartPad lan Dart-enabled plugins kanggo IntelliJ IDEA, WebStorm, Emacs, Teks Sublime. 2 lan Vim.
  • Paket tambahan karo perpustakaan lan utilitas disebarake liwat repositori pub, sing duwe sekitar 22 ewu paket.

Owah-owahan utama ing release Dart 2.15:

  • Nyedhiyakake alat kanggo eksekusi paralel kanthi cepet kanthi ngisolasi panangan. Ing sistem multi-inti, runtime Dart minangka standar mbukak kode aplikasi ing siji inti CPU lan nggunakake inti liyane kanggo nindakake tugas sistem kayata Asynchronous I/O, nulis file, utawa nelpon jaringan. Kanggo aplikasi sing kudu nglakokake panangane kanthi podo karo, contone, kanggo nggawe animasi ing antarmuka, bisa diluncurake blok kode sing kapisah (isolasi), diisolasi saka siji liyane lan dieksekusi ing inti CPU liyane bebarengan karo utas aplikasi utama. . Kanggo nglindhungi saka kesalahan sing muncul nalika eksekusi kode simultaneous karo pesawat data sing padha, enggo bareng obyek mutable ing blok isolasi beda dilarang, lan model pesen-maringaken digunakake kanggo interaksi antarane handlers.

    Dart 2.15 ngenalake konsep anyar - grup blok terisolasi (kelompok isolasi), sing ngidini sampeyan ngatur akses bareng menyang macem-macem struktur data internal ing blok isolasi sing dadi bagean saka klompok sing padha, sing bisa nyuda overhead kanthi signifikan nalika sesambungan antarane pawang ing grup. . Contone, ngluncurake blok isolasi tambahan ing grup sing wis ana 100 kaping luwih cepet lan mbutuhake memori 10-100 kaping kurang saka ngluncurake blok isolasi sing kapisah, amarga ngilangi kabutuhan kanggo miwiti struktur data program.

    Senadyan kasunyatan sing isolasi pamblokiran ing grup isih nglarang akses sambungan kanggo obyek mutable, kelompok nggunakake memori numpuk bebarengan, kang bisa Ngartekno nyepetake transfer obyek saka siji blok menyang liyane tanpa perlu kanggo nindakake operasi salinan sumber-intensif. Ing versi anyar uga ngijini sampeyan kanggo pass asil saka handler nalika nelpon Isolate.exit () kanggo transfer data kanggo pemblokiran isolasi tiyang sepah tanpa operasi Nyalin. Kajaba iku, mekanisme transmisi pesen wis dioptimalake - pesen cilik lan medium saiki diproses kira-kira 8 kaping luwih cepet. Obyek sing bisa liwati antarane isolate nggunakake SendPort.send () telpon kalebu sawetara jinis fungsi, nutup, lan tilak tumpukan.

  • Ing alat kanggo nggawe penunjuk kanggo fungsi individu ing obyek liyane (luh-mati), Watesan kanggo nggawe penunjuk padha ing kode konstruktor wis dibusak, kang bisa migunani nalika mbangun antarmuka adhedhasar perpustakaan Flutter. Contone, kanggo nggawe widget Column sing kalebu macem-macem widget TΓ¨ks, sampeyan bisa nelpon ". peta ()" lan pass penunjuk kanggo Text.new konstruktor saka obyek Teks: kelas FruitWidget ngluwihi StatelessWidget { @override Widget mbangun (BuildContext context) { return Column (anak: ['Apple', 'Orange'].map(Teks.anyar).toList()); }}
  • Kemungkinan sing ana gandhengane karo panggunaan penunjuk fungsi wis ditambahi. Ditambahake kemampuan kanggo nggunakake metode umum lan penunjuk fungsi kanggo nggawe metode lan penunjuk non-generik: T id (Nilai T) => nilai; var intId = id ; // diijini ing versi 2.15 tinimbang "int Function (int) intId = id;" const fo = id; // pointer kanggo fungsi id. const c1 = fo ;
  • Dart: perpustakaan inti wis nambah dhukungan kanggo enum, contone, sampeyan saiki bisa ngasilake nilai string saka saben nilai enum nggunakake metode ".name", pilih nilai miturut jeneng, utawa cocog pasangan nilai: enum MyEnum {siji , loro, telu } void main() {print(MyEnum.one.name); // "siji" bakal dicithak. print(MyEnum.values.byName('loro') == MyEnum.two); // "bener" bakal dicithak. peta final = MyEnum.values.asNameMap(); print(peta['telung'] == MyEnum.three); // "bener". }
  • A technique komprΓ¨si pointer wis dipun ginakaken sing ngidini nggunakake perwakilan luwih kompak penunjuk ing lingkungan 64-dicokot yen papan alamat 32-dicokot cukup kanggo alamat (ora luwih saka 4 GB memori digunakake). Tes nuduhake manawa optimasi kasebut bisa nyuda ukuran tumpukan kira-kira 10%. Ing Flutter SDK, mode anyar wis diaktifake kanggo Android kanthi standar, lan direncanakake bakal diaktifake kanggo iOS ing rilis mangsa ngarep.
  • Dart SDK kalebu alat kanggo debugging lan analisis kinerja (DevTools), sing sadurunge diwenehake ing paket sing kapisah.
  • Piranti wis ditambahake ing printah "dart pub" lan repositori paket pub.dev kanggo trek publikasi sengaja informasi rahasia, contone, ninggalake credentials kanggo sistem integrasi terus-terusan lan lingkungan maya nang paket. Yen bocor kasebut dideteksi, eksekusi perintah "dart pub publish" bakal diselani kanthi pesen kesalahan. Yen ana positif palsu, sampeyan bisa ngliwati cek kasebut liwat dhaptar putih.
  • Kemampuan kanggo mbatalake versi paket sing wis diterbitake wis ditambahake menyang repositori pub.dev, contone, yen kesalahan utawa kerentanan sing mbebayani ditemokake. Sadurunge, kanggo koreksi kasebut, praktik kasebut nerbitake versi korektif, nanging ing sawetara kahanan perlu mbatalake rilis sing wis ana lan kanthi cepet mungkasi distribusi luwih lanjut (contone, yen koreksi durung siap utawa yen rilis lengkap wis rampung. diterbitake kanthi ora sengaja tinimbang versi tes). Sawise mbatalake, paket kasebut ora diidentifikasi maneh ing perintah "pub get" lan "pub upgrade", lan ing sistem sing wis diinstal, bebaya khusus ditanggepi nalika sabanjure "pub get" dieksekusi.
  • Perlindhungan tambahan marang kerentanan (CVE-2021-22567) sing disebabake nggunakake karakter unicode ing kode sing ngganti urutan tampilan.
  • Ndandani kerentanan (CVE-2021-22568) sing ngidini sampeyan niru pangguna pub.dev liyane nalika nerbitake paket menyang server pihak katelu sing nampa token akses pub.dev oauth2. Contone, kerentanan bisa digunakake kanggo nyerang server paket internal lan perusahaan. Pangembang sing mung dadi host paket ing pub.dev ora kena pengaruh masalah iki.

Ing wektu sing padha, rilis signifikan saka kerangka antarmuka pangguna Flutter 2.8 ditampilake, sing dianggep minangka alternatif kanggo React Native lan ngidini, adhedhasar basis kode siji, ngeculake aplikasi kanggo iOS, Android, Windows, macOS lan platform Linux, uga nggawe aplikasi kanggo mbukak ing browser. Cangkang khusus kanggo sistem operasi mikrokernel Fuchsia sing dikembangake dening Google dibangun kanthi basis Flutter. Kacathet yen sajrone nem wulan kepungkur, jumlah aplikasi Flutter 2 ing Google Play Store mundhak saka 200 ewu dadi 375 ewu, yaiku. meh kaping pindho.

Sisih utama kode Flutter dileksanakake ing basa Dart, lan mesin runtime kanggo ngeksekusi aplikasi ditulis ing C ++. Nalika ngembangaken aplikasi, saliyane basa Dart native Flutter, sampeyan bisa nggunakake antarmuka Dart Foreign Function kanggo nelpon C / C ++ kode. Kinerja eksekusi sing dhuwur digayuh kanthi nyusun aplikasi menyang kode asli kanggo platform target. Ing kasus iki, program kasebut ora perlu dikompilasi maneh sawise saben owah-owahan - Dart nyedhiyakake mode reload panas sing ngidini sampeyan ngganti aplikasi sing mlaku lan langsung ngevaluasi asil.

Antarane owah-owahan ing release anyar Flutter, optimasi kacepetan peluncuran lan konsumsi memori ing piranti seluler kacathet. Iku luwih gampang kanggo nyambungake aplikasi menyang layanan backend kayata Firebase lan Google Cloud. Piranti kanggo integrasi karo Google Ads wis stabil. Dhukungan kanggo kamera lan plugin web wis saya tambah akeh. Piranti anyar wis diusulake kanggo nyederhanakake pangembangan, contone, widget wis ditambahake kanggo otentikasi nggunakake Firebase. Mesin Flame, dirancang kanggo ngembangake game 2D nggunakake Flutter, wis dianyari.

Source: opennet.ru

Add a comment