يصف هذا الدليل المكونات التي تتكون من مهمة مستمرة في شكل ساعة إيقاف. تعرض المهمة الجارية بطاقة مباشرة في المخطط الزمني طالما أن المستخدم يشارك في مهمة وتسمح له بالدخول والخروج من البطاقة المباشرة أثناء حاجته إلى المعلومات.
بالإضافة إلى ذلك، ستتعلم أيضًا نصائح التصميم والتطوير والتوزيع المهمة لإنشاء Glassware الخاص بك.
قبل البدء
المصدر الكامل لساعة الإيقاف متاح على جيت هب. ننصحك باستيراده إلى "استوديو Android" قبل البدء، لأنّ هذا الدليل يشير إليه بشدة.
- من شاشة البدء السريع، انقر على الدفع من الإصدار Control > Git.
- انسخ عنوان URL للنسخة من ساعة الإيقاف.
- ألصِق عنوان URL للنسخة المستنسخة في عنوان URL لمستودع Vcs وانقر على استنساخ.
- انقر على نعم في الشاشة التالية.
- انقر على حسنًا في الشاشة التالية.
- أنشئ المشروع وشغِّله على جهاز Glass المتصل بالنقر على الزر تشغيل. احرص على الاطّلاع على
README
للنموذج للحصول على تفاصيل الاستدعاء.
ما ستتعرَّف عليه
وستتعرف على كيفية استخدام المكونات من حزمة SDK لنظام التشغيل Android لإنشاء الجزء الأكبر من المهمة الجارية في ساعة الإيقاف، ثم حزمة GDK لجذب تجربة Glass. وفي ما يلي قائمة بالموضوعات التي ستتعرَّف عليها:
- إنشاء طريقة عرض مخصّصة للرسم على البطاقة المباشرة
- إنشاء خدمة لإدارة البطاقة المباشرة
- توفير قائمة تتيح للمستخدمين إزالة البطاقة المنشورة من المخطط الزمني
- إعلان عبارة تشغيل صوت لبدء ساعة الإيقاف من قائمة الصوت الرئيسية
التصميم
قبل أن تبدأ في التطوير، خصص بعض الوقت وصمم Glassware. يمنحك القيام بذلك فكرة جيدة عما يعمل بشكل أفضل في واجهة المستخدم على Glass، وما الأمر الصوتي الذي ستستخدمه، وكيف ستبدو بطاقاتك.
بالطبع، يعد تصميم Glassware عملية تكرارية وتتغير بعض الأشياء التي تصممها الآن، ولكن إنجاز جزء كبير من هذا العمل في البداية أمر بالغ الأهمية لبناء تجربة رائعة.
مسار واجهة المستخدم
يعد تصميم تدفق واجهة المستخدم تمرينًا بسيطًا ويتيح لك تصور Glassware قبل كتابة سطر من التعليمات البرمجية. نحن نفعل ذلك طوال الوقت في Glassware التي ننشئها!
لنستعرض العناصر الرئيسية لواجهة المستخدم في ساعة الإيقاف، حتى تتعرف على كيفية عمل واجهة المستخدم ومدى فائدة هذه العملية عند إنشاء Glassware.
واجهة المستخدم الرئيسية
تحتوي ساعة الإيقاف على تدفق رئيسي واحد فقط، لأنها تجربة بسيطة إلى حد ما.
عندما يستدعي المستخدمون Glassware، سيتم عرض إعلان بيني للعد التنازلي مدته 3 ثوانٍ قبل بدء ساعة الإيقاف الفعلية. بعد ذلك، يتم احتساب ساعة الإيقاف حتى يزيلها المستخدم من المخطط الزمني التي تتضمن عنصرًا في القائمة إيقاف.
بطلب صوتي
ينبغي أن تكتشف أمرًا صوتيًا في وقت مبكر إلى حد ما من عملية التصميم. تتيح الأوامر الصوتية للمستخدمين بدء تشغيل Glassware من القائمة الصوتية لـ Glass Home (بطاقة الساعة)، إذا لزم الأمر، وهي جزء رئيسي من كيفية تصميم Glassware.
على سبيل المثال، يعمل الأمر نشر تحديث بشكل جيد في نموذج التشغيل والنسيان، حيث يتحدث المستخدمون عن النص وتعالجه Glassware دون أي تدخل إضافي من المستخدم. يتيح ذلك للمستخدمين العودة إلى ما يفعلونه بسرعة.
من ناحية أخرى، بالنسبة إلى أمر مثل تشغيل لعبة، ستحتاج عادةً إلى توجيه المستخدمين إلى شاشة بداية حتى يتمكنوا من توجيههم أولاً. ولأن هذا الأمر الصوتي على الأرجح يبدأ في تشغيل اللعبة بشكل غامر، يمكنك توقع أن يكون المستخدمون على ما يرام في رؤية شاشات وقوائم إضافية لبدء اللعبة. يُعد إعطاء المستخدمين فورًا تجربة لعب بعد الأمر الصوتي مباشرةً تجربة سيئة للألعاب.
تستخدم ساعة الإيقاف الطلب الصوتي بدء ساعة إيقاف. بعد أن يستدعي المستخدمون الأمر الصوتي، تبدأ ساعة الإيقاف على الفور بعد ظهور شاشة عد تنازلي بينية قصيرة، وهي أفضل من توفير عنصر قائمة للبدء. بالنسبة للمهام الجارية، سترغب بشكل عام في التركيز على توصيل المستخدمين إلى التجربة بأسرع وقت ممكن، عندما يكون ذلك منطقيًا.
تنسيقات البطاقات
سواء أردت إنشاء عروض غامرة أو بطاقات مباشرة، عليك استخدام
CardBuilder
أو تنسيقات XML متى أمكن.
في كثير من الأحيان، ستحتاج إلى إنشاء تنسيقك الخاص، لذا اتبع إرشادات واجهة المستخدم للحصول على أفضل شكل لـ Glassware.
تتبع ساعة الإيقاف إرشادات التخطيط العامة، ولكنها تحتوي على تخطيطات مخصصة لواجهة المستخدم باستخدام مكونات Android القياسية مثل طرق العرض والتخطيطات.
التطوير
لتطوير بطاقات مباشرة، يمكنك استخدام الأدوات نفسها التي تستخدمها في تطوير Android لإنشاء الجزء الأكبر من Glassware، ثم تستخدم واجهات برمجة التطبيقات في إضافة GDK للوصول إلى الوظائف الخاصة بـ Glass، مثل البطاقات المباشرة والأوامر الصوتية.
ستستخدم بشكل متكرر مكونات Android الشائعة لإنشاء Glassware، ولكن ضع في اعتبارك أن بعض المفاهيم تختلف في بعض الأحيان. على سبيل المثال، يمكنك عرض بطاقات مباشرة وإدارتها باستخدام إحدى خدمات Android، وهي ليست الطريقة المعتادة لاستخدام الخدمات في تطبيقات Android التقليدية. مثال آخر هو أن البطاقات المباشرة لا تمتلك سياق واجهة المستخدم الخاص بها، لذلك عليك استخدام نشاط واجهة مستخدم يعرض قائمة للبطاقة المباشرة. ستتعلم كيف يتم إنشاء هذه المكونات لاحقًا في هذا الدليل.
تتناول بقية أقسام التطوير كيفية هيكلة ساعة الإيقاف والمكونات الرئيسية للمشروع التي قمت باستيرادها سابقًا. من المفيد تثبيت "استوديو Android" الآن لتتمكن من المتابعة. يتم التعليق على رمز المصدر نفسه، لذا يتطرق هذا القسم إلى الغرض الأساسي من كل ملف ونصائح مفيدة يمكنك تطبيقها على Glassware.
بطلب صوتي
يمكنك إنشاء أوامر صوتية باستخدام ملف مورد XML يحدد الأمر الذي تستخدمه، ثم تحديد مورد XML في ملف AndroidManifest.xml
.
الملفات التالية مرتبطة بالأمر الصوتي في ساعة الإيقاف:
res/xml/voice_trigger_start.xml
: تعريف الطلب الصوتي المطلوب استخدامهAndroidManifest.xml
- للإعلان عن خدمة البطاقة المباشرة للبدء عند قول الأمر الصوتي.
عرض العد التنازلي
تعرض ساعة الإيقاف عدًّا تنازليًا قبل تسجيل الوقت فعليًا لإعلام المستخدمين بأنّ الوقت على وشك انقضاء المهلة.
ترتبط الملفات التالية بعرض العدّ التنازلي:
res/layout/card_countdown.xml
- تحديد تنسيق عارض العد التنازليsrc/com/google/android/glass/sample/stopwatch/CountDownView.java
- لتحديد طريقة عرض العد التنازلي.
عرض كرونومتر
هذا هو العرض الرئيسي لساعة الإيقاف. ويعرض الوقت المنقضي منذ اكتمال العد التنازلي البيني. الملفات التالية مرتبطة بعرض الكرونومتر:
res/layout/card_chronometer.xml
- لتحديد تنسيق عرض ساعة الإيقافsrc/com/google/android/glass/sample/stopwatch/ChronometerDrawer.java
: لتحديد كيفية عرض العرض. تطلب خدمة البطاقات المباشرة هذه الفئة للرسم إلى خدمة البطاقات المباشرة.src/com/google/android/glass/sample/stopwatch/ChronometerView.java
- طريقة عرض ساعة الإيقاف التي تستخدم التنسيق السابق كواجهة مستخدم.
خدمة ساعة الإيقاف
هذه هي الخدمة التي تدير دورة حياة البطاقة المباشرة وعرضها. الملفات التالية مرتبطة بهذه الخدمة:
src/com/google/android/glass/sample/stopwatch/StopwatchService.java
- إدارة البطاقة المباشرة لساعة الإيقاف ومعالجة دورة حياة الخدمة.
نشاط القائمة
لا تحتوي البطاقات المباشرة على سياق واجهة مستخدم خاص بها لعرض قائمة فيها لأنها تعرض واجهات المستخدم الخاصة بها في سياق المخطط الزمني.
للتغلب على هذا القيد، يمكنك إنشاء نشاط شبه شفاف يظهر أعلى المخطط الزمني ثم عرض قائمة هذا النشاط مباشرة بعد نقر المستخدمين على البطاقة المباشرة.
src/com/google/android/glass/sample/stopwatch/MenuActivity.java
: يفصح عن نشاط القائمة شبه الشفاف الذي يعرض القائمة فورًا عندما يكون النشاط مرئيًا.res/values/styles.xml
: لتحديد النمط شبه الشفاف الذي يتم تطبيقه على القائمة.res/menu/stopwatch.xml
: مورد القائمة الذي يحتوي على عنصر القائمة الإلزامي Stop
بيان Android
يصف ملف AndroidManifest.xml
المكونات الرئيسية لـ Glassware
حتى يعرف النظام كيفية تشغيلها. يعلن بيان
تشارادز عن الأشياء التالية:
- رمز Glassware واسمه. ويعرض Glass هذه المعلومات في قائمة اللمس الرئيسية في حال استجابة أكثر من Glassware واحد للأمر الصوتي نفسه.
- جميع الخدمات والأنشطة المرتبطة بساعة الإيقاف. وهذا أمر ضروري حتى يعرف النظام كيفية بدء تشغيل مكونات Glassware.
- الأمر الصوتي وفلتر الأهداف الذي يبدأ من خدمة البطاقة المباشرة عند قول الأمر الصوتي.
- رمز إصدار Glassware. يجب تحديث هذا الرمز (وعادةً ما يكون اسم الإصدار كذلك) في كل مرة يتم فيها تحميل إصدار جديد من حزمة APK هذه إلى MyGlass.