راهنمای شروع برنامه نویسی با اپسان
- راه اندازی اولیه
- ساخت مینی اپ
- اجرا و خطا یابی
- ایجاد باندل انتشار
- برنامه نویسی با اپسان
- نمونه مینی اپ ها
- انتشار مینی اپ
- راهنمای Appsan-CLI
راه اندازی اولیه
ابزار ها
مقدمه
روند ایجاد و اجرای مینی اپ ها از دو بخش کد نویسی و تست تشکیل می شود. پلتفرم اینتگرو پیا ابزار های زیر را برای تسریع توسعه در اختیار توسعه گر قرار می دهد.
نرم افزار اپسان روی گوشی
نرم افزار اپسان، برای تست و اجرای مینی اپ ها نیاز بوده و باید روی گوشی نصب شود. در صورت نصب بودن اپسان امکان اتصال گوشی به کامپیوتر و تست کد های اپسان روی گوشی ایجاد می شود.
کلاینت اپسان
کلاینت اپسان وظیفه ی برقراری ارتباط بین کامپیوتر و نرم افزار اپسان روی گوشی را دارد
پیش نیاز
- نصب اپلیکیشن اپسان اندروید روی گوشی
- نصب جاوا و وجود آن در environment-variable های سیستم عامل
- دانلود Intelij Idea Ultimate و دانلود و فعال سازی appsan-intelij-plugin روی آن (روش پیشنهادی)
- دانلود appsan-cli و قرار دادن آن داخل پوشه پروژه (در صورت استفاده از VS-CODE)
لینک های دانلود
- اپلیکیشن اپسان
- Appsan SDK
- Intelij Idea
- Appsan Intellij Plugin
نصب پلاگین اینتلیج (روش پیشنهادی)
فعال سازی پلاگین
ابتدا باید پلاگین اینتلیجی اپسان را فعال کنید. برای این کار نرم افزار intelij Idea را باز کنید و به بخش settings بروید یا کلید Ctrl + Alt + S را بزنید. در این بخش قسمت plugins بروید. روی کلید چرخ دنده کلیک کرده و Install Plugin from Disk را بزنید.
در پنجره ی باز شده فایل zip پلاگین اپسان دانلود شده را انتخاب کنید. این فایل با نام appsan-intelij-*.zip داخل فابل زیپ sdk است .
در صورت نیاز نرم افزار را بسته و دوباره باز کنید یا کلید Restart IDE را بزنید.
.
اجرا دستی Appsan CLI (عدم استفاده از Intellij)
این راهنما شما را از آمادهسازی جاوا تا اجرای راهنمای خط فرمان (CLI) هدایت میکند.
پیشنیازها
-
Appsan SDK را دانلود و اکسترکت کردهاید و فایل
appsan-cli.jarداخل پوشهی SDK موجود است. -
دسترسی Admin روی سیستم عامل (در صورت نیاز به افزودن متغیرهای محیطی).
1) نصب و راهاندازی Java (JDK) و افزودن به محیط
نسخهٔ موردنیاز جاوا را مطابق نسخهٔ SDK خود نصب کنید (معمولاً JDK 17 یا جدیدتر). پس از نصب، مطمئن شوید که
javaدر PATH قابل دسترسی است.
بررسی نصب
java -version
اگر نسخهٔ جاوا نمایش داده نشد، مراحل زیر را انجام دهید.
Windows (PowerShell)
-
مسیر نصب JDK را پیدا کنید، مثلاً:
C:\Program Files\Java\jdk-21
-
متغیرها را تنظیم کنید (PowerShell را با سطح کاربر اجرا کنید):
[Environment]::SetEnvironmentVariable("JAVA_HOME","C:\Program Files\Java\jdk-21","User")
[Environment]::SetEnvironmentVariable("Path",$Env:Path + ";C:\Program Files\Java\jdk-21\bin","User")
-
ترمینال را ببندید و دوباره باز کنید و بررسی کنید:
java -version
macOS (zsh)
-
اگر چند نسخه جاوا دارید:
/usr/libexec/java_home -V
-
فایل
~/.zshrcرا ویرایش کنید و بیفزایید:
export JAVA_HOME="$(/usr/libexec/java_home)"
export PATH="$JAVA_HOME/bin:$PATH"
-
اعمال تنظیمات و بررسی:
source ~/.zshrc
java -version
Linux (bash/zsh)
بستهٔ JDK توزیع خود را نصب کنید (مثلاً Debian/Ubuntu):
sudo apt update && sudo apt install -y openjdk-17-jdk
سپس در ~/.bashrc یا ~/.zshrc اضافه کنید:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
و اعمال و بررسی:
source ~/.bashrc # یا ~/.zshrc
java -version
2) باز کردن ترمینال در پوشهی Appsan SDK
-
Windows: در File Explorer روی پوشهٔ SDK بروید → راستکلیک → Open in Terminal یا Open PowerShell window here.
-
macOS/Linux: در فایلمنیجر Open in Terminal یا با دستور:
cd /path/to/appsan-sdk
در این پوشه باید فایل
appsan-cli.jarرا ببینید.
3) نمایش راهنمای CLI
در همان پوشهی SDK دستور زیر را اجرا کنید:
Linux/macOS:
java -jar ./appsan-cli.jar --help
Windows (PowerShell/CMD):
java -jar .\appsan-cli.jar --help
اگر همهچیز درست باشد، فهرست دستورات و سویچهای CLI نمایش داده میشود.
4) عیبیابی سریع
-
'java' is not recognized / command not found: جاوا نصب نیست یا PATH بهروز نشده است. ترمینال را ببندید/باز کنید یا مراحل تنظیم PATH را تکرار کنید.
-
Error: Unable to access jarfile appsan-cli.jar: در پوشهٔ درست نیستید یا نام فایل جابهجا/غلط است. با
ls/dirوجود فایل را بررسی کنید. -
UnsupportedClassVersionError: نسخهٔ جاوای شما قدیمی است. JDK جدیدتر نصب/فعال کنید.
-
مسیرهای دارای فاصله: مسیرها را در نقلقول
" "قرار دهید. -
پروکسی/فایروال: در صورت نیاز از گزینههای جاوا مانند
-Dhttp.proxyHostو-Dhttp.proxyPortاستفاده کنید.
ساخت مینی اپ
ایجاد پروژه ی جدید
داخل اینتلیجی از منوی بالا File > New > Project… را انتخاب کنید
در پنجره ی باز شده نوع پروژه Appsan را انتخاب کرده، آدرس SDK دانلود شده را داخل ورودی Path to Appsan SDK وارد کنید و next را بزنید.
در این بخش نام پروژه و آدرس ذخیره سازی را وارد کرده و create را بزنید.
یک پروژه اپسان برای شما ایجاد می شود
ساختار فایل ها
مینی اپ شما از مجموعه ای از فایل های .appsan تشکیل شده است که در آخر تبدیل به یک فایل واحد شده و در موبایل نمایش داده می شود.
برای تمیز تر شدن کد ها و امکان ایجاد پروژه های بزرگتر منطق برنامه از نمای آن جدا می شود که برای نما از فایل های .xml.appsan و برای منطق از فایل .js.appsan استفاده می شود. فایل های شکسته شده باید در فایل xml.appsan معرفی شوند تا در زمان اجرای برنامه این فایل ها داخل فایل اصلی جایگزین شوند. برای معرفی فایل شکسته شده داخل فایلی دیگر از include استفاده می شود و آدرس فایل جدید در اتریبیوت layout به آن داده می شود.
* آدرس فایل ها همیشه از پوشه ی layout به بعد وارد می شود.
برای درک بهتر ساختار فرض کنید مینی اپ شما یک نرم افزار todo می باشد. یک نرم افزار todo از یک صفحه ی لیست کار ها و یک صفحه ی کار جدید تشکیل می شود. ساختار پیشنهادی برای این اپ به صورت زیر است.
تنظیم آدرس SDK اپسان
از منو فایل settings را انتخاب کنید
داخل این پنجره به Languages & Frameworks > Appsan مراجعه کرده و آدرس پوشه SDK دانلود شده را در قسمت Path to SDK وارد نمایید
ایجاد پروژه جدید از ترمینال
این صفحه فقط روی ایجاد پروژه تمرکز دارد. اجرای پروژه و ساخت بسته (Bundle) در صفحات جداگانه توضیح داده شدهاند.
پیشنیازها
-
Appsan SDK را دانلود کردهاید و فایل
appsan-cli.jarداخل پوشهٔ SDK موجود است. -
Java (JDK 11+) نصب و در PATH در دسترس است (
java -version).
گام 1) ساخت پوشهٔ پروژه
mkdir hello-appsan
cd hello-appsan
گام 2) ایجاد ساختار پوشهها
mkdir -p layout
mkdir -p assets # اختیاری
mkdir -p webdist # اختیاری
گام 3) افزودن فایل پیکربندی پروژه (appsan.json)
در ریشهٔ پروژه فایل زیر را بسازید:
appsan.json
{
"name": "hello-appsan",
"id": "com.example.helloappsan",
"version": "1.0.0",
"description": "My first Appsan project"
}
نکتهٔ مهم: CLI هنگام اجرای دستورها (
run/bundle) از مسیر--fileبه سمت بالا بهدنبالappsan.jsonمیگردد. نبود این فایل باعث خطایNo Appsan.json file found.میشود.
گام 4) ایجاد یک Layout اولیه
در مسیر layout/ یک فایل اصلی بسازید:
layout/main.xml
<!-- این نمونه صرفاً نمایشی است؛ عناصر را مطابق مستندات Layout پروژهٔ خود تنظیم کنید -->
<layout>
<!-- نمونهٔ استفاده از Mustache -->
<!-- متن: {{TITLE}} -->
</layout>
پوشههای
assets/وwebdist/(اختیاری) در حالت اجرا روی وب میزبانی شده و در خروجی Bundle نیز اضافه میشوند.
ادامهٔ کار:
-
برای اجرای پروژه (پیشنمایش) به صفحهٔ «اجرای پروژه با Appsan CLI (پیشنمایش)» بروید.
-
برای ساخت بستهٔ انتشار (Bundle) به صفحهٔ «ساخت Bundle با Appsan CLI» مراجعه کنید.
اجرا و خطا یابی
اجرای مینی اپ روی وب
برای اجرای مینی اپ در قسمت run config در قسمت بالا سمت راست intelij گزینه یAdd configuration یا Edit configuration را بزنید. در پنجره باز شده روی + زده و Appsan را انتخاب نمایید.
سپس نام مورد نظر برای اجرا و فایل اجرا را انتخاب کنید. Run type را روی Web قرار دهید.
پس از اجرا، آدرس وب داخل console نمایش داده می شود.
Android دریافت کرده و با پوشه ی libs/bin/platform-tools جایگزین کنید.
نمای وب پیش نمایش مینی اپ شما را نمایش میدهد و ممکن است خروجی دریافتی با خروجی پس از باندل شدن متفاوت باشد. علاوه بر این امکانات سوپر اپ مانند اطلاعات کاربر یا توکن ورود در این روش در دسترس نیست و باید دستی در کد وارد شود.
خطا های اجرا
Project has no JDK configuration
در بخش Project در پنجره باز شده SDK را انتخاب کنید ورژن 11 یا بالاتر از JAVAرا انتخاب کرده یا در صورت عدم وجود ورژن Add را بزنید تا به صورت خودکار دانلود شود.
اجرای مینی اپ روی اندروید
برای اجرای مینی اپ خود از نصب بودن اپسان و فعال بودن usb debuging روی گوشی اندرویدی خود مطمئن شوید.
فعال سازی حالت توسعه اپسان
برای اجرای مینی اپ روی اندروید باید حالت توسعه روی اپ قرمز فعال شود. برای این کار وارد اپ قرمز قسمت پروفایل شوید و کلید بروز رسانی پروفایل (کلید گرد فلش دار در بالا سمت چپ) را نگه دارید تا پیام سرویس توسعه اجرا شد نمایش داده شود. برای غیر فعال سازی حالت توسعه بار دیگر این کلید را نگه دارید. زمانی که حالت توسعه روشن است یک ناتیفیکیشن در ناتیفیکیشن بار گوشی مبنی بر فعال بودن حالت توسعه نمایش داده می شود..
تنظیمات اجرا در IDE
برای اجرای مینی اپ در قسمت run config در قسمت بالا سمت راست intelij گزینه یAdd configuration یا Edit configuration را بزنید. در پنجره باز شده روی + زده و Appsan را انتخاب نمایید.
سپس نام مورد نظر برای اجرا و فایل اجرا را انتخاب کنید.
برای اجرای نرم افزار گوشی را به کامپیوتر وصل کرده و دگمه ی اجرای intelij در بالا سمت راست را انتخاب کنید.
خطا های اجرا
Project has no JDK configuration
در بخش Project در پنجره باز شده SDK را انتخاب کنید ورژن 11 یا بالاتر از JAVAرا انتخاب کرده یا در صورت عدم وجود ورژن Add را بزنید تا به صورت خودکار دانلود شود.
failed to create socket, is appsan bridge running?
این خطا به معنی اجرا نبودن bridge در اپسان است برای اجرای این برنامه دستور زیر را در terminal وارد کنید.
java -jar libs/appsan-tcp-bridge.jar
اجرا ی مینی اپ روی مک و لینوکس
لایبرری های همراه با پلاگین تنها platform-tools مربوط به ویندوز را همراه خود دارد برای استفاده از پلاگین در مک یا لینوکس platform-tools مربوط به سیستم عامل خود را از سایت Android دریافت کرده و با پوشه ی libs/bin/platform-tools جایگزین کنید.
اجرای پروژه با Appsan CLI
این صفحه اجرای پروژهٔ ساختهشده را در حالت Preview با استفاده از دستور run توضیح میدهد.
پیشنیازها
-
پروژه طبق صفحهٔ «ایجاد پروژه جدید از ترمینال» ساخته شده و فایلهای
appsan.jsonوlayout/main.xmlآمادهاند. -
Java (JDK 11+) در PATH در دسترس است.
الگوی اجرا
java -jar /path/to/appsan-sdk/appsan-cli.jar run [options]
اجرای سریع (وب، پیشفرض)
java -jar /path/to/appsan-sdk/appsan-cli.jar run -pl web -f ./layout/main.xml
-
اگر پلتفرم مشخص نشود، پیشفرض web است.
-
سرور HTTP روی پورت
4300و WebSocket روی پورت3000اجرا میشود. -
با هر تغییر در فایلها، پروژه دوباره build شده و پیشنمایش بهروز میشود.
گزینههای مهم
-
-pl, --platform <online|usb|web>تعیین پلتفرم اجرا (پیشفرض:web) -
-f, --file <path>مسیر فایل Layout (الزامی) -
-r, --root <path>ریشهٔ منابع (پیشفرض:<projectPath>/layout) -
-k, --keyVal <k:v>مقداردهی Mustache (قابل تکرار) -
-v, --variable <id:val>افزودن<var id="id" value="val"/>(قابل تکرار) -
-q, --qualifier <k:v>تعیین Qualifierها مانندsize,density,night_mode,android_version,appsan_version(قابل تکرار) -
--keep-comments <bool>حفظ کامنتها (بهصورتtrue/false) -
--port <int>پورت HTTP برای پیشنمایش وب (پیشفرض:4300) -
--socket-port <int>پورت WebSocket (پیشفرض:3000) -
--no-file-serverغیرفعالکردن سروینگ فایلهای استاتیک (web/usb)
نمونهٔ پیشرفته:
java -jar /path/to/appsan-sdk/appsan-cli.jar run -pl web -f ./layout/main.xml \
--port 4400 --socket-port 3100 --no-file-server \
-k TITLE:"Hello Appsan" \
-v build:debug \
-q size:small -q density:mdpi -q night_mode:notnight \
--keep-comments true
سایر پلتفرمها (اختیاری)
-
USB (Android):
java -jar /path/to/appsan-sdk/appsan-cli.jar run -pl usb -f ./layout/main.xml -adb "C:\Android\platform-tools\adb.exe" -r ./layout -
Online (نیازمند احراز هویت):
java -jar /path/to/appsan-sdk/appsan-cli.jar run -pl online -f ./layout/main.xml -t YOUR_TOKEN
خطاهای متداول و رفع آنها
-
No Appsan.json file found.
فایلappsan.jsonدر ریشهٔ پروژه نیست یا مسیر-fخارج از پروژه است. -
Failed to bind to port
پورتها اشغالاند؛ از--portو--socket-portاستفاده کنید. -
Unable to access jarfile
مسیرappsan-cli.jarرا صحیح وارد کنید. -
java not found / UnsupportedClassVersionError
Java نصب نیست یا نسخه قدیمی است؛ JDK 11+ نصب/فعال و ترمینال را ریاستارت کنید. -
گزینهٔ
--keep-comments
حتماً مقدار بدهید:--keep-comments true.
خطا یابی با استفاده از log
اپسان برخی از اتفاقات و خطا ها رابه صورت log نمایش می دهد.
یکی از این موارد ریکوست های وب است که متن ارسالی و جواب بازگشت داده شده آن داخل لاگ قابل مشاهده است.
دسترسی به لاگ ها
برای دسترسی به لاگ ها CLI را با دستور logs و نام دستگاه خود اجرا کنید
Java -jar libs/Appsan-CLI-1.0-SNAPSHOT.jar logs -d <device-id>
برای به دست آوردن id دستگاه اندرویدی خود میتوانید دستور زیر را اجرا کنید.
Java -jar libs/Appsan-CLI-1.0-SNAPSHOT.jar devices
پس از اجرای دستور logs می توانید لاگ ها را روی آدرس http://localhost:12982/logs/ داخل browser دلخواه خود ببینید.
دسترسی به لاگ ها در intelij
از قسمت اجرا بخش edit configuration را باز کنید
در پنجره باز شده روی + کلیک کرده . گزینه JAR Application را انتخاب کنید
سپس نام مورد نظر را در بخش Name و آدرس Appsan-CLI را در بخش Path to JAR وارد کنید. در قسمت Program arguments مقدار زیر را وارد کنید.
logs -d <device-serial>
که <device-serial> همان سریال دستگاه که در بالا از ترمینال دریافت شد میباشد.
حالا با اجرای logs در اینتلیجی لاگ ها روی browser قابل رویت خواهد بود.
ایجاد باندل انتشار
ساخت Bundle با Appsan CLI
این صفحه نحوهٔ ساخت خروجی قابل توزیع (Zip) از پروژه را توضیح میدهد.
پیشنیازها
-
پروژه و
appsan.jsonطبق صفحهٔ «ایجاد پروژه جدید از ترمینال» آماده باشند. -
Layout اصلی (مثلاً
layout/main.xml) موجود باشد.
الگوی دستور
java -jar /path/to/appsan-sdk/appsan-cli.jar bundle [options]
ساخت سریع
java -jar /path/to/appsan-sdk/appsan-cli.jar bundle -f ./layout/main.xml
گزینههای مهم
-
-f, --file <path>مسیر فایل Layout (الزامی) -
-r, --root <path>ریشهٔ منابع (پیشفرض:<projectPath>/layout) -
-k, --keyVal <k:v>مقداردهی Mustache (قابل تکرار) -
-v, --variable <id:val>افزودن<var/>(قابل تکرار) -
-q, --qualifier <k:v>تعیین Qualifierها (قابل تکرار) -
--keep-comments <bool>حفظ کامنتها در خروجی (مثلاًtrue) -
-b, --bundle-type <zip|xml>فعلاً در خروجی اثری ندارد (خروجی zip است)
خروجیها
پس از اجرا، پوشهٔ dist/ ایجاد میشود و شامل موارد زیر است:
-
dist/index.xml— کد تولیدشده از Layout -
dist/manifest.xml— تولیدشده بر اساسappsan.json -
dist/<name>.zip— شاملindex.xml,manifest.xml, و در صورت وجودassets/**وwebdist/**
نمونهٔ پیشرفته
java -jar /path/to/appsan-sdk/appsan-cli.jar bundle -f ./layout/main.xml \
-k TITLE:"Hello Appsan" -q density:mdpi --keep-comments true
خطاهای متداول و رفع آنها
-
No Appsan.json file found.
appsan.jsonدر ریشهٔ پروژه موجود نیست یا مسیر-fخارج از پروژه است. -
مسیر فایلها
در صورت وجود فاصله در مسیرها از نقلقول" "استفاده کنید. -
java not found / نسخهٔ جاوا
JDK 11+ نصب باشد وjava -versionنسخهٔ درست را نشان دهد.
برنامه نویسی با اپسان
مفاهیم ساختاری
نمایش صفحه
هر مینیاپ باید با یک رابط کاربری شروع شود. این رابط، نقطه آغاز تعامل کاربر با برنامه است. برای نمایش یک صفحه کامل که بتواند محتوای متنی، تصاویر، دکمهها و دیگر المانها را نمایش دهد، در اپسان از Page استفاده میکنیم.
چرا Page؟ Page المانی است که به صورت پیشفرض به عنوان "نمای اصلی" یک برنامه یا بخشی از آن استفاده میشود. هر چیزی که کاربر در یک صفحه مشاهده میکند، فرزندان همین Page خواهند بود.
مثال: ساخت یک صفحه ساده در این مثال، یک صفحه به نام "صفحه اصلی" طراحی شده است که حاوی متنی برای خوشآمدگویی به کاربر است:
<page id="main-page" title="صفحه اصلی" layout="linear_vertical" scrollable="true">
<text text="به اپسان خوش آمدید" textsize="20" textcolor="#424750" />
</page>
ویژگیهای کلیدی Page:
- id: شناسه یکتا برای صفحه.
- title: عنوانی که در نوار ابزار نمایش داده میشود.
- layout: نوع چیدمان محتوا (افقی یا عمودی).
- scrollable: مشخص میکند که صفحه قابلیت اسکرول دارد یا خیر.
اولین المان در کد اپسان با اجرای مینی اپ اجرا می شود. این المان میتواند از نوع page، dialog، action یا دیگر المان های قابل اجرا باشد.
صفحه (Page) به شما اجازه میدهد یک نمای اصلی ایجاد کنید. در داخل یک صفحه میتوان انواع مختلفی از المانها مانند متن (Text)، دکمهها (Button)، تصاویر (Image) و سایر المانها را قرار داد. یک مینی اپ میتواند صفحات مختلف داشته باشد.
اپسان در زمان اجرا اولین صفحه (یا المان قابل اجرا دیگر) در کد را نمایش میدهد پس از آن منطق جابجایی بین صفحات باید توسط دولپر مشخص شود. این کار با استفاده از اکشن ها انجام میشود.
اکشنها در اپسان وظیفه مدیریت و اجرای دستورات را بر عهده دارند. یکی از رایجترین کاربردهای اکشنها، جابجایی بین صفحات است. اکشنها همچنین برای اجرای اسکریپتها، بستن دیالوگها و تعامل با سایر بخشهای اپلیکیشن استفاده میشوند که در بخش های بعدی به آن ها اشاره می شود.
اکشن ها
جابجایی بین صفحات با اکشن
جابجایی بین صفحات در اپسان با اکشنهای page/pageId انجام میشود. این اکشن صفحهای با شناسه (ID) مشخص را باز میکند. استفاده از این روش باعث میشود تجربه کاربری روان و سریع باشد.
برای جابجایی بین صفحات چند صفحه داخل کد تعریف میکنیم و به هر یک id میدهیم هر page با id خود شناخته می شود و برای باز کردن page از این id استفاده می شود.
برای مثال، سه صفحه ایجاد میکنیم که کاربر میتواند بین آنها جابجا شود. صفحهها شامل یک متن و دکمههایی برای رفتن به صفحه دیگر هستند.
<!-- صفحه اول -->
<page id="page1" title="صفحه اول" layout="linear_vertical" scrollable="true">
<text text="این صفحه اول است." textsize="20" textcolor="#424750" />
<button text="برو به صفحه دوم" onclick="page/page2" />
<button text="برو به صفحه سوم" onclick="page/page3" />
</page>
<!-- صفحه دوم -->
<page id="page2" title="صفحه دوم" layout="linear_vertical" scrollable="true">
<text text="این صفحه دوم است." textsize="20" textcolor="#424750" />
<button text="بازگشت به صفحه اول" onclick="page/page1" />
<button text="برو به صفحه سوم" onclick="page/page3" />
</page>
<!-- صفحه سوم -->
<page id="page3" title="صفحه سوم" layout="linear_vertical" scrollable="true">
<text text="این صفحه سوم است." textsize="20" textcolor="#424750" />
<button text="برو به صفحه اول" onclick="page/page1" />
<button text="برو به صفحه دوم" onclick="page/page2" />
</page>
در مثال جابجایی بین صفحات، از اکشنها در ویژگی onclick دکمهها استفاده شد. با کلیک روی دکمهها، اکشن مربوطه اجرا شده و کاربر به صفحه دیگری منتقل میشود. در اپسان، اکشنها ابزار اصلی برای اجرای دستورات و تعاملات در برنامه هستند.
اکشنها تنها محدود به ویژگی onclick نیستند. بسیاری از ویژگیهای دیگر نیز میتوانند اکشن دریافت کنند. این ویژگیها معمولاً با پیشوند on شروع میشوند. در ادامه، چند مثال از اکشنها در بخشهای مختلف ارائه شده است:
قابلیت ترکیب اکشن ها
چند اکشن میتوانند در یک ویژگی به صورت زنجیرهای اجرا شوند. این اکشن ها با ; یا -> جدا می شوند. اکشن هایی که با ; جدا شوند پشت سر هم به صورت موازی اجرا می شوند و اکشن هایی که با -> جدا می شوند به ترتیب اجرا شده و پس از پایان اکشن اول اکشن بعدی با نتیجه اکشن اول صدا می شود.
<button text="ذخیره و بازگشت" onclick="script/form-script:saveForm();page/summary-page" />
<button text="امضا و ارسال" onclick="ekyc/generateToken('0300000','1X12345678')->script/sign:submit($data)" />
همه ی اکشن ها امکان استفاده با -> را ندارند. در صورت عدم پشتیبانی اکشن از -> ممکن است اکشن بعدی اجرا نشود یا به طور همزمان با اکشن قبلی اجرا شود.
اکشنهای پرکاربرد
در اپسان، برخی از اکشنها به طور مکرر استفاده میشوند. این اکشنها در بخش اکشنهای مستندات اپسان به صورت کامل توضیح داده شدهاند:
- page/pageId: جابجایی به صفحهای با شناسه مشخص.
- dialog/dialogId: باز کردن یک دیالوگ.
- app/closedialog: بستن دیالوگ باز.
- script/scriptId:functionName(): اجرای یک تابع جاوااسکریپت.
- app/exit: خروج از برنامه.
برای آشنایی با باقی اکشن ها میتوانید بخش اکشن ها را مطالعه نمایید.
انتقال داده بین صفحات: معرفی متغیرها (Variables)
تا اینجا با مفهوم Page آشنا شدیم و یاد گرفتیم که چگونه از اکشنها برای جابجایی بین صفحات استفاده کنیم. اما در بسیاری از موارد، نیاز است که دادهها بین صفحات جابجا شوند. برای مثال، در یک فرم ثبتنام ممکن است کاربر اطلاعاتی را در یک صفحه وارد کند و در صفحه بعدی نتیجه آن را مشاهده کند.
Variable: ابزار مدیریت و انتقال داده
متغیرها (Variable) در اپسان برای ذخیره و انتقال دادهها بین صفحات یا سایر بخشهای برنامه استفاده میشوند. این متغیرها میتوانند مقادیر مختلفی مانند متن، عدد یا اشیاء را نگهداری کرده و در هر نقطه از برنامه قابل دسترسی باشند.
نحوه تعریف و استفاده از متغیرها
در اپسان، متغیرها با استفاده از متد Appsan.setVariable() تعریف و مقداردهی میشوند. برای دسترسی به مقدار متغیر نیز از متد Appsan.getVariable() استفاده میشود علاوه بر این میتوانید متغیر را داخل xml با تگ var با مقدار اولیه مشخص اعریف کنید.
<var id="phone" value="0211231225"/>
Appsan.setVariable('phone', '02112345678')
مثال: ذخیره و استفاده از متغیرها
- ذخیره مقدار در متغیر در صفحه اول، نام کاربر در یک متغیر ذخیره میشود:
<page id="page1" title="صفحه اول" layout="linear_vertical">
<textinput id="username" hint="نام کاربری" />
<button text="ذخیره و برو به صفحه بعد" onclick="script/main-script:saveUsername()" />
</page>
<script id="main-script">
function saveUsername() {
const username = Appsan.findElementById('username').value;
Appsan.setVariable('user_name', username);
Appsan.runAction('page/page2');
}
</script>
- دسترسی به مقدار متغیر در صفحه دوم در صفحه دوم، مقدار ذخیره شده نمایش داده میشود:
<page id="page2" title="صفحه دوم" layout="linear_vertical">
<text id="welcomeMessage" text="در حال بارگذاری..." />
<script id="page2-script">
function initPage() {
const username = Appsan.getVariable('user_name').value;
Appsan.setProperty('welcomeMessage', 'text', `سلام، ${username}!`);
}
</script>
<onshown action="script/page2-script:initPage()" />
</page>
نکات کلیدی در استفاده از متغیرها
- دسترسی در تمام برنامه: متغیرها به صورت سراسری تعریف میشوند و در هر صفحه یا بخش از برنامه قابل دسترسی هستند.
- مدیریت ساده دادهها: با استفاده از متغیرها، نیازی به ارسال مستقیم دادهها از یک صفحه به صفحه دیگر نیست.
- حذف متغیرها: میتوانید متغیرها را با مقداردهی مجدد بازنویسی کنید یا در صورت نیاز حذف کنید.
نمونه مینی اپ ها
ساخت یک مینی اپ TODO
این فصل فرض میکند نحوه ی ایجاد پروژه ی پایه، اجرا و تست مینی اپ که در فصل های گذشته گفته شده را مطالعه کردید. و با کلیات برنامه نویسی اپسان که در بخش فرانتاند توضیح داده شده است آشنایی دارید.
انتشار مینی اپ
راهنمای Appsan-CLI
راهنمای استفاده از ابزار خط فرمان CLI برای Appsan
این ابزار CLI به شما امکان مدیریت، اجرا، و تعامل با پروژههای Appsan را میدهد. دستورات اصلی در CLI عبارتاند از:
1. Run (اجرا)
برای اجرای پروژه Appsan:
java -jar AppsanCLI.jar run [options]
گزینهها:
-
-plیا--platform: پلتفرم اجرا (مقدار:usb,web). -
-fیا--file: نام فایل XML که باید اجرا شود. -
-rیا--root: مسیر پوشه پروژه. -
-kیا--keyVal: جایگزینی کلید و مقدار -
-vیا--variable: افزودن یک متغیر به انتهای فایل. -
-oیا--out: مسیر خروجی. -
--debug: فعالسازی حالت دیباگ. -
--adb-path: مسیر ADB برای دستگاههای اندروید. -
--port: پورت برای پیشنمایش. (حالت وب) -
--socket-port: پورت برای اتصال WebSocket. (حالت وب) -
--keep-comments: حفظ کامنتها در زمان بیلد.
2. Bundle (باندل کردن)
برای ایجاد بستههای باندل:
java -jar AppsanCLI.jar bundle [options]
گزینهها:
-
-fیا--file: نام فایل XML. -
-rیا--root: مسیر ریشه منابع. -
-kیا--keyVal: جایگزینی کلید و مقدار. -
-vیا--variable: افزودن متغیر. -
-qیا--qualifier: افزودن خصوصیات. -
-bیا--bundle-type: نوع باندل (zip,xml). -
--keep-comments: حفظ کامنتها.
3. Devices (مدیریت دستگاهها)
برای نمایش لیست دستگاههای متصل:
java -jar AppsanCLI.jar devices
4. Logs (دریافت لاگها)
برای مشاهده و مدیریت لاگهای پروژه:
java -jar AppsanCLI.jar logs [options]
گزینهها:
-
-dیا--device: انتخاب دستگاه برای مشاهده لاگ.
5. Exit Bridge (خروج از رابط اندروید tcp-bridge)
برای ارسال دستور خروج به پل ارتباطی:
java -jar AppsanCLI.jar exit-bridge
نکات اضافی:
- نصب: برای استفاده از این CLI، اطمینان حاصل کنید که جاوا ۱۱ یا بالاتر نصب شده باشد.
-
پیکربندی: فایل
appsan.jsonباید در مسیر پروژه موجود باشد تا تنظیمات پروژه بهدرستی بارگذاری شود. - اشکالزدایی: در صورت وقوع خطا، از گزینههای دیباگ برای دریافت اطلاعات بیشتر استفاده کنید.
مثالها:
- اجرای پروژه روی پلتفرم وب:
java -jar AppsanCLI.jar run -pl web -f [project-dir]/layout/app.xml -r [project-dir]/layout
- ایجاد باندل ZIP:
java -jar AppsanCLI.jar bundle -b zip -f [project-dir]/layout/app.xml -r [project-dir]/layout
- نمایش دستگاهها:
java -jar AppsanCLI.jar devices
- دریافت لاگها از دستگاه خاص:
java -jar AppsanCLI.jar logs -d device1