عملکرد
در اپادیتور، عملکرد مشخص میکند که وقتی یک اتفاق رخ میدهد، اپلیکیشن چه کاری باید انجام دهد.
به زبان ساده، عملکرد همان بخش اجرایی منطق اپلیکیشن است. هر زمان قرار باشد بعد از یک رویداد کاری انجام شود، از عملکرد استفاده میکنید.
برای مثال، عملکرد میتواند یکی از کارهای زیر باشد:
- باز کردن یک صفحه
- باز کردن لینک
- پخش صوت یا ویدئو
- تغییر مقدار یک متغیر
- نمایش پیام
- ارسال اطلاعات
- اجرای کد یا منطق خاص
بدون عملکرد، اپلیکیشن فقط محتوا را نمایش میدهد و واکنش فعالی به کاربر یا تغییرات محیطی نخواهد داشت.
عملکردها بخش اجرایی منطق اپ هستند؛ یعنی مشخص میکنند بعد از وقوع یک رویداد، چه اتفاقی در اپلیکیشن بیفتد.
نقش عملکرد در اپلیکیشن
عملکردها باعث میشوند اپلیکیشن از یک رابط ثابت و صرفاً نمایشی، به یک سیستم تعاملی و پویا تبدیل شود.
مهمترین نقشهای عملکرد عبارتاند از:
- مسیریابی: جابهجایی کاربر بین صفحات
- تعامل با محتوا: پخش فایلهای صوتی و ویدئویی، باز کردن فایل یا لینک
- مدیریت داده: تغییر یا ذخیره مقدار متغیرها
- تعامل با کاربر: نمایش پیام، اعلان یا بازخورد
- ارتباط با سرویسها: ارسال یا دریافت داده، ارتباط با امکانات سیستم
- اجرای منطق پیشرفته: اجرای کد یا زنجیرهای از عملیات
تقریباً هر رفتار فعالی که در اپلیکیشن تعریف میکنید، در نهایت با یک یا چند عملکرد انجام میشود.
برای هر نیاز، ابتدا سادهترین عملکرد مناسب را انتخاب کنید و فقط زمانی چند عملکرد را با هم ترکیب کنید که واقعاً لازم باشد.
عملکرد چه زمانی اجرا میشود؟
عملکردها معمولاً در پاسخ به یک رویداد اجرا میشوند. رویداد مشخص میکند چه زمانی باید واکنش انجام شود و عملکرد مشخص میکند چه کاری انجام شود.
مثالهایی از زمان اجرای عملکرد:
- کلیک روی دکمه
- لمس تصویر
- باز شدن صفحه
- تغییر مقدار یک ورودی
- قطع یا وصل شدن اینترنت
- تغییر مقدار یک متغیر
- اجرای تایمر صفحه
بهصورت خلاصه:
رویداد = چه اتفاقی افتاد
عملکرد = چه کاری انجام شود
ارتباط عملکرد با سایر مفاهیم
عملکرد در اپادیتور بهتنهایی استفاده نمیشود و معمولاً با چند مفهوم اصلی دیگر در ارتباط است.
عملکرد و رویداد
رابطه عملکرد و رویداد یکی از پایهایترین روابط در منطق اپلیکیشن است.
- رویداد مشخص میکند اجرا چه زمانی شروع شود.
- عملکرد مشخص میکند بعد از آن چه کاری انجام شود.
مثال:
- رویداد: کلیک روی دکمه «ادامه»
- عملکرد: باز کردن صفحه بعدی
برای آشنایی بیشتر: رویداد
عملکرد و ویجت
در بسیاری از موارد، عملکردها به یک ویجت متصل میشوند. کاربر با ویجت تعامل میکند و این تعامل باعث اجرای عملکرد میشود.
مثالها:
- ویجت دکمه ← عملکرد باز کردن صفحه
- ویجت تصویر ← عملکرد باز کردن لینک
- ویجت گروه ← اجرای چند عملکرد پشتسرهم
- ویجت ورودی ← تغییر مقدار متغیر یا اجرای جستجو
به این معنا، ویجتها اغلب نقطه شروع اجرای عملکرد هستند.
برای آشنایی بیشتر: ویجت
عملکرد و شرط
عملکردها میتوانند شرطی اجرا شوند. یعنی قبل از اجرا بررسی شود که آیا شرایط لازم برقرار است یا نه.
الگو:
- اگر شرط برقرار بود ← عملکرد اجرا شود
- اگر شرط برقرار نبود ← عملکرد اجرا نشود یا عملکرد دیگری اجرا شود
مثال:
- اگر کاربر وارد حساب شده باشد ← صفحه پروفایل باز شود
- در غیر این صورت ← صفحه ورود باز شود
ترکیب شرط و عملکرد، بخش مهمی از منطق تصمیمگیری اپلیکیشن را میسازد.
برای آشنایی بیشتر: شرط
عملکرد و متغیر
عملکردها میتوانند با متغیرها کار کنند و وضعیت اپلیکیشن را تغییر دهند یا از آن استفاده کنند.
نمونه کاربردها:
- تغییر مقدار متغیر
- ذخیره مقدار در متغیر
- خواندن مقدار متغیر
- اجرای عملکرد بر اساس مقدار فعلی متغیر
مثالها:
- پس از کلیک روی دکمه، مقدار امتیاز ۱ واحد افزایش یابد
- پس از ورود موفق، وضعیت کاربر در متغیر ذخیره شود
- پس از تغییر فیلتر، دادهها دوباره واکشی شوند
این ارتباط باعث میشود اپلیکیشن رفتار پویا و قابل کنترل داشته باشد.
انواع کلی عملکردها
بسته به امکانات اپادیتور، عملکردها میتوانند در دستههای مختلفی قرار بگیرند. فهرست دقیق عملکردها در مستندات مرجع هر نسخه مشخص میشود، اما بهصورت کلی عملکردها معمولاً در این گروهها قرار میگیرند:
عملکردهای ناوبری
برای جابهجایی یا هدایت کاربر:
- باز کردن صفحه
- بازگشت به صفحه قبل
- باز کردن لینک
- هدایت به بخش خاصی از اپ یا وب
عملکردهای مربوط به داده و وضعیت
برای مدیریت اطلاعات و متغیرها:
- تغییر مقدار متغیر
- ذخیره داده
- پاک کردن داده
- تنظیم وضعیتهای موقت یا دائمی
عملکردهای نمایشی و تعاملی
برای ایجاد بازخورد یا تعامل در رابط کاربری:
- نمایش پیام
- نمایش خطا
- باز و بسته کردن بخشهایی از رابط
- پخش رسانه
- نمایش نتایج عملیات
عملکردهای سیستمی یا پیشرفته
برای منطقهای پیچیدهتر:
- اجرای کد جاوااسکریپت
- اجرای عملکرد چندگانه
- ارتباط با سرویسها
- فراخوانی عملیات خاص سیستم یا افزونهها
عملکرد چندگانه
گاهی برای رسیدن به یک هدف، یک عملکرد کافی نیست و لازم است چند عملکرد پشت سر هم یا با فاصله زمانی مشخص اجرا شوند. در این حالت میتوانید از عملکرد چندگانه استفاده کنید.
عملکرد چندگانه به شما اجازه میدهد یک لیست از عملکردها را در قالب یک عملکرد واحد اجرا کنید.
مثال:
- تغییر مقدار یک متغیر
- نمایش پیام موفقیت
- باز کردن صفحه بعدی
این سه مورد میتوانند در قالب یک عملکرد چندگانه تعریف شوند.
اجزای اصلی عملکرد چندگانه
در عملکرد چندگانه معمولاً این تنظیمات اهمیت دارند:
- لیست عملکردها: مجموعه عملکردهایی که باید اجرا شوند
- تاخیر شروع: تعیین فاصله زمانی شروع هر عملکرد بر حسب میلیثانیه
- منتظر ماندن تا تکمیل عملکرد قبلی: تعیین اینکه عملکرد بعدی بعد از پایان عملکرد قبلی اجرا شود یا نه
اگر منتظر ماندن فعال باشد:
- ترتیب اجرا دقیقتر و قابل پیشبینیتر میشود
- برای سناریوهای وابسته مناسبتر است
اگر منتظر ماندن فعال نباشد:
- عملکردها میتوانند با توجه به تاخیرها همپوشانی داشته باشند
- برای سناریوهای مستقل مناسبتر است
چه زمانی از عملکرد چندگانه استفاده کنیم؟
عملکرد چندگانه زمانی مناسب است که:
- چند مرحله مرتبط باید در یک جریان اجرا شوند
- خروجی یک مرحله، ورودی مرحله بعدی باشد
- بخواهید سناریوی اجرای کارها را در یک نقطه متمرکز کنید
- بخواهید برای یک رویداد، چند واکنش هماهنگ داشته باشید
مثال:
- ذخیره مقدار فرم
- اعتبارسنجی اطلاعات
- ارسال داده
- نمایش پیام موفقیت
- رفتن به صفحه بعد
ساختار تودرتو
در اپادیتور، هر آیتم از لیست عملکردها میتواند خودش یک عملکرد چندگانه باشد. به این ساختار، اجرای تودرتو یا Nested گفته میشود.
این قابلیت برای ساخت سناریوهای مرحلهای مفید است؛ مثلاً:
- گام ۱: آمادهسازی دادهها
- گام ۲: ارسال اطلاعات
- گام ۳: نمایش نتیجه
با این حال، اگر این ساختار بیش از حد پیچیده شود، نگهداری و خطایابی آن دشوار خواهد شد.
از عملکردهای چندگانه تودرتو فقط زمانی استفاده کنید که سناریو واقعاً چندمرحلهای و نیازمند گروهبندی باشد. پیچیدگی زیاد میتواند نگهداری پروژه را سخت کند.
اهمیت ترتیب اجرا
وقتی چند عملکرد به یک رویداد متصل میشوند، ترتیب اجرا بسیار مهم است؛ مخصوصاً زمانی که یک عملکرد به نتیجه عملکرد قبلی وابسته باشد.
مثال:
- تنظیم مقدار متغیر
- بررسی شرط بر اساس همان متغیر
- ارسال داده
- نمایش پیام
- باز کردن صفحه جدید
اگر این ترتیب بهدرستی رعایت نشود، ممکن است نتیجه نهایی اشتباه باشد.
برای مثال، اگر قبل از ذخیره مقدار متغیر، شرط بررسی شود، شرط بر اساس داده قدیمی تصمیم میگیرد. یا اگر قبل از اعتبارسنجی، داده به سرور ارسال شود، اطلاعات نامعتبر فرستاده میشود.
اگر یک عملکرد به نتیجه عملکرد قبلی وابسته است، از حالت «منتظر ماندن» استفاده کنید تا ترتیب اجرا قابل کنترلتر باشد.
مثالهای مفهومی
مثال ۱: باز کردن صفحه
- رویداد: کلیک روی دکمه «مشاهده بیشتر»
- عملکرد: باز کردن صفحه جزئیات
در این مثال، عملکرد مشخص میکند بعد از کلیک کاربر، اپلیکیشن به کدام صفحه برود.
مثال ۲: باز کردن لینک
- رویداد: کلیک روی تصویر
- عملکرد: باز کردن لینک وبسایت
این نوع عملکرد برای هدایت کاربر به یک آدرس خارجی یا داخلی کاربرد دارد.
مثال ۳: تغییر مقدار متغیر
- رویداد: کلیک روی دکمه «افزایش امتیاز»
- عملکرد: افزایش مقدار متغیر
score
در این مثال، عملکرد وضعیت داخلی اپلیکیشن را تغییر میدهد.
مثال ۴: جریان چندمرحلهای
- رویداد: کلیک روی دکمه «ثبت»
- عملکردها:
- ذخیره اطلاعات فرم
- ارسال اطلاعات
- نمایش پیام موفقیت
- باز کردن صفحه نتیجه
این مثال نشان میدهد که برای یک رویداد، میتوان چند عملکرد متوالی تعریف کرد.
مثال ۵: اجرای شرطی عملکرد
- رویداد: کلیک روی دکمه «ورود به حساب»
- شرط: کاربر قبلاً وارد شده باشد
- عملکرد: باز کردن صفحه پروفایل
- در غیر این صورت: باز کردن صفحه ورود
در این مثال، عملکرد نهایی به نتیجه بررسی شرط وابسته است.
نکات مهم در استفاده از عملکردها
برای طراحی منطق بهتر در اپلیکیشن، رعایت این نکات مفید است:
- هر عملکرد باید هدف مشخصی داشته باشد.
- از اتصال تعداد زیادی عملکرد غیرضروری به یک رویداد خودداری کنید.
- در سناریوهای وابسته، ترتیب اجرای عملکردها را با دقت تنظیم کنید.
- وقتی عملکردها به یکدیگر وابستهاند، از حالت انتظار برای تکمیل استفاده کنید.
- از تاخیرهای زیاد و زنجیرههای پیچیده بدون نیاز پرهیز کنید.
- برای منطقهای پیچیده، از ترکیب درست شرط، متغیر و عملکرد استفاده کنید.
- اگر یک رفتار با یک عملکرد ساده قابل انجام است، آن را بیدلیل پیچیده نکنید.
- ساختار عملکردها را تا حد امکان ساده، قابل فهم و قابل نگهداری نگه دارید.
بهترین تجربیات
- ساده شروع کنید: ابتدا سادهترین جریان ممکن را طراحی کنید.
- وابستگیها را بشناسید: اگر عملکردی به نتیجه عملکرد قبلی وابسته است، این وابستگی را شفاف مدیریت کنید.
- منطق را پخش نکنید: تا حد ممکن، منطقهای مرتبط را در یک جریان قابل فهم نگه دارید.
- از چندمرحلهایسازی بیدلیل پرهیز کنید: هرچه زنجیره عملکردها طولانیتر شود، خطایابی سختتر میشود.
- نامگذاری و ساختار ذهنی روشن داشته باشید: مخصوصاً وقتی با متغیرها و عملکردهای متعدد کار میکنید.
اگر برای یک رویداد تعداد زیادی عملکرد تعریف کنید، منطق اپلیکیشن سختتر قابل پیگیری و نگهداری میشود. تا حد امکان، اجرای هر رویداد را هدفمند و محدود نگه دارید.
جمعبندی
عملکردها تعیین میکنند که اپلیکیشن بعد از وقوع یک رویداد چه کاری انجام دهد. آنها بخش اجرایی منطق اپ هستند و بدون آنها، اپلیکیشن واکنش فعالی به کاربر یا تغییرات محیطی ندارد.
بهطور خلاصه:
- عملکرد، نتیجه اجرایی یک رویداد است.
- عملکردها میتوانند با ویجتها، شرطها و متغیرها ترکیب شوند.
- یک رویداد میتواند یک یا چند عملکرد را اجرا کند.
- در سناریوهای پیچیده، عملکرد چندگانه برای اجرای چند مرحله استفاده میشود.
- ترتیب اجرا و وابستگی عملکردها اهمیت زیادی دارد.
پیشنهاد برای مطالعه بعدی: