স্বতন্ত্র বনাম নন-স্ট্যান্ডেলোন Wear OS অ্যাপ

আমরা সুপারিশ করি যে Wear OS অ্যাপগুলো যেন ফোন থেকে স্বাধীনভাবে কাজ করে, যাতে ব্যবহারকারীরা অ্যান্ড্রয়েড বা আইওএস ফোনের সাহায্য ছাড়াই ঘড়িতে তাদের কাজ সম্পন্ন করতে পারেন। যদি আপনার ঘড়ির অ্যাপটির জন্য ফোনের প্রয়োজন হয়, তবে আপনাকে অবশ্যই আপনার Wear OS অ্যাপটিকে নন-স্ট্যান্ডঅ্যালোন হিসেবে চিহ্নিত করতে হবে এবং ব্যবহারকারীর কাছে ফোন অ্যাপটি উপলব্ধ আছে তা নিশ্চিত করার জন্য পদক্ষেপ নিতে হবে।

আপনার অ্যাপের পরিকল্পনা করুন

আপনি অ্যান্ড্রয়েড অ্যাপ বান্ডেল ব্যবহার করে একই অ্যাপ্লিকেশন তালিকার অধীনে প্রতিটি ব্যবহারকারীর ডিভাইস কনফিগারেশনের জন্য স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করা অ্যান্ড্রয়েড প্যাকেজ কিট (APK) তৈরি করতে পারেন। এর ফলে ব্যবহারকারীরা আপনার অ্যাপটি চালানোর জন্য শুধুমাত্র প্রয়োজনীয় কোড এবং রিসোর্স ডাউনলোড করতে পারেন।

গুগল প্লে স্টোরের মাধ্যমে বিতরণের জন্য আপনার অ্যাপ সেট আপ করার তথ্যের জন্য, “Ware OS অ্যাপ প্যাকেজ ও বিতরণ করুন” এবং “অ্যান্ড্রয়েড অ্যাপ বান্ডেল দিয়ে শুরু করার নির্দেশিকা” দেখুন।

নতুন অ্যাপের জন্য, টার্গেট এপিআই লেভেল অবশ্যই ৩৪ বা তার বেশি হতে হবে। আরও তথ্যের জন্য, ‘Meet Google Play's target API level requirements’ দেখুন। সর্বশেষ উপলব্ধ এপিআই লেভেলকে টার্গেট করলে তা নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপটি বর্তমান প্ল্যাটফর্ম সংস্করণগুলিতে ভালোভাবে কাজ করবে।

নেটওয়ার্ক অনুরোধ এবং উচ্চ-ব্যান্ডউইথ নেটওয়ার্ক অ্যাক্সেস সম্পর্কে তথ্যের জন্য, Wear OS-এ নেটওয়ার্ক অ্যাক্সেস এবং সিঙ্ক দেখুন।

একটি অ্যাপকে Wear OS অ্যাপ হিসেবে সংজ্ঞায়িত করুন

আপনাকে অবশ্যই আপনার অ্যাপের অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে <uses-feature> ট্যাগটি সংজ্ঞায়িত করতে হবে। এটি একটি ওয়াচ অ্যাপ তা বোঝাতে, নিম্নলিখিতের মতো একটি এন্ট্রি যোগ করুন:

<uses-feature android:name="android.hardware.type.watch" />

একটি অ্যাপকে স্বতন্ত্র বা অ-স্বতন্ত্র হিসেবে চিহ্নিত করুন

একটি ওয়াচ অ্যাপকে হয় স্বতন্ত্র (standalone) অথবা অ-স্বতন্ত্র (non-standalone) হিসেবে বিবেচনা করা হয়:

  • স্বতন্ত্র : একটি সম্পূর্ণ স্বাধীন অ্যাপ যার মূল বৈশিষ্ট্যগুলোর জন্য কোনো ফোন অ্যাপের প্রয়োজন হয় না। যদিও "ফোনে খুলুন" প্রম্পট গ্রহণযোগ্য, অ্যাপটিকে অবশ্যই ব্যবহারকারীদের জন্য কোনো সংযুক্ত ফোনের উপর নির্ভর না করে অ্যাপের কোনো ফাংশন সম্পন্ন করার বিকল্প উপায়—যেমন একটি শর্টলিঙ্ক বা কিউআর কোড—প্রদান করতে হবে।
  • নন-স্ট্যান্ডঅ্যালোন : একটি নির্ভরশীল অ্যাপ যার মূল বৈশিষ্ট্যগুলির জন্য ফোন বা অন্য ডিভাইসের একটি অ্যাপের প্রয়োজন হয়। এই বিকল্পটি সেইসব অ্যাপের জন্য সবচেয়ে ভালো, যেগুলো প্রমাণীকরণের মতো কোনো মূল কাজ সম্পন্ন করার জন্য সহজে কোনো বিকল্প উপায়—যেমন কিউআর কোড বা শর্টলিঙ্ক—প্রদান করতে পারে না।

দ্রষ্টব্য: স্বতন্ত্র নয় এমন অ্যাপের ক্ষেত্রেও, ব্যবহারকারীরা মোবাইল অ্যাপের আগে Wear OS অ্যাপ ইনস্টল করতে পারেন। তাই আপনার Wear OS অ্যাপ যদি শনাক্ত করে যে কাছাকাছি থাকা কোনো হ্যান্ডহেল্ড ডিভাইসে প্রয়োজনীয় কম্প্যানিয়ন অ্যাপটি নেই, তবে ব্যবহারকারীকে কম্প্যানিয়ন অ্যাপটি ইনস্টল করার জন্য অনুরোধ করুন।

অ্যাপ পরিবেশনের সময় গুগল একটি অ্যাপের ‘স্ট্যান্ডঅ্যালোন’ স্ট্যাটাসের সঠিকতা যাচাই করে। এই মানটি হ্যান্ডহেল্ড ডিভাইসের সাথে পেয়ার করা নেই এমন Wear OS ডিভাইসের মতো সংযোগবিহীন ডিভাইসগুলিতে প্লে স্টোরে অ্যাপের দৃশ্যমানতাকে প্রভাবিত করে। নন-স্ট্যান্ডঅ্যালোন অ্যাপ—এবং সেইসাথে যে অ্যাপগুলিকে ডেভেলপাররা ভুলবশত "স্ট্যান্ডঅ্যালোন" হিসেবে চিহ্নিত করেন—সেগুলি এই সংযোগবিহীন ডিভাইসগুলিতে ব্যবহারকারীদের জন্য উপলব্ধ থাকে না।

আপনার Wear OS অ্যাপটি স্ট্যান্ডঅ্যালোন নাকি নন-স্ট্যান্ডঅ্যালোন, তা নির্ধারণ করতে অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে com.google.android.wearable.standalone meta-data এলিমেন্টের মান সেট করুন।

আপনার ওয়াচ অ্যাপটি যদি একটি সম্পূর্ণ স্বাধীন ও স্বতন্ত্র অ্যাপ হয়, তাহলে com.google.android.wearable.standalone এর মান true সেট করে গুগল প্লে স্টোরকে তা জানিয়ে দিন।

<meta-data
    android:name="com.google.android.wearable.standalone"
    android:value="true" />

যদি আপনার ওয়াচ অ্যাপটি স্বতন্ত্র না হয় এবং মূল বৈশিষ্ট্যগুলির জন্য অন্য কোনো অ্যাপের উপর নির্ভরশীল হয়, তাহলে com.google.android.wearable.standalone এর মান false সেট করুন। এর অর্থ হলো, ওয়াচ অ্যাপটির জন্য অন্য একটি ডিভাইস প্রয়োজন, কিন্তু এটি গুগল প্লে স্টোরে আপনার অ্যাপের প্রচারে কোনো প্রভাব ফেলে না।

দ্রষ্টব্য: com.google.android.wearable.standalone এর মান false হলেও, ফোন অ্যাপ ইনস্টল করার আগে ওয়াচ অ্যাপ ইনস্টল করা যেতে পারে। অতএব, যদি আপনার ওয়াচ অ্যাপ শনাক্ত করে যে কোনো সহযোগী ফোনে এই পৃষ্ঠায় বর্ণিত প্রয়োজনীয় ফোন অ্যাপটি নেই, তবে ব্যবহারকারীকে ফোন অ্যাপটি ইনস্টল করার জন্য অনুরোধ করুন।

শেয়ার করা কোড এবং ডেটা স্টোরেজ

একটি Wear OS অ্যাপ এবং একটি ফোন অ্যাপের মধ্যে কোড শেয়ার করা যেতে পারে। উদাহরণস্বরূপ, নেটওয়ার্কিংয়ের জন্য ব্যবহৃত সাধারণ কোড একটি শেয়ার্ড লাইব্রেরিতে রাখা যেতে পারে।

ঐচ্ছিকভাবে, কোনো নির্দিষ্ট ফর্ম ফ্যাক্টরের জন্য তৈরি কোড একটি আলাদা মডিউলে রাখা যেতে পারে।

আপনি ফোনের মতোই স্ট্যান্ডার্ড অ্যান্ড্রয়েড স্টোরেজ এপিআই ব্যবহার করে স্থানীয়ভাবে ডেটা সংরক্ষণ করতে পারেন। আপনি কী-ভ্যালু পেয়ার এবং টাইপড অবজেক্ট সংরক্ষণ করতে ডেটাস্টোর (DataStore) ব্যবহার করতে পারেন, অথবা রুম (Room) পার্সিস্টেন্স লাইব্রেরি ব্যবহার করতে পারেন।

অন্য ডিভাইসে আপনার অ্যাপ সনাক্ত করুন

আপনার ঘড়ির অ্যাপ এবং সংশ্লিষ্ট ফোনের অ্যাপ, উভয়ই শনাক্ত করতে পারে যে অন্য অ্যাপটি উপলব্ধ আছে কি না।

আপনার ফোন এবং ঘড়ির অ্যাপগুলো পেয়ার করা ডিভাইসে নিজেদের উপস্থিতি জানানোর জন্য CapabilityClient ব্যবহার করতে পারে। তারা এটি স্থিরভাবে বা গতিশীলভাবে করতে পারে।

যখন কোনো অ্যাপ ব্যবহারকারীর Wear OS নেটওয়ার্কের কোনো নোডে থাকে, যেমন ফোনে, পেয়ার করা ঘড়িতে বা ক্লাউডে, তখন CapabilityClient অন্যান্য অ্যাপকে সেটি শনাক্ত করতে দেয়। আরও তথ্যের জন্য, ‘Advertise capabilities’ দেখুন।

যদি আপনার একটি অ্যাপ অন্যটিকে শনাক্ত করতে না পারে, তাহলে আপনি ব্যবহারকারীকে প্রভাবিত ডিভাইসটিতে প্লে স্টোরের তালিকাটি খুলতে বলতে পারেন। এটি সেইসব ওয়াচ অ্যাপের জন্য একটি সমাধান, যেগুলোর সঠিকভাবে কাজ করার জন্য তাদের সহযোগী ফোন অ্যাপটির উপস্থিতি প্রয়োজন হয়।

আপনাকে অবশ্যই যাচাই করতে হবে যে ডিভাইসটিতে প্লে স্টোর আছে কিনা, কারণ আইফোনের মতো সব ফোনে প্লে স্টোর সাপোর্ট করে না।

নিম্নলিখিত বিভাগগুলিতে দুটি পরিস্থিতির জন্য সর্বোত্তম অনুশীলন বর্ণনা করা হয়েছে:

  • আপনার স্বতন্ত্র ঘড়ি অ্যাপটির জন্য আপনার ফোন অ্যাপটি প্রয়োজন।
  • আপনার ফোন অ্যাপটির জন্য আপনার স্বতন্ত্র ঘড়ি অ্যাপটি প্রয়োজন।

আপনি ডেটালেয়ার হেল্পারস স্যাম্পলটিও পর্যালোচনা করতে পারেন, যা দেখায় কীভাবে হরোলজিস্ট- এর অংশ ডেটালেয়ার হেল্পারস লাইব্রেরিগুলো ব্যবহার করতে হয়। এই হেল্পারগুলো আপনাকে একটি হ্যান্ডহেল্ড ডিভাইস এবং একটি Wear OS ডিভাইসের মধ্যেকার সংযোগ নিরীক্ষণ করতে দেয়। পরবর্তী বিভাগে বর্ণিত ক্লাসগুলো সম্পর্কে আরও তথ্যের জন্য, Wear OS API রেফারেন্স দেখুন। সেই রেফারেন্সে PhoneTypeHelper ক্লাস সম্পর্কেও তথ্য রয়েছে, যেটিতে একটি getPhoneDeviceType() মেথড আছে যা আপনার Wear OS অ্যাপকে যাচাই করতে দেয় যে একটি সহযোগী ফোন অ্যান্ড্রয়েড নাকি iOS ডিভাইস।

আপনার অ্যাপগুলি সনাক্ত করার জন্য সক্ষমতার নামগুলি নির্দিষ্ট করুন।

প্রতিটি ডিভাইসের ধরন (ঘড়ি বা ফোন) অনুযায়ী অ্যাপটির জন্য, res/values/wear.xml ফাইলে ক্যাপাবিলিটি নেম হিসেবে একটি অনন্য স্ট্রিং উল্লেখ করুন।

উদাহরণস্বরূপ, আপনার মোবাইল মডিউলে, wear.xml ফাইলটিতে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত থাকতে পারে:

<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@array/android_wear_capabilities">
    <string-array name="android_wear_capabilities">
        <item>verify_remote_example_phone_app</item>
    </string-array>
</resources>

আপনার Wear OS মডিউলে, wear.xml ফাইলে ক্যাপাবিলিটি নামের জন্য একটি ভিন্ন মান অন্তর্ভুক্ত থাকে, যেমনটি নিচে দেওয়া হলো:

<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@array/android_wear_capabilities">
    <string-array name="android_wear_capabilities">
        <item>verify_remote_example_wear_app</item>
    </string-array>
</resources>

আরও তথ্যের জন্য, বিজ্ঞাপন দেওয়ার সক্ষমতা দেখুন।

অ্যাপ শনাক্তকরণ এবং ঘড়ি থেকে একটি URL খোলা

আপনার ওয়াচ অ্যাপটি শনাক্ত করতে পারে যে ব্যবহারকারীর সঙ্গী ফোনে আপনার ফোন অ্যাপটি আছে কি না। এই ধাপগুলো অনুসরণ করুন:

  1. পেয়ার করা ফোনটিতে আপনার ফোন অ্যাপটি ইনস্টল করা আছে কিনা তা যাচাই করতে CapabilityClient ব্যবহার করুন। আরও তথ্যের জন্য, GitHub-এ Datalayer helpers স্যাম্পলটি দেখুন।
  2. যদি আপনার ফোন অ্যাপটি ফোনে ইনস্টল করা না থাকে, তাহলে ফোনের ধরন যাচাই করার জন্য PhoneDeviceType.getPhoneDeviceType() মেথডটি ব্যবহার করুন। বিস্তারিত জানতে পরবর্তী অংশটি দেখুন।
  3. যদি PhoneDeviceType.DEVICE_TYPE_ANDROID রিটার্ন করা হয়, তাহলে ফোনটি একটি অ্যান্ড্রয়েড ফোন। ফোনে প্লে স্টোর খোলার জন্য Wear OS ডিভাইসে RemoteActivityHelper.startRemoteActivity() কল করুন। আপনার ফোন অ্যাপের জন্য মার্কেট URI ব্যবহার করুন, যা আপনার Wear অ্যাপের URI থেকে ভিন্ন হতে পারে। উদাহরণস্বরূপ, এই ধরনের একটি মার্কেট URI ব্যবহার করুন: market://details?id=com.example.android.wearable.wear.finddevices
  4. যদি PhoneDeviceType.DEVICE_TYPE_IOS রিটার্ন করা হয়, তাহলে ফোনটি একটি iOS ফোন যেখানে কোনো প্লে স্টোর নেই। Wear OS ডিভাইসে RemoteActivityHelper.startRemoteActivity() কল করে iPhone-এ অ্যাপ স্টোরটি খুলুন। আপনি আপনার অ্যাপের iTunes URL নির্দিষ্ট করে দিতে পারেন, যেমন https://itunes.apple.com/us/app/yourappname

    Wear OS থেকে, আপনার ফোন অ্যাপটি কোনো iOS ডিভাইসে ইনস্টল করা আছে কি না, তা আপনি প্রোগ্রামিংয়ের মাধ্যমে নির্ধারণ করতে পারবেন না। সর্বোত্তম পন্থা হিসেবে, ব্যবহারকারীকে ম্যানুয়ালি অ্যাপ স্টোর খোলার ব্যবস্থা রাখা উচিত।

দ্রষ্টব্য : পূর্ববর্তী বিভাগে বর্ণিত RemoteActivityHelper API ব্যবহার করে নির্দিষ্ট করুন যে ঘড়ি থেকে ফোনে যেকোনো URL খোলা যাবে এবং এর জন্য কোনো ফোন অ্যাপের প্রয়োজন হবে না।

পেয়ার করা ফোনের ধরন শনাক্ত করার বিবরণ

এখানে একটি কোড স্নিপেট দেওয়া হল যা getPhoneDeviceType() মেথড ব্যবহার করে ঘড়িটি যে ফোনের সাথে পেয়ার করা আছে তার ধরন পরীক্ষা করে:

var phoneDeviceType: Int = PhoneTypeHelper.getPhoneDeviceType(this)

getPhoneDeviceType() মেথড দ্বারা ফেরত দেওয়া মানটি নিম্নলিখিতগুলির মধ্যে একটি:

ফেরত মান বর্ণনা
DEVICE_TYPE_ANDROID সহযোগী ফোনটি একটি অ্যান্ড্রয়েড-চালিত ডিভাইস।
DEVICE_TYPE_IOS সহযোগী ফোনটি একটি iOS ডিভাইস।
DEVICE_TYPE_UNKNOWN সহযোগী ফোনটি একটি অজানা ডিভাইস।
DEVICE_TYPE_ERROR পেয়ার করা ফোনটির ধরন নির্ধারণে একটি ত্রুটি ঘটেছে; পরবর্তীতে পুনরায় যাচাই করা উচিত।

অ্যান্ড্রয়েড ফোন থেকে শুরু করে অ্যাপ সনাক্তকরণ

আপনার অ্যান্ড্রয়েড ফোন শনাক্ত করতে পারে যে ব্যবহারকারীর Wear OS ডিভাইসগুলোতে আপনার ঘড়ির অ্যাপটি আছে কি না। এই ধাপগুলো অনুসরণ করুন:

  1. NodeClient ব্যবহার করে ব্যবহারকারীর ফোনের সাথে সংযুক্ত সমস্ত ওয়াচ খুঁজুন। আরও তথ্যের জন্য, GitHub-এ Datalayer helpers স্যাম্পলটি দেখুন।
  2. CapabilityClient ব্যবহার করে যাচাই করুন, ব্যবহারকারীর কোন কোন ঘড়িতে আপনার অ্যাপটি ইনস্টল করা আছে।
  3. যদি আপনার অ্যাপটি ব্যবহারকারীর সব ঘড়িতে ইনস্টল করা না থাকে, তাহলে RemoteActivityHelper.startRemoteActivity() মেথডটি ব্যবহার করে ব্যবহারকারীকে ফোন থেকে বাকি Wear OS ডিভাইসগুলোতে প্লে স্টোর খোলার সুযোগ দিন। Wear OS অ্যাপের জন্য মার্কেট URI ব্যবহার করুন, যা আপনার ফোন অ্যাপের URI থেকে ভিন্ন হতে পারে। উদাহরণস্বরূপ, এই ধরনের একটি মার্কেট URI ব্যবহার করুন: market://details?id=com.example.android.wearable.wear.finddevices

আইফোনের সাথে যুক্ত ঘড়িগুলির অবস্থানের ডেটা

আইফোনের সাথে পেয়ার করা ঘড়িগুলোর ক্ষেত্রে, ঘড়িতে অবস্থানের ডেটা পেতে ফিউজড লোকেশন প্রোভাইডার (FLP) ব্যবহার করুন। আরও তথ্যের জন্য, Wear OS-এ অবস্থান শনাক্তকরণ দেখুন।

যদি সহযোগী ফোনটি উপলব্ধ থাকে, তাহলে FLP অবস্থানের তথ্যের জন্য সহযোগী ফোনটি ব্যবহার করে।

শুধুমাত্র প্রয়োজনীয় তথ্য সংগ্রহ করুন।

সাধারণত, ইন্টারনেট থেকে ডেটা নেওয়ার সময় শুধু প্রয়োজনীয় ডেটাই নিন। অন্যথায়, এতে অপ্রয়োজনীয় ল্যাটেন্সি, মেমরি এবং ব্যাটারির ব্যবহার বেড়ে যেতে পারে।

যখন একটি ঘড়ি ব্লুটুথ এলই (Bluetooth LE) সংযোগের মাধ্যমে সংযুক্ত থাকে, তখন ঘড়িটির উপর নির্ভর করে আপনার অ্যাপটি প্রতি সেকেন্ডে মাত্র ৪ কিলোবাইট ব্যান্ডউইথ ব্যবহার করতে পারে। তাই, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করার পরামর্শ দেওয়া হচ্ছে:

  • শুধুমাত্র একটি ফোন অ্যাপের জন্য প্রয়োজনীয় অতিরিক্ত ডেটার জন্য আপনার নেটওয়ার্ক অনুরোধ এবং প্রতিক্রিয়াগুলি নিরীক্ষা করুন।
  • নেটওয়ার্কের মাধ্যমে ঘড়িতে পাঠানোর আগে বড় ছবিগুলোকে ছোট করে নিন।

যেসব ক্ষেত্রে উচ্চ-ব্যান্ডউইথ নেটওয়ার্কের প্রয়োজন হয়, সেগুলোর জন্য উচ্চ-ব্যান্ডউইথ নেটওয়ার্ক অ্যাক্সেস দেখুন।

অতিরিক্ত কোডের নমুনা

ডেটালেয়ার হেল্পার স্যাম্পলটি এই পৃষ্ঠায় আলোচিত এপিআইগুলোর ব্যবহার আরও বিশদভাবে প্রদর্শন করে।