Tersedia bahasa Dart 2.14 dan kerangka kerja Flutter 2.5

Google telah menerbitkan rilis bahasa pemrograman Dart 2.14, yang melanjutkan pengembangan cabang Dart 2 yang didesain ulang secara radikal, yang berbeda dari versi asli bahasa Dart dengan penggunaan pengetikan statis yang kuat (tipe dapat disimpulkan secara otomatis, jadi menentukan tipe tidak diperlukan, tetapi pengetikan dinamis tidak lagi digunakan dan pada awalnya dihitung tipe tersebut ditetapkan ke variabel dan pemeriksaan tipe yang ketat kemudian diterapkan).

Fitur bahasa Dart:

  • Sintaks yang familier dan mudah dipelajari, alami untuk pemrogram JavaScript, C, dan Java.
  • Memastikan peluncuran cepat dan kinerja tinggi untuk semua browser web modern dan berbagai jenis lingkungan, mulai dari perangkat portabel hingga server canggih.
  • Kemampuan untuk mendefinisikan kelas dan antarmuka yang memungkinkan enkapsulasi dan penggunaan kembali metode dan data yang ada.
  • Menentukan jenis memudahkan proses debug dan mengidentifikasi kesalahan, membuat kode lebih jelas dan mudah dibaca, serta menyederhanakan modifikasi dan analisisnya oleh pengembang pihak ketiga.
  • Tipe yang didukung meliputi: berbagai tipe hash, array dan daftar, antrian, tipe numerik dan string, tipe untuk menentukan tanggal dan waktu, ekspresi reguler (RegExp). Dimungkinkan untuk membuat tipe Anda sendiri.
  • Untuk mengatur eksekusi paralel, diusulkan untuk menggunakan kelas dengan atribut isolasi, kode yang dieksekusi seluruhnya dalam ruang terisolasi di area memori terpisah, berinteraksi dengan proses utama dengan mengirimkan pesan.
  • Dukungan untuk penggunaan perpustakaan yang menyederhanakan dukungan dan debugging proyek web besar. Implementasi fungsi pihak ketiga dapat dimasukkan dalam bentuk perpustakaan bersama. Aplikasi dapat dibagi menjadi beberapa bagian dan mempercayakan pengembangan setiap bagian kepada tim pemrogram yang terpisah.
  • Seperangkat alat siap pakai untuk mendukung pengembangan dalam bahasa Dart, termasuk implementasi alat pengembangan dan debugging dinamis dengan koreksi kode dengan cepat (“edit-dan-lanjutkan”).
  • Untuk menyederhanakan pengembangan dalam bahasa Dart, ia dilengkapi dengan SDK, pub manajer paket, penganalisis kode statis dart_analyzer, satu set perpustakaan, lingkungan pengembangan terintegrasi DartPad dan plugin yang mendukung Dart untuk IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 dan Vim.
  • Paket tambahan dengan perpustakaan dan utilitas didistribusikan melalui repositori pub, yang memiliki lebih dari 20 ribu paket.

