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

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

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

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

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

নতুন অ্যাপের জন্য, টার্গেট API লেভেল 30 বা তার বেশি হতে হবে। আরও তথ্যের জন্য, Google Play এর টার্গেট API লেভেলের প্রয়োজনীয়তা পূরণ করুন দেখুন। আপনার অ্যাপটি সর্বশেষ প্ল্যাটফর্ম সংস্করণে ভালভাবে কাজ করে তা নিশ্চিত করতে targetSdkVersion API লেভেল 30 (Wear OS 3) এ সেট করুন।

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

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

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

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

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

একটি ঘড়ি অ্যাপকে স্বতন্ত্র বা অ-স্বতন্ত্র হিসাবে বিবেচনা করা হয়:

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

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

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

আপনার Wear OS অ্যাপে, আপনার অ্যাপটি স্বতন্ত্র নাকি অ-স্বতন্ত্র তা ঘোষণা করতে Android ম্যানিফেস্ট ফাইলে meta-data উপাদান com.google.android.wearable.standalone এর মান সেট করুন।

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

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

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

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

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

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

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

আপনি ফোনের মতো স্থানীয়ভাবে ডেটা সংরক্ষণের জন্য স্ট্যান্ডার্ড অ্যান্ড্রয়েড স্টোরেজ API ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি SharedPreferences API অথবা Room persistence লাইব্রেরি ব্যবহার করতে পারেন।

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

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

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

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

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

আপনার ডিভাইসে প্লে স্টোর উপলব্ধ কিনা তা পরীক্ষা করে দেখতে হবে, কারণ সমস্ত ফোন—যেমন আইফোন—প্লে স্টোর সমর্থন করে না।

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

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

আপনি Datalayer helpers নমুনাটিও পর্যালোচনা করতে পারেন, যা Horologist এর অংশ, Datalayer helpers লাইব্রেরিগুলি কীভাবে ব্যবহার করতে হয় তা দেখায়। এই সাহায্যকারীগুলি আপনাকে একটি হ্যান্ডহেল্ড ডিভাইস এবং একটি Wear OS ডিভাইসের মধ্যে সংযোগ পর্যবেক্ষণ করতে দেয়। নিম্নলিখিত বিভাগে বর্ণিত ক্লাসগুলি সম্পর্কে আরও তথ্যের জন্য, Wear OS API রেফারেন্স দেখুন। সেই রেফারেন্সে PhoneTypeHelper ক্লাস সম্পর্কেও তথ্য রয়েছে, যেখানে একটি getPhoneDeviceType() পদ্ধতি রয়েছে যা আপনার Wear OS অ্যাপকে পরীক্ষা করতে দেয় যে কোনও সঙ্গী ফোনটি একটি Android না 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 ফেরত দেওয়া হয়, তাহলে ফোনটি একটি Android ফোন। ফোনে Play Store খুলতে Wear OS ডিভাইসে RemoteActivityHelper.startRemoteActivity() এ কল করুন। আপনার ফোন অ্যাপের জন্য market URI ব্যবহার করুন, যা আপনার Wear অ্যাপের URI থেকে আলাদা হতে পারে। উদাহরণস্বরূপ, একটি market URI ব্যবহার করুন যেমন: market://details?id=com.example.android.wearable.wear.finddevices
  4. যদি PhoneDeviceType.DEVICE_TYPE_IOS ফেরত দেওয়া হয়, তাহলে ফোনটি একটি iOS ফোন যার কোনও Play Store উপলব্ধ নেই। Wear OS ডিভাইসে RemoteActivityHelper.startRemoteActivity() কল করে iPhone-এ App Store খুলুন। আপনি আপনার অ্যাপের iTunes URL নির্দিষ্ট করতে পারেন, যেমন https://itunes.apple.com/us/app/yourappname

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

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

জোড়া ফোনের ধরণ সনাক্ত করার জন্য বিশদ বিবরণ

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

var phoneDeviceType: Int = PhoneTypeHelper.getPhoneDeviceType(this)

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

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

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

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

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

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

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

যদি কম্প্যানিয়ন ফোনটি পাওয়া যায়, তাহলে FLP লোকেশন ডেটার জন্য কম্প্যানিয়ন ফোনটি ব্যবহার করে।

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

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

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

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

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

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

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