Google-მა გამოუშვა Dart 2.12, ენის ახალი ვერსია, რომელიც გამოიყენება Flutter-ში აპლიკაციების შესაქმნელად. გამოშვება მოდის Flutter 2.0-თან ერთად.
Ერთად Flutter 2.0-ის გამოშვებაGoogle ასევე მოაქვს Dart 2.12 სტაბილურობას. თუ არ იცოდით, Dart არის ენა, რომელსაც იყენებს Flutter. ეს არის TypeScript-ზე დაფუძნებული ენა, მაგრამ მოყვება რამდენიმე ენის მახასიათებლის დამატება, მათ შორის ისეთებიც, რომლებსაც ვაპირებ გადახედვას.
ნულოვანი უსაფრთხოება
ნულოვანი უსაფრთხოება საკმაოდ შესანიშნავი ენობრივი ფუნქციაა. ის გაიძულებს განიხილო, იქნება თუ არა ცვლადი ოდესმე ნულოვანი, და მკაფიოდ გაუმკლავდე პოტენციურ ნულ სიტუაციებს, ამასთან, გაძლევთ გარანტიას, რომ კონკრეტული ცვლადები არასოდეს იქნება ნული.
Dart 2.12-ში არის სრული მხარდაჭერა null-safety-ისთვის, სინტაქსით Swift-ისა და Kotlin-ის მსგავსი. არსებობს სმარტ-კასტინგიც, სადაც თუ დარტმა დანამდვილებით იცის, რომ ნორმალურად ნულოვანი ცვლადი არ შეიძლება იყოს ნულოვანი, ის ირიბად გადასცემს მას გაუქმებულ ფორმაზე.
ვინაიდან null-safety არის (ძალიან) მკვეთრი ცვლილება, ეს ფუნქცია ნებადართულია. თუ განაახლებთ Dart 2.12-ზე, თქვენი კრებული არ გაფუჭდება და არ მოგიწევთ საათების დახარჯვა ყველაფერზე ბათილობის მინიშნებების დასამატებლად. თქვენ შეგიძლიათ გამოიყენოთ null-safe დამოკიდებულებები, თუ თქვენი პროექტი ჯერ კიდევ არ არის null-safe.
მას შემდეგ რაც გადაწყვეტთ მიგრაციას, შეგიძლიათ გამოიყენოთ ჩაშენებული მიგრაციის ინსტრუმენტი (ისრის მიგრაცია) და/ან მიგრაციის სახელმძღვანელო რომ ყველაფერი მოწესრიგდეს.
ასევე, მიუხედავად იმისა, რომ null-safety შედის Dart 2.12-ში, თუ თქვენ შექმნით ახალ Flutter პროექტს, null-safety არ ჩაირთვება გარეთ. თქვენ უნდა ჩართოთ ის ხელით. Dart-ის ახალ პროექტებში ჩართული იქნება null-safety.
უცხო ფუნქციის ინტერფეისი
მიუხედავად იმისა, რომ Dart-ის (და Flutter-ის) ფოკუსირება სრულ კროს-პლატფორმულ თავსებადობაზეა, ჯერ კიდევ არის რაღაცები, რაც უბრალოდ უნდა გაკეთდეს მშობლიურად. ადგილობრივი ოპერაციების გასაადვილებლად, Dart-ს აქვს უცხო ფუნქციის ინტერფეისი, ან FFI. FFI საშუალებას გაძლევთ დაუკავშირდეთ C კოდს Dart-დან, უცნაურ სტრინგზე დაფუძნებულ API ზარებზე ან სხვა უხერხულ თავსებადობის მეთოდებზე მიმართვის გარეშე.
და Dart 2.12-ით, FFI ახლა სტაბილურია, რაც იმას ნიშნავს, რომ ის მზად არის გამოსაყენებლად საწარმოო პროექტებში და ძირითადად ფუნქციებით არის დასრულებული.
ამის გათვალისწინებით, არის გარკვეული ცვლილებები FFI-ში, მათ შორის რამდენიმე დარღვევის ჩათვლით.
ამ გამოშვებაში ყველაზე მეტი ყურადღება გამახვილდა იმაზე, თუ როგორ შეიძლება სტრუქტურების გამოყენება Dart-თან და C-თან ერთად. ერთი, ახლა შეგიძლიათ გადასცეთ სტრუქტურები თქვენს C კოდში მითითებითა და მნიშვნელობით, სადაც ადრე მხოლოდ ცნობები იყო მხარდაჭერილი. კიდევ ერთი მნიშვნელოვანი ფუნქციაა წყობილი სტრუქტურების მხარდაჭერა, რომელიც არ იყო ამ გამოშვებამდე.
ახლა რაც შეეხება ცვალებად ცვლილებებს. თუ იყენებდით FFI-ს, შეიძლება დაგჭირდეთ თქვენი კოდის განახლება 2.12-თან მუშაობისთვის. FFI-ის ამ ვერსიით, თქვენ აღარ შეგიძლიათ შექმნათ ცარიელი სტრუქტურები. თუ რაიმე მიზეზით გჭირდებათ, შეგიძლიათ გამოიყენოთ ახალი "გაუმჭვირვალე" ტიპი. ასევე არის გარკვეული ცვლილებები, თუ როგორ მუშაობს FFI-ის ზოგიერთი ჩაშენებული ფუნქცია, რაც შეგიძლიათ წაიკითხეთ აქ.
და ბოლოს, არის ახალი პაკეტი FFI-სთვის, რომელიც საშუალებას გაძლევთ შექმნათ FFI შეფუთვები არსებული C სათაურის ფაილებიდან, ე.წ. ffigen. თუ თქვენ გაქვთ ბევრი C კოდი, რომელიც უნდა გამოიყენოთ, ბევრი API მეთოდით, ეს საკმაოდ სასარგებლო იქნება. მაშინაც კი, თუ თქვენ გაქვთ C კოდის რაოდენობა მცირეა, ეს სასიამოვნო მოხერხებულობის ფუნქციაა.
და ეს თითქმის ასეა Dart 2.12-ისთვის. null-უსაფრთხოების და სტაბილური C-თან თავსებადობის ბიბლიოთეკის დამატებით, Dart იქცევა ძალიან მდიდარ ენად. შეგვატყობინეთ რას ფიქრობთ Dart 2.12-ზე კომენტარებში!