অ্যান্ড্রয়েডের জন্য গুগল হোম এপিআই ডেভেলপারদের ব্যবহারকারীর বাড়ির বিভিন্ন সত্তার অবস্থার সাথে ইন্টারঅ্যাক্ট করার জন্য একটি সমন্বিত এপিআই প্ল্যাটফর্ম প্রদান করে। এই সত্তাগুলো ব্যবহারকারীর কাঠামো এবং কক্ষগুলোর সাথে সম্পর্কিত ডিভাইস এবং ডিভাইস-বহির্ভূত তথ্য বর্ণনা করতে পারে।
হোম এপিআইগুলো নিম্নলিখিত সত্তাগুলোকে সংজ্ঞায়িত করে, যেগুলোর সাথে একজন ব্যবহারকারী ইন্টারঅ্যাক্ট করতে পারে:
- কাঠামোগুলো একটি বাড়ির প্রতিনিধিত্ব করে, যার মধ্যে বিভিন্ন কক্ষ ও সরঞ্জাম রয়েছে।
- কক্ষগুলো একটি কাঠামোর অংশ এবং এতে বিভিন্ন সরঞ্জাম থাকে।
- ডিভাইসগুলো বৈশিষ্ট্য সম্বলিত চারিত্রিক বৈশিষ্ট্য বাস্তবায়ন করে, প্রকারের সাথে সঙ্গতিপূর্ণ হয়, ইভেন্ট নির্গত করে এবং কমান্ডে সাড়া দেয়।
- অটোমেশন একটি কাঠামোর অংশ এবং এটি বাড়ির বিভিন্ন কাজ স্বয়ংক্রিয় করতে হোম মেটাডেটা ও ডিভাইস ব্যবহার করে।
চিত্র ১-এ এই স্থাপত্যটি দেখানো হয়েছে:
হোম এপিআই ডিভাইস টাইপগুলো স্মার্ট হোমের জন্য একটি ওপেন স্ট্যান্ডার্ড ‘ Matter দ্বারা সমর্থিত হতে পারে, অথবা গুগল হোম ইকোসিস্টেমের একটি Cloud-to-cloud ডিভাইস হতে পারে। কিছু ডিভাইস টাইপে উভয়ের কার্যকারিতাই অন্তর্ভুক্ত থাকতে পারে। আরও তথ্যের জন্য অ্যান্ড্রয়েডে সমর্থিত ডিভাইস টাইপগুলো দেখুন।
Matter এ, ডিভাইসের কার্যকারিতাকে ক্লাস্টারে ভাগ করা হয়, যা হোম এপিআই-তে Matter স্ট্যান্ডার্ড ট্রেইট হিসেবে উপস্থাপিত হয়। হোম এপিআই বর্তমান Matter স্পেসিফিকেশনে সংজ্ঞায়িত Matter ক্লাস্টারের স্ট্যান্ডার্ড সেটকে সমর্থন করে।
গুগল হোম ইকোসিস্টেমে, ডিভাইসের কার্যকারিতাকে স্মার্ট হোম বৈশিষ্ট্য অনুসারে শ্রেণীবদ্ধ করা হয়, যা হোম এপিআই-তে গুগল স্মার্ট হোম বৈশিষ্ট্য হিসাবে উপস্থাপিত হয়। হোম এপিআই Cloud-to-cloud প্রোগ্রামে সংজ্ঞায়িত স্মার্ট হোম বৈশিষ্ট্যগুলির সেটকে সমর্থন করে।
অন্যান্য বৈশিষ্ট্য, যেমন প্রস্তুতকারক-নির্দিষ্ট ক্লাস্টার এবং প্ল্যাটফর্ম বৈশিষ্ট্যও উপলব্ধ আছে। আরও জানতে, অ্যান্ড্রয়েডের ডেটা মডেল দেখুন।
বাস্তুতন্ত্র
গুগল হোম ইকোসিস্টেম স্মার্ট হোম অভিজ্ঞতা তৈরি, পরিচালনা, সুরক্ষিতকরণ এবং সমন্বিত করার জন্য একটি সুসংহত ভিত্তি প্রদান করে। চিত্র ২-এ দেখানো হয়েছে এর উপাদানগুলো কীভাবে একসঙ্গে কাজ করে।
এই ইকোসিস্টেমের অন্তর্ভুক্ত রয়েছে গুগল অটোমেশন ইঞ্জিন, যা অটোমেশনগুলো সংরক্ষণ ও পরিচালনা করে এবং এর মাধ্যমে বাড়ির বিভিন্ন কাজ ও ডিভাইসের সেটিংস স্বয়ংক্রিয় করা যায়।
হোম এপিআইগুলো কাঠামোর মধ্যে থাকা ডিভাইসগুলোতে অ্যাক্সেস দেওয়ার জন্য OAuth 2.0 ব্যবহার করে। OAuth একজন ব্যবহারকারীকে তার লগইন তথ্য প্রকাশ না করেই কোনো অ্যাপ বা পরিষেবাতে অনুমতি দেওয়ার সুযোগ দেয়।
Google Home Developer Console একটি হোম এপিআই (Home APIs) প্রোজেক্টের ব্র্যান্ড যাচাইকরণ থেকে শুরু করে উন্নয়ন, পরীক্ষা, প্রত্যয়ন এবং চূড়ান্তভাবে চালু করা পর্যন্ত সমস্ত পর্যায় পরিচালনা করতে ব্যবহৃত হয়। এটি গুগল হোম ইকোসিস্টেমের মাধ্যমে শক্তিশালী টুলস এবং ডিস্ট্রিবিউশন সরবরাহ করার পাশাপাশি উন্নয়ন প্রক্রিয়াকে সুবিন্যস্ত করে।
ভাষা
অ্যান্ড্রয়েডের হোম এপিআইগুলো কোটলিনে লেখা এবং এটি একটি প্রচলিত কোটলিন ইন্টারফেস প্রদান করে যা স্টেট ও সাবস্ক্রিপশন পরিচালনার জন্য ফ্লো (Flow) ব্যবহার করে। এটি একটি সাধারণ সাবস্ক্রিপশন এপিআইয়ের তুলনায় বেশ কিছু সুবিধা প্রদান করে।
আপনি যদি ইতিমধ্যেই পরিচিত না হয়ে থাকেন, তবে আমরা আপনাকে কোরাউটিন, ফ্লো এবং জেটপ্যাক কম্পোজ সম্পর্কিত কোটলিন ডকুমেন্টেশনের সাথে পরিচিত হওয়ার পরামর্শ দিচ্ছি।
- কোটলিন দিয়ে অ্যান্ড্রয়েড অ্যাপ তৈরি করুন
- অ্যান্ড্রয়েডের জন্য কোটলিন শিখুন
- অ্যান্ড্রয়েডে কোটলিন কোরাউটিন । এই নির্দিষ্ট কোডল্যাবগুলো সহায়ক হতে পারে:
- অ্যান্ড্রয়েডে কোটলিন ফ্লো এবং আরও নির্দিষ্টভাবে বললে, স্টেটফ্লো ।
- State এবং Jetpack Compose , বিশেষ করে
collectAsStateWithLifecycle()ফাংশনটি। যে UI-টি সেই স্টেটটি দেখাচ্ছে, সেটি ফোরগ্রাউন্ডে আছে কি না, তার উপর ভিত্তি করে এই ফাংশনটি ফ্লো-গুলো থেকে সাবস্ক্রাইব এবং আনসাবস্ক্রাইব করা স্বয়ংক্রিয়ভাবে পরিচালনা করে। - আপনি যদি অটোমেশন এপিআই (Automation API) নিয়ে কাজ করেন, তাহলে অটোমেশন ডিএসএল (Automation DSL) কীভাবে কাজ করে তা বোঝার জন্য কোটলিন টাইপ-সেফ বিল্ডার (Kotlin type-safe builders) সম্পর্কে পড়াটা সহায়ক হবে।
সত্তা শনাক্তকারী
হোম এপিআই-এর প্রতিটি এনটিটির একটি আইডি থাকে, যা তার প্রাথমিক শনাক্তকারী হিসেবে কাজ করে। এই আইডিটি একটি অনন্য ও স্থিতিশীল শনাক্তকারী, যা এনটিটিটির জীবদ্দশায় কখনও পরিবর্তিত হবে না। যেহেতু একটি এনটিটির মেটাডেটা পরিবর্তিত হতে পারে, তাই এই আইডিটি অবজেক্ট ক্যাশ করতে বা সমতা যাচাই করতে ব্যবহার করা যেতে পারে।
কোন কোন এনটিটির আইডি আছে তা জানতে HasId ইন্টারফেসটি দেখুন।
পরিভাষা ম্যাপিং
হোম এপিআই-এর এনটিটিগুলো Matter এবং Cloud-to-cloud কনসেপ্টের সাথে নিম্নোক্তভাবে ম্যাপ করা হয়:
| হোম এপিআই | Matter | Cloud-to-cloud |
|---|---|---|
| বৈশিষ্ট্য | ক্লাস্টার | বৈশিষ্ট্য |
| বৈশিষ্ট্য | বৈশিষ্ট্য | বৈশিষ্ট্য, অবস্থা |
| আদেশ | আদেশ | আদেশ |
| অনুষ্ঠান | অনুষ্ঠান | পরবর্তী প্রতিক্রিয়া, বিজ্ঞপ্তি |