زبان دارت 2.14 و فریمورک فلاتر 2.5 موجود است

گوگل انتشار زبان برنامه نویسی Dart 2.14 را منتشر کرده است که به توسعه شاخه ای از دارت 2 که به طور اساسی بازطراحی شده است، ادامه می دهد که با نسخه اصلی زبان دارت با استفاده از تایپ ایستا قوی متفاوت است (انواع را می توان به طور خودکار استنباط کرد، بنابراین تعیین انواع ضروری نیست، اما تایپ پویا دیگر مورد استفاده قرار نمی گیرد و در ابتدا نوع محاسبه شده به متغیر اختصاص داده می شود و پس از آن بررسی دقیق نوع اعمال می شود).

ویژگی های زبان دارت:

  • سینتکس آشنا و آسان برای یادگیری، طبیعی برای برنامه نویسان جاوا اسکریپت، C و جاوا.
  • اطمینان از راه اندازی سریع و عملکرد بالا برای همه مرورگرهای وب مدرن و انواع مختلف محیط ها، از دستگاه های قابل حمل گرفته تا سرورهای قدرتمند.
  • توانایی تعریف کلاس ها و رابط هایی که امکان کپسوله سازی و استفاده مجدد از روش ها و داده های موجود را فراهم می کند.
  • مشخص کردن انواع، اشکال زدایی و شناسایی خطاها را آسان تر می کند، کد را واضح تر و قابل خواندن تر می کند، و اصلاح و تجزیه و تحلیل آن را توسط توسعه دهندگان شخص ثالث ساده می کند.
  • انواع پشتیبانی شده عبارتند از: انواع هش ها، آرایه ها و لیست ها، صف ها، انواع عددی و رشته ای، انواع تعیین تاریخ و زمان، عبارات منظم (RegExp). این امکان وجود دارد که انواع خود را ایجاد کنید.
  • برای سازماندهی اجرای موازی، پیشنهاد می شود از کلاس هایی با ویژگی isolate استفاده شود که کد آنها به طور کامل در فضای ایزوله در یک منطقه حافظه جداگانه اجرا می شود و با ارسال پیام با فرآیند اصلی تعامل دارد.
  • پشتیبانی از استفاده از کتابخانه هایی که پشتیبانی و اشکال زدایی پروژه های بزرگ وب را ساده می کند. پیاده سازی های شخص ثالث توابع را می توان در قالب کتابخانه های مشترک گنجاند. برنامه ها را می توان به قسمت هایی تقسیم کرد و توسعه هر قسمت را به تیم جداگانه ای از برنامه نویسان واگذار کرد.
  • مجموعه ای از ابزارهای آماده برای پشتیبانی از توسعه در زبان دارت، از جمله پیاده سازی ابزارهای توسعه پویا و اشکال زدایی با تصحیح کد در لحظه ("ویرایش و ادامه").
  • برای ساده‌سازی توسعه در زبان دارت، یک SDK، یک میخانه مدیریت بسته، یک تحلیلگر کد استاتیک dart_analyzer، مجموعه‌ای از کتابخانه‌ها، یک محیط توسعه یکپارچه DartPad و پلاگین‌های دارای دارت برای IntelliJ IDEA، WebStorm، Emacs، Sublime Text ارائه می‌شود. 2 و Vim.
  • بسته های اضافی با کتابخانه ها و ابزارهای کمکی از طریق مخزن میخانه که بیش از 20 هزار بسته دارد، توزیع می شود.

تغییرات عمده در نسخه دارت 2.14:

  • یک عملگر جدید سه گانه (>>>) اضافه شده است که بر خلاف عملگر ">>" یک شیفت حسابی را انجام نمی دهد، بلکه یک شیفت منطقی را انجام می دهد که بدون در نظر گرفتن بیت علامت کار می کند (تغییر بدون تقسیم به انجام می شود. اعداد مثبت و منفی).
  • محدودیت روی آرگومان های نوع که از استفاده از انواع تابع عمومی به عنوان آرگومان نوع جلوگیری می کرد، حذف شد. به عنوان مثال، اکنون می توانید تعیین کنید: late List (T)>idFunctions; پاسخ تماس var = [ (T value) => value]; تابع S دیر (T)>(S) f;
  • اجازه تعیین آرگومان ها با انواع در حاشیه نویسی مانند @Deprecated. به عنوان مثال، اکنون می توانید تعیین کنید: @TypeHelper (42، "معنا")
  • متدهای استاتیک hash، hashAll و hashAllUnordered به کتابخانه استاندارد (core) در کلاس Object اضافه شده اند. کلاس DateTime هنگام تبدیل ساعت هایی بین زمان تابستان و زمستان که بر یک ساعت تقسیم نمی شوند، مدیریت زمان محلی را بهبود بخشیده است (مثلاً در استرالیا از افست 30 دقیقه استفاده می شود). بسته ffi پشتیبانی از مکانیسم تخصیص حافظه عرصه را اضافه کرده است که به طور خودکار منابع را آزاد می کند. بسته ffigen توانایی ایجاد تعاریف typedef از انواع Dart را از زبان C اضافه کرده است.
  • 250 بسته محبوب از مخزن pub.dev و 94% از 1000 بسته برتر به استفاده از حالت "ایمنی تهی" تغییر یافته اند، که از خرابی های ناشی از تلاش برای استفاده از متغیرهایی که مقدار آنها تعریف نشده است و روی "Null" تنظیم شده است جلوگیری می کند. "" حالت به این معنی است که متغیرها نمی توانند مقادیر null داشته باشند مگر اینکه به صراحت مقدار null به آنها اختصاص داده شود. این حالت به شدت به انواع متغیرها احترام می گذارد، که به کامپایلر اجازه می دهد تا بهینه سازی های اضافی را اعمال کند. انطباق نوع در زمان کامپایل بررسی می شود، برای مثال، اگر بخواهید مقدار "Null" را به متغیری با نوعی اختصاص دهید که حالت تعریف نشده ای ندارد، مانند "int"، یک خطا نمایش داده می شود.
  • مجموعه‌ای از قوانین یکپارچه برای تحلیلگر کد (لینتر) پیشنهاد شده‌اند که پشتیبانی همزمان برای بررسی انطباق با دستورالعمل‌های سبک کد برای دارت و چارچوب فلاتر ارائه می‌کند. به دلایل تاریخی، قوانین کدگذاری برای فلاتر و دارت متفاوت بود، علاوه بر این، برای دارت دو مجموعه از قوانین در حال استفاده بود - قوانینی از طرف گوگل و قوانین انجمن توسعه دهندگان دارت. Dart 2.14 مجموعه جدیدی از قوانین رایج را برای linter معرفی می کند که تصمیم گرفته شده است به طور پیش فرض در پروژه های Dart جدید و در Flutter SDK استفاده شود. این مجموعه شامل قوانین اصلی (بسته lins/core.yaml)، قوانین اضافی توصیه شده (lints/recommended.yaml) و توصیه‌های خاص Flutter (flutter_lints/flutter.yaml) است. به کاربران قوانین pedantic توصیه می شود که بر اساس توصیه های اسناد دارت به استفاده از یک سبک کدنویسی جدید روی آورند.
  • در قالب‌کننده، بهینه‌سازی‌هایی برای قالب‌بندی بلوک‌های کد آبشاری انجام شده است، که می‌تواند عملکرد قالب‌بندی را به طور قابل توجهی بهبود بخشد و از تفسیر مبهم مالکیت عناصر بیان جلوگیری کند. به عنوان مثال، فراخوانی "..doIt" در عبارت "var result = errorState ? foo : bad..doIt()" به بخش شرطی بلوک "bad" مربوط نمی شود، بلکه به کل عبارت مربوط می شود، بنابراین هنگام قالب بندی اکنون از هم جدا می شود: var result = errorState ? foo : bad ..doIt();
  • پشتیبانی از پردازنده‌های Apple M1 (سیلیکون) به SDK اضافه شده است که به معنای قابلیت اجرای Dart VM، ابزارهای کاربردی و اجزای SDK در سیستم‌های دارای پردازنده سیلیکون اپل و پشتیبانی از کامپایل فایل‌های اجرایی برای این تراشه‌ها است.
  • فرمان "dart pub" پشتیبانی از یک فایل سرویس جدید ".pubignore" را اضافه کرده است، که به شما امکان می دهد لیستی از فایل هایی را تعریف کنید که هنگام انتشار یک بسته در مخزن pub.dev نادیده گرفته می شوند. این تنظیمات با لیست نادیده گرفتن ".gitignore" تداخلی ندارند (در برخی شرایط، pub.dev ممکن است بخواهد از انتقال فایل هایی که در Git مورد نیاز هستند، به عنوان مثال، اسکریپت های داخلی استفاده شده در طول توسعه، اجتناب کند).
  • کار برای بهبود عملکرد دستور "تست دارت" انجام شده است، که اکنون در صورت عدم تغییر شماره نسخه، پس از تغییر pubspec نیازی به کامپایل مجدد تست ها ندارد.
  • پشتیبانی از کامپایل در حالت سازگاری ECMAScript 5 متوقف شده است (تغییر منجر به از بین رفتن سازگاری با مرورگر IE11 می شود).
  • ابزارهای منفرد stagehand، dartfmt و dart2native منسوخ اعلام شده‌اند و با دستورات داخلی که از طریق ابزار dart فراخوانی می‌شوند جایگزین شده‌اند.
  • مکانیسم VM Native Extensions منسوخ شده است. برای فراخوانی کد بومی از کد دارت، توصیه می شود از دارت FFI جدید (رابط عملکرد خارجی) استفاده کنید.

در همان زمان، نسخه قابل توجهی از چارچوب رابط کاربری Flutter 2.5 ارائه شد که به عنوان جایگزینی برای React Native در نظر گرفته می شود و بر اساس یک پایه کد امکان انتشار برنامه های کاربردی برای iOS، اندروید، ویندوز، macOS و Linux را می دهد. پلتفرم ها و همچنین ایجاد برنامه هایی برای اجرا در مرورگرها. یک پوسته سفارشی برای سیستم عامل میکروکرنل Fuchsia که توسط گوگل توسعه یافته است، بر اساس Flutter ساخته شده است.

قسمت اصلی کد فلاتر به زبان دارت پیاده سازی شده و موتور زمان اجرا برای اجرای برنامه ها به زبان C++ نوشته شده است. هنگام توسعه برنامه‌ها، علاوه بر زبان اصلی دارت فلاتر، می‌توانید از رابط عملکرد خارجی دارت برای فراخوانی کدهای C/C++ استفاده کنید. عملکرد اجرای بالا با کامپایل برنامه‌ها به کد بومی برای پلتفرم‌های هدف به دست می‌آید. در این مورد، برنامه پس از هر تغییر نیازی به کامپایل مجدد ندارد - Dart یک حالت بارگذاری مجدد داغ ارائه می دهد که به شما امکان می دهد تغییراتی را در یک برنامه در حال اجرا اعمال کنید و بلافاصله نتیجه را ارزیابی کنید.

تغییرات عمده در Flutter 2.5:

  • بهینه سازی عملکرد قابل توجهی انجام داد. در پلتفرم‌های iOS و macOS، پیش‌کامپایل سایه‌بان‌ها برای API گرافیکی Metal پیاده‌سازی شده است. بهبود کارایی پردازش رویدادهای ناهمزمان. حل مشکل تاخیر زمانی که جمع‌آورنده زباله حافظه را از تصاویر استفاده نشده بازیابی می‌کند (به عنوان مثال، در حین پخش یک GIF متحرک 20 ثانیه‌ای، تعداد عملیات جمع‌آوری زباله از 400 به 4 کاهش یافت. تاخیر در ارسال پیام بین Dart و Objective- C/Swift به 50% کاهش یافت (iOS) یا Java/Kotlin (Android) پشتیبانی ساخت بومی برای سیستم‌های مبتنی بر تراشه سیلیکون اپل اضافه شد.
    زبان دارت 2.14 و فریمورک فلاتر 2.5 موجود است
  • برای پلتفرم اندروید، پشتیبانی از اجرای برنامه ها در حالت تمام صفحه ایجاد شده است. اجرای طرح مفهومی "Material You" که به عنوان یک گزینه طراحی متریال نسل بعدی ارائه شده است، ادامه یافت. یک حالت جدید MaterialState.scrolledUnder اضافه کرد، نمایش پویا نوارهای اسکرول را هنگام تغییر اندازه پیاده سازی کرد و یک رابط جدید برای نمایش بنرهای اعلان پیشنهاد داد.
  • قابلیت های پلاگین دوربین به طور قابل توجهی گسترش یافته است و ابزارهایی برای کنترل فوکوس خودکار، نوردهی، فلاش، زوم، کاهش نویز و وضوح اضافه شده است.
  • ابزارهای توسعه‌دهنده (DevTools) بهبود یافته‌اند تا شامل حالت بازرسی ویجت به‌روز شده، و همچنین ابزارهایی برای شناسایی تأخیرهای رندر و ردیابی کامپایل سایه‌زن باشد.
    زبان دارت 2.14 و فریمورک فلاتر 2.5 موجود است
  • پلاگین های بهبود یافته برای Visual Studio Code و IntelliJ/Android Studio.

منبع: opennet.ru

اضافه کردن نظر