1. نظرة عامة
من خلال ميزة "مهامّ في التطبيقات"، يمكنك استخدام "مساعد Google" للانتقال مباشرةً إلى ميزات التطبيق وإكمال المهام باستخدام صوتك. بصفتك مطوّر برامج Android، عليك تنفيذ عناصر الإمكانات لإضافة "مهامّ في التطبيقات". تتيح إمكانات "مساعد Google" لخدمة "مساعد Google" معرفة ميزات التطبيق التي تتيح استخدام الطلبات الصوتية للمستخدمين، وبكيفية تنفيذ هذه الطلبات.
يتناول هذا الدرس التطبيقي حول الترميز مفاهيم تطويرها باستخدام خدمة "مهامّ في التطبيقات" على مستوى المبتدئين. يجب أن تكون لديك خبرة سابقة في تطوير تطبيقات Android وأهداف Android لمتابعة هذا الدرس التطبيقي حول الترميز. إذا كنت مبتدئًا في استخدام نظام Android، يمكنك بدء استخدام أحد الدروس التطبيقية حول الترميز حول أساسيات مطوّري برامج Android.
ما الذي ستقوم ببنائه
في هذا الدرس التطبيقي حول الترميز، ستضيف هدفَين مضمّنَين في إجراءات التطبيقات (BII) إلى نموذج لتطبيق Android للّياقة البدنية، ما يتيح للمستخدمين بدء موقّت تمرين أو إيقافه باستخدام أصواتهم.
ما ستتعرَّف عليه
ستتعرّف على كيفية استخدام مؤشرات BII من فئة الصحة واللياقة البدنية لتوسيع نطاق وصول "مساعد Google" إلى تطبيق Android. ستتعلّم أيضًا كيفية استخدام مكوّن "مساعد Google" الإضافي في "استوديو Android" لاختبار مؤشرات BII.
المتطلبات الأساسية
قبل المتابعة، تأكَّد من توفُّر الأدوات التالية في بيئتك:
- وحدة طرفية لتشغيل أوامر واجهة الأوامر مع تثبيت git
- أحدث إصدار من استوديو Android
- حساب Google لديه إذن بالوصول إلى [Google Play Console][]
- جهاز Android مادي أو افتراضي تتوفّر عليه إمكانية الوصول إلى "متجر Play" من الإنترنت
قبل المتابعة، تأكَّد من أنّ حساب Google نفسه مسجّل الدخول إلى "استوديو Android" وتطبيق Google على الجهاز الاختباري.
2. التعرّف على طريقة العمل
تتيح ميزة "مهامّ في التطبيقات" ربط المستخدمين من "مساعد Google" بتطبيقك على Android. كيف تعمل هذه الميزة؟
عندما يطلب المستخدم من "مساعد Google" تنفيذ مهمة باستخدام تطبيقك، يُطابق "مساعد Google" طلب البحث مع capability
إجراءات التطبيقات المحدّدة في مرجع XML الخاص بالتطبيق shortcuts.xml
.
الشكل 1. مخطّط بياني لتدفق يوضّح طريقة "مساعد Google" في معالجة طلب صوتي في خدمة "مهامّ في التطبيقات"
يحدد كل عنصر من عناصر الإمكانات ما يلي:
- النية: الغرض الصوتي من تطبيق "مهامّ في التطبيقات" الذي من المفترض أن يفعّل الميزة.
- عملية تنفيذ واحدة أو أكثر: عناصر Android أو روابط لصفحات في التطبيق ينشئها "مساعد Google" لتشغيل التطبيق وتنفيذ طلب البحث الصوتي للمستخدم. تحدِّد تعريفات التنفيذ المَعلمات المتوقعة من طلب بحث المستخدم، وكيفية ترميز هذه المَعلمات في تعليمات الإطلاق.
مكان ووقت الاستماع إلى الموسيقى
في فهم اللغة الطبيعية (NLU)، المقصود هو مجموعة من عبارات المستخدم التي لها معانٍ متشابهة. لقد صنعت Google العشرات من الأغراض (BII) التي تغطي مجموعة متنوعة من أنواع الطلبات المتاحة من خلال خدمة "مهامّ في التطبيقات". على سبيل المثال، يتم تدريب "مساعد Google" على ربط العبارتَين "طلب بيتزا" أو "عرض قائمة الحلويات" بالعبارة ORDER_MENU_ITEM
BII. باستخدام ميزة "مهامّ في التطبيقات"، يمكنك الاستفادة من مؤشرات BII هذه لتوسيع نطاق الطلبات الصوتية الشائعة سريعًا ليشمل وظائف التطبيق.
توصيل الطلبات
عندما يشغّل طلب مستخدم إجراء تطبيق في shortcuts.xml
، يجب أن يرصد نشاطك على Android الهدف الوارد أو الرابط لصفحة في التطبيق ويتعامل معه، وأن يوفّر للمستخدم الوظائف التي يريدها. والنتيجة هي تجربة مستخدم تعتمد على الصوت، حيث يستدعي "مساعد Google" تطبيقك استجابةً لطلب بحث من المستخدم.
3- إعداد بيئة التطوير
يستخدم هذا الدرس التطبيقي حول الترميز نموذج تطبيق اللياقة البدنية لأجهزة Android. يتيح هذا التطبيق للمستخدمين تشغيل موقّت بدء التمارين وإيقافه والاطّلاع على إحصاءات حول سلاسل التمارين الرياضية.
تنزيل ملفاتك الأساسية
للحصول على الملفات الأساسية لهذا الدرس التطبيقي حول الترميز، شغِّل الأمر التالي لاستنساخ مستودع GitHub:
git clone --branch codelab-start https://github.com/actions-on-google/appactions-fitness-kotlin.git
بعد استنساخ المستودع، افتحه في "استوديو Android" على النحو التالي:
- في مربّع الحوار مرحبًا بك في "استوديو Android"، انقر على استيراد مشروع.
- ابحث عن المجلد الذي استنسخت منه المستودع واختَره.
تعديل رقم تعريف تطبيق Android
يؤدي تعديل معرّف التطبيق الخاص بالتطبيق إلى التعرّف على التطبيق بشكلٍ فريد على الجهاز الاختباري وتجنُّب ظهور "اسم حزمة مكرّر". إذا تم تحميل التطبيق على Play Console. لتعديل معرّف التطبيق، افتح app/build.gradle
:
android {
...
defaultConfig {
applicationId "com.MYUNIQUENAME.android.fitactions"
...
}
}
استبدال "MYUNIQUENAME" في الحقل applicationId
إلى معلومات فريدة لك.
تجربة التطبيق على جهازك
قبل إجراء المزيد من التغييرات على رمز التطبيق، من المفيد الحصول على فكرة عما يمكن أن يفعله نموذج التطبيق. يتضمن اختبار التطبيق في بيئة مطوري البرامج الخطوات التالية:
- جارٍ فتح جهاز اختبار Android الافتراضي أو الفعلي.
- التأكّد من عمل تطبيق "مساعد Google"
- استخدام "استوديو Android" لنشر نموذج التطبيق وتشغيله على جهازك
يُرجى اتّباع الخطوات التالية لاختبار تطبيقك:
- في "استوديو Android"، اختَر تشغيل > شغِّل التطبيق أو انقر على تشغيل في شريط الأدوات.
- في حال استخدام جهاز افتراضي، في مربّع الحوار اختيار هدف النشر، اختَر جهازًا افتراضيًا وانقر على حسنًا. إصدار نظام التشغيل المقترَح هو Android 8 (المستوى 26 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، على الرغم من أنّ "الإجراءات" تعمل على الأجهزة في إصدار Android 5 (المستوى 21 لواجهة برمجة التطبيقات).
- بعد فتح التطبيق، اضغط مع الاستمرار على زر الشاشة الرئيسية لإعداد "مساعد Google" والتأكّد من أنّه يعمل. سجِّل الدخول إلى "مساعد Google" إذا لم يسبق لك ذلك.
- أعِد فتح التطبيق.
الشكل 2. نموذج تطبيق "إجراءات مناسبة" يعرض إحصاءات التمارين الرياضية
استكشف التطبيق بإيجاز لمعرفة ما يمكنه فعله. يؤدي النقر على رمز "تشغيل" إلى بدء موقّت التمرين، والنقر على الرمز X ثم إيقاف الموقّت. هذه هي المهام التي يجب تفعيلها للتحكم الصوتي باستخدام "مهامّ في التطبيقات".
تثبيت مكوّن "مساعد Google" الإضافي
يتيح لك مكوّن "مساعد Google" الإضافي اختبار خدمة "مهامّ في التطبيقات" على جهاز اختبار. يمكنك اتّباع الخطوات التالية لإضافته إلى "استوديو Android":
- انتقل إلى ملف > الإعدادات (استوديو Android > الإعدادات المفضّلة على نظام التشغيل MacOS).
- في قسم Plugins (المكوّنات الإضافية)، انتقِل إلى Marketplace وابحث عن "Google Assistant".
- ثبِّت الأداة وأعِد تشغيل "استوديو Android".
4. إضافة إمكانية بدء التمرين BII
تتيح actions.intent.START_EXERCISE
BII للمستخدمين فتح تطبيق وبدء تمرين باستخدام أصواتهم. في هذه الخطوة، يتم تنفيذ إمكانية لعملية BII هذه تتيح للمستخدمين أن يطلبوا من "مساعد Google" بدء تمرين جري في تطبيق Fitness.
تحديد الإمكانيات
يستخدم "مساعد Google" عناصر capability
المحدّدة في shortcuts.xml
لمعالجة الطلبات الصوتية باتّباع الخطوات التالية:
- يُطابق "مساعد Google" الطلب الصوتي الذي يُدخله المستخدم مع الطلبات الصوتية في قسم BII المحدّد في إمكانات التطبيق.
- يستخلص "مساعد Google" القيم من الطلب إلى مَعلمات BII. تتم إضافة كل مَعلمة إلى
Bundle
مرفقة بعنصرIntent
تم إنشاؤه. - يستخدم "مساعد Google"
Intent
لتشغيل التطبيق، ما يمنح التطبيق إمكانية الوصول إلى المعلمات المجمّعة.
تتوافق START_EXERCISE
BII مع المَعلمة exercise.name
BII. ستستخدم هذه المعلمة للسماح للمستخدمين بتحديد نوع التمرين الذي سيتم تتبعه في التطبيق.
أضِف START_EXERCISE
BII إلى تطبيقك من خلال إضافة capability
إلى shortcuts.xml
، المتوفّر في نموذج دليل المشروع في app/src/main/res/xml
:
<!-- shortcuts.xml -->
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
android:targetClass="com.devrel.android.fitactions.FitMainActivity">
<parameter
android:name="exercise.name"
android:key="exerciseType"/>
</intent>
</capability>
استبدِل PUT_YOUR_APPLICATION_ID_HERE
بـ applicationId
الفريد الذي حدّدته في الخطوة السابقة.
نموذج XML السابق:
- تعلن عن إمكانية استخدام
START_EXERCISE
BII. - تحدّد هذه السياسة رقم
intent
من نظام التشغيل Android الذي ينشئه "مساعد Google" لتشغيل التطبيق:- تحدّد السمتان
targetPackage
وtargetClass
نشاط الاستلام. - تربط السمة
parameter
المَعلمةexercise.name
BII بـexerciseType
في الإضافاتBundle
التي يتلقّاها النشاط.
- تحدّد السمتان
التعامل مع المَعلمات BII مع مستودع مضمّن
تمثّل مَعلمات BII العناصر المستخرَجة من طلب بحث أجراه مستخدم في "مساعد Google". على سبيل المثال، عندما يقول المستخدم: "Ok Google، أريد بدء عملية تشغيل على ExampleApp"، يستخرج "مساعد Google" كلمة "تشغيل". في المعلمة BII exercise.name
schema.org. بالنسبة إلى بعض معرّفات BII، يمكنك أن تطلب من "مساعد Google" مطابقة مَعلمات BII مع مجموعة من المعرّفات التي يتوقّعها تطبيقك.
يمكنك إجراء ذلك من خلال ربط عناصر المستودع المضمّن بالمَعلمة BII. المستودع المضمّن هو مجموعة من قيم مَعلمات BII المتاحة، مثل "run" و"hike" و"jog"، ورقم تعريف الاختصار المقابل لها، مثل EXERCISE_RUN
. من خلال ربط المستودع الإعلاني، يتم السماح لخدمة "مساعد Google" بتمرير رقم تعريف الاختصار للمعلَمات المطابِقة، بدلاً من قيمة طلب البحث الأولية، إلى نشاط التنفيذ.
وتتطلب بعض مَعلمات BII، مثل exercise.name
، مستودعًا مضمَّنًا لتعمل. لمعالجة هذه المَعلمة، أضِف عناصر shortcut
للمستودع التالي إلى shortcuts.xml
:
<!-- shortcuts.xml -->
<shortcuts>
<shortcut
android:shortcutId="running"
android:shortcutShortLabel="@string/activity_running">
<capability-binding android:key="actions.intent.START_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/runningSynonyms"/>
</capability-binding>
</shortcut>
<shortcut
android:shortcutId="walking"
android:shortcutShortLabel="@string/activity_walking">
<capability-binding android:key="actions.intent.START_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/walkingSynonyms"/>
</capability-binding>
</shortcut>
<shortcut
android:shortcutId="cycling"
android:shortcutShortLabel="@string/activity_cycling">
<capability-binding android:key="actions.intent.START_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/cyclingSynonyms"/>
</capability-binding>
</shortcut>
<capability> ... </capability>
</shortcuts>
في التعليمة البرمجية السابقة، حددت ثلاثة اختصارات تمثل مخزونًا مضمّنًا لأنواع التمارين المتوافقة مع التطبيق: الجري والمشي وركوب الدراجات. ويرتبط كل اختصار بالإمكانية بالطرق التالية:
- تشير السمة
android:key
لكل عنصرcapability-binding
إلىSTART_EXCERCISE
BII نفسه المحدّد للإمكانية. - العنصر
parameter-binding
لكل مفاتيح اختصار للمَعلمةexercise.name
BII
إضافة مرادفات المستودع المضمّن
تشير سمات android:value
للعنصر parameter-binding
في اختصارات المستودع السابقة إلى مورد صفيف من المرادفات لكل عنصر مستودع. تمكّن المرادفات أشكالاً مختلفة من نوع العنصر، مثل "run" و"jog" و"sprint" (دورة متكررة) للإشارة إلى shortcutId
نفسها. أضف إدخالات المرادفات التالية إلى مورد array.xml
الخاص بالمشروع:
<!-- array.xml -->
<array name="runningSynonyms">
<item>Run</item>
<item>Jog</item>
<item>Jogging</item>
<item>Sprint</item>
</array>
<array name="walkingSynonyms">
<item>Walk</item>
<item>Hike</item>
<item>Hiking</item>
</array>
<array name="cyclingSynonyms">
<item>Biking</item>
<item>Riding</item>
<item>Pedaling</item>
</array>
تحقيق أهداف Android الواردة
أغراض Android هي عناصر مراسلة يستخدمها Android لطلب إجراء من تطبيق آخر. ينفّذ "مساعد Google" متطلبات المستخدمين لطلبات البحث الصوتية من خلال إنشاء هدف من تفاصيل الإعدادات في الميزة التي تم تشغيلها. لتحقيق أغراض إمكانية START_EXERCISE
، عدِّل الفئة المستهدفة FitMainActivity
للتعامل مع معلَمة intent الواردة ومعلمات BII.
أولاً، استبدِل الدالة Intent.handleIntent
بالرمز التالي:
//FitMainActivity.kt
private fun Intent.handleIntent() {
when (action) {
// When the BII is matched, Intent.Action_VIEW will be used
Intent.ACTION_VIEW -> handleIntent(data)
// Otherwise start the app as you would normally do.
else -> showDefaultView()
}
}
أضِف بعد ذلك دالة handleIntent
جديدة إلى الصف باستخدام الرمز التالي:
//FitMainActivity.kt
/**
* Use extras provided by the intent to handle the different BIIs
*/
private fun handleIntent(data: Uri?) {
// path is normally used to indicate which view should be displayed
// i.e https://fit-actions.firebaseapp.com/start?exerciseType="Running" -> path = "start"
var actionHandled = true
val startExercise = intent?.extras?.getString(START_EXERCISE)
// Add stopExercise variable here
if (startExercise != null){
val type = FitActivity.Type.find(startExercise)
val arguments = Bundle().apply {
putSerializable(FitTrackingFragment.PARAM_TYPE, type)
}
updateView(FitTrackingFragment::class.java, arguments)
} // Add conditional for stopExercise
else{
// path is not supported or invalid, start normal flow.
showDefaultView()
// Unknown or invalid action
actionHandled = false
}
notifyActionSuccess(actionHandled)
}
في دالة Intent.handleIntent
السابقة، عند تشغيل ACTION_VIEW
، يتم تمرير بيانات "الهدف من إجراء التطبيق" إلى الدالة handleIntent
. ويمكن الوصول إلى مَعلمات BII المجمّعة في intent START_EXERCISE
من خلال intent?.extras?.getString(START_EXERCISE)
. وتعدِّل بقية الدالة FitTrackingFragment
لعرض نوع اللياقة البدنية startExercise
الذي تم اختياره.
اختبار إجراء تطبيقك
أثناء تطوير "مهامّ في التطبيقات"، يمكنك استخدام مكوّن "مساعد Google" الإضافي لمعاينة "المهام" على جهاز اختبار. يمكنك أيضًا استخدام المكوّن الإضافي لتعديل قيم مَعلمات الغرض من الإجراء من أجل اختبار طريقة تعامل تطبيقك مع الطرق المختلفة التي يمكن للمستخدم من خلالها صياغة طلب من "مساعد Google" لتطبيقك.
لاختبار إجراء التطبيق باستخدام المكون الإضافي، اتبع الخطوات التالية:
- تشغيل تطبيقك في "استوديو Android" من خلال اختيار تشغيل > تشغيل التطبيق أو من خلال النقر على رمز تشغيل في شريط الأدوات العلوي
- انتقِل إلى الأدوات > الإجراءات في التطبيق > مساعد Google > أداة اختبار "الإجراءات في التطبيق"
- انقر على إنشاء معاينة. راجِع سياسات خدمة "مهامّ في التطبيقات" وبنود الخدمة واقبلها إذا طُلِب منك ذلك.
- اختَر هدف
actions.intent.START_EXERCISE
المضمَّن. - في مربّع تمرين، اترك القيمة التلقائية تشغيل.
- انقر على تشغيل إجراء على التطبيق. تأكَّد من أنّ "مساعد Google" يتضمّن روابط لصفحات في التطبيق ضمن موقّت التمرين، وتأكَّد من أنّ الموقّت بدأ تمارين مناسبة للركض.
لقد نفّذت أوّل "مهامّ في التطبيقات" باستخدام START_EXERCISE
BII. تهانينا! بعد ذلك، سنتيح للمستخدمين إيقاف أي تمرين رياضي في تطبيقك.
5- إضافة إمكانية إيقاف التمرين BII
تتيح العلامة actions.intent.STOP_EXERCISE
BII للمستخدمين إيقاف جلسة تمرين رياضي من خلال توجيه طلبات مثل: "Ok Google، أريد إيقاف الجري على ExampleApp". يمكنك تنفيذ BII في تطبيق Fitness من خلال إضافة capability
ثانٍ إلى shortcuts.xml
:
<!-- shortcuts.xml -->
<capability android:name="actions.intent.STOP_EXERCISE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
android:targetClass="com.devrel.android.fitactions.FitMainActivity">
<!-- Eg. name = "Running" -->
<parameter
android:name="exercise.name"
android:key="stopExercise"/>
</intent>
</capability>
استبدِل PUT_YOUR_APPLICATION_ID_HERE
بـ applicationId
الفريد.
التعامل مع المَعلمات BII مع مستودع مضمّن
تتوافق استراتيجية BII هذه مع مَعلمة exercise.name
نفسها المتوفّرة في قسم START_EXERCISE
BII، ما يسمح للمستخدمين بتحديد التمرين النشط الذي يريدون إنهاءه. لتفعيل هذا الخيار، أضِف مجموعة ثانية من عناصر اختصارات المستودع إلى shortcuts.xml
:
<!-- shortcuts.xml -->
<shortcut
android:shortcutId="running"
android:shortcutShortLabel="@string/activity_running">
<capability-binding android:key="actions.intent.STOP_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/runningSynonyms"/>
</capability-binding>
</shortcut>
<shortcut
android:shortcutId="walking"
android:shortcutShortLabel="@string/activity_walking">
<capability-binding android:key="actions.intent.STOP_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/walkingSynonyms"/>
</capability-binding>
</shortcut>
<shortcut
android:shortcutId="cycling"
android:shortcutShortLabel="@string/activity_cycling">
<capability-binding android:key="actions.intent.STOP_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/cyclingSynonyms"/>
</capability-binding>
</shortcut>
تحقيق أهداف Android الواردة
يمكنك تفعيل التطبيق ليتعامل مع أهداف STOP_EXERCISE
الواردة من Android من خلال تعديل الفئة FitMainActivity
. أولاً، أضِف متغيّرًا إلى الدالة handleIntent
للاحتفاظ ببيانات الهدف STOP_EXERCISE
:
// FitMainActivity.kt
private fun handleIntent(data: Uri?) {
val stopExercise = intent?.extras?.getString(STOP_EXERCISE)
//...
}
بعد ذلك، عدِّل المنطق الشرطي لدالة handleIntent
للتعامل مع أغراض STOP_EXERCISE
:
// FitMainActivity.kt
private fun handleIntent(data: Uri?) {
//...
if (startExercise != null){
val type = FitActivity.Type.find(startExercise)
val arguments = Bundle().apply {
putSerializable(FitTrackingFragment.PARAM_TYPE, type)
}
updateView(FitTrackingFragment::class.java, arguments)
} // Add conditional for stopExercise
<strong>
} else if(stopExercise != null){
// Stop the tracking service if any and return to home screen.
stopService(Intent(this, FitTrackingService::class.java))
updateView(FitStatsFragment::class.java)
}
</strong>
//...
}
في الرمز السابق، عدّلت الدالة handleIntent
للتحقّق من STOP_EXERCISE
BII في intent الواردة في Android. وفي حال العثور عليها، توقِف الدالة الموقّت وتعيد المستخدم إلى الشاشة الرئيسية.
اختبار إجراء تطبيقك
يمكنك اختبار إجراء التطبيق باستخدام مكوّن "مساعد Google" الإضافي باتّباع الخطوات التالية:
- تشغيل تطبيقك في "استوديو Android" من خلال اختيار تشغيل > تشغيل التطبيق أو من خلال النقر على رمز تشغيل في شريط الأدوات العلوي
- ابدأ عملية "تشغيل" جديدة في التطبيق. التمرين.
- افتح المكوّن الإضافي في "استوديو Android" من خلال الانتقال إلى الأدوات >. الإجراءات في التطبيق > مساعد Google > أداة اختبار "الإجراءات في التطبيق"
- انقر على إنشاء معاينة.
- اختَر هدف
actions.intent.STOP_EXERCISE
المضمَّن. - في مربّع تمرين، اترك القيمة التلقائية تشغيل.
- انقر على تشغيل إجراء على التطبيق. يُرجى التأكّد من أنّ "مساعد Google" يوقف التمرين ويعيد توجيهك إلى الشاشة الرئيسية.
6- الخطوات التالية
تهانينا!
لقد تعرفت الآن على كيفية تفعيل الصوت في تطبيق Android باستخدام الأهداف المضمّنة في "مساعد Google". في هذا الدرس التطبيقي حول الترميز، تعلمتَ ما يلي:
- كيفية السماح للمستخدمين بالتعمّق في ميزات التطبيق المحدَّدة باستخدام "مساعد Google".
- كيفية استخدام مستودع الإعلانات المضمّنة
- كيفية اختبار معرّفات BII باستخدام مكوّن "مساعد Google" الإضافي
الخطوات التالية
من هنا، يمكنك محاولة إجراء مزيد من التحسينات على تطبيق اللياقة البدنية. للرجوع إلى المشروع النهائي، يُرجى الاطّلاع على الفرع الرئيسي على GitHub.
في ما يلي بعض الاقتراحات لمزيد من المعلومات حول توسيع نطاق هذا التطبيق باستخدام ميزة "مهامّ في التطبيقات":
- يمكنك الاطّلاع على الدروس التطبيقية الأخرى حول ترميز "مهامّ في التطبيقات".
- يمكنك الانتقال إلى مرجع الأهداف المضمّنة في "مهامّ في التطبيقات" للاطّلاع على المزيد من معرّفات BII لتوسيع نطاق وصول تطبيقاتك إلى "مساعد Google".
لمواصلة رحلتك في "المهام مع مساعد Google"، يُرجى الاطّلاع على المراجع التالية:
- developers.google.com/assistant: الموقع الإلكتروني الرسمي للمستندات المتعلقة بـ "المهام مع مساعد Google".
- نموذج فهرس "المهام في التطبيقات": نموذج تطبيقات ورموز لاستكشاف إمكانات "مهامّ في التطبيقات".
- مستودع "المهام مع مساعد Google" على GitHub: نموذج الرموز البرمجية والمكتبات.
- r/GoogleAssistantDev: منتدى Reddit الرسمي للمطوّرين الذين يستخدمون "مساعد Google"
يمكنك متابعتنا على Twitter @ActionsOnGoogle لمعرفة آخر الأخبار، كما يمكنك نشر تغريدة على #appactions لمشاركة ما أنجزته.
استطلاع لجمع الملاحظات
أخيرًا، يُرجى ملء هذا الاستطلاع لتقديم ملاحظاتك حول تجربتك في هذا الدرس التطبيقي حول الترميز.