মনে রাখবেন: এই পৃষ্ঠায় আপনার ওয়াচফেস কনফিগারেশন ম্যানুয়ালি ম্যানেজ করার প্রসেসের একটি ধাপ দেখানো হয়। এর পরিবর্তে, আপনি যদি WYSIWYG (যা দেখবেন তাই পাবেন) স্টাইলের টুল ব্যবহার করে আপনার ওয়াচফেস ডিজাইন করতে চান, তাহলে প্রথমে ওয়াচফেস স্টুডিও গাইড চেক করে দেখুন।
এই নির্দেশিকায়, ওয়াচ ফেস ফর্ম্যাট ব্যবহার করে ওয়াচ ফেস কনফিগার করার জন্য প্রয়োজনীয় টুল সংক্রান্ত ধাপ, প্রজেক্ট স্ট্রাকচার সংক্রান্ত কিছু সাজেশন এবং সেই স্ট্রাকচার তৈরি করার জন্য টুল প্রয়োগ করার ধাপ-ভিত্তিক নির্দেশিকা অন্তর্ভুক্ত।
Android Studio ব্যবহার করা শুরু করুন
ম্যানুয়ালি ওয়াচফেস ডেভেলপ করার জন্য সবচেয়ে সহজ উপায় হল Android Studio ব্যবহার করা। ক্যানারি চ্যানেলে ওয়াচফেস সংক্রান্ত সহায়তা উপলভ্য।
- ফাইল > নতুন প্রোজেক্ট বিকল্পে ক্লিক করুন
- Wear OS-এর অধীনে, সাধারণ ওয়াচফেস বেছে নিন
এটি সম্পূর্ণভাবে কাজ করে এমন ওয়াচ ফেসে প্রয়োজনীয় স্ট্রাকচার তৈরি করে।
প্রোজেক্টের গঠন
আপনি যখন Watch Face Format ব্যবহার করে কাস্টম ওয়াচফেস তৈরি করেন, তখন কাস্টম ওয়াচফেস ফাইল সহ Android অ্যাপ বান্ডেলকে আপনার Wear OS অ্যাপের লজিক থাকা Android অ্যাপ বান্ডেল থেকে সম্পূর্ণ আলাদা হতে হবে। Google Play সহ কিছু অ্যাপ স্টোর, আপনাকে Wear OS লজিক ও কাস্টম ওয়াচফেস, দুটিই আছে এমন Android অ্যাপ বান্ডেল আপলোড করতে দেয় না।
Watch Face Format ভার্সন ঘোষণা করা
আপনার নতুন অ্যাপের ম্যানিফেস্ট ফাইলে (AndroidManifest.xml), Watch Face Format ব্যবহারের ইঙ্গিত দেয় এমন অ্যাপ্লিকেশন
প্রপার্টি ভালোভাবে দেখুন।
<property android:name="com.google.wear.watchface.format.version" android:value="4" />
Watch Face Format-এর কিছু ফিচার শুধুমাত্র পরের ভার্সনগুলিতে উপলভ্য। ডিভাইসের সাথে সামঞ্জস্য সর্বাধিক করতে, আপনার প্রয়োজনীয় ফিচার কাজ করে এমন সর্বনিম্ন ভ্যালুতে
এই প্রপার্টি সেট করুন এবং minSdkVersion-ও মিলিয়ে সেট করুন। আপনার অ্যাপের ভার্সন কীভাবে কনফিগার করবেন
সেই সম্পর্কে আরও জানুন।
<application> এলিমেন্টে অবশ্যই
android:hasCode="false" অ্যাট্রিবিউট থাকতে হবে। Watch Face Format বান্ডেল শুধুমাত্র রিসোর্স-ভিত্তিক এবং
এতে কোনও কোড থাকতে পারে না।
ওয়াচফেস মেটাডেটা ঘোষণা করা
আপনার অ্যাপের res/xml রিসোর্স ডিরেক্টরিতে, watch_face_info.xml নামের একটি ফাইল আছে। এখানে আপনি নিজের ওয়াচফেসের মেটাডেটা নির্ধারণ করেন:
<WatchFaceInfo> <Preview value="@drawable/preview" /> <Category value="CATEGORY_EMPTY" /> <AvailableInRetail value="true" /> <MultipleInstancesAllowed value="true" /> <Editable value="true" /> <FlavorsSupported value="true" /> </WatchFaceInfo>
এই ফাইলের ফিল্ডে নিম্নলিখিত বিবরণ থাকে:
Preview- ওয়াচফেসের প্রিভিউ ছবি থাকা ড্রয়েবলকে রেফার করে।
Categoryওয়াচফেসের বিভাগ নির্ধারণ করে। এটি অবশ্যই একটি স্ট্রিং বা স্ট্রিংয়ের রেফারেন্স হতে হবে, যেমন
@string/ref_name। প্রতিটি ডিভাইস প্রস্তুতকারক কোম্পানি ওয়াচ ফেসের বিভাগের নিজস্ব সেট নির্ধারণ করতে পারে।ডিফল্ট ভ্যালু:
empty_category_meta, যা এই ওয়াচফেসকে ওয়াচফেস পিকার ভিউয়ের নিচে থাকা অন্যান্য "খালি বিভাগ" ওয়াচফেসের সাথে একসাথে গ্রুপ করে।AvailableInRetailডিভাইসের রিটেল ডেমো মোডে ওয়াচফেস উপলভ্য আছে কিনা। বুলিয়ান ভ্যালু বা বুলিয়ান ভ্যালুর রেফারেন্স হতে হবে যেমন
@bool/watch_face_available_in_retail।ডিফল্ট মান:
falseMultipleInstancesAllowedওয়াচফেসে একাধিক ফেভারিট থাকতে পারে কিনা। বুলিয়ান ভ্যালু হতে হবে, অথবা বুলিয়ান ভ্যালুর রেফারেন্স হতে হবে, যেমন
@bool/watch_face_multiple_instances_allowed।ডিফল্ট মান:
falseEditableওয়াচফেস এডিট করা যায় কিনা, যার অর্থ হল ওয়াচফেসে সেটিং বা অন্তত একটি নন-ফিক্সড কমপ্লিকেশন আছে। পছন্দের তালিকায় থাকা ওয়াচ ফেসে এডিট করুন বোতাম দেখাতে বা লুকিয়ে রাখতে এটি ব্যবহার করা হয়।
ডিফল্ট মান: false
ওয়াচফেসের নাম ঘোষণা করুন
আপনার অ্যাপের ম্যানিফেস্ট ফাইলে (AndroidManifest.xml), application এলিমেন্টে আপনার ওয়াচফেসের নামে android:label
অ্যাট্রিবিউট সেট করুন।
ওয়াচফেসের বিবরণ ঘোষণা করা
একটি সাধারণ WFF ওয়াচ ফেস ডকুমেন্টের গঠন নিচে দেওয়া হল:
<WatchFace width="450" height="450"> <Scene> <!-- Content to be rendered --> </Scene> </WatchFace>
Android Studio টেমপ্লেট
res/raw/watchface.xml-এ একটি প্রাথমিক ডকুমেন্ট প্রদান করে। বিভিন্ন ধরনের স্ক্রিনের আকার ও সাইজ যাতে কাজ করে,
একাধিক আকার ও সাইজের জন্য কাজ করে বলে ঘোষণা করুন।
রুট এলিমেন্ট সবসময় WatchFace হয়। height ও width আপনার ওয়াচফেসে ব্যবহারের জন্য কোঅর্ডিনেট স্পেসের
এক্সটেন্ডকে সংজ্ঞায়িত করে এবং ওয়াচফেসটি
যে ডিভাইসে ব্যবহার করা হচ্ছে সেটির সাথে মানানসই করে স্কেল করা হয়; height ও width প্রকৃত পিক্সেলকে
প্রতিনিধিত্ব করে না।
Watch Face Format আপনার ওয়াচফেস সম্পর্কে বিভিন্ন তথ্য সাজিয়ে রাখে:
- মেটাডেটা, যেমন, আপনার ওয়াচ ফেসের প্রিভিউ ইমেজে দেখানো সময় ও ধাপের সংখ্যা।
- ব্যবহারকারীর কনফিগারেশন, যেমন আপনার ওয়াচফেসের জন্য আলাদা আলাদা রঙের থিম, ব্যবহারকারীর টগল করা যায় এমন এলিমেন্ট এবং একাধিক এলিমেন্টের মধ্যে থেকে বেছে নেওয়ার বিকল্প। ওয়াচফেস ফর্ম্যাট ভার্সন ২-এ ফ্লেভার যোগ করা হয়েছে, যা ব্যবহারকারীর কনফিগারেশনের মধ্যে দেখা যেতে পারে। প্রতিটি ফ্লেভার একটি প্রিসেট ব্যবহারকারী কনফিগারেশন নির্দিষ্ট করে, যা আপনার ওয়াচ ফেসে সময় সহ এলিমেন্টের ধরন ও স্টাইল নির্দিষ্ট করে। এইসব প্রিসেট আপনাকে এমন এলিমেন্টের গ্রুপ তৈরি করতে সাহায্য করে যেগুলি দেখতে ভাল লাগে। Wear OS কম্প্যানিয়ন অ্যাপে, ব্যবহারকারীরা আপনার ওয়াচফেসের বিভিন্ন ধরন স্ক্রল করা যায় এমন সারিতে দেখতে পান।
- সিন, যার মধ্যে ওয়াচফেসের ভিজ্যুয়াল এলিমেন্ট থাকে। যেসব এলিমেন্ট
সিন শেষের কাছাকাছি দেখানো হয়, সেগুলি অন্যান্য এলিমেন্টের উপরে দেখানো হয়, তাই
সাধারণত এই ক্রমে দেখানো হয়:
- অ্যানালগ ঘড়ির কাঁটা বা ডিজিটাল ঘড়ির টেক্সট
- কমপ্লিকেশন যা অতিরিক্ত তথ্য দেখায়, যেমন সপ্তাহের দিন বা ব্যবহারকারীর ধাপের সংখ্যা
- ওয়াচ ফেসের জন্য ভিজ্যুয়াল আগ্রহ বা সজ্জা প্রদান করে এমন অন্যান্য গ্রাফিক্স, যেমন ক্যাম্পসাইটের ছবি
- এলিমেন্টের গ্রুপ, যা আপনাকে একই সময়ে একাধিক এলিমেন্ট পরিবর্তন করতে দেয়। আপনি কোনও দৃশ্যের মধ্যে এইসব গ্রুপের ভেরিয়েন্ট তৈরি করতে পারবেন, যা সিস্টেম পাওয়ার-সেভিং অ্যাম্বিয়েন্ট মোডে প্রবেশ করলে আপনাকে বেছে বেছে কন্টেন্ট লুকাতে বা পরিবর্তন করতে দেয়।
ওয়াচ ফেস তৈরি করার সময় বেশিরভাগ সমস্যার উৎস এড়াতে অ্যাট্রিবিউটগুলি কঠোরভাবে টাইপ করা হয় এবং সেগুলির ফ্রিকোয়েন্সি ও বৈধ মান সংক্রান্ত নির্দেশিকা থাকে।
ওয়াচফেসের আকারের জন্য সহায়তা ঘোষণা করুন (ঐচ্ছিক)
আপনি যদি বিভিন্ন সাইজের ওয়াচ ফেসে আলাদা আলাদা আচরণ করতে চান, তাহলেই এই ধাপটি প্রয়োজন হবে। ওয়াচের সাইজ অনুযায়ী আপনার ওয়াচ ফেসে স্কেল করা হলে আপনার কোনও অসুবিধা না থাকলে, আপনি এই ধাপটি এড়িয়ে যেতে পারেন।
আপনার অ্যাপের res/xml রিসোর্স ডিরেক্টরিতে, ওয়াচফেসের
আকৃতির সেট ঘোষণা করুন যা আপনি watch_face_shapes.xml-এ সাপোর্ট করেন:
<WatchFaces> <WatchFace shape="CIRCLE" width="300" height="300" file="@raw/watchface_basic"/> <WatchFace shape="CIRCLE" width="450" height="450" file="@raw/watchface"/> </WatchFaces>
তারপরে, প্রতিটি ওয়াচফেসের আকারের জন্য আপনার ওয়াচফেসের চেহারা ও আচরণ নির্ধারণ করুন।
আপনি কোনও শেপ ফাইল নির্দিষ্ট না করে থাকলে, আপনার শুধু একটি ফাইল প্রয়োজন,
watchface.xml.
এই বিভাগ থেকে উদাহরণ ব্যবহার করে, কাঁচা XML ফাইলগুলি হবে:
res/raw/watchface.xmlres/raw/watchface_basic.xml
ওয়াচফেস প্রকাশক শনাক্ত করা (ঐচ্ছিক)
ঐচ্ছিকভাবে, আপনার অ্যাপের ম্যানিফেস্ট ফাইলে, একটি নির্বিচারে স্ট্রিং ঘোষণা করুন যা আপনি ওয়াচফেসের প্রকাশক বা আপনি ব্যবহার করছেন এমন টুলের নাম এবং ভার্সন শনাক্ত করতে ব্যবহার করতে পারেন:
<property android:name="com.google.wear.watchface.format.publisher" android:value="{toolName}-{toolVersion}" />
আপনার ওয়াচফেস সঠিক আছে কিনা এবং পারফর্ম্যান্স চেক করা
ডেভেলপমেন্টের সময় এবং Google Play-তে আপলোড করার আগে, Android Studio-তে বিল্ট-ইন ওয়াচ ফেস ফর্ম্যাট ভ্যালিডেশন ব্যবহার করে আপনার ওয়াচ ফেসে কোনও সিনট্যাক্স সংক্রান্ত সমস্যা নেই কিনা তা চেক করে নিন। এটি আপনার কোডে থাকা সমস্যা অটোমেটিক হাইলাইট করে এবং ভার্সন সম্পর্কে সচেতন।
এছাড়াও, মেমরি ফুটপ্রিন্ট টুল রান করানোর মাধ্যমে আপনার ওয়াচ ফেস মেমরি ব্যবহার সংক্রান্ত প্রয়োজনীয়তা পূরণ করছে কিনা তা চেক করে নেওয়া উচিত।
- প্রকাশ করার আগে মেমরি ব্যবহার অপ্টিমাইজ করা এবং মেমরি ব্যবহার চেক করা সম্পর্কে আরও জানুন।
- আপনার ডেভেলপমেন্ট চক্রের অংশ হিসেবে XML ভ্যালিডেটর ব্যবহার করা সম্পর্কে আরও জানুন।
আপনার ওয়াচফেস অ্যাপ বান্ডেল তৈরি করা
Android Studio-র মাধ্যমে আপনার ওয়াচফেস তৈরি ও ডেপ্লয় করার সবচেয়ে সহজ উপায় হল, এতে ওয়াচফেস রান কনফিগারেশনের জন্য ইন-বিল্ট সহায়তা আছে। রান করুন বোতামে ক্লিক করার পরে, Android Studio ডিভাইস বা ইমুলেটরে ওয়াচফেস ডেপ্লয় করে এবং এটিকে অ্যাক্টিভ ওয়াচফেস হিসেবে সেট করে।
স্যাম্পেল ওয়াচফেস
ওয়াচ ফেস ফর্ম্যাট প্রোজেক্টের আরও নমুনা GitHub-এ উপলভ্য।
আপনার জন্য সাজেস্ট করা হয়েছে
- মনে রাখবেন: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট দেখানো হয়
- AAPT2
- Jetpack Compose-এর প্রাথমিক বিষয়
- CameraX ব্যবহার শুরু করা