ওয়াচফেস পুশ

Wear OS 6 একটি নতুন API, Watch Face Push নিয়ে এসেছে, যা আরও উন্নত ওয়াচফেস প্রকাশনার ব্যবহারিক ক্ষেত্রে সুযোগ তৈরি করে।

ওয়াচ ফেস পুশ কখন ব্যবহার করতে হবে তা শনাক্ত করা

Watch Face Push হল Wear OS-এ একটি API যা ডেভেলপারকে সরাসরি ওয়াচফেস যোগ করতে, আপডেট করতে, বা সরাতে দেয়। স্ট্যান্ডার্ড ওয়াচফেস ডেভেলপমেন্টের জন্য এটি প্রয়োজন হয় না।

Watch Face Push-এর সাথে ব্যবহৃত ওয়াচফেস অবশ্যই Watch Face Format ব্যবহার করে লিখতে হবে। এর মধ্যে Watch Face Designer, Watch Face Studio বা অন্য যেকোনও টুল ব্যবহার করে ডিজাইন করা ওয়াচফেস অন্তর্ভুক্ত থাকতে পারে যা ওয়াচফেস ফর্ম্যাট ব্যবহার করে ওয়াচফেস তৈরি করে।

Watch Face Push API সম্ভাব্য বিভিন্ন উপায়ে ব্যবহার করা গেলেও, নিম্নলিখিত টেবিলটি আপনাকে মূল সম্ভাব্য পরিস্থিতি সম্পর্কে গাইড করে:

ব্যবহারের উদাহরণ সাজেস্ট করা সমাধান জটিলতা
আমি আলাদা আলাদা ওয়াচফেস তৈরি করে প্রকাশ করতে চাই। সরাসরি অথবা Watch Face Designer বা Watch Face Studio-র মতো টুলের মাধ্যমে Watch Face Format ব্যবহার করুন এবং Google Play-তে প্রকাশ করুন। কম
আমি এমন একটি ফোন অ্যাপ তৈরি করতে চাই যা ব্যবহারকারীদের কিউরেট করা সংগ্রহ থেকে ওয়াচফেস বেছে নিতে বা সরাসরি তাদের Wear OS ওয়াচে ইনস্টল করার জন্য ওয়াচফেস ডিজাইন ও কাস্টমাইজ করতে দেয়। ঘড়িতে Watch Face Push API ব্যবহার করে ঘড়ি ও ফোন, দু'টির জন্যই অ্যাপ তৈরি করুন। বেশি

উদ্দেশ্য

Watch Face Push API-এর মূল ব্যবহার হল মার্কেটপ্লেস অ্যাপ তৈরি করা। এই অ্যাপ থেকে, ব্যবহারকারীরা তাদের ফোনে কিউরেট করা সংগ্রহ থেকে ওয়াচফেস বেছে নিতে এবং তাদের কানেক্ট করা ওয়াচে এইসব ওয়াচ ফেস ইনস্টল করা সরাসরি নিয়ন্ত্রণ করতে পারবেন।

বিবেচ্য বিষয়

আপনার ওয়াচফেস তৈরি করা সংক্রান্ত বিস্তারিত তথ্যের জন্য, ওয়াচফেস ফর্ম্যাট নির্দেশিকা দেখুন: ওয়াচফেস পুশ ব্যবহার করে ডেপ্লয় করা ওয়াচফেস হল সাধারণ ওয়াচফেস ফর্ম্যাট ওয়াচফেস।

আপনার ওয়াচফেস তৈরি করার সময়, নিম্নলিখিত বিষয়গুলি মনে রাখবেন।

প্যাকেজের নাম

Watch Face Push ব্যবহার করে ইনস্টল করা ওয়াচফেসকে অবশ্যই নিম্নলিখিত কনভেনশন মেনে চলতে হবে:

<app name>.watchfacepush.<watchface name>

... যেখানে <app name> হল Watch Face Push API কল করা অ্যাপের প্যাকেজের নাম।

যেমন, com.example.mymarketplace প্যাকেজ নামের অ্যাপের জন্য, নিচে উল্লেখ করা ওয়াচ ফেসে প্যাকেজের নাম সঠিক:

  • com.example.mymarketplace.watchfacepush.watchface1
  • com.example.mymarketplace.watchfacepush.watchface2
  • com.example.mymarketplace.watchfacepush.another_watchface

এই কনভেনশন মেনে চলে না এমন ওয়াচফেস API বাতিল করে দেয়।

প্যাকেজের কন্টেন্ট

সিস্টেম APK কন্টেন্ট কঠোরভাবে প্রয়োগ করে। Watch Face Format APK তৈরি করা টেকনিক্যালি সম্ভব যেখানে ক্ষতিকর নয় এমন মেটাডেটা ফাইল ও অন্যান্য আর্টিফ্যাক্ট থাকে, যা Google Play-এর কাছে গ্রহণযোগ্য হতে পারে কিন্তু Watch Face Push যাচাইকরণে উত্তীর্ণ হয় না (নিচে দেখুন)।

প্রতিটি ওয়াচ ফেস APK-তে শুধুমাত্র নিম্নলিখিত ফাইল/পাথ থাকতে হবে:

  • /AndroidManifest.xml
  • /resources.arsc
  • /res/**
  • /META-INF/**

এছাড়াও, AndroidManifest.xml ফাইলে শুধুমাত্র নিম্নলিখিত ট্যাগ থাকতে হবে:

  • <manifest>
  • <uses-feature>
  • <uses-sdk>
  • <application>
  • <property>
  • <meta-data>

সবশেষে, প্যাকেজে অবশ্যই অন্তত 33 minSdk থাকতে হবে এবং <application> ট্যাগে অবশ্যই android:hasCode="false" অ্যাট্রিবিউট থাকতে হবে।

যাচাইকরণ

Google Play-এর মাধ্যমে ডিস্ট্রিবিউট করা সাধারণ ওয়াচফেসের মতো নয়, Marketplace অ্যাপ প্রতিটি Watch Face Push ওয়াচফেস ভালভাবে তৈরি করা হয়েছে এবং পারফর্ম্যান্স ভাল কিনা তা যাচাই করার জন্য দায়ী।

প্রতিটি ওয়াচ ফেসে কোয়ালিটি যাচাই করতে ওয়াচ ফেস পুশ নিম্নলিখিত যাচাইকরণ চেক ব্যবহার করে:

  1. Watch Face Push API-এর মাধ্যমে ইনস্টল বা আপডেট করা সব ওয়াচফেসকে Watch Face Push যাচাইকরণ টুলে পাস করতে হবে।
  2. API-এর সাথে ব্যবহারের জন্য যাচাইকরণ টোকেন তৈরি করতে শুধুমাত্র অফিসিয়াল যাচাইকরণ টুল ব্যবহার করুন।
  3. যাচাইকরণ টুল চালানোর সময় সেটি অবশ্যই আপ-টু-ডেট থাকতে হবে।
  4. পরিবর্তন করা হয়নি এমন কোনও APK আপনাকে আবার যাচাই করতে হবে না। টোকেনের মেয়াদ শেষ হয় না, এমনকি ব্যবহৃত যাচাইকরণ টুলের ভার্সন বাতিল হয়ে গেলেও।

    একই সাথে, আমরা সাজেস্ট করি যে আপনি মাঝে মাঝে যাচাইকরণ আবার চালান, কারণ যাচাইকারীকে মাঝে মাঝে আপডেট করা হয়।

ভ্যালিডেটর চালান

ভ্যালিডেটর তিনটি ফর্ম্যাটে উপলভ্য:

  • CLI টুল
  • JVM-এর সাথে ব্যবহার করার জন্য লাইব্রেরি
  • Android-এ ব্যবহারের জন্য লাইব্রেরি

কমান্ড-লাইন ভ্যালিডেটর ব্যবহার

  1. Google-এর Maven রিপোজিটরি থেকে ভ্যালিডেটর পান।
  2. নিম্নলিখিতভাবে টুলটি রান করান:

    java -jar validator-push-cli-1.0.0-alpha10.jar \
        --apk_path=<your watch face>.apk \
        --package_name=<your marketplace package name>
    

    সফল হলে, আউটপুটে একটি যাচাইকরণ টোকেন থাকে, যা আপনাকে অবশ্যই ওয়াচফেস যোগ বা আপডেট করার সময় Watch Face Push API-তে দিতে হবে।

    কোনও সমস্যা হলে, আউটপুটে কোন নির্দিষ্ট চেকটি ব্যর্থ হয়েছে সেই সম্পর্কে বিবরণ থাকে।

লাইব্রেরি ভ্যালিডেটর ব্যবহার

  1. Google ও Jitpack রিপোজিটরি অন্তর্ভুক্ত করুন। ভ্যালিডেটর লাইব্রেরি ব্যবহার করার জন্য দুটিই প্রয়োজন।

    repositories {
        ...
        google()
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. আপনার প্রোজেক্টে ভ্যালিডেটর ডিপেন্ডেন্সি যোগ করুন:

    // For use on JVM
    implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha10")
    
    // For use on Android
    implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha10")
    
    
  3. ভ্যালিডেটর চালান:

    val validator = DwfValidatorFactory.create()
    val result = validator.validate(watchFaceFile, appPackageName)
    
    if (result.failures().isEmpty()) {
        val token = result.validationToken()
        println("Validation token: $token")
    
        // Validation success - continue with the token
        // ...
    } else {
        // There were failures, handle them accordingly - validation has failed.
        result.failures().forEach { failure ->
            println("FAILURE: ${failure.name()}: ${failure.failureMessage()}")
            // ...
        }
    }

এই লাইব্রেরি ব্যবহারের উদাহরণ দেখতে, GitHub স্যাম্পেল দেখুন। এছাড়াও, Android-ভিত্তিক ভ্যালিডেটর ব্যবহার করার জন্য অন-ডিভাইস APK তৈরি করতে কাজে লাগে এমন পোর্টেবল অ্যাসেট কম্পাইলার কিট (Pack) লাইব্রেরি দেখুন।

APK সাইজ

APK সাইজ কমানোর জন্য Watch Face Push ওয়াচফেসের ক্ষেত্রে বিশেষ যত্ন নিন: ওয়াচফেস APK সম্ভবত ব্লুটুথের মাধ্যমে ফোন অ্যাপ থেকে ওয়াচ অ্যাপে ট্রান্সমিট করা হয় যা ধীরে ধীরে হতে পারে।

অত্যন্ত বড় APK ট্রান্সমিট করতে অনেক সময় লাগতে পারে, এটি ব্যবহারকারীর জন্য খারাপ অভিজ্ঞতা এবং ব্যাটারিও দ্রুত শেষ হয়ে যায়।

  • pngquant-এর মতো উপযুক্ত লাইব্রেরি ব্যবহার করে ইমেজ ফাইলের সাইজ ন্যূনতম রাখুন
    • আপনার ওয়াচফেস কালেকশন তৈরির প্রসেসে এটি অন্তর্ভুক্ত করুন
    • আপনি যে স্কেলে ছবিটি ব্যবহার করছেন তার জন্য ছবির ডাইমেনশন উপযুক্ত কিনা তা চেক করে দেখুন।
    • আশেপাশের ব্যাকগ্রাউন্ড সরাতে ছবিগুলি যথাযথভাবে ক্রপ করুন।
  • ফন্ট ফাইলের সাইজ কমানো

APK সাইজ ন্যূনতম রাখার ব্যাপারে আরও সাজেশন পেতে মেমরি ব্যবহার অপ্টিমাইজ করা সংক্রান্ত নির্দেশিকা দেখুন।

APK-তে সই করা

সাধারণ APK হিসেবে, আপনাকে অবশ্যই সব ওয়াচফেসে সই করতে হবে। আপনার মূল অ্যাপের সাথে ব্যবহার করা কী থেকে আলাদা একটি কী তৈরি করুন এবং আপনার সব ওয়াচ ফেসে আলাদা কী ব্যবহার করুন।

স্থাপত্যশিল্প

সিস্টেমের চারটি প্রধান কম্পোনেন্ট বিবেচনা করুন:

  1. ক্লাউড-ভিত্তিক স্টোরেজ: ক্যাননিকাল Marketplace অ্যাপে, আপনি ক্লাউডে নিজের ওয়াচফেস তৈরি ও স্টোর করেন, যাতে ব্যবহারকারীরা সেগুলি ব্যবহার করতে পারেন। ওয়াচ ফেসে নিম্নলিখিত প্রপার্টি আছে:
    1. এগুলি সাধারণ Watch Face Format APK হিসেবে আগে থেকেই তৈরি করা থাকে।
    2. প্রতিটি APK-তে শুধুমাত্র একটি Watch Face Format-ভিত্তিক ওয়াচফেস থাকে।
    3. এগুলি ওয়াচ ফেস পুশ যাচাইকরণ প্রসেসের মাধ্যমে যাচাই করা হয় এবং সম্পর্কিত যাচাইকরণ টোকেনের সাথে স্টোর করা হয়।
    4. প্রয়োজন হলে আপনার ফোন অ্যাপ সেগুলি ফিরিয়ে আনতে পারবে।
  2. ফোন অ্যাপ: ফোন অ্যাপ হল সেই প্রধান উপায় যার মাধ্যমে আপনার ব্যবহারকারীরা আপনার সিস্টেমের সাথে ইন্টার‍্যাক্ট করেন। এটি তাদের এগুলি করার অনুমতি দেয়:
    1. ওয়াচফেসের ক্যাটালগ ব্রাউজ ও সার্চ করা
    2. ওয়াচে ওয়াচফেস ইনস্টল বা পরিবর্তন করা
  3. ওয়াচ অ্যাপ: ওয়াচ অ্যাপে সাধারণত উল্লেখযোগ্য ইউজার ইন্টারফেস নাও থাকতে পারে। এটি মূলত ফোন অ্যাপ ও Watch Face Push API-এর মধ্যে একটি ব্রিজ, যার নিম্নলিখিত ফাংশনালিটি আছে:
    1. ওয়াচফেস ইনস্টল/আপডেট বা পাল্টানোর জন্য Watch Face Push API ব্যবহার করা
    2. প্রয়োজনীয় অনুমতি চাওয়া এবং ব্যবহারকারীকে প্রম্পট করা
    3. ডিফল্ট ওয়াচফেস প্রদান করা
    4. ওয়াচফেসের ন্যূনতম ক্যাশে প্রদান করা
  4. ফোন-ঘড়ি কমিউনিকেশন: সামগ্রিক অভিজ্ঞতা ভালো হওয়ার জন্য ফোন ও ওয়াচ অ্যাপের মধ্যে কমিউনিকেশন খুব গুরুত্বপূর্ণ। Wear OS ডেটা লেয়ার API ব্যবহার করুন, যা এগুলি করতে দেয়:
    1. ইনস্টলেশন শনাক্তকরণ: Capabilities ও CapabilityClient ব্যবহার করে, ফোন অ্যাপ স্মার্টওয়াচ অ্যাপের অনুপস্থিতি শনাক্ত করতে পারে এবং এর বিপরীতও হতে পারে। তারপরে, আপনি Play Store-এ একটি ইনটেন্ট লঞ্চ করতে পারেন যাতে অনুপস্থিত ফর্ম ফ্যাক্টর ইনস্টল করা যায়।
    2. স্টেট ম্যানেজমেন্ট: DataClient বা MessageClient ব্যবহার করে, আপনি ফোনকে ওয়াচের স্টেটের সাথে সিঙ্ক করে রাখেন, যেমন, অ্যাক্টিভ ওয়াচ ফেজের স্টেট সিঙ্ক করা।
    3. APK ট্রান্সমিশন: ChannelClient বা MessageClient ব্যবহার করে, ফোন থেকে ওয়াচে APK পাঠান
    4. রিমোট ইনভোকেশন: Messageclient ব্যবহার করে, ফোন ঘড়িকে Watch Face Push API কল করার নির্দেশ দিতে পারে, যেমন, একটি ওয়াচফেস ইনস্টল করার জন্য।

আরও বিবরণের জন্য ডেটা লেয়ার API সংক্রান্ত নির্দেশিকা দেখুন।