توفّر واجهات برمجة التطبيقات لمنزل Google على Android واجهة برمجة تطبيقات موحّدة تتيح للمطوّرين التفاعل مع حالة الكيانات في منزل المستخدم. يمكن أن تصف هذه الكيانات الأجهزة والمعلومات غير المرتبطة بالأجهزة المرتبطة ببنية المستخدم وغرفه.
تحدّد واجهات برمجة التطبيقات لمنزل Google الكيانات التالية التي يمكن للمستخدم التفاعل معها:
- تمثّل البِنى منزلاً يحتوي على غرف وأجهزة.
- الغرف هي جزء من البنية وتحتوي على أجهزة.
- تنفّذ الأجهزة السمات التي تحتوي على الخصائص، وتتوافق مع الأنواع، وتُصدر الأحداث، وتستجيب للأوامر.
- عمليات التشغيل الآلي هي جزء من البنية وتستخدم بيانات المنزل الوصفية والأجهزة لأتمتة المهام في المنزل.
يوضّح الشكل 1 هذه البنية:
قد تكون أنواع أجهزة واجهة برمجة التطبيقات لمنزل Google مدعومة من Matter، وهو معيار مفتوح لـ المنزل المزوّد بأجهزة ذكية، أو قد تكون جهازًا من نوع Cloud-to-cloud في المنظومة المتكاملة لمنزل Google. قد تتضمّن بعض أنواع الأجهزة وظائف من كلا النوعَين. لمزيد من المعلومات، يُرجى الاطّلاع على أنواع الأجهزة المتوافقة على Android.
في Matter، يتم تجميع وظائف الجهاز حسب المجموعات، والتي يتم تمثيلها في واجهات برمجة التطبيقات لمنزل Google على أنّها Matter سمات قياسية. تتوافق واجهات برمجة التطبيقات لمنزل Google مع المجموعة القياسية من Matter مجموعات كما هو محدّد في مواصفات Matter الحالية.
في Google Home، يتم تجميع وظائف الجهاز حسب سمات المنزل المزوّد بأجهزة ذكية، والتي يتم تمثيلها في واجهات برمجة التطبيقات لمنزل Google على أنّها سمات Google للمنزل المزوّد بأجهزة ذكية. تتوافق واجهات برمجة التطبيقات لمنزل Google مع مجموعة سمات المنزل المزوّد بأجهزة ذكية كما هو محدّد في الـ Cloud-to-cloud برنامج.
تتوفّر أيضًا سمات أخرى، مثل مجموعات خاصة بالمصنّع وسمات النظام الأساسي. لمزيد من المعلومات، يُرجى الاطّلاع على نموذج البيانات على Android.
المنظومة المتكاملة
توفر منظومة Google Home المتكاملة أساسًا مبسطًا لإنشاء تجارب المنزل المزوّد بأجهزة ذكية وإدارتها وتأمينها ودمجها. يوضّح الشكل 2 كيفية عمل المكوّنات معًا.
تستخدم واجهات برمجة التطبيقات لمنزل Google بروتوكول OAuth 2.0 لمنح إذن الوصول إلى الأجهزة في البنية. يسمح بروتوكول OAuth للمستخدم بمنح الإذن لتطبيق أو خدمة بدون الحاجة إلى الكشف عن بيانات تسجيل الدخول.
يتم استخدام Google Home Developer Console لإدارة جميع مراحل مشروع واجهات برمجة التطبيقات لمنزل Google ، بدءًا من التحقّق من العلامة التجارية، وصولاً إلى التطوير والاختبار والحصول على الشهادة ثم الإطلاق في النهاية. ويعمل على تبسيط عملية التطوير مع توفير أدوات قوية والتوزيع من خلال منظومة Google Home المتكاملة.
اللغة
تمت كتابة واجهات برمجة التطبيقات لمنزل Google على Android بلغة Kotlin وتوفّر واجهة Kotlin اصطلاحية تستخدم Flow لإدارة الحالة والاشتراك. يوفّر ذلك عددًا من المزايا مقارنةً بواجهة برمجة تطبيقات الاشتراك العادية.
ننصحك بالتعرّف على مستندات Kotlin حول الكوروتينات وFlow وJetpack Compose، إذا لم تكن على دراية بها:
- تطوير تطبيقات Android باستخدام Kotlin
- التعرّف على Kotlin لأجهزة Android
- الكوروتينات في Kotlin على Android. قد تكون الدروس التطبيقية حول الترميز التالية مفيدة:
- Kotlin flows على Android، وتحديدًا StateFlow.
- الحالة وJetpack Compose، وتحديدًا الدالة
collectAsStateWithLifecycle()تُدير هذه الدالة تلقائيًا عملية الاشتراك في التدفقات وإلغاء الاشتراك فيها استنادًا إلى ما إذا كانت واجهة المستخدم التي تعرض هذه الحالة في المقدّمة أم لا. - إذا كنت تستخدم Automation API، من المفيد قراءة مقالة حول أدوات الإنشاء الآمنة من حيث النوع في Kotlin لفهم كيفية عمل لغة DSL في Automation API.
معرّفات الكيانات
لكل كيان في واجهات برمجة التطبيقات لمنزل Google معرّف يمثّل المعرّف الأساسي له. هذا المعرّف هو معرّف فريد وثابت لن يتغيّر أبدًا طوال فترة بقاء الكيان. يمكن استخدام هذا المعرّف لتخزين الكائنات مؤقتًا أو التحقّق من المساواة لأنّ البيانات الوصفية للكيان يمكن أن تتغيّر.
يُرجى الاطّلاع على واجهة HasId لمعرفة
الكيانات التي لها معرّف.
ربط المصطلحات
ترتبط الكيانات في واجهات برمجة التطبيقات لمنزل Google بمفاهيم Matter و Cloud-to-cloud على النحو التالي:
| Home APIs | Matter | Cloud-to-cloud |
|---|---|---|
| السمة | المجموعة | السمة |
| السمة | السمة | السمة، الحالة |
| الأمر | الأمر | الأمر |
| الحدث | الحدث | الردّ المتابَع، الإشعار |