متغیر
در اپادیتور، متغیر یا Variable ابزاری برای ذخیره و استفاده از اطلاعات است؛ اطلاعاتی که ممکن است در طول اجرای اپلیکیشن تغییر کنند و روی رفتار، ظاهر یا منطق اپ تأثیر بگذارند.
به بیان ساده، متغیرها مانند حافظه منطقی اپلیکیشن عمل میکنند. هرجا لازم باشد یک مقدار، وضعیت، انتخاب یا اطلاعاتی در اپ حفظ شود، احتمالاً به متغیر نیاز دارید.
به کمک متغیرها میتوانید اپلیکیشنهایی پویا، هوشمند و تعاملی بسازید؛ اپلیکیشنهایی که فقط یک رابط ثابت نیستند، بلکه بر اساس دادهها و رفتار کاربر واکنش نشان میدهند.
متغیرها حافظه منطقی اپلیکیشن هستند؛ هرجا لازم است وضعیت، انتخاب یا اطلاعاتی حفظ شود، احتمالاً به متغیر نیاز دارید.
نقش متغیر در اپلیکیشن
متغیرها یکی از پایههای اصلی منطق در اپلیکیشن هستند. آنها اطلاعات را نگه میدارند تا اپ بتواند در زمان مناسب از آن اطلاعات استفاده کند.
مهمترین کاربردهای متغیرها عبارتاند از:
- ذخیره اطلاعات کاربر: مانند نام، شماره تماس، ایمیل یا تنظیمات شخصی.
- نگهداری وضعیتهای مختلف اپ: مانند وارد بودن کاربر، فعال بودن یک گزینه یا مرحله فعلی یک فرآیند.
- تصمیمگیری در شرطها: بررسی مقدار متغیر و اجرای منطق مناسب.
- کنترل اجرای عملکردها: اجرای عملکردهای مختلف بر اساس مقدار ذخیرهشده.
- شخصیسازی تجربه کاربر: نمایش محتوا یا رفتار متفاوت برای کاربران مختلف.
بدون متغیر، اپلیکیشن معمولاً فقط یک رابط ثابت خواهد بود و امکان تصمیمگیری یا واکنش هوشمندانه به وضعیتهای مختلف را نخواهد داشت.
قبل از ساخت متغیر، مشخص کنید قرار است چه نوع دادهای داخل آن ذخیره شود؛ متن، عدد، مقدار درست/نادرست یا اطلاعات موقت.
نمونههایی از کاربرد متغیر
برای درک بهتر، چند نمونه رایج از استفاده متغیرها را در نظر بگیرید:
- ذخیره نام کاربر و نمایش آن در صفحه پروفایل.
- ذخیره وضعیت ورود کاربر و نمایش صفحه مناسب بر اساس آن.
- نگهداری تعداد آیتمهای سبد خرید.
- ذخیره متن جستجوی واردشده توسط کاربر.
- کنترل نمایش یا عدم نمایش یک بخش از صفحه.
- ذخیره امتیاز، قیمت، درصد یا مقدار محاسبهشده.
مثلاً اگر متغیری با نام isLoggedIn داشته باشید، میتوانید بر اساس مقدار آن تصمیم بگیرید که کاربر به صفحه اصلی منتقل شود یا ابتدا فرم ورود را مشاهده کند.
انواع متغیرها
در اپادیتور، متغیرها بر اساس نوع دادهای که نگهداری میکنند به چند دسته تقسیم میشوند. انتخاب نوع مناسب برای متغیر اهمیت زیادی دارد، چون نوع متغیر مشخص میکند چه مقداری میتواند داخل آن ذخیره شود و چگونه میتوان از آن در شرطها و عملکردها استفاده کرد.
متغیر متنی
متغیر متنی برای ذخیره متن استفاده میشود.
نمونه کاربردها:
- نام کاربر
- پیامها
- عنوانها
- آدرسها
- متن جستجو
- توضیحات واردشده در فرم
مثال مفهومی:
userName = "Ali"
از متغیر متنی زمانی استفاده کنید که مقدار موردنظر شما شامل حروف، کلمات، جملهها یا ترکیبی از متن و عدد باشد.
متغیر عدد صحیح
متغیر عدد صحیح برای ذخیره اعداد بدون اعشار استفاده میشود.
نمونه کاربردها:
- سن
- تعداد آیتمها
- امتیاز کاربر
- شماره مرحله
- تعداد کلیکها
مثال مفهومی:
cartCount = 3
اگر مقدار شما عددی است و به بخش اعشاری نیاز ندارد، متغیر عدد صحیح انتخاب مناسبی است.
متغیر عدد اعشاری
متغیر عدد اعشاری برای ذخیره اعداد دارای اعشار استفاده میشود.
نمونه کاربردها:
- قیمتها
- درصدها
- نمرات دقیق
- مقدارهای محاسباتی
- امتیازهای میانگین
مثال مفهومی:
price = 12500.75
از این نوع متغیر زمانی استفاده کنید که مقدار شما ممکن است اعشاری باشد یا به دقت بیشتری نیاز داشته باشد.
متغیر بولی
متغیر بولی برای ذخیره مقدارهای درست یا نادرست استفاده میشود. این نوع متغیر معمولاً فقط دو حالت دارد:
- درست / نادرست
- فعال / غیرفعال
- روشن / خاموش
- وارد شده / وارد نشده
نمونه کاربردها:
- وضعیت ورود کاربر
- فعال بودن یک گزینه
- نمایش یا عدم نمایش یک بخش
- تأیید شدن یا نشدن یک مرحله
مثال مفهومی:
isLoggedIn = true
متغیرهای بولی برای استفاده در شرطها بسیار کاربردی هستند.
متغیر JSON
متغیر JSON برای نگهداری چند مقدار مرتبط در یک ساختار منظم استفاده میشود. مقدار این متغیر میتواند یک شیء شامل چند کلید و مقدار، یا یک آرایه شامل چند آیتم باشد.
نمونه کاربردها:
- نگهداری اطلاعات کامل یک کاربر
- ذخیره مشخصات یک محصول
- نگهداری فهرست محصولات، پیامها یا گزینهها
- ذخیره دادههای تو در تو مانند آدرس و مشخصات تماس
- نگهداری دادهای که از یک سرویس یا API دریافت شده است
نمونه یک شیء JSON:
{
"name": "علی",
"age": 28,
"isActive": true,
"address": {
"city": "تهران",
"postalCode": "1234567890"
}
}
نمونه یک آرایه JSON:
[
{
"title": "محصول اول",
"price": 120000
},
{
"title": "محصول دوم",
"price": 185000
}
]
JSON باید معتبر باشد؛ یعنی نام کلیدها و مقادیر متنی داخل علامت نقلقول دوتایی (") قرار بگیرند، آیتمها با ویرگول جدا شوند و پرانتزها و کروشهها درست بسته شوند.
اگر چند مقدار به یک موضوع تعلق دارند یا با یک فهرست از آیتمهای مشابه سروکار دارید، معمولاً یک متغیر JSON از ساخت چند متغیر جداگانه منظمتر است.
دسترسی به زیرمقدارهای JSON
برای خواندن یک مقدار داخلی، نام متغیر اصلی را بنویسید و مسیر موردنظر را با نقطه (.) ادامه دهید.
فرض کنید متغیر userProfile نمونه زیر را نگه میدارد:
{
"name": "علی",
"address": {
"city": "تهران"
},
"skills": ["طراحی", "برنامهنویسی"]
}
مسیرهای قابل استفاده:
| مسیر | نتیجه |
|---|---|
userProfile.name | علی |
userProfile.address.city | تهران |
userProfile.skills[0] | طراحی |
userProfile.skills.1 | برنامهنویسی |
برای آرایهها میتوانید شماره آیتم را هم به شکل [0] و هم به شکل .0 بنویسید. شمارهگذاری آرایه از صفر شروع میشود؛ بنابراین [0] آیتم اول و [1] آیتم دوم است.
مسیرهای JSON در بخشهایی که نام متغیر دریافت میکنند قابل استفادهاند؛ برای مثال میتوانید userProfile.name را در ویجت نمایشگر متغیر وارد کنید تا فقط نام کاربر نمایش داده شود.
اطلاعات کمکی JSON
در انتهای مسیر میتوانید از عبارتهای زیر برای دریافت اطلاعاتی درباره مقدار استفاده کنید:
| عبارت | کاربرد | نمونه |
|---|---|---|
_length | تعداد آیتمهای آرایه، تعداد کلیدهای شیء یا تعداد نویسههای متن | products._length |
_keys | فهرست کلیدهای یک شیء | userProfile._keys |
_type | نوع مقدار انتخابشده | userProfile.address._type |
برای نمونه، اگر products یک آرایه شامل سه محصول باشد، مقدار products._length برابر 3 خواهد بود.
تغییر یک زیرمقدار
برای تغییر بخشی از JSON لازم نیست همیشه کل ساختار را دوباره مقداردهی کنید. در عملکرد «مقداردهی متغیر»، مسیر زیرمقدار را بهعنوان نام متغیر وارد کنید.
مثالها:
نام متغیر: userProfile.address.city
مقدار جدید: شیراز
نام متغیر: products[0].price
مقدار جدید: 135000
هنگام مقداردهی یک زیرمقدار، مقادیر عددی، true، false، شیء JSON و آرایه JSON به نوع متناسب تبدیل میشوند. سایر مقدارها بهصورت متن ذخیره میشوند.
نام خود متغیر اصلی هنگام ایجاد نباید شامل نقطه (.) یا اندیس ([]) باشد. این نشانهها فقط پس از ایجاد متغیر و برای دسترسی یا مقداردهی زیرمقدارها استفاده میشوند.
مسیرهای _length، _keys و _type فقط برای خواندن اطلاعات هستند و نمیتوان مستقیماً به آنها مقدار جدید داد.
نحوه ذخیرهسازی متغیرها
متغیرها از نظر محل و مدت نگهداری اطلاعات نیز با هم تفاوت دارند. انتخاب نوع ذخیرهسازی به این بستگی دارد که اطلاعات تا چه زمانی باید باقی بمانند.
متغیرهای موقت
متغیرهای موقت فقط در زمان اجرای فعلی اپلیکیشن معتبر هستند.
ویژگیها:
- فقط تا زمانی که اپ در حال اجرا است مقدار خود را نگه میدارند.
- با بستن اپلیکیشن یا پایان اجرای فعلی، مقدار آنها از بین میرود.
- برای وضعیتهای لحظهای و کوتاهمدت مناسب هستند.
نمونه کاربردها:
- وضعیت باز یا بسته بودن یک منو
- متن موقت جستجو
- مقدار انتخابشده در یک صفحه
- دادههایی که فقط در همان لحظه استفاده میشوند
برای اطلاعاتی که فقط در همان اجرای فعلی اپ لازم دارید، متغیر موقت انتخاب بهتری است و از ذخیرهسازی غیرضروری جلوگیری میکند.
متغیرهای ذخیرهشده در دستگاه
این نوع متغیرها در حافظه دستگاه ذخیره میشوند و پس از بسته شدن و باز شدن دوباره اپلیکیشن همچنان در دسترس خواهند بود.
ویژگیها:
- مقدار آنها روی دستگاه کاربر ذخیره میشود.
- پس از بستن و باز کردن اپلیکیشن از بین نمیروند.
- برای اطلاعات پایدار و تنظیمات کاربر مناسب هستند.
نمونه کاربردها:
- وضعیت ورود کاربر
- تنظیمات اپلیکیشن
- انتخاب زبان یا حالت نمایش
- اطلاعاتی که کاربر باید در اجرای بعدی اپ نیز داشته باشد
برای اطلاعات حساس، فقط ذخیره شدن روی دستگاه کافی نیست. همیشه به امنیت داده، سطح دسترسی کاربران و نوع اطلاعات ذخیرهشده توجه کنید.
ذخیرهسازی آنلاین
امکان ذخیره متغیرها بهصورت آنلاین در برنامه توسعه اپادیتور قرار دارد و در آینده برای همگامسازی اطلاعات بین دستگاهها قابل استفاده خواهد بود.
ذخیرهسازی آنلاین میتواند برای سناریوهایی مانند موارد زیر مفید باشد:
- دسترسی کاربر به دادهها در چند دستگاه مختلف.
- نگهداری اطلاعات در حساب کاربری.
- همگامسازی تنظیمات یا وضعیتها بین نسخههای مختلف اپ.
- ذخیره اطلاعاتی که نباید فقط محدود به یک دستگاه باشند.
نحوه ایجاد متغیر
برای استفاده از یک متغیر، ابتدا آن را با عملکرد ایجاد متغیر بسازید. محل مناسب اجرای این عملکرد به کاربرد متغیر بستگی دارد؛ برای نمونه میتوانید متغیرهای عمومی را هنگام باز شدن اپ و متغیرهای مخصوص یک صفحه را هنگام باز شدن همان صفحه ایجاد کنید.
هنگام ایجاد متغیر JSON:
- یک نام ساده برای متغیر اصلی انتخاب کنید؛ مانند
userProfileیاproducts. - نوع مقدار متغیر را روی JSON قرار دهید.
- یک شیء یا آرایه معتبر را بهعنوان مقدار اولیه وارد کنید.
- نوع ذخیرهسازی موقت یا دستگاه را بر اساس مدت نگهداری داده انتخاب کنید.
نمونه مقدار اولیه:
{
"name": "",
"age": 0,
"favorites": []
}
اگر هنوز دادهای ندارید، میتوانید مقدار اولیه را یک شیء خالی ({}) یا آرایه خالی ([]) قرار دهید.
هنگام ایجاد متغیر فقط نام اصلی را وارد کنید. برای مثال ابتدا userProfile را ایجاد کنید و سپس برای خواندن یا تغییر شهر از مسیر userProfile.address.city استفاده کنید.
متغیر و شرط
یکی از مهمترین کاربردهای متغیرها، استفاده از آنها در شرطها است.
شرطها معمولاً مقدار متغیرها را بررسی میکنند و بر اساس نتیجه، اجازه اجرای یک رفتار یا نمایش یک بخش را میدهند.
مثالهای مفهومی:
- اگر کاربر وارد شده بود، صفحه اصلی نمایش داده شود.
- اگر تعداد آیتمهای سبد خرید بیشتر از صفر بود، دکمه پرداخت فعال شود.
- اگر وضعیت اینترنت قطع بود، پیام خطا نمایش داده شود.
- اگر مقدار امتیاز بیشتر از عدد مشخصی بود، یک جایزه نمایش داده شود.
نمونه جریان منطقی:
اگر isLoggedIn برابر true بود
← کاربر به صفحه داشبورد منتقل شود
در غیر این صورت
← صفحه ورود نمایش داده شود
در این ساختار، متغیر داده را نگه میدارد و شرط بر اساس آن تصمیم میگیرد.
متغیر و عملکرد
متغیرها در کنار عملکردها نقش بسیار مهمی دارند. عملکردها میتوانند مقدار متغیرها را تغییر دهند، از آنها استفاده کنند یا بر اساس مقدارشان رفتار خاصی انجام دهند.
متغیرها میتوانند:
- مقداردهی شوند.
- تغییر کنند.
- خوانده شوند.
- در اجرای عملکردها استفاده شوند.
- نتیجه یک عملیات را ذخیره کنند.
مثالها:
- پس از کلیک روی یک دکمه، مقدار یک متغیر تغییر کند.
- پس از ارسال فرم، وضعیت
formSubmittedبرابرtrueشود. - پس از افزایش امتیاز، مقدار متغیر
scoreتغییر کند. - پس از انتخاب یک گزینه، مقدار انتخابشده در متغیر ذخیره شود.
- پس از ویرایش پروفایل، مقدار
userProfile.nameتغییر کند. - با تغییر تعداد محصولات، مقدار
products._lengthدر رابط کاربری بهروزرسانی شود.
نمونه جریان:
رویداد: کلیک روی دکمه افزودن به سبد خرید
عملکرد: افزایش مقدار متغیر cartCount
نتیجه: تعداد سبد خرید در صفحه بهروزرسانی میشود
به این ترتیب، متغیرها باعث میشوند رفتار اپلیکیشن بر اساس تعامل کاربر تغییر کند.
متغیر و رویداد
رویدادها لحظه شروع یک واکنش در اپلیکیشن هستند؛ مانند کلیک کاربر، بارگذاری صفحه یا تغییر مقدار یک ورودی.
در بسیاری از موارد، یک رویداد باعث تغییر مقدار یک متغیر میشود.
مثالها:
- با باز شدن صفحه، مقدار اولیه یک متغیر تنظیم شود.
- با کلیک روی دکمه، مقدار شمارنده افزایش پیدا کند.
- با تغییر متن ورودی، مقدار متغیر جستجو بهروزرسانی شود.
- با تغییر وضعیت اتصال اینترنت، مقدار یک متغیر وضعیت تغییر کند.
الگوی رایج:
رویداد ← عملکرد ← تغییر متغیر ← بررسی شرط ← تغییر رفتار اپ
این ارتباط میان رویداد، عملکرد، متغیر و شرط، پایه بسیاری از منطقهای تعاملی در اپلیکیشن است.
متغیر و رابط کاربری
متغیرها میتوانند روی ظاهر و رفتار ویجتها اثر بگذارند.
برای مثال، میتوانید مقدار یک متغیر را با ویجت نمایشگر متغیر نمایش دهید یا در برخی ویجتها مقدار آن را با قالب {{varname}} داخل متن، لینک یا آدرس قرار دهید.
همچنین متغیرها میتوانند به فیلدهای ورودی متصل شوند. در این حالت، دادهای که کاربر وارد یا انتخاب میکند در متغیر ذخیره میشود و همان مقدار میتواند در شرطها، عملکردها، لینکها یا سایر بخشهای رابط کاربری استفاده شود.
این قابلیت باعث میشود رابط کاربری اپلیکیشن فقط نمایشدهنده نباشد، بلکه داده دریافت کند، آن را نگه دارد و بر اساس آن رفتارهای پویا ایجاد کند.
نمونهها:
- نمایش نام کاربر در یک متن.
- نمایش تعداد محصولات سبد خرید روی یک نشانگر.
- مخفی کردن دکمه پرداخت تا زمانی که سبد خرید خالی است.
- نمایش پیام «هیچ موردی یافت نشد» وقتی تعداد نتایج صفر است.
- تغییر محتوای صفحه بر اساس انتخاب کاربر.
مثال مفهومی:
اگر cartCount برابر 0 بود
← پیام «سبد خرید شما خالی است» نمایش داده شود
اگر cartCount بیشتر از 0 بود
← دکمه پرداخت نمایش داده شود
نمایش مقدار متغیرها
پس از ایجاد و مقداردهی متغیرها، معمولاً لازم است مقدار آنها در رابط کاربری نمایش داده شود یا در بخشهای مختلف اپلیکیشن استفاده شود.
در اپادیتور، مقدار متغیرها به دو روش اصلی قابل استفاده و نمایش است:
- نمایش مستقیم با ویجت نمایشگر متغیر
- استفاده داخل برخی ویجتها و لینکها با قالب
{{varname}}
نمایش با ویجت نمایشگر متغیر
برای نمایش مستقیم مقدار یک متغیر در صفحه، میتوانید از ویجت نمایشگر متغیر استفاده کنید.
این ویجت مخصوص نمایش مقدار متغیر است و هر زمان مقدار متغیر تغییر کند، مقدار نمایشدادهشده نیز میتواند بر اساس آن بهروزرسانی شود.
نمونه کاربردها:
- نمایش نام کاربر
- نمایش تعداد آیتمهای سبد خرید
- نمایش امتیاز کاربر
- نمایش قیمت محاسبهشده
- نمایش وضعیت یک مقدار ذخیرهشده
- نمایش یک زیرمقدار JSON مانند
userProfile.name - نمایش تعداد آیتمهای یک آرایه با مسیری مانند
products._length
مثال مفهومی:
متغیر:
userName = "Ali"
نمایش در ویجت نمایشگر متغیر: Ali
یا:
متغیر:
cartCount = 3
نمایش در صفحه: 3
از ویجت نمایشگر متغیر زمانی استفاده کنید که هدف شما فقط نمایش مقدار یک متغیر در رابط کاربری باشد.
اگر نام کامل یک متغیر JSON را انتخاب کنید، کل ساختار بهصورت متن JSON نمایش داده میشود. برای نمایش یک مقدار مشخص، بهتر است مسیر همان زیرمقدار را وارد کنید؛ مانند userProfile.address.city.
استفاده از متغیر داخل متن با قالب {{varname}}
در برخی ویجتها، میتوانید مقدار متغیر را داخل متن یا لینک قرار دهید. برای این کار از قالب زیر استفاده میشود:
{{varname}}
در این ساختار، varname نام متغیر است. هنگام اجرای اپلیکیشن، این عبارت با مقدار واقعی متغیر جایگزین میشود.
مثال:
سلام {{userName}}
اگر مقدار متغیر userName برابر Ali باشد، خروجی به شکل زیر نمایش داده میشود:
سلام Ali
این روش زمانی کاربرد دارد که بخواهید مقدار متغیر را در کنار متنهای دیگر قرار دهید.
ویجتهایی که میتوانند از {{varname}} استفاده کنند
در اپادیتور، برخی ویجتها و بخشها میتوانند مقدار متغیر را با قالب {{varname}} دریافت کنند.
نمونههای رایج:
- ویجت متن
- ویجت دکمه
- ویجت لینک
- ویجت نمایشگر وب یا وب ویو
- لینک در عملکرد باز کردن لینک
در هر بخشی که از قالب {{varname}} پشتیبانی شود، مقدار متغیر بهصورت خودکار جایگزین نام متغیر میشود.
استفاده در ویجت متن
در ویجت متن، میتوانید مقدار متغیر را همراه با متن ثابت نمایش دهید.
مثال:
نام کاربر: {{userName}}
اگر مقدار userName برابر Sara باشد، خروجی چنین خواهد بود:
نام کاربر: Sara
مثال دیگر:
تعداد محصولات سبد خرید: {{cartCount}}
اگر مقدار cartCount برابر 5 باشد:
تعداد محصولات سبد خرید: 5
استفاده در دکمه
در ویجت دکمه نیز میتوانید از مقدار متغیر در متن دکمه استفاده کنید.
مثال:
خرید {{productName}}
اگر مقدار productName برابر اشتراک ویژه باشد، متن دکمه به شکل زیر نمایش داده میشود:
خرید اشتراک ویژه
این روش برای ساخت دکمههای پویا بسیار کاربردی است؛ دکمههایی که متن آنها بر اساس مقدار متغیر تغییر میکند.
استفاده در لینک
در ویجت لینک یا در بخشهایی که آدرس لینک دریافت میکنند، میتوانید مقدار متغیر را داخل آدرس قرار دهید.
مثال:
https://example.com/users/{{userId}}
اگر مقدار userId برابر 25 باشد، لینک نهایی به شکل زیر خواهد بود:
https://example.com/users/25
این روش برای ساخت لینکهای پویا مناسب است؛ مثلاً لینک پروفایل کاربر، لینک محصول، لینک پرداخت یا لینک جزئیات یک آیتم.
استفاده در نمایشگر وب یا وب ویو
در ویجت نمایشگر وب یا WebView نیز میتوانید آدرس را بر اساس مقدار متغیر بسازید.
مثال:
https://example.com/search?q={{searchText}}
اگر مقدار searchText برابر mobile باشد، آدرس نهایی چنین میشود:
https://example.com/search?q=mobile
به این ترتیب میتوانید صفحه وبی را نمایش دهید که بر اساس مقدار واردشده یا انتخابشده توسط کاربر تغییر میکند.
نمونه کاربردها:
- نمایش نتیجه جستجو در وب ویو
- باز کردن صفحه محصول با شناسه ذخیرهشده در متغیر
- نمایش صفحه پروفایل کاربر
- باز کردن لینک اختصاصی برای هر کاربر
استفاده در عملکرد باز کردن لینک
در عملکرد باز کردن لینک نیز میتوانید از مقدار متغیر در آدرس استفاده کنید.
مثال:
https://example.com/invoice/{{invoiceId}}
اگر مقدار invoiceId برابر A1025 باشد، هنگام اجرای عملکرد، لینک زیر باز میشود:
https://example.com/invoice/A1025
این قابلیت برای سناریوهای زیر مفید است:
- باز کردن فاکتور اختصاصی کاربر
- باز کردن صفحه محصول انتخابشده
- هدایت کاربر به لینک مخصوص خودش
- ارسال مقدار جستجو یا شناسه در آدرس
- ساخت لینکهای داینامیک بر اساس وضعیت اپ
ترکیب چند متغیر در یک متن یا لینک
میتوانید چند متغیر را نیز در یک متن یا لینک استفاده کنید.
مثال در متن:
سلام {{userName}}، امتیاز شما {{score}} است.
اگر مقدارها چنین باشند:
userName = "Ali"
score = 120
خروجی:
سلام Ali، امتیاز شما 120 است.
مثال در لینک:
https://example.com/order/{{userId}}/{{orderId}}
اگر مقدارها چنین باشند:
userId = 25
orderId = 893
لینک نهایی:
https://example.com/order/25/893
نکات مهم هنگام استفاده از {{varname}}
هنگام استفاده از متغیرها با قالب {{varname}} به نکات زیر توجه کنید:
- نام متغیر باید دقیقاً درست نوشته شود.
- حروف بزرگ و کوچک در نام متغیرها میتواند مهم باشد.
- اگر متغیر مقدار نداشته باشد، ممکن است خروجی خالی یا ناقص نمایش داده شود.
- برای لینکها، مطمئن شوید مقدار متغیر باعث خراب شدن ساختار آدرس نمیشود.
- اگر مقدار متغیر شامل فاصله یا کاراکترهای خاص باشد، ممکن است در لینکها نیاز به مدیریت مناسب داشته باشد.
- بهتر است قبل از استفاده در لینکهای مهم، مقدار متغیر را تست کنید.
- از نامهای واضح مانند
userId،productId،searchTextوinvoiceIdاستفاده کنید.
اگر از متغیرها در لینک استفاده میکنید، مطمئن شوید مقدار متغیر معتبر است. مقدار اشتباه یا خالی میتواند باعث باز شدن لینک نادرست یا ناقص شود.
تفاوت ویجت نمایشگر متغیر و قالب {{varname}}
هر دو روش برای استفاده از مقدار متغیر هستند، اما کاربرد آنها کمی متفاوت است.
| روش | کاربرد |
|---|---|
| ویجت نمایشگر متغیر | نمایش مستقیم مقدار یک متغیر |
قالب {{varname}} | استفاده از مقدار متغیر داخل متن، دکمه، لینک، وب ویو یا عملکرد باز کردن لینک |
اگر فقط میخواهید مقدار یک متغیر را بهتنهایی نمایش دهید، ویجت نمایشگر متغیر انتخاب سادهتری است.
اما اگر میخواهید مقدار متغیر را داخل یک جمله، متن دکمه یا آدرس لینک ترکیب کنید، بهتر است از قالب {{varname}} استفاده کنید.
مثال:
{{userName}}
برای نمایش مستقیم نام کاربر مناسب است.
اما:
سلام {{userName}}، خوش آمدید.
برای ترکیب مقدار متغیر با متن ثابت مناسبتر است.
اتصال متغیر به فیلدهای ورودی
متغیرها فقط برای نمایش اطلاعات نیستند، بلکه میتوانند به فیلدهای ورودی نیز متصل شوند.
هنگام اتصال، میتوانید تعیین کنید داده فقط از فیلد به متغیر برود، فقط از متغیر در فیلد خوانده شود یا در هر دو جهت همگام بماند.
حالت پیشفرض «فیلد به متغیر» است تا رفتار اپهایی که قبلاً ساخته شدهاند بدون تغییر باقی بماند.
حالتهای جهت اتصال
| حالت | فیلد ← متغیر | فیلد → متغیر | کاربرد معمول |
|---|---|---|---|
| فیلد به متغیر | خیر | بله | دریافت ورودی کاربر و استفاده از آن در منطق اپ |
| متغیر به فیلد | بله | خیر | نمایش یک مقدار پویا یا پر کردن فرم از داده موجود، بدون تغییر دادن منبع |
| همگامسازی دوطرفه | بله | بله | فرم و متغیر همیشه یک مقدار مشترک داشته باشند |
در حالتهای «متغیر به فیلد» و «همگامسازی دوطرفه»، مقدار متغیر هنگام ساخته شدن ویجت و پس از هر تغییر دوباره خوانده میشود. اگر متغیر وجود داشته باشد، مقدار آن بر مقدار اولیه فیلد اولویت دارد. متغیر موجود با مقدار null فیلد را خالی میکند؛ ولی اگر متغیر اصلاً وجود نداشته باشد، مقدار پیشفرض فیلد حفظ میشود.
در حالت «متغیر به فیلد»، کاربر همچنان میتواند فیلد را تغییر دهد، اما این تغییر در متغیر ذخیره نمیشود و با تغییر بعدی متغیر ممکن است مقدار فیلد دوباره جایگزین شود. اگر هر دو سمت باید منبع تغییر باشند، حالت دوطرفه را انتخاب کنید.
فیلدهای ورودی قابل اتصال به متغیر
متغیرها میتوانند به انواع مختلفی از فیلدهای ورودی متصل شوند، از جمله:
- فیلد تکست
- فیلد کمبو
- فیلد چکباکس
- فیلد رادیو
هرکدام از این فیلدها نوع داده خود را هنگام نوشتن در متغیر یا خواندن از آن رعایت میکنند.
اتصال به فیلد تکست
در فیلد تکست، کاربر یک مقدار متنی یا عددی وارد میکند و متغیر متصل به آن، همان مقدار را نگه میدارد.
نمونه کاربردها:
- نام کاربر
- شماره تماس
- ایمیل
- متن جستجو
- کد تخفیف
- توضیحات فرم
مثال مفهومی:
فیلد ورودی نام
↓
متغیر: userName
↓
کاربر وارد میکند: Ali
↓
مقدار متغیر userName = "Ali"
در این حالت، هرجا در اپ به مقدار userName نیاز داشته باشید، میتوانید از دادهای که کاربر وارد کرده استفاده کنید.
مثلاً:
سلام {{userName}}
اگر کاربر نام Ali را وارد کرده باشد، خروجی چنین خواهد بود:
سلام Ali
اتصال به فیلد کمبو
در فیلد کمبو، کاربر یک گزینه را از بین چند گزینه انتخاب میکند و مقدار انتخابشده در متغیر ذخیره میشود.
نمونه کاربردها:
- انتخاب شهر
- انتخاب دستهبندی
- انتخاب نوع حساب
- انتخاب سطح دسترسی
- انتخاب زبان
مثال مفهومی:
فیلد کمبو: شهر
گزینهها: تهران، مشهد، شیراز
↓
متغیر: selectedCity
↓
کاربر انتخاب میکند: مشهد
↓
مقدار متغیر selectedCity = "مشهد"
پس از آن میتوان از مقدار متغیر در متن، شرط یا عملکرد استفاده کرد.
مثال:
شهر انتخابشده: {{selectedCity}}
اتصال به چکباکس
در چکباکس، معمولاً مقدار متغیر نشان میدهد که گزینه فعال است یا غیرفعال.
به همین دلیل، این نوع اتصال معمولاً با متغیرهای بولی بسیار سازگار است.
نمونه کاربردها:
- پذیرش قوانین
- فعال کردن دریافت اعلان
- انتخاب یک گزینه اختیاری
- روشن یا خاموش بودن یک قابلیت
مثال مفهومی:
چکباکس: قوانین را میپذیرم
↓
متغیر: acceptedRules
↓
اگر چکباکس فعال باشد:
acceptedRules = true
اگر چکباکس غیرفعال باشد:
acceptedRules = false
این متغیر میتواند در شرطها بسیار کاربردی باشد.
مثال:
اگر acceptedRules برابر true بود
← دکمه ثبت فعال شود
اتصال به رادیو
در رادیو، کاربر معمولاً فقط یک گزینه را از بین چند انتخاب مشخص انتخاب میکند و مقدار آن در متغیر ذخیره میشود.
نمونه کاربردها:
- انتخاب جنسیت
- انتخاب روش ارسال
- انتخاب نوع پرداخت
- انتخاب پلن اشتراک
- انتخاب وضعیت کاربر
مثال مفهومی:
فیلد رادیو: روش پرداخت
گزینهها: نقدی، کارت، آنلاین
↓
متغیر: paymentMethod
↓
کاربر انتخاب میکند: آنلاین
↓
مقدار متغیر paymentMethod = "آنلاین"
حالا میتوانید از این متغیر برای تصمیمگیری یا نمایش اطلاعات استفاده کنید.
مثال:
روش پرداخت انتخابشده: {{paymentMethod}}
چرا اتصال متغیر به ورودی مهم است؟
اتصال متغیر به فیلدهای ورودی باعث میشود دادههای واردشده توسط کاربر فقط داخل همان فیلد نمانند، بلکه وارد منطق اپلیکیشن شوند و در بخشهای مختلف قابل استفاده باشند.
به کمک این اتصال میتوانید:
- اطلاعات فرم را ذخیره کنید.
- مقدار واردشده توسط کاربر را در جای دیگر نمایش دهید.
- بر اساس انتخاب کاربر شرطگذاری کنید.
- لینکهای پویا بسازید.
- دادههای لازم را به عملکردها بدهید.
- تجربه کاربری تعاملیتری ایجاد کنید.
استفاده از متغیرهای متصل به ورودی در بخشهای مختلف اپ
بعد از اینکه متغیر به فیلد ورودی متصل شد، میتوان از مقدار آن در بخشهای مختلف استفاده کرد:
- در ویجت نمایشگر متغیر
- در متنها با قالب
{{varname}} - در دکمهها
- در لینکها
- در وب ویو
- در شرطها
- در عملکردها
مثال:
فیلد جستجو
↓
متغیر: searchText
↓
کاربر وارد میکند: mobile
حالا میتوان از این متغیر در آدرس وب ویو استفاده کرد:
https://example.com/search?q={{searchText}}
خروجی نهایی:
https://example.com/search?q=mobile
ارتباط فیلد ورودی و متغیر در فرمها
در فرمها، معمولاً هر فیلد ورودی به یک متغیر متصل میشود تا دادههای فرم قابل مدیریت باشند.
مثال مفهومی:
فیلد نام ← userName
فیلد ایمیل ← email
فیلد شهر ← selectedCity
چکباکس پذیرش قوانین ← acceptedRules
در این حالت، هنگام ارسال فرم، اپلیکیشن میتواند مقدار هر متغیر را بخواند و بر اساس آن عملیات لازم را انجام دهد.
نکات مهم در اتصال متغیر به فیلد ورودی
هنگام اتصال متغیرها به فیلدهای ورودی، به نکات زیر توجه کنید:
- نوع متغیر باید با نوع دادهی فیلد هماهنگ باشد.
- برای فیلدهای متنی از متغیر متنی استفاده کنید.
- برای چکباکس معمولاً متغیر بولی مناسبتر است.
- نام متغیر باید مشخص و مرتبط با همان فیلد باشد.
- اگر یک فیلد اجباری است، قبل از استفاده از مقدار متغیر، خالی نبودن آن را بررسی کنید.
- اگر مقدار متغیر در لینک یا شرط استفاده میشود، معتبر بودن آن را تست کنید.
- بهتر است برای هر فیلد مهم، مقدار اولیه یا رفتار پیشفرض مشخص باشد.
- جهت اتصال را بر اساس «منبع اصلی مقدار» انتخاب کنید؛ استفاده بیدلیل از حالت دوطرفه میتواند دنبال کردن جریان داده را دشوار کند.
- در رادیوباتن و کمبوباکس، مقدار متغیر باید با مقدار فنی یکی از گزینهها برابر باشد؛ مقدار نامعتبر انتخاب را پاک میکند.
- در چکباکس، مقدار فعال و غیرفعال تعریفشده در تنظیمات فیلد نیز هنگام خواندن از متغیر پشتیبانی میشود.
- مسیرهای متغیر تودرتو مانند
profile.cityنیز قابل استفادهاند، به شرطی که ساختار متغیر درست باشد.
نمونه نامگذاری مناسب:
userName
email
selectedCity
acceptedRules
paymentMethod
searchText
وقتی متغیر به فیلد ورودی متصل میشود، آن متغیر به یکی از اصلیترین منابع داده در اپ تبدیل میشود؛ بنابراین نوع، نام و اعتبار مقدار آن اهمیت زیادی دارد.
متغیرهای سیستمی
در اپادیتور، علاوه بر متغیرهایی که خودتان ایجاد میکنید، متغیرهای سیستمی نیز وجود دارند.
متغیرهای سیستمی بهصورت خودکار توسط سیستم ایجاد میشوند و معمولاً فقط خواندنی هستند؛ یعنی میتوانید از مقدار آنها استفاده کنید، اما مقدارشان را مستقیماً تغییر نمیدهید.
این متغیرها میتوانند شامل اطلاعاتی مانند موارد زیر باشند:
- اطلاعات کاربر
- اطلاعات دستگاه
- زمان و تاریخ
- وضعیتهای مرتبط با سیستم
- سایر دادههای آماده و قابل استفاده در اپ
برای مشاهده فهرست کامل، به صفحه زیر مراجعه کنید:
متغیرهای سیستمی برای دسترسی سریع به اطلاعات آماده بسیار مفید هستند و میتوانند در شرطها، عملکردها و نمایش دادهها استفاده شوند.
نکات مهم درباره متغیرها
برای استفاده بهتر از متغیرها، به نکات زیر توجه کنید:
- نامگذاری واضح داشته باشید: نام متغیر باید کاربرد آن را مشخص کند.
- نوع مناسب انتخاب کنید: نوع متغیر باید با دادهای که ذخیره میشود هماهنگ باشد.
- از ایجاد متغیرهای غیرضروری خودداری کنید: استفاده بیش از حد از متغیرها مدیریت اپ را سخت میکند.
- JSON را معتبر وارد کنید: نقلقولها، ویرگولها، آکولادها و کروشهها را بررسی کنید.
- برای نمایش مستقیم مقدار متغیر از ویجت نمایشگر متغیر استفاده کنید.
- برای ترکیب مقدار متغیر با متن یا لینک، از قالب
{{varname}}استفاده کنید. - هنگام استفاده از متغیر در لینکها، خالی نبودن و معتبر بودن مقدار متغیر را بررسی کنید.
- مقدار اولیه را فراموش نکنید: اگر متغیر بدون مقدار اولیه استفاده شود، ممکن است منطق اپ درست کار نکند.
- حالتهای مختلف را تست کنید: متغیرها را با مقدارهای مختلف بررسی کنید.
- برای دادههای حساس دقت بیشتری داشته باشید: مخصوصاً اگر اطلاعات روی دستگاه ذخیره میشود.
- نامها را قابل فهم انتخاب کنید: متغیرهایی مثل
isLoggedInیاcartCountبسیار واضحتر ازvar1وdata2هستند.
نام متغیر را طوری انتخاب کنید که کاربرد آن از روی نام مشخص باشد؛ مثلاً isLoggedIn از نامهای مبهمی مثل var1 قابل فهمتر است.
نمونه نامگذاری مناسب
نامگذاری درست متغیرها باعث میشود پروژه شما خواناتر، قابل نگهداریتر و قابل توسعهتر باشد.
نمونههای مناسب:
userName
isLoggedIn
cartCount
totalPrice
selectedCategory
searchText
hasInternetConnection
userProfile
shoppingCart
productList
نمونههای نامناسب:
var1
x
data
temp2
value
نامهای مبهم در پروژههای کوچک شاید مشکل زیادی ایجاد نکنند، اما در پروژههای بزرگ باعث سردرگمی و خطا میشوند.
بهترین تجربیات
برای مدیریت بهتر متغیرها در پروژه، این پیشنهادها را در نظر بگیرید:
- قبل از ساخت متغیر، هدف آن را مشخص کنید.
- برای وضعیتهای دوحالته از متغیر بولی استفاده کنید.
- برای مقدارهای شمارشی از عدد صحیح استفاده کنید.
- برای قیمتها، درصدها و عددهای دقیق از عدد اعشاری استفاده کنید.
- برای متنهای قابل نمایش یا ورودیهای کاربر از متغیر متنی استفاده کنید.
- برای شیءها، فهرستها و دادههای تو در تو از متغیر JSON استفاده کنید.
- برای خواندن یا تغییر بخشی از JSON، مسیر دقیق همان بخش را به کار ببرید.
- اگر داده فقط موقتاً لازم است، آن را در متغیر موقت ذخیره کنید.
- اگر داده باید پس از بستن اپ باقی بماند، از متغیر ذخیرهشده در دستگاه استفاده کنید.
- متغیرهای مهم را با نامهای استاندارد و قابل فهم تعریف کنید.
- منطق وابسته به متغیرها را در حالتهای مختلف تست کنید.
جمعبندی
متغیرها پایه اصلی ذخیرهسازی و تصمیمگیری در اپلیکیشن هستند. با استفاده از آنها میتوانید اطلاعات را نگه دارید، وضعیت اپ را کنترل کنید و تجربه کاربری پویا و هوشمند بسازید.
در یک نگاه:
- متغیر برای ذخیره و استفاده از اطلاعات است.
- متغیرها میتوانند متنی، عدد صحیح، عدد اعشاری، بولی یا JSON باشند.
- متغیر JSON میتواند شیء، آرایه و دادههای تو در تو را نگه دارد.
- زیرمقدارهای JSON با مسیرهایی مانند
userProfile.nameیاproducts[0].priceقابل دسترسی هستند. - متغیرها ممکن است موقت باشند یا روی دستگاه ذخیره شوند.
- شرطها معمولاً بر اساس مقدار متغیرها تصمیمگیری میکنند.
- عملکردها میتوانند مقدار متغیرها را تغییر دهند یا از آنها استفاده کنند.
- متغیرهای سیستمی اطلاعات آماده و فقطخواندنی سیستم را در اختیار شما قرار میدهند.
پیشنهاد برای مطالعه بعدی: