0

چرا فلاتر از دارت استفاده میکند (قسمت دوم)

لینک قسمت اول

 

Stateful hot reload

یکی از محبوب‌ترین ویژگی‌های فلاتر، hot reload است. در طول توسعه، فلاتر از یک کامپایلر JIT استفاده می‌کند که می‌تواند کد اجرایی را معمولا در یک ثانیه دوباره بارگذاری و ادامه دهد. استیت های اپ در هر زمان که امکان پذیر بود از طریق ریلودشدن حفظ می‌شود، بنابراین  برنامه می‌تواند از جایی که آن را ترک می‌کند ادامه یابد.

درک اینکه چقدر hot reload سریع و قابل اعتماد می تواند مهم باشد ، دشوار است ، مگر اینکه خودتان آن را تجربه کرده باشید. توسعه دهندگان گزارش می دهند که این روش نحوه ایجاد برنامه های آنها را تغییر داده است .

hot reload در فلاتر امکان امتحان ایده های جدید یا آزمایش گزینه های جایگزین را بسیار آسان تر می کند ، و باعث ایجاد خلاقیت بسیار زیاد می شود.

تا کنون، ما در مورد این بحث کرده‌ایم که چگونه دارت کارها را برای توسعه دهنده بهتر می‌کند. بخش بعدی در مورد این است که چگونه دارت ساختن برنامه‌های خوش دست که کاربران از آن لذت می‌برند را آسان‌تر می‌سازد.

اجتناب از جنس بنجل 🙂

یک اپ سریع عالی است ، اما یک برنامه روان حتی بهتر است. اگر یک انیمیشن بسیار سریع باشد حتی یک انیمیشن فوق العاده سریع  اگر نامنظم باشد،بد به نظر می رسد. دارت دارای تعدادی ویژگی است تا از بسیاری از موارد رایج که باعث ایجاد بددستی اپ

می شوند جلوگیری کند.

با سرعت 60 فریم در ثانیه ، رابط های کاربری ایجاد شده با فلاتر عملکرد به مراتب بهتری نسبت به آنهایی که با دیگر چارچوب های توسعه کراس پلتفرم ایجاد شده اند ، دارند.

و نه فقط بهتر از برنامه های چند پلتفرمی ، بلکه به عنوان گزینه ای خوب بین برنامه های نیتیو:

رابط کاربری نرم و روان است … من هرگز چنین نرم افزار اندرویدی را ندیده ام.

 

کامپایل AOT و “پل”

ما قبلاً در مورد یک ویژگی صحبت کرده ایم که به روان نگه داشتن آن کمک می کند ، و آن توانایی دارت در کامپایل AOT به کد ماشین نیتیو است. کد AOT از قبل کامپایل شده  قابل پیش بینی تر از JIT است زیرا در زمان اجرا مکثی برای انجام تجزیه و تحلیل یا جمع آوری JIT وجود ندارد.

با این حال ، یک مزیت بزرگتر نیز برای کد کامپایل شده AOT وجود دارد و آن جلوگیری از “پل جاوا اسکریپت” است. هنگامی که زبانهای پویا (مانند جاوا اسکریپت) نیاز به تعامل با کد بومی (نیتیو) بر روی سیستم عامل دارند ، آنها باید از طریق یک پل ارتباط برقرار کنند ، که باعث سوئیچ های زمینه می شود که باید مقدار زیادی از استیت را ذخیره کنند (به طور بالقوه در حافظه ثانویه). این سوئیچ های زمینه  بسیار مبهم هستند زیرا نه تنها سرعت کار را کاهش می دهند بلکه می توانند اپ را از حالت روان خارج  کنند.

توجه: حتی کد کامپایل شده برای مکالمه با کد پلت فرم ممکن است به یک رابط نیاز داشته باشد و این را می توان پل نیز نامید ، اما معمولاً   اندازه آن سریعتر از پل مورد نیاز برای  یک زبان پویا است. علاوه بر این ، از آنجا که دارت اجازه می دهد مواردی مانند ویدجت ها را به برنامه منتقل کنید ، نیاز به عبور از یک پل کاهش می یابد.

 Garbage Collection

دلیل جدی دیگر بنجل بودن، Garbage Collection است. در واقع، این فقط یک مورد خاص برای دسترسی به یک منبع مشترک است (حافظه که در بسیاری از زبان‌ها نیاز به استفاده از قفل شدن دارد. اما قفل کردن ممکن است کل برنامه را از اجرا خارج کند تا زمانی که حافظه آزاد بدست آورده ‌شود. با این حال، دارت می‌تواند Garbage Collection را تقریبا در تمام مدت بدون قفل انجام دهد.

دارت از یک طرح Garbage Collection  پیشرفته استفاده می کند ، که خصوصا برای تخصیص بسیاری از اشیای با طول عمر کوتاه، بسیار سریع است (مناسب برای رابط های کاربری واکنشی مانند فلاتر که درخت نمایشی برنامه  را برای هر فریم بازسازی می کند). دارت می تواند یک شی  را با یک شاره گر اختصاص دهد (بدون نیاز به قفل). این منجر به اسکرول و انیمیشن روان ، بدون دردسر می شود.

 

چیدمان یکپارچه

کی دیگر از مزایای دارت این است که فلاتر طرح را بین برنامه شما و یک زبان طرح بندی یا لایه اضافی مانند JSX یا XML تقسیم نمی کند و همچنین به ابزارهای بصری جداگانه نیاز ندارد. در اینجا یک نمای ساده فلاتر وجود دارد که در Dart نوشته شده است:

new Center(child:
new Column(children: [
new Text(‘Hello, World!’),
new Icon(Icons.star, color: Colors.green),
])
)

توجه داشته باشید که تجسم خروجی تولید شده توسط این کد آسان است (حتی اگر تجربه ای با دارت ندارید).

در فلاتر ، همه لایه ها در یک مکان وجود دارد و ابزارهای جدید دارت ، از جمله Flutter Inspector وoutline view (که از همه طرح ها در یک مکان استفاده می کنند) ، طرح های پیچیده و زیبا را حتی ساده تر می کنند.

 

 

 

دیدگاه کاربران
  • hassan norozi 6 اردیبهشت 1400

    عالی و جالب

ترک ارسال پاسخ به hassan norozi لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *