احتمالا تا حالا به این موضوع فکر کردین که وقتی کلید چراغ رو فشار میدین چه اتفاقی میوفته!

در واقع خیلی ساده وضعیت کلید رو از خاموش به روشن تغییر میدین. و این باعث به جریان افتادن الکتریسیته و روشن شدن لامپ میشه.

منبع: animated images.org

خب حالا از نگاه یک برنامه نویس به این داستان نگاه کنید, ,وقتی لامپ روشن میشه UI اون از از حالت off به on تغییر میکنه. و با وجود اینکه ما نمیبینیم که لامپ بصورت فیزیکی جابجا بشه و از اول ساخته بشه اما توسط state management هایی که بکاربرده میشه UI مجدد ساخته میشه.

state management یک موضوع نسبتا پیچیده و مورد بحث در فلاتر هست و لایبراری های زیادی هم برای state management ها توسعه داده شده مثل Provider که احتمالا توسعه دهنده های زیادی اون رو توصیه میکنن.

اما…

اینجا قصد داریم در مورد یک state management ساده و خوش دست برای فلاتر صحبت کنیم که برای خیلی از کارهایی که انجام میده نیازی به context نداره

حالا getX چی هست ؟

GetX تنها یک state management نیست و در واقع یک فریمورک جمع و جوره که توی دل خودش route management , dependency injection رو هم داره که به توسعه دهنده کمک میکنه تا تجربه سریع تر و بهتری در توسعه داشته باشه. GetX سه تا اصل اساسی داره:

 

  1. performance : تمرکز روی حداقل میزان مصرف حافظه و منابع
  2. Productivity :‌ یک ابزار کارآمد و خوش دست که با ساده سازی هایی که داشته باعث میشه توسعه دهنده درگیر حواشی کمتری بشه و زمان کمتری رو هدر بده.
  3. Organization : جدا کردن منطق برنامه از ظاهر اون به نظرم که نمیتونه بهتر این باشه و حتی این قابلیت رو دارید که بدون داشتن context یا یک ویجت statefull از یه صفحه برنامه وارد یه صفحه دیگه بشید.

 

سه بخش اصلی در GetX

۱. state management : در GetX دو مدل state manager داریم. مدل اول و ساده تر که با استفاده از GetBuilder کار میکنه و نوع دوم که روشی برای مدیریت state ها بصورت واکنش گرا (reactive) هست که با GetX یا Obx کار میکنه.

۲.route management : چه نیاز داشته باشین که بین صفحات جابجا بشین چه نمایش یک Snackbar , پاپ آپ یا باتم شیت بدون نیاز به context در GetX قابل انجام هست. در مورد جزییات route management در اینجا خیلی توضیحی نمیدم چرا که خارج از بحث این مقاله هست, اما با چندتا مثال ایده پشت GetX و ساده سازی ای که انجام میده رو سعی شده انتقال داده بشه.

۳.Dependency management : در GetX همچنان راه حل ساده و کاملی برای مدیریت Dependency ها بوسیله controller ها وجود داره. فقط با یک خط کد امکان دسترسی داشتن به لایه view بدون نیاز به ارث بری و داشتن context وجود داره.

 

ویژگی های جانبی و با ارزش GetX

Getx ويژگی های جذاب دیگه ای هم داره که در کنار هم باعث میشه توسعه اپلیکیشن ساده تر و کد نویسی کمتر انجام بشه.

۱.Internationalization : ترجمه ها صرفا با مپ هایی از key , value انجام میشن و استفاده از ترجمه ها میتونه بصورت تک به تک یا چندتا و با پارامتر ورودی انجام بشه. و عوض کردن زبان اپلیکیشن صرفا با استفاده از Get در کل اپلیکیشن قابل انجامه.

۲.Validation : اعتبار سنجی ایمیل و پسورد توسط Getx پوشش داده شده و نیازی به نصب یک پکیج جداگونه نیست .

۳.Storage: در GetX یک راه حل سبک و سریع برای ذخیره دیتا ها در حافظه وجود داره که با زبان دارت توسعه داده شده و کاملا با GetX بصورت یکپارچه عمل میکنه

۴.Theme :‌ جابجا شدن بین تم دارک و لایت الان با وجود GetX به سادگی انجام میشه.

۵.Responsive view :‌اگر در حال توسعه اپلیکیشن برای سایز های مختلفی از صفحه نمایش هستید کافیه فقط GetView رو extend کنید و صفحات طراحی شده برای تبلت و دسکتاپ و حتی ساعت های هوشمند ریسپانسیو میشه.

 

دیدگاهتان را بنویسید

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