চলতে-ফিরতে ব্যবহারের জন্য স্মার্টওয়াচ আদর্শ, কিন্তু ব্যবহারকারীর হাত ব্যস্ত থাকলে এগুলো চালানো কঠিন হয়ে পড়ে। এই সমস্যা সমাধানের জন্য, Wear OS 7 OEM-দের জন্য একটি নতুন এক-হাতের জেসচার ফ্রেমওয়ার্ক এবং Wear OS-এ Jetpack Compose ব্যবহারকারী ডেভেলপারদের জন্য একটি জেসচার এপিআই (Gesture API) নিয়ে এসেছে। যদিও এটি শুধুমাত্র পিক্সেল ওয়াচ ডিভাইসগুলোতে (পিক্সেল ওয়াচ ৩ এবং নতুন সংস্করণ) ব্যবহৃত হয়েছে, এই অন্তর্নিহিত ফ্রেমওয়ার্কটি সকল নির্মাতার জন্য উপলব্ধ। এই এপিআই সমর্থন করার মাধ্যমে, অন্যান্য OEM-রা এটি গ্রহণ করলে আপনার অ্যাপের জেসচার সাপোর্ট স্বয়ংক্রিয়ভাবে পুরো ইকোসিস্টেম জুড়ে প্রসারিত হতে পারবে।
নির্বিঘ্ন ও স্পর্শবিহীন অভিজ্ঞতা তৈরি করতে, আপনার অ্যাপ ব্যবহারের ক্ষেত্রে এক-হাতের জেসচার উপযুক্ত কিনা তা নির্ধারণ করতে এই নির্দেশিকাগুলো অনুসরণ করুন।
সমর্থিত অঙ্গভঙ্গি এবং ক্রিয়া
Wear OS জেসচার ফ্রেমওয়ার্ক দুই ধরনের জেসচার সমর্থন করে: প্রাইমারি অ্যাকশন এবং ডিসমিস অ্যাকশন । পিক্সেল ওয়াচে, প্রাইমারি অ্যাকশনটি ডাবল পিঞ্চ জেসচারের সাথে এবং ডিসমিস অ্যাকশনটি রিস্ট টার্ন জেসচারের সাথে ম্যাপ করা হয়েছে।
প্রাথমিক পদক্ষেপ
প্রাথমিক অ্যাকশনটি মূল কাজের সাথে ম্যাপ করা উচিত, যেমন ফোন কলের উত্তর দেওয়া বা মিডিয়া কন্ট্রোলে প্লে বা পজ টগল করা, যা একজন ব্যবহারকারী একটি স্ক্রিন বা পেজে সম্পন্ন করতে পারে। যদি পেজটি স্ক্রলযোগ্য হয়, তবে আপনার অ্যাপ প্রাথমিক অ্যাকশনের সাথে একবারে শুধুমাত্র একটি UI এলিমেন্ট ম্যাপ করতে পারবে।
ডাবল পিঞ্চ সবচেয়ে বেশি কার্যকর হয় যখন ব্যবহারকারী জেসচার বা ভয়েসের মাধ্যমে সেই UI এলিমেন্টে যেতে পারেন, অথবা যখন এলিমেন্টটি স্বয়ংক্রিয়ভাবে খোলে (যেমন কোনো নোটিফিকেশন বা মিডিয়া কন্ট্রোল)। যদি UI এলিমেন্টে যাওয়ার একমাত্র উপায় টাচ বা বাটন হয়, তবে সেই কাজটি প্রাইমারি অ্যাকশন জেসচারের জন্য উপযুক্ত নয়।
পদক্ষেপ খারিজ করুন
ডিফল্টরূপে, 'ডিসমিস' অ্যাকশনটি সিস্টেম ব্যাক বাটনের সাথে ম্যাপ করা থাকে এবং এটি আগের স্ক্রিনে ফিরে যায়। আপনার অ্যাপ নির্দিষ্ট ব্যবহারের ক্ষেত্রে 'রিস্ট টার্ন' অ্যাকশনটিকে ওভাররাইড করতে পারে, কিন্তু এই ব্যতিক্রমগুলো অবশ্যই 'ডিসমিস', 'সাইলেন্স' বা 'মিনিমাইজ'-এর ধারণার সাথে সামঞ্জস্যপূর্ণ হওয়া উচিত। উদাহরণস্বরূপ, কোনো কল ডিসমিস না করে সাইলেন্স করা এবং নোটিফিকেশন ডিসমিস বা ডিলিট না করে বন্ধ করা। এই অ্যাকশনটিকে আপনার অ্যাপের যথেচ্ছ কোনো অ্যাকশনের সাথে ম্যাপ করা উচিত নয়, তা যতই লোভনীয় হোক না কেন, কারণ এটি 'ডিসমিস' অ্যাকশনকে ব্যাক বা ডিসমিস কমান্ডের একটি সামঞ্জস্যপূর্ণ নির্দেশক হিসেবে ব্যবহারের ইউজার মডেলটিকে ভেঙে দেয়।
যখন কোনো স্ক্রিন দুর্ঘটনাবশত ট্রিগার হওয়ার কারণে ঝুঁকি তৈরি করে, যেমন একটি সক্রিয় ওয়ার্কআউট স্ক্রিনে বা জরুরি কলের সময়, তখন সেই স্ক্রিনের জন্য ডিসমিস অ্যাকশনটিও নিষ্ক্রিয় করা যেতে পারে। কোনো নির্দিষ্ট স্ক্রিনের জন্য রিস্ট টার্ন নিষ্ক্রিয় করতে, ডিসমিস অ্যাকশনটিতে সাবস্ক্রাইব করুন কিন্তু প্রেরিত জেসচার ইভেন্টটি নিয়ে কিছুই করবেন না; অর্থাৎ, একটি খালি সাবস্ক্রিপশন প্রদান করুন।
দ্রুত অঙ্গভঙ্গি নির্দেশিকা
Wear OS জেসচার ফ্রেমওয়ার্কটি বাধা এবং নিয়ন্ত্রণ পরিচালনা করার জন্য ডিজাইন করা হয়েছে। এটি ঘড়ির সম্পূর্ণ নেভিগেশন সক্ষম করার জন্য ডিজাইন করা হয়নি। আপনার অ্যাপে এক-হাতের জেসচার ব্যবহার করতে এই নির্দেশিকাগুলো অনুসরণ করুন:
- নেভিগেশন সংক্ষিপ্ত করুন: এককালীন কাজের জন্য জেসচার ব্যবহার করুন, যেমন কোনো নোটিফিকেশন বাতিল করা বা মিডিয়া পজ ও পুনরায় চালু করা।
- স্ক্রল পরিমিতভাবে ব্যবহার করুন: প্রধান জেসচার (ডাবল পিঞ্চ) স্ক্রল করার জন্য ব্যবহার করা যেতে পারে, কিন্তু সমস্ত স্ক্রলযোগ্য কন্টেন্টের জন্য এটি ডিফল্ট অভিজ্ঞতা হওয়া উচিত নয়। শুধুমাত্র নিম্নলিখিত শর্তগুলো পূরণ হলেই জেসচার স্ক্রলিং সক্ষম করুন:
- ব্যবহারকারী এক হাতে অথবা হ্যান্ডস-ফ্রি উপায়ে, যেমন—জেসচার, ভয়েস কমান্ড ব্যবহার করে বা মিডিয়া কন্ট্রোল ও ম্যাপস নেভিগেশনের মতো স্বয়ংক্রিয়ভাবে চালু হওয়া স্ক্রিনের মাধ্যমে স্ক্রল ভিউতে প্রবেশ করতে পারেন।
- এই কন্টেন্টটি এক নজরেই প্রয়োজনীয় তথ্য প্রদান করে, যেমন একটি ওয়ার্কআউট সারাংশ, এবং একটি ঐচ্ছিক একক বাটন ছাড়া এর জন্য আর কোনো ইন্টারঅ্যাকশনের প্রয়োজন হয় না; এই বাটনটি স্ক্রল করে দৃশ্যমান হওয়ার পর মূল জেসচার অ্যাকশনটিও নিতে পারে (যেমন একটি ' ডান এজ বাটন')।
- অচলাবস্থা পরিহার করুন: নিশ্চিত করুন যেন জেসচার অ্যাকশনগুলো এমন কোনো অচলাবস্থায় না পৌঁছায়, যেখানে ব্যবহারকারী টাচস্ক্রিন বা কোনো ফিজিক্যাল বাটন ব্যবহার না করে তার পথ আর এগোতে পারেন না।
- লুকানো কাজ পরিহার করুন: শুধুমাত্র অঙ্গভঙ্গির মাধ্যমে করা যায় এমন কোনো কাজ কখনোই লুকাবেন না। যদি কোনো ব্যবহারকারী ডাবল পিঞ্চের মাধ্যমে কোনো কাজ করতে পারেন, তবে একই কাজ সম্পাদনকারী একটি দৃশ্যমান ও ট্যাপযোগ্য বাটন অবশ্যই থাকতে হবে। এর ব্যতিক্রম হলো কব্জি ঘুরিয়ে পেছনে যাওয়ার মতো সার্বজনীন কাজ, যেখানে ব্যবহারকারীর উদ্দেশ্য অনুমান করা কঠিন।
অঙ্গভঙ্গির মিথস্ক্রিয়া প্রবাহ এবং প্রতিক্রিয়া
যখন কোনো অঙ্গভঙ্গি উপলব্ধ থাকে এবং ব্যবহারকারী তা সম্পাদন করেন, তখন নিম্নলিখিত ঘটনাগুলো ঘটে:
- জেসচার হিন্ট: যখন কোনো প্রাইমারি অ্যাকশন জেসচার উপলব্ধ থাকে, তখন স্ক্রিনে সেই জেসচারটি সম্পাদনকারী একটি হাতের অ্যানিমেটেড চিত্র দেখানো হয়, যা ব্যবহারকারীকে জানিয়ে দেয় কোন জেসচারটি উপলব্ধ এবং জেসচারটি কোন UI এলিমেন্টের উপর কাজ করবে। সাধারণত, ডিসমিস অ্যাকশনের জন্য কোনো হিন্ট দেখা যায় না, যদি না এটি স্ক্রিনের কোনো UI এলিমেন্টের সাথে ম্যাপ করা থাকে।
- হ্যাপটিক ফিডব্যাক: জেসচার অ্যাকশনটি সফলভাবে সম্পন্ন হলে একটি সংক্ষিপ্ত ও স্পষ্ট হ্যাপটিক ফিডব্যাক বেজে ওঠে।
শব্দ এবং দৃশ্যমান প্রতিক্রিয়া: কোনো UI উপাদানের সাথে যুক্ত যেকোনো শব্দ বা দৃশ্যমান প্রতিক্রিয়া যা স্পর্শের মাধ্যমে ঘটে, তা অঙ্গভঙ্গির মাধ্যমেও সক্রিয় হওয়া উচিত। একটি সামঞ্জস্যপূর্ণ অভিজ্ঞতা প্রদানের জন্য আপনাকে অবশ্যই আপনার অ্যাপের বিদ্যমান টাচ অডিও এবং ভিজ্যুয়াল কলব্যাকগুলিকে অঙ্গভঙ্গি ইভেন্টের সাথে সংযুক্ত করতে হবে।
উদাহরণস্বরূপ: ক্যামেরার সাথে একটি শাটার সাউন্ড এবং বাটন ইন্টারঅ্যাকশন যুক্ত থাকে, যা জেসচারের মাধ্যমে সক্রিয় করতে হয়।
অঙ্গভঙ্গির ইঙ্গিত, শিক্ষা এবং সেটিংস
জেসচার অ্যাকশনগুলো সহজে খুঁজে পাওয়ার জন্য, পিক্সেল ওয়াচ একটি অন-ওয়াচ ইন্টারেক্টিভ টিউটোরিয়াল এবং জেসচার এপিআই-এর মধ্যে একটি হিন্টস ফ্রেমওয়ার্ক প্রদান করে। জেসচার সেটিংস সিস্টেম সেটিংসেও পাওয়া যায়—পিক্সেল ওয়াচে, সেটিংস > জেসচার > হ্যান্ড জেসচার- এ।
টিউটোরিয়াল অনবোর্ডিং
পিক্সেল ওয়াচে, ব্যবহারকারীদের একটি ইন্টারেক্টিভ টিউটোরিয়াল এবং পিক্সেল টিপসের মাধ্যমে হ্যান্ড জেসচারের সাথে পরিচয় করিয়ে দেওয়া হয়। আপনার অ্যাপের মধ্যে একটি স্বতন্ত্র জেসচার টিউটোরিয়াল তৈরি করার কোনো প্রয়োজন নেই। এর পরিবর্তে, আপনার অ্যাপের মধ্যে কোথায় জেসচারগুলো পাওয়া যাবে, তা ব্যবহারকারীদের জানাতে Wear OS-এর Jetpack Compose দ্বারা প্রদত্ত ইন-কনটেক্সট হিন্টস ব্যবহার করুন।
প্রাসঙ্গিক ইঙ্গিত
আপনার অ্যাপের মধ্যে ব্যবহারকারীদের জেসচার খুঁজে পেতে সাহায্য করার জন্য, জেসচার অ্যাকশনটিকে তার বাস্তব রূপের সাথে যুক্ত করে এমন ইঙ্গিত দিন। সূক্ষ্ম ইঙ্গিতগুলো আরও স্পষ্ট ও সহজে পাঠযোগ্য হয় এবং অন্যান্য UI এলিমেন্টের কাজে ন্যূনতম বাধা সৃষ্টি করে।
প্রাসঙ্গিক ইঙ্গিতের প্রকারভেদগুলো হলো:
- বোতামের ইঙ্গিত
- এটি কোনো UI এলিমেন্টের (যেমন একটি বাটন) মধ্যে একটি অ্যানিমেটেড আইকন হিসেবে প্রদর্শিত হয় এবং সাময়িকভাবে সেই এলিমেন্টের সাধারণ বিষয়বস্তু (যেমন বাটনের লেবেল বা আইকন) লুকিয়ে ফেলে।
- ভাসমান ইঙ্গিত
- একটি ছোট বাবল ওভারলে-র মধ্যে থাকা একটি অ্যানিমেটেড আইকন, যা সেই UI এলিমেন্টটিকে নির্দেশ করে যেটিকে জেসচারটি প্রভাবিত করে। ফ্লোটিং হিন্ট সাধারণত তখন ব্যবহার করা হয় যখন এটি যে UI এলিমেন্টটিকে নির্দেশ করে সেটি হিন্টটিকে ধারণ করার জন্য খুব ছোট হয়। এর প্রধান উদাহরণ হলো স্ক্রলিং, যেখানে হিন্ট বাবলটি স্ক্রল বারের দিকে নির্দেশ করে এটা বোঝাতে যে মূল জেসচারটি স্ক্রল করবে।
- ইঙ্গিতটি যেকোনো প্রধান দিক (উপরে, নিচে, বামে, ডানে) নির্দেশ করতে পারে।
বোতামের ইঙ্গিত
সাময়িকভাবে বিদ্যমান কোনো আইকন বা টেক্সটের সাথে স্থান পরিবর্তন করে।
ভাসমান ইঙ্গিত
স্ক্রিনের এমন একটি উপাদানকে নির্দেশ করে যা বাটন হিন্ট ধারণ করার জন্য খুবই ছোট।
রঙের নির্দেশিকা:
- বোতামের ইঙ্গিত
- ডিফল্টরূপে, অ্যানিমেটেড ভেক্টর ড্রয়েবল (AVD)-এর রঙটি বাটন আইকন বা টেক্সটের রঙের (
LocalContentColor) সাথে মিলিয়ে হালকা আভাযুক্ত করা হয়। - প্রয়োজনে এভিডি-কে নিজের পছন্দমতো রঙে রাঙানো যেতে পারে। তবে সাধারণত, সঠিক কনট্রাস্ট নিশ্চিত করার জন্য এর রঙটি সাময়িকভাবে প্রতিস্থাপিত কন্টেন্টের রঙের মতোই হওয়া উচিত।
- ডিফল্টরূপে, অ্যানিমেটেড ভেক্টর ড্রয়েবল (AVD)-এর রঙটি বাটন আইকন বা টেক্সটের রঙের (
- ভাসমান ইঙ্গিত
- হিন্ট কন্টেইনারে
Tertiaryরঙ প্রয়োগ করা হয়। - এভিডি-র রঙ
onTertiaryপর্যন্ত আভাযুক্ত করা হয়েছে। - আপনি হিন্ট কালার এবং ব্যাকগ্রাউন্ড শেপ কালার উভয়ই কাস্টমাইজ করতে পারেন।
- হিন্ট কন্টেইনারে
বাটনের ইঙ্গিত রঙের নির্দেশিকা

AVD-এর রঙ বাটন আইকন বা টেক্সটের রঙের সাথে মেলে।
ভাসমান ইঙ্গিত রঙের নির্দেশিকা

হিন্ট কন্টেইনার Tertiary ব্যবহার করে এবং এভিডি onTertiary ব্যবহার করে।
ইঙ্গিতের ছন্দের নিয়মাবলী:
ব্যবহারকারীদের জেসচার খুঁজে পেতে সাহায্য করার জন্য, প্ল্যাটফর্মটি একটি নির্দিষ্ট অভিজ্ঞতার জন্য কত ঘন ঘন ইঙ্গিত দেখানো হবে তার একটি কনফিগারযোগ্য ফ্রিকোয়েন্সি প্রদান করে। ইঙ্গিতের এই ঘনত্বের লজিকটি প্রতিটি অভিজ্ঞতার জন্য আলাদা না হয়ে সার্বিকভাবে কাজ করে। Wear OS Gestures ফ্রেমওয়ার্ক এই ঘনত্ব নিয়ন্ত্রণ করে এবং ব্যবহারকারীদের এই ঘনত্ব সামঞ্জস্য করার জন্য একটি সেটিং (Pixel Watch-এ, Gestures > Hand gestures > Gesture hints ) প্রদান করে।
- বোতামের ইঙ্গিত
- জেসচার অ্যাকশনযুক্ত কোনো অ্যাপ প্রথমবার চালু করার সময়, অথবা জেসচার অ্যাকশন যুক্ত করে এমন কোনো অ্যাপ আপডেট করার সময়, প্রাথমিকভাবে সেই অ্যাকশনটির জন্য অন্তত একবার একটি হিন্ট (নির্দেশনা) প্রদর্শিত হয়। হিন্টটি শুধুমাত্র ব্যবহারকারী-নির্ধারিত সময়কালের (যেমন: সর্বদা , দৈনিক , এবং মাসিক ) উপর ভিত্তি করে পুনরায় দেখানো হয়। ডিফল্টরূপে হিন্ট ' সর্বদা' (Always) হিসেবে সেট করা থাকে।
- ভাসমান ইঙ্গিত
- যেহেতু ভাসমান ইঙ্গিতগুলো সংলগ্ন বিষয়বস্তু ঢেকে দেয়, তাই এগুলো প্রতি অভিজ্ঞতায় দিনে সর্বোচ্চ একবার প্রদর্শিত হয়। যদি সামগ্রিক ইঙ্গিতের হার দিনে একবারের ( দৈনিক ) চেয়ে কম কোনো মানে সেট করা থাকে, তাহলে সিস্টেম সেই কম হারের ইঙ্গিতটিই ব্যবহার করে।

অতিরিক্ত সম্পদ
আপনার অ্যাপে এক হাতে ব্যবহারের অঙ্গভঙ্গি কীভাবে প্রয়োগ করবেন সে সম্পর্কে ডেভেলপারদের নির্দেশনার জন্য, Wear OS দিয়ে কব্জির জন্য অ্যাপ তৈরি করুন (Build apps for the wrist with Wear OS) অংশটি দেখুন।