Dart 2.14 dili ve Flutter 2.5 çerçevesi mevcut

Google, Dart dilinin orijinal sürümünden güçlü statik yazma kullanımıyla farklılaşan (türler otomatik olarak çıkarılabilir) kökten yeniden tasarlanmış bir Dart 2.14 dalının geliştirilmesine devam eden Dart 2 programlama dilinin sürümünü yayınladı. Türleri belirtmek gerekli değildir, ancak dinamik yazma artık kullanılmamaktadır ve başlangıçta hesaplanan tür, değişkene atanır ve daha sonra katı tür kontrolü uygulanır).

Dart dilinin özellikleri:

  • Tanıdık ve öğrenmesi kolay sözdizimi, JavaScript, C ve Java programcıları için doğaldır.
  • Taşınabilir cihazlardan güçlü sunuculara kadar tüm modern web tarayıcıları ve çeşitli ortam türleri için hızlı başlatma ve yüksek performans sağlar.
  • Mevcut yöntem ve verilerin kapsüllenmesine ve yeniden kullanılmasına olanak tanıyan sınıfları ve arayüzleri tanımlama yeteneği.
  • Türleri belirtmek, hataları ayıklamayı ve hataları tanımlamayı kolaylaştırır, kodu daha net ve okunabilir hale getirir ve üçüncü taraf geliştiriciler tarafından değiştirilmesini ve analizini basitleştirir.
  • Desteklenen türler şunları içerir: çeşitli karma türleri, diziler ve listeler, kuyruklar, sayısal ve dize türleri, tarih ve saati belirlemeye yönelik türler, normal ifadeler (RegExp). Kendi türlerinizi oluşturmanız mümkündür.
  • Paralel yürütmeyi düzenlemek için, kodu tamamen ayrı bir bellek alanında yalıtılmış alanda yürütülen, mesaj göndererek ana süreçle etkileşime giren izolasyon özelliğine sahip sınıfların kullanılması önerilmektedir.
  • Büyük web projelerinin desteklenmesini ve hata ayıklamasını kolaylaştıran kitaplıkların kullanımına yönelik destek. İşlevlerin üçüncü taraf uygulamaları, paylaşılan kitaplıklar biçiminde dahil edilebilir. Uygulamalar parçalara bölünebilir ve her parçanın geliştirilmesi ayrı bir programcı ekibine emanet edilebilir.
  • Dinamik geliştirmenin uygulanması ve anında kod düzeltme özelliğine sahip hata ayıklama araçları dahil olmak üzere Dart dilinde geliştirmeyi destekleyen bir dizi hazır araç ("düzenle ve devam et").
  • Dart dilinde geliştirmeyi kolaylaştırmak için bir SDK, bir paket yöneticisi pub, bir statik kod analizörü dart_analyzer, bir dizi kitaplık, bir entegre geliştirme ortamı DartPad ve IntelliJ IDEA, WebStorm, Emacs, Sublime Text için Dart özellikli eklentiler ile birlikte gelir. 2 ve Vim.
  • Kütüphaneler ve yardımcı programlar içeren ek paketler, 20 binden fazla pakete sahip olan pub deposu aracılığıyla dağıtılmaktadır.

Dart 2.14 sürümündeki önemli değişiklikler:

  • “>>” operatöründen farklı olarak aritmetik değil, işaret bitini dikkate almadan çalışan mantıksal bir kaydırma gerçekleştiren yeni bir üçlü kaydırma operatörü (>>>) eklendi (kaydırma, parçalara bölünmeden gerçekleştirilir) pozitif ve negatif sayılar).
  • Genel işlev türlerinin tür bağımsız değişkeni olarak kullanılmasını engelleyen tür bağımsız değişkenlerindeki kısıtlama kaldırıldı. Örneğin, artık şunları belirtebilirsiniz: Geç Liste (T)>idFunctions; var geri arama = [ (T değeri) => değer]; geç S Fonksiyonu (T)>(S) f;
  • @Deprecated gibi ek açıklamalarda türlerle bağımsız değişkenlerin belirtilmesine izin verin. Örneğin, artık şunu belirtebilirsiniz: @TypeHelper (42, "Anlamı")
  • Hash, hashAll ve hashAllUnordered statik yöntemleri Object sınıfındaki standart kitaplığa (çekirdek) eklenmiştir. DateTime sınıfı, bir saate bölünemeyen saatleri yaz ve kış saati arasında dönüştürürken yerel saatin kullanımını iyileştirmiştir (örneğin, Avustralya'da 30 dakikalık bir fark kullanılır). ffi paketi, kaynakları otomatik olarak serbest bırakan arena hafıza ayırma mekanizması için destek ekledi. ffigen paketi, C dilinden Dart türlerinin typedef tanımlarını oluşturma yeteneğini ekledi.
  • Pub.dev deposundaki en popüler 250 paket ve ilk 94 paketin %1000'ü, değeri tanımlanmamış ve "Null" olarak ayarlanmış değişkenleri kullanma girişimlerinin neden olduğu çökmeleri önleyecek "null güvenlik" moduna geçirildi ” " Mod, değişkenlere açıkça null değeri atanmadıkça null değerlere sahip olamayacağını ima eder. Mod, derleyicinin ek optimizasyonlar uygulamasına olanak tanıyan değişken türlerine kesinlikle saygı gösterir. Tür uyumluluğu derleme zamanında kontrol edilir, örneğin "int" gibi tanımsız durumu ima etmeyen bir türe sahip bir değişkene "Null" değerini atamaya çalışırsanız bir hata görüntülenecektir.
  • Dart ve Flutter çerçevesi için kod stili yönergelerine uygunluğun kontrol edilmesi için eş zamanlı destek sağlayan, kod analizörü (linter) için birleştirilmiş kural kümeleri önerilmiştir. Tarihsel nedenlerden dolayı, Flutter ve Dart'ın kodlama kuralları farklıydı; ayrıca Dart için iki tür kural kullanılıyordu: Google'ın bilgiçlik kuralları ve Dart geliştirici topluluğunun kuralları. Dart 2.14, yeni Dart projelerinde ve Flutter SDK'da varsayılan olarak kullanılmasına karar verilen linter için yeni bir ortak kurallar dizisi sunuyor. Set, temel kuralları (lints/core.yaml paketi), önerilen ek kuralları (lints/recommended.yaml) ve Flutter'a özel önerileri (flutter_lints/flutter.yaml) içerir. Bilgiçlik kuralları kullanan kullanıcıların, Dart belgelerindeki önerilere dayalı olarak yeni bir kodlama stili kullanmaya geçmeleri önerilir.
  • Biçimlendiricide, basamaklı kod bloklarının biçimlendirmesinde, biçimlendirme performansını önemli ölçüde artırabilen ve ifade öğelerinin sahipliğinin belirsiz yorumlanmasını önleyebilen optimizasyonlar yapılmıştır. Örneğin, "var result = errorState" ifadesinde "..doIt" ifadesini çağırmak? foo : bad..doIt()”, “bad” bloğunun koşullu kısmıyla değil, ifadenin tamamıyla ilgilidir, dolayısıyla biçimlendirme sırasında artık ayrılmıştır: var result = errorState ? foo : kötü ..doIt();
  • SDK'ya Apple M1 (Silicon) işlemci desteği eklendi; bu, hem Dart VM'yi, yardımcı programları ve SDK bileşenlerini Apple Silicon işlemcili sistemlerde çalıştırma yeteneğini hem de bu yongalar için yürütülebilir dosyaları derleme desteğini ima ediyor.
  • "Dart pub" komutu, pub.dev deposunda bir paket yayınlarken atlanacak dosyaların listesini tanımlamanıza olanak tanıyan yeni bir hizmet dosyası ".pubignore" için destek ekledi. Bu ayarlar ".gitignore" yoksayma listesine müdahale etmez (bazı durumlarda pub.dev, Git'te gerekli olan dosyaların, örneğin geliştirme sırasında kullanılan dahili komut dosyalarının aktarılmasından kaçınmak isteyebilir).
  • Sürüm numarası değişmediyse artık pubspec değiştirildikten sonra yeniden derleme testlerini gerektirmeyen "dart testi" komutunun performansını iyileştirmek için çalışmalar yapıldı.
  • ECMAScript 5 uyumluluk modunda derleme desteği durduruldu (değişiklik, IE11 tarayıcısıyla uyumluluğun kaybolmasına neden olacaktır).
  • Bireysel yardımcı programlar stagehand, dartfmt ve dart2native'in eski olduğu ilan edildi ve bunların yerini dart yardımcı programı aracılığıyla çağrılan yerleşik komutlar aldı.
  • VM Yerel Uzantıları mekanizması kullanımdan kaldırıldı. Dart kodundan yerel kodu çağırmak için yeni Dart FFI'nin (Yabancı Fonksiyon Arayüzü) kullanılması önerilir.

Aynı zamanda, React Native'e alternatif olarak kabul edilen ve tek kod tabanına dayalı olarak iOS, Android, Windows, macOS ve Linux için uygulamaların yayınlanmasına izin veren kullanıcı arayüzü çerçevesi Flutter 2.5'in önemli bir sürümü sunuldu. platformlarının yanı sıra tarayıcılarda çalıştırılacak uygulamalar oluşturun. Google tarafından geliştirilen Fuchsia mikro çekirdek işletim sistemi için özel bir kabuk, Flutter temel alınarak oluşturulmuştur.

Flutter kodunun ana kısmı Dart dilinde gerçeklenmiştir ve uygulamaları yürütmek için kullanılan çalışma zamanı motoru C++ ile yazılmıştır. Uygulama geliştirirken Flutter'ın yerel Dart diline ek olarak, C/C++ kodunu çağırmak için Dart Yabancı Fonksiyon arayüzünü de kullanabilirsiniz. Uygulamaların hedef platformlar için yerel koda derlenmesiyle yüksek yürütme performansı elde edilir. Bu durumda, programın her değişiklikten sonra yeniden derlenmesine gerek yoktur - Dart, çalışan bir uygulamada değişiklik yapmanıza ve sonucu hemen değerlendirmenize olanak tanıyan bir sıcak yeniden yükleme modu sağlar.

Flutter 2.5'teki büyük değişiklikler:

  • Önemli performans optimizasyonları yapıldı. iOS ve macOS platformlarında, Metal grafik API'si için gölgelendiricilerin ön derlemesi uygulandı. Eşzamansız olayların işlenmesinde geliştirilmiş verimlilik. Çöp toplayıcının kullanılmayan görüntülerden belleği geri alması sırasında yaşanan gecikmelerle ilgili sorun çözüldü (örneğin, 20 saniyelik bir animasyonlu GIF'in oynatılması sırasında çöp toplama işlemlerinin sayısı 400'den 4'e düşürüldü. Dart ve Objective arasında mesaj iletilirken yaşanan gecikmeler) C/Swift %50'ye (iOS) veya Java/Kotlin'e (Android) düşürüldü. Apple Silicon çipini temel alan sistemler için yerel yapı desteği eklendi.
    Dart 2.14 dili ve Flutter 2.5 çerçevesi mevcut
  • Android platformu için uygulamaların tam ekran modunda çalıştırılmasına yönelik destek oluşturulmuştur. Yeni nesil Materyal Tasarım seçeneği olarak sunulan “Material You” tasarım konseptinin uygulamalarına devam edildi. Yeni bir MaterialState.scrolledUnder durumu eklendi, yeniden boyutlandırma sırasında kaydırma çubuklarının dinamik gösterimi uygulandı ve bildirim başlıklarını görüntülemek için yeni bir arayüz önerildi.
  • Kamera eklentisinin yetenekleri, otomatik odaklama, pozlama, flaş, yakınlaştırma, gürültü azaltma ve çözünürlüğü kontrol etmeye yönelik araçlar eklenerek önemli ölçüde genişletildi.
  • Geliştirici araçları (DevTools), güncellenmiş bir pencere öğesi inceleme modunun yanı sıra oluşturma gecikmelerini belirleme ve gölgelendirici derlemesini izlemeye yönelik araçları içerecek şekilde iyileştirildi.
    Dart 2.14 dili ve Flutter 2.5 çerçevesi mevcut
  • Visual Studio Code ve IntelliJ/Android Studio için geliştirilmiş eklentiler.

Kaynak: opennet.ru

Yorum ekle