Objavljen je Dart 2.12 s null-safety i C interoperabilnošću

Google je izdao Dart 2.12, novu verziju jezika koji se koristi za izradu aplikacija u Flutteru. Izdanje dolazi uz Flutter 2.0.

s izdanje Fluttera 2.0, Google također dovodi Dart 2.12 u stabilnu verziju. Ako niste znali, Dart je jezik koji koristi Flutter. To je jezik temeljen na TypeScriptu, ali dolazi s nekim dodacima jezičnih značajki, uključujući i one koje ću proći.

Nulta sigurnost

Sigurnost nule je prilično dobra značajka jezika. Prisiljava vas da razmislite hoće li varijabla ikada biti null i eksplicitno se pozabaviti potencijalnim null situacijama, dok vam također omogućuje jamstvo da određene varijable nikada neće biti null.

U Dartu 2.12 sada postoji puna podrška za null-safety, sa sintaksom sličnom Swiftu i Kotlinu. Postoji čak i pametno pretvaranje, gdje Dart sa sigurnošću zna da varijabla s normalnom nullom ne može biti null, on će je implicitno pretvoriti u oblik koji nije nullable.

Budući da je null-safety (vrlo) prijelomna promjena, ova je značajka opt-in. Ako ažurirate na Dart 2.12, vaša se kompilacija neće pokvariti i nećete morati trošiti sate na dodavanje savjeta o nullabilnosti svemu. Možete čak koristiti null-safe ovisnosti ako vaš projekt još nije null-safe.

Nakon što se odlučite za migraciju, možete koristiti ugrađeni alat za migraciju (dart migrirati) i/ili vodič za migraciju da se sve postavi.

Također, iako je null-safety uključen u Dart 2.12, ako stvorite novi Flutter projekt, null-safety neće biti omogućen odmah. Morat ćete ga omogućiti ručno. Novi Dart projekti imat će omogućenu null-safety.

Sučelje stranih funkcija

Iako je Dart (i Flutter) usredotočen na potpunu kompatibilnost s više platformi, još uvijek postoje neke stvari koje jednostavno treba napraviti izvorno. Kako bi olakšao izvorne operacije, Dart ima strano funkcijsko sučelje ili FFI. FFI vam omogućuje interakciju s C kodom iz Darta bez potrebe za pribjegavanjem čudnim API pozivima temeljenim na nizovima ili drugim nezgrapnim metodama interoperabilnosti.

A uz Dart 2.12, FFI je sada stabilan, što znači da je spreman za korištenje u produkcijskim projektima i da je uglavnom kompletan sa značajkama.

Imajući to na umu, postoje neke promjene u FFI-ju, uključujući i nekoliko prijelomnih.

Većina fokusa u ovom izdanju bila je na tome kako se strukture mogu koristiti s Dartom i C-om. Kao prvo, sada možete proslijediti strukture u svom C kodu prema referenci i vrijednosti, gdje su prije bile podržane samo reference. Druga važna značajka je podrška za ugniježđene strukture, koja nije bila prisutna prije ovog izdanja.

Sada za ključne promjene. Ako ste koristili FFI, možda ćete morati ažurirati svoj kod da radi s 2.12. S ovom verzijom FFI-ja više ne možete stvarati prazne strukture. Ako vam je iz nekog razloga potreban, možete koristiti novu vrstu "Opaque". Postoje i neke promjene u načinu na koji rade neke od FFI ugrađenih funkcija, koje možete pročitajte ovdje.

Konačno, postoji novi paket za FFI koji vam omogućuje generiranje FFI omotača iz postojećih C datoteka zaglavlja, tzv. ffigen. Ako imate puno C koda koji trebate koristiti, s puno API metoda, ovo će biti prilično korisno. Čak i ako je količina C koda koju imate mala, ovo je dobra značajka.


I to je uglavnom to za Dart 2.12. S dodatkom null-safety i stabilnom bibliotekom C interoperabilnosti, Dart se pretvara u jezik vrlo bogat značajkama. Javite nam što mislite o Dartu 2.12 u komentarima!