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

इस दस्तावेज़ में, Android डिवाइसों पर हैप्टिक फ़ीडबैक के सिद्धांतों के बारे में बताया गया है. इसमें इस्तेमाल के उदाहरण, हैप्टिक इफ़ेक्ट के टाइप (क्लियर, रिच, और बज़ी) के साथ-साथ ऐप्लिकेशन डेवलपर के लिए डिज़ाइन से जुड़ी ज़रूरी गाइडलाइन शामिल हैं. keywords_public: > haptics, vibration, feedback, Android, UI, UX, design, principles, guidelines, HapticFeedbackConstants

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

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

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

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

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

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

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

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

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

हैप्टिक इफ़ेक्ट हटाएं

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

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

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

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

रिच हैप्टिक

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

ज़्यादा बेहतर हैप्टिक इफ़ेक्ट के उदाहरण:

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

बज़ी हैप्टिक

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

हौसले बढ़ाने वाली हैप्टिक सेंसेशन के उदाहरण:

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

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

हैप्टिक डिज़ाइन से जुड़े दिशा-निर्देश

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

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

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

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

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

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

हैप्टिक इफ़ेक्ट इस तरह से न हों कि उपयोगकर्ता को खराब अनुभव मिले या वे ज़रूरत से ज़्यादा लगें.

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

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

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

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

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

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

हैप्टिक की मदद से विज़ुअल और ऑडियो अनुभव डिज़ाइन करना

हैप्टिक को उपयोगकर्ता अनुभव का हिस्सा माना जाता है.

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

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

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

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

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

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