Perubahan besar dalam rilis Dart 2.14:

  • Operator triple shift baru (>>>) telah ditambahkan, yang, tidak seperti operator “>>”, tidak melakukan aritmatika, tetapi pergeseran logis yang bekerja tanpa memperhitungkan bit tanda (pergeseran dilakukan tanpa membagi menjadi bilangan positif dan negatif).
  • Menghapus batasan pada argumen tipe yang mencegah tipe fungsi generik digunakan sebagai argumen tipe. Misalnya, sekarang Anda dapat menentukan: Daftar terlambat (T)>idFungsi; var panggilan balik = [ (nilai T) => nilai]; fungsi S akhir (T)>(S) f;
  • Izinkan menentukan argumen dengan tipe dalam anotasi seperti @Deprecated. Misalnya, kini Anda dapat menentukan: @TypeHelper (42, "Artinya")
  • Metode statis hash, hashAll dan hashAllUnordered telah ditambahkan ke perpustakaan standar (inti) di kelas Object. Kelas DateTime telah meningkatkan penanganan waktu lokal ketika mengkonversi jam antara waktu musim panas dan musim dingin yang tidak habis dibagi satu jam (misalnya, di Australia digunakan offset 30 menit). Paket ffi telah menambahkan dukungan untuk mekanisme alokasi memori arena, yang secara otomatis melepaskan sumber daya. Paket ffigen telah menambahkan kemampuan untuk menghasilkan definisi typedef tipe Dart dari bahasa C.
  • 250 paket paling populer dari repositori pub.dev dan 94% dari 1000 paket teratas telah dialihkan menggunakan mode "keamanan nol", yang akan menghindari kerusakan yang disebabkan oleh upaya menggunakan variabel yang nilainya tidak ditentukan dan disetel ke "Null ” " Mode ini menyiratkan bahwa variabel tidak boleh memiliki nilai nol kecuali variabel tersebut secara eksplisit diberi nilai nol. Mode ini sangat menghormati tipe variabel, yang memungkinkan kompiler menerapkan optimasi tambahan. Kepatuhan tipe diperiksa pada waktu kompilasi, misalnya, jika Anda mencoba menetapkan nilai "Null" ke variabel dengan tipe yang tidak menyiratkan status tidak terdefinisi, seperti "int", kesalahan akan ditampilkan.
  • Serangkaian aturan terpadu untuk penganalisis kode (linter) diusulkan, memberikan dukungan simultan untuk memeriksa kepatuhan terhadap pedoman gaya kode untuk Dart dan kerangka Flutter. Karena alasan historis, aturan pengkodean untuk Flutter dan Dart berbeda, selain itu, untuk Dart ada dua kumpulan aturan yang digunakan - aturan bertele-tele dari Google dan aturan dari komunitas pengembang Dart. Dart 2.14 memperkenalkan seperangkat aturan umum baru untuk linter, yang diputuskan untuk digunakan secara default di proyek Dart baru dan di Flutter SDK. Kumpulan ini mencakup aturan inti (paket lints/core.yaml), aturan tambahan yang direkomendasikan (lints/recommended.yaml), dan rekomendasi khusus Flutter (flutter_lints/flutter.yaml). Pengguna aturan bertele-tele disarankan untuk beralih menggunakan gaya pengkodean baru berdasarkan rekomendasi dari dokumentasi Dart.
  • Dalam formatter, optimasi telah dilakukan pada pemformatan blok kode berjenjang, yang secara signifikan dapat meningkatkan kinerja pemformatan dan menghindari interpretasi ambigu atas kepemilikan elemen ekspresi. Misalnya, memanggil "..doIt" dalam ekspresi "var result = errorState ? foo : bad..doIt()” tidak menyangkut bagian kondisional dari blok “buruk”, tetapi seluruh ekspresi, jadi ketika memformatnya sekarang dipisahkan: var result = errorState ? foo : buruk ..doIt();
  • Dukungan untuk prosesor Apple M1 (Silicon) telah ditambahkan ke SDK, yang menyiratkan kemampuan untuk menjalankan Dart VM, utilitas dan komponen SDK pada sistem dengan prosesor Apple Silicon, dan dukungan untuk mengompilasi file yang dapat dieksekusi untuk chip ini.
  • Perintah "dart pub" telah menambahkan dukungan untuk file layanan baru ".pubignore", yang memungkinkan Anda menentukan daftar file yang akan dilewati saat menerbitkan paket ke repositori pub.dev. Pengaturan ini tidak mengganggu daftar abaikan “.gitignore” (dalam beberapa situasi, pub.dev mungkin ingin menghindari transfer file yang diperlukan di Git, misalnya skrip internal yang digunakan selama pengembangan).
  • Pekerjaan telah dilakukan untuk meningkatkan kinerja perintah "dart test", yang sekarang tidak memerlukan kompilasi ulang tes setelah mengubah pubspec jika nomor versi tidak berubah.
  • Dukungan untuk kompilasi dalam mode kompatibilitas ECMAScript 5 telah dihentikan (perubahan akan mengakibatkan hilangnya kompatibilitas dengan browser IE11).
  • Utilitas individual stagehand, dartfmt dan dart2native telah dinyatakan usang, digantikan oleh perintah bawaan yang dipanggil melalui utilitas dart.
  • Mekanisme VM Native Extensions sudah tidak digunakan lagi. Untuk memanggil kode asli dari kode Dart, disarankan untuk menggunakan Dart FFI (Foreign Function Interface) yang baru.

Pada saat yang sama, rilis signifikan kerangka antarmuka pengguna Flutter 2.5 disajikan, yang dianggap sebagai alternatif dari React Native dan memungkinkan, berdasarkan satu basis kode, untuk merilis aplikasi untuk iOS, Android, Windows, macOS dan Linux. platform, serta membuat aplikasi untuk dijalankan di browser. Shell khusus untuk sistem operasi mikrokernel Fuchsia yang dikembangkan oleh Google dibuat berdasarkan Flutter.

Bagian utama kode Flutter diimplementasikan dalam bahasa Dart, dan mesin runtime untuk menjalankan aplikasi ditulis dalam C++. Saat mengembangkan aplikasi, selain bahasa Dart asli Flutter, Anda dapat menggunakan antarmuka Dart Foreign Function untuk memanggil kode C/C++. Performa eksekusi tinggi dicapai dengan mengkompilasi aplikasi ke kode asli untuk platform target. Dalam hal ini, program tidak perlu dikompilasi ulang setelah setiap perubahan - Dart menyediakan mode hot reload yang memungkinkan Anda membuat perubahan pada aplikasi yang sedang berjalan dan segera mengevaluasi hasilnya.

Perubahan besar di Flutter 2.5:

  • Melakukan optimalisasi kinerja yang signifikan. Pada platform iOS dan macOS, prakompilasi shader untuk API grafis Metal telah diterapkan. Peningkatan efisiensi pemrosesan peristiwa asinkron. Menyelesaikan masalah penundaan saat pengumpul sampah mengambil kembali memori dari gambar yang tidak digunakan (misalnya, selama pemutaran GIF animasi 20 detik, jumlah operasi pengumpulan sampah berkurang dari 400 menjadi 4. Penundaan saat meneruskan pesan antara Dart dan Objective- C/Swift dikurangi menjadi 50% (iOS) atau Java/Kotlin (Android) Menambahkan dukungan build asli untuk sistem berbasis chip Apple Silicon.
    Tersedia bahasa Dart 2.14 dan kerangka kerja Flutter 2.5
  • Untuk platform Android, dukungan untuk menjalankan aplikasi dalam mode layar penuh telah ditetapkan. Penerapan konsep desain “Material You”, yang dihadirkan sebagai opsi Desain Material generasi berikutnya, terus berlanjut. Menambahkan status baru MaterialState.scrolledUnder, menerapkan tampilan dinamis bilah gulir saat mengubah ukuran, dan mengusulkan antarmuka baru untuk menampilkan spanduk pemberitahuan.
  • Kemampuan plug-in kamera telah diperluas secara signifikan, menambahkan alat untuk mengontrol fokus otomatis, eksposur, flash, zoom, pengurangan noise, dan resolusi.
  • Alat pengembang (DevTools) telah ditingkatkan untuk menyertakan mode inspeksi widget yang diperbarui, serta alat untuk mengidentifikasi penundaan rendering dan melacak kompilasi shader.
    Tersedia bahasa Dart 2.14 dan kerangka kerja Flutter 2.5
  • Plugin yang ditingkatkan untuk Visual Studio Code dan IntelliJ/Android Studio.

Sumber: opennet.ru

Tambah komentar