हैप्टिक डिज़ाइन के सिद्धांत

मोबाइल डिवाइसों पर, हैप्टिक फ़ीडबैक का कम इस्तेमाल करना बेहतर होता है. बहुत ज़्यादा कंपन से परेशानी हो सकती है. साथ ही, हाथों में सुन्नपन भी महसूस हो सकता है. ऐसा इसलिए, क्योंकि आम तौर पर डिवाइस, उपयोगकर्ता के हाथ में होता है और उस पर उसका पूरा ध्यान होता है. इससे उपयोगकर्ता के काम में भी रुकावट आ सकती है. इस वजह से, उपयोगकर्ता सभी हैप्टिक्स को तुरंत बंद कर सकता है. हालांकि, बेहतर तरीके से तैयार किए गए हैप्टिक्स, उपयोगकर्ताओं को अहम संवेदी सुझाव देते हैं. इससे, उपयोगकर्ता अपने डिवाइस से ज़्यादा जुड़ पाते हैं.

इस पेज पर, हैप्टिक्स का इस्तेमाल करने के उदाहरण दिए गए हैं. साथ ही, हैप्टिक इफ़ेक्ट के लिए कैटगरी के बारे में बताया गया है. इसके अलावा, ऐप्लिकेशन के लिए बुनियादी दिशा-निर्देश भी दिए गए हैं.

अपने ऐप्लिकेशन में हैप्टिक्स जोड़ने के उदाहरण

अपने ऐप्लिकेशन में हैप्टिक्स की सुविधा जोड़ने की कुछ वजहें यहां दी गई हैं.

  • उपयोगकर्ता को किसी ऐसे इवेंट की सूचना देने के लिए जिस पर उन्हें ध्यान देने की ज़रूरत है. उदाहरण के लिए, आने वाला फ़ोन कॉल या टेक्स्ट मैसेज या कैलेंडर में मौजूद कोई मीटिंग.

  • उपयोगकर्ता की कार्रवाई के बाद, डिवाइस की स्थिति में हुए बदलाव की पुष्टि करने के लिए. उदाहरण के लिए, बटन दबाने पर मिलने वाला क्लिक फ़ीडबैक, फ़ोन अनलॉक करना, फ़िंगरप्रिंट स्वीकार या अस्वीकार करना या कैमरा चालू करना.

  • इफ़ेक्ट की मदद से उपयोगकर्ता को खुश करने के लिए. इस तरह के इफ़ेक्ट से, उपयोगकर्ता की मौजूदा कार्रवाई को बेहतर बनाया जा सकता है या किसी असल इंटरैक्शन को दिखाया जा सकता है. उदाहरण के लिए, स्क्रीन पर स्क्रोल करने पर मिलने वाला फ़ीडबैक, स्लाइडर के अपने-आप अपनी जगह पर आ जाने की सुविधा या ऐनिमेशन, आवाज़ों, वीडियो, और गेम के साथ सिंक होने वाले हैप्टिक इफ़ेक्ट.

हैप्टिक्स की कैटगरी

यहां दिए गए हैप्टिक प्रिंसिपल, साफ़ हैप्टिक, रिच हैप्टिक, और बज़ी हैप्टिक के हिसाब से डिज़ाइन किए गए हैं.

हप्टिक्स की सुविधा बंद करना

साफ़ हप्टिक्स का मतलब है, बटन दबाने जैसी किसी अलग इवेंट से जुड़ी साफ़ और सटीक अनुभूति. आम तौर पर, इन इफ़ेक्ट का मकसद असल दुनिया में होने वाली किसी कार्रवाई की नकल करना होता है. जैसे, किसी बटन को दबाने पर होने वाली कार्रवाई.

Android में VibrationEffect में, पहले से तय किए गए हैप्टिक इफ़ेक्ट मौजूद हैं. हालांकि, आम तौर पर ऐप्लिकेशन को HapticFeedbackConstants से, कार्रवाई पर आधारित कॉन्स्टेंट का इस्तेमाल करना चाहिए. इससे यह पक्का किया जा सकता है कि डिवाइस पर असर और कार्रवाई एक जैसी हो.

कार्रवाई पर आधारित कॉन्स्टेंट का एक और फ़ायदा यह है कि अगर उपयोगकर्ता के डिवाइस पर ज़्यादा जटिल इफ़ेक्ट काम नहीं करता है, तो प्लैटफ़ॉर्म फ़ॉलबैक व्यवहार दे सकता है.

हैप्टिक फ़ीडबैक के इस्तेमाल के उदाहरणों को बढ़ाने पर, कभी-कभी उपलब्ध साफ़ हैप्टिक्स, सामान्य और एक जैसे लग सकते हैं. ऐसे में, बेहतर तरीके से जानकारी देने वाले रिच हैप्टिक्स का इस्तेमाल करें.

बेहतर हैप्टिक

आम तौर पर, बेहतर हैप्टिक्स के लिए ऐसे हैप्टिक ऐक्चुएटर की ज़रूरत होती है जिनकी फ़्रीक्वेंसी बैंडविड्थ ज़्यादा हो. इससे, ज़्यादा बेहतर तरीके से और ज़्यादा रेंज में हैप्टिक्स का इस्तेमाल किया जा सकता है. अलग-अलग ऐम्प्ल्यट्यूड और इंटरवल में, साफ़ हैप्टिक्स प्रिमिटिव को क्रम से लगाकर भी बेहतर हैप्टिक्स पैदा किए जा सकते हैं.

रिच हैप्टिक इफ़ेक्ट के उदाहरण:

  • "फ़्लटर" वाली संवेदना, जैसे कि आपकी उंगलियों पर तितली अपने पंख फ़्लैप कर रही हो
  • किसी सतह को उंगली से खींचने या उस पर स्वाइप करने पर, उस सतह का टेक्स्चर
  • डगमगाहट और अस्थिरता या भारीपन और गूंजने की भावना

बज़ी हैप्टिक

बज़ी हैप्टिक्स की सुविधा में, ज़ोर से, तेज़ और काफ़ी गहरे वाइब्रेशन महसूस किए जा सकते हैं. इनसे वाइब्रेशन खत्म होने के बाद भी, झुनझुनी जैसी अनुभूति होती है. वाइब्रेशन बंद होने से पहले, इसमें एक तरह की आवाज़ भी आती है, जो कि गूंजने जैसी होती है.

हफ़्टी हप्टिक सेंसेशन के उदाहरण:

  • जैकहैमर चलाना
  • मोटरसाइकल चलाना
  • मोबाइल डिवाइसों में, किसी बटन को दबाने के बाद लंबे समय तक बजने वाला वाइब्रेशन

पेजर और फ़ीचर फ़ोन के ज़माने से, कम परफ़ॉर्मेंस वाले हैप्टिक ऐक्चुएटर या ड्राइवर वाले लो-एंड मोबाइल फ़ोन, सूचनाओं के लिए लंबे समय तक ज़्यादा आवाज़ में वाइब्रेट करते थे.

वाइब्रेशन डिज़ाइन के दिशा-निर्देश

डिज़ाइन से जुड़े दिशा-निर्देशों को खास तौर पर इस तरह समझा जा सकता है:

  • बज़ वाले हैप्टिक्स के बजाय, बेहतर और साफ़ हैप्टिक्स का इस्तेमाल करें.
  • सिस्टम और ऐप्लिकेशन, दोनों के डिज़ाइन में एक जैसा फ़ॉर्मैट इस्तेमाल करें.
  • इस्तेमाल की फ़्रीक्वेंसी और अहमियत का ध्यान रखें.

पहले से तय किए गए हैप्टिक कॉन्स्टेंट और इफ़ेक्ट को प्राथमिकता देना

अगर आपकी कार्रवाई, HapticFeedbackConstants में मौजूद पहले से तय की गई कार्रवाई के दायरे में आती है, तो उस कॉन्स्टेंट का इस्तेमाल करें. इससे, उपयोगकर्ता के इंटरैक्शन का अनुभव एक जैसा बना रहता है. यह सुविधा, ऐप्लिकेशन को ऐक्सेस करने के लिए खास तौर पर अहम है.

अगर आपको अपना इफ़ेक्ट बनाना है, तो VibrationEffect पहले से तय किए गए इफ़ेक्ट और VibrationEffect.Composition प्राइमिटिव का इस्तेमाल करें. इनकी मदद से, उन सभी डिवाइसों पर एक जैसी क्वालिटी का अनुभव मिल सकता है जिन पर ये काम करते हैं.

इवेंट की अहमियत और फ़्रीक्वेंसी को सिग्नल की मज़बूती से जोड़ना

हैप्टिक इफ़ेक्ट, उपयोगकर्ता को परेशान न करें या उन्हें बेवजह न लगें.

  • स्क्रोल करने या टेक्स्ट हैंडल को एक जगह से दूसरी जगह ले जाने जैसे बार-बार होने वाले इवेंट पर, हैप्टिक इफ़ेक्ट काफ़ी हल्के होने चाहिए, ताकि लोगों को अच्छा अनुभव मिल सके.

  • किसी टॉगल को बदलने या सूची पर स्क्रोल करने की तुलना में, किसी पेज को रीफ़्रेश करने या फ़ॉर्म सबमिट करने जैसे अहम इवेंट को ज़्यादा अहमियत दी जानी चाहिए.

  • दोनों कॉन्सेप्ट को मिलाकर ऐसे इफ़ेक्ट बनाएं जो इंटरैक्शन के टारगेट तक पहुंचने पर ज़्यादा असरदार हों. उदाहरण के लिए, खींचने, छोड़ने या स्नैप करने की कार्रवाइयों की मदद से, टिक के क्रम के ऐम्प्ल्यट्यूड को धीरे-धीरे बढ़ाना.

नियमित तौर पर वीडियो अपलोड करना

अपने ऐप्लिकेशन में, वाइब्रेशन की सुविधा को एक जैसा रखें. अगर किसी खास इंटरैक्शन, जैसे कि फ़ॉर्म सबमिशन या इन-ऐप्लिकेशन नेविगेशन में हैप्टिक फ़ीडबैक है, तो पक्का करें कि मिलते-जुलते सभी इंटरैक्शन पर एक ही तरह का असर लागू हो. इससे उपयोगकर्ताओं को किसी खास तरह के हैप्टिक फ़ीडबैक का मतलब समझने में मदद मिलती है.

समय चुनने वाले टूल या वर्चुअल कीबोर्ड जैसे इंटरैक्शन के लिए, HapticFeedbackConstants का इस्तेमाल करें. इससे, Android सिस्टम के साथ आपके ऐप्लिकेशन का काम करने का तरीका एक जैसा रहेगा.

वाइब्रेशन के साथ विज़ुअल और ऑडियो अनुभव को डिज़ाइन करना

हैप्टिक्स को उपयोगकर्ता अनुभव के हिस्से के तौर पर देखें.

हमारा सुझाव है कि विज़ुअल, ऑडियो, और हैप्टिक इफ़ेक्ट को एक साथ डिज़ाइन करें. इसे विज़ुअल ऐनिमेशन और साउंड पैटर्न के साथ अटपटे या अलग न होने दें. विज़ुअल और ऑडियो इनपुट से, हैप्टिक्स की क्वालिटी को बेहतर बनाया जा सकता है. साथ ही, अच्छी तरह से डिज़ाइन किए गए हैप्टिक्स इफ़ेक्ट से, विज़ुअल और ऑडियो इफ़ेक्ट को असली अनुभव दिया जा सकता है.

इसके उलट, अगर वाइब्रेशन फ़ीडबैक सिंक नहीं होता है या विज़ुअल और ऑडियो इफ़ेक्ट के साथ मेल नहीं खाता है, तो उपयोगकर्ता को थोड़ी परेशानी हो सकती है. कुछ मामलों में, उपयोगकर्ता को ऐसा लग सकता है कि हैप्टिक ऐक्चुएटर खराब हो गया है.

हैप्टिक फ़ीडबैक के लिए, लेगसी वन-शॉट वाइब्रेशन से बचना

VibrationEffect.createOneShot से तय किए गए या एपीआई Vibrator.vibrate(long) और Vibrator.vibrate(long[], int) के साथ किए गए सिर्फ़ एक बार वाइब्रेट करने की सुविधा का इस्तेमाल करने से बचें.

इनवर्ड वेवफ़ॉर्म के खत्म होने के बाद, अगर ये वाइब्रेशन लंबे समय तक चलते हैं, तो आपको इनसे परेशानी हो सकती है. ऐसा खास तौर पर, उन डिवाइसों पर होता है जिनमें हैप्टिक ऐक्चुएटर या ड्राइवर की परफ़ॉर्मेंस खराब होती है.

बटन दबाने पर मिलने वाले अच्छे हैप्टिक फ़ीडबैक सिग्नल की अवधि 10 से 20 मिलीसेकंड के बीच होनी चाहिए. हालांकि, ऐक्चुएटर में 20 मिलीसेकंड का इनपुट खत्म होने के बाद भी, ऐक्चुएटर 20 से 50 मिलीसेकंड तक बजता रह सकता है. इसलिए, इस तरह के सुझाव/राय या शिकायत के लिए, एक बार के वाइब्रेशन से बचना बेहतर होता है.