Dart 2.14 tili va Flutter 2.5 ramkasi mavjud

Google Dart 2.14 dasturlash tilini nashr etdi, u Dart 2-ning tubdan qayta ishlangan bo'limining rivojlanishini davom ettiradi, bu Dart tilining asl versiyasidan kuchli statik yozishdan foydalanish bilan farqlanadi (turlar avtomatik ravishda aniqlanishi mumkin, shuning uchun). turlarini ko'rsatish shart emas, lekin dinamik terish endi ishlatilmaydi va dastlab hisoblangan tur o'zgaruvchiga tayinlanadi va keyinchalik qattiq tur tekshiruvi qo'llaniladi).

Dart tilining xususiyatlari:

  • Tanish va o'rganish oson sintaksis, JavaScript, C va Java dasturchilari uchun tabiiy.
  • Portativ qurilmalardan tortib kuchli serverlargacha bo'lgan barcha zamonaviy veb-brauzerlar va har xil turdagi muhitlar uchun tezkor ishga tushirish va yuqori unumdorlikni ta'minlash.
  • Mavjud usullar va ma'lumotlarni inkapsulyatsiya qilish va qayta ishlatish imkonini beruvchi sinflar va interfeyslarni aniqlash qobiliyati.
  • Turlarni ko'rsatish xatolarni tuzatish va aniqlashni osonlashtiradi, kodni aniqroq va o'qilishi mumkin bo'ladi va uchinchi tomon ishlab chiquvchilari tomonidan uni o'zgartirish va tahlil qilishni soddalashtiradi.
  • Qo'llab-quvvatlanadigan turlarga quyidagilar kiradi: har xil turdagi xeshlar, massivlar va ro'yxatlar, navbatlar, raqamli va qatorlar turlari, sana va vaqtni aniqlash uchun turlar, muntazam ifodalar (RegExp). O'zingizning turlaringizni yaratishingiz mumkin.
  • Parallel bajarishni tashkil qilish uchun kodi to'liq alohida xotira maydonida, xabarlarni jo'natish orqali asosiy jarayon bilan o'zaro aloqada bo'lgan izolyatsiya qilingan maydonda bajariladigan izolyatsiyalash atributiga ega sinflardan foydalanish taklif etiladi.
  • Katta veb-loyihalarni qo'llab-quvvatlash va disk raskadrovka qilishni soddalashtiradigan kutubxonalardan foydalanishni qo'llab-quvvatlash. Funksiyalarning uchinchi tomon ilovalari umumiy kutubxonalar shaklida kiritilishi mumkin. Ilovalarni qismlarga bo'lish va har bir qismni ishlab chiqishni alohida dasturchilar jamoasiga topshirish mumkin.
  • Dart tilidagi rivojlanishni qo'llab-quvvatlash uchun tayyor vositalar to'plami, shu jumladan dinamik rivojlanish va disk raskadrovka vositalarini tezda kodni tuzatish bilan ("tahrirlash va davom ettirish").
  • Dart tilida ishlab chiqishni soddalashtirish uchun u SDK, paketlar menejeri pub, dart_analyzer statik kod analizatori, kutubxonalar to'plami, DartPad integratsiyalashgan ishlab chiqish muhiti va IntelliJ IDEA, WebStorm, Emacs, Sublime Text uchun Dart-ni qo'llab-quvvatlaydigan plaginlar bilan birga keladi. 2 va Vim.
  • Kutubxonalar va yordamchi dasturlarga ega qo'shimcha paketlar 20 mingdan ortiq paketga ega bo'lgan pub ombori orqali tarqatiladi.

Dart 2.14 versiyasidagi asosiy o'zgarishlar:

  • “>>” operatoridan farqli o'laroq, arifmetikani emas, balki ishora bitini hisobga olmasdan ishlaydigan mantiqiy siljishni bajaradigan yangi uchlik o'zgartirish operatori (>>>) qo'shildi (siljish bo'linmasdan amalga oshiriladi. ijobiy va salbiy raqamlar).
  • Umumiy funktsiya turlarini tur argumenti sifatida ishlatishga to'sqinlik qiluvchi turdagi argumentlar bo'yicha cheklov olib tashlandi. Masalan, endi siz quyidagilarni belgilashingiz mumkin: kech ro'yxat (T)>idFunctions; var qayta qo'ng'iroq = [ (T qiymati) => qiymat]; kech S Funktsiya (T)>(S) f;
  • @Deprecated kabi izohlarda turlar bilan argumentlarni belgilashga ruxsat bering. Misol uchun, endi belgilashingiz mumkin: @TypeHelper (42, "Ma'no")
  • Hash, hashAll va hashAllUnordered statik usullar Object sinfidagi standart kutubxonaga (yadro) qo'shilgan. DateTime klassi bir soatga bo'linmaydigan yoz va qish vaqtlari o'rtasidagi soatlarni o'zgartirganda mahalliy vaqtni boshqarishni yaxshiladi (masalan, Avstraliyada 30 daqiqalik ofset qo'llaniladi). Ffi to'plami resurslarni avtomatik ravishda chiqaradigan arena xotirasini ajratish mexanizmini qo'llab-quvvatladi. Ffigen to'plami C tilidan Dart turlarining typedef ta'riflarini yaratish qobiliyatini qo'shdi.
  • Pub.dev omboridagi 250 ta eng ommabop paketlar va 94 ta eng yaxshi paketlarning 1000 foizi “null xavfsizlik” rejimidan foydalanishga oʻtkazildi, bu esa qiymati aniqlanmagan va “Null” ga oʻrnatilgan oʻzgaruvchilardan foydalanishga urinishlar natijasida yuzaga keladigan buzilishlarning oldini oladi. "" Tartib o'zgaruvchilarga null qiymatlari aniq belgilanmagan bo'lsa, null qiymatlarga ega bo'lmasligini anglatadi. Rejim o'zgaruvchan turlarini qat'iy hurmat qiladi, bu kompilyatorga qo'shimcha optimallashtirishlarni qo'llash imkonini beradi. Turga muvofiqligi kompilyatsiya vaqtida tekshiriladi, masalan, “int” kabi noaniq holatni bildirmaydigan turga ega o‘zgaruvchiga “Null” qiymatini belgilashga harakat qilsangiz, xatolik ko‘rsatiladi.
  • Dart va Flutter ramkalari uchun kod uslubi ko'rsatmalariga muvofiqligini tekshirish uchun bir vaqtning o'zida yordam beradigan kod analizatori (linter) uchun yagona qoidalar to'plami taklif etiladi. Tarixiy sabablarga ko'ra, Flutter va Dart uchun kodlash qoidalari boshqacha edi, bundan tashqari, Dart uchun ikkita qoidalar to'plami qo'llanilgan - Google'dan pedantik qoidalar va Dart dasturchilar hamjamiyatining qoidalari. Dart 2.14 yangi Dart loyihalarida va Flutter SDK-da sukut bo'yicha foydalanishga qaror qilingan linter uchun yangi umumiy qoidalar to'plamini taqdim etadi. To'plam asosiy qoidalarni (lints/core.yaml paketi), tavsiya etilgan qo'shimcha qoidalarni (lints/recommended.yaml) va Flutterga xos tavsiyalarni (flutter_lints/flutter.yaml) o'z ichiga oladi. Pedantik qoidalar foydalanuvchilariga Dart hujjatlaridagi tavsiyalar asosida yangi kodlash uslubidan foydalanishga o'tish tavsiya etiladi.
  • Formatlashtiruvchida kaskadli kod bloklarini formatlashda optimallashtirishlar amalga oshirildi, bu formatlash samaradorligini sezilarli darajada yaxshilaydi va ifoda elementlariga egalik huquqini noaniq talqin qilishning oldini oladi. Misol uchun, "var natija = errorState" iborasida "..doIt" ni chaqirish? foo : bad..doIt()” “yomon” blokning shartli qismiga emas, balki butun ifodaga tegishli, shuning uchun formatlashda u endi ajratiladi: var result = errorState ? foo : yomon ..doIt();
  • SDK-ga Apple M1 (Silicon) protsessorlarini qo'llab-quvvatlash qo'shildi, bu Apple Silicon protsessoriga ega tizimlarda Dart VM, yordamchi dasturlar va SDK komponentlarini ishga tushirish qobiliyatini hamda ushbu chiplar uchun bajariladigan fayllarni kompilyatsiya qilishni qo'llab-quvvatlashni nazarda tutadi.
  • "Dart pub" buyrug'i yangi ".pubignore" xizmat faylini qo'llab-quvvatlashni qo'shdi, bu sizga pub.dev omboriga paketni nashr qilishda o'tkazib yuboriladigan fayllar ro'yxatini aniqlash imkonini beradi. Ushbu sozlamalar ".gitignore" e'tiborsiz qoldirish ro'yxatiga xalaqit bermaydi (ba'zi hollarda pub.dev Git-da zarur bo'lgan fayllarni, masalan, ishlab chiqishda ishlatiladigan ichki skriptlarni o'tkazishdan qochishni xohlashi mumkin).
  • "Dart test" buyrug'ining ishlashini yaxshilash bo'yicha ishlar amalga oshirildi, bu endi versiya raqami o'zgarmagan bo'lsa, pubspec-ni o'zgartirgandan so'ng testlarni qayta kompilyatsiya qilishni talab qilmaydi.
  • ECMAScript 5 moslik rejimida kompilyatsiyani qo‘llab-quvvatlash to‘xtatildi (o‘zgartirish IE11 brauzeri bilan moslikni yo‘qotishiga olib keladi).
  • Stagehand, dartfmt va dart2native individual yordamchi dasturlari eskirgan deb e'lon qilindi, ularning o'rniga dart yordam dasturi orqali chaqiriladigan o'rnatilgan buyruqlar almashtirildi.
  • VM Native Extensions mexanizmi eskirgan. Dart kodidan mahalliy kodga qo'ng'iroq qilish uchun yangi Dart FFI (Xorijiy funktsiya interfeysi) dan foydalanish tavsiya etiladi.

Shu bilan birga, Flutter 2.5 foydalanuvchi interfeysi ramkasining muhim versiyasi taqdim etildi, u React Native-ga muqobil hisoblanadi va bitta kod bazasi asosida iOS, Android, Windows, macOS va Linux uchun ilovalarni chiqarish imkonini beradi. platformalar, shuningdek, brauzerlarda ishlash uchun ilovalar yaratish. Google tomonidan ishlab chiqilgan Fuchsia microkernel operatsion tizimi uchun maxsus qobiq Flutter asosida qurilgan.

Flutter kodining asosiy qismi Dart tilida amalga oshirilgan va ilovalarni bajarish uchun ish vaqti mexanizmi C++ da yozilgan. Ilovalarni ishlab chiqishda, Flutterning ona tilidan tashqari, siz C/C++ kodini chaqirish uchun Dart Foreign Function interfeysidan foydalanishingiz mumkin. Ilovalarni maqsadli platformalar uchun mahalliy kodga kompilyatsiya qilish orqali yuqori ijro ko'rsatkichlariga erishiladi. Bunday holda, har bir o'zgarishdan keyin dasturni qayta kompilyatsiya qilish shart emas - Dart ishlayotgan dasturga o'zgartirishlar kiritish va natijani darhol baholash imkonini beruvchi issiq qayta yuklash rejimini taqdim etadi.

Flutter 2.5-dagi asosiy o'zgarishlar:

  • Muhim ish faoliyatini optimallashtirish amalga oshirildi. iOS va macOS platformalarida Metal grafik API uchun shaderlarni oldindan kompilyatsiya qilish amalga oshirildi. Asinxron hodisalarni qayta ishlash samaradorligi yaxshilandi. Axlat yig'uvchi foydalanilmagan tasvirlardan xotirani qayta tiklashdagi kechikishlar bilan bog'liq muammo hal qilindi (masalan, 20 soniyalik animatsion GIF-ni o'ynatish paytida, axlat yig'ish operatsiyalari soni 400 dan 4 gacha kamaydi. Dart va Objective- o'rtasida xabarlarni uzatishdagi kechikishlar - C/Swift 50% (iOS) yoki Java/Kotlin (Android) ga qisqartirildi Apple Silicon chipiga asoslangan tizimlar uchun mahalliy qurilish qo'llab-quvvatlashi qo'shildi.
    Dart 2.14 tili va Flutter 2.5 ramkasi mavjud
  • Android platformasi uchun ilovalarni to'liq ekran rejimida ishga tushirishni qo'llab-quvvatlash o'rnatildi. Keyingi avlod Material Design varianti sifatida taqdim etilgan "Material You" dizayn konsepsiyasini amalga oshirish davom etdi. MaterialState.scrolledUnder yangi holati qo‘shildi, o‘lchamini o‘zgartirishda aylantirish satrlarini dinamik ko‘rsatishni amalga oshirdi va bildirishnoma bannerlarini ko‘rsatish uchun yangi interfeysni taklif qildi.
  • Kamera plaginining imkoniyatlari sezilarli darajada kengaytirildi, avtofokus, ekspozitsiya, miltillash, masshtablash, shovqinni pasaytirish va piksellar sonini boshqarish uchun asboblar qo'shildi.
  • Dasturchilar vositalari (DevTools) yangilangan vidjetni tekshirish rejimini, shuningdek, renderlash kechikishlarini aniqlash va shader kompilyatsiyasini kuzatish vositalarini o'z ichiga olgan holda takomillashtirildi.
    Dart 2.14 tili va Flutter 2.5 ramkasi mavjud
  • Visual Studio Code va IntelliJ/Android Studio uchun yaxshilangan plaginlar.

Manba: opennet.ru

a Izoh qo'shish