Dokunma teknolojisi kullanıcı deneyimi tasarımı

HAL ile API arasındaki sabitleri eşleme bölümünde tanıtılan HAL-API sabitleri eşlemesi, kullanıcı deneyimiyle ilgili şiddetle tavsiye edilen tasarım ilkelerine dayanır. UX tasarım ilkeleri, Android dokunma teknolojisi API'lerini kullanırken nasıl, ne zaman ve neyin kullanılacağının temelini tanımlar. Bu temel ilkeler hakkında daha fazla bilgi edinmek için Advanced Haptics: The When, What, and How of New Haptic APIs (Gelişmiş Dokunsal Geri Bildirim: Yeni Dokunsal Geri Bildirim API'lerinin Ne Zaman, Ne Şekilde ve Nasıl Kullanılacağı) başlıklı makaleyi inceleyin.

Sabit Eşleme

Şekil 1. HAL-API sabit eşleme: Ayrık model

Dokunsal efektleri seçme

Dokunsal güce göre (VibrationEffect)

Tercih ettiğiniz dokunsal gücü (VibrationEffect) belirlerken başlamak için en iyi yer EFFECT_CLICK'dır: EFFECT_TICK'ın "hafif" dokunsal gücü ile EFFECT_HEAVY_CLICK'ın "yoğun" dokunsal gücü arasındaki ortancadır. EFFECT_CLICK ile başlayarak EFFECT_HEAVY_CLICK ile güç ekleyip kavramsal enerjiyi artırabilir veya EFFECT_TICK ile gücü azaltarak kavramsal enerjiyi düşürebilirsiniz. Tekrarlandığı için EFFECT_DOUBLE_CLICK sembolünün en yüksek kavramsal enerjiyi sağladığını unutmayın.

Dokunsal Geri Bildirim Gücü

Şekil 2. Dokunma gücü ayarları

Giriş etkinliklerine ve kullanıcı arayüzü öğelerine göre (HapticFeedbackConstants)

Hedefiniz belirli giriş etkinlikleriyle (ör. uzun basma veya kaydırma) ya da kullanıcı arayüzü öğeleriyle (ör. klavye) ilişkiliyse HapticFeedbackConstants içinde önceden tanımlanmış dokunsal sabitleri bulun. Her sabitin adı, KEYBOARD_PRESS veya LONG_PRESS gibi belirli kullanım alanlarını ifade eder.

Gerçek hayattaki düğmeye basma etkinliklerini simüle etme

Giriş etkinliklerinin (sanal ekran üstü düğmeler) dokunsal geribildirimi, fiziksel varlıklar (ör. mekanik sert düğmeler) kullanılarak düğmeye basma işlemini simüle edebilir.

Giriş etkinliği: Çiftler halinde etkileşim akışı

Tıklama etkinliği, mekanik bir düğmenin davranışını simüle etmek için tasarlanmıştır. Bu düğme önce basılır, ardından bırakılır. Bir düğmeye basıldığında oluşan mekanik itkiden algılanan enerji, düğme bırakıldığında oluşan mekanik itkiden daha yüksektir. Bu nedenle, düğmeye basma işlemindeki dokunsal geri bildirim, düğmeyi bırakma işlemindeki dokunsal geri bildirimden daha güçlüdür.

Etkinlik Basma ve Dokunsal Geri Bildirim Bırakma

Şekil 3. İkili giriş etkinliğine göre dokunsal efektler

Dokunsal güç: Düğmeye basma olanağı

Daha kısa ve daha az etkileşim içeren giriş etkinlikleri, daha hafif dokunsal geri bildirimlerle ilişkilendirilir. Daha uzun ve derin etkileşim içeren giriş etkinlikleri, daha güçlü dokunsal geri bildirimlerle ilişkilendirilir.

Basma İşlemiyle İlgili Dokunma Teknolojisi

Şekil 4. Haptic effects by affordance

Hareket girişi etkinliğinde sanal dokuyu simüle etme

İşarete dayalı giriş (ör. kaydırma veya ekranı temizleme), parmak ekranda hareket ederken görsel kullanıcı arayüzleriyle birlikte sanal dokunsal dokularla uyumlu hale getirilebilir. Örneğin, parmak sanal onay işareti kullanıcı arayüzü öğeleriyle saat kullanıcı arayüzünde hareket ederken tekrarlanan dokunsal geri bildirim oluşturulabilir.

Sanal dokunsal dokular için efektler tekrarlanacak şekilde tasarlanmıştır. Bu durum, algılanan enerjinin genlikten daha yüksek olmasına neden olur (etki tekrarsız veya yalnızca bir kez olarak adlandırıldığında). Bu nedenle, sanal dokunsal dokular için tasarlanmış dokunsal sabitler (ör. CLOCK_TICK veya TEXT_HANDLE_MOVE), tekrarlanan ipuçlarıyla hareket hissi sağlamak için hafif olmalıdır.

Sanal Doku

Şekil 5. Sanal dokuyu simüle eden dokunsal efektler

Duyguları dahil et

Dokunsal efektlere olumlu veya olumsuz duygular eklemek için kullanıcının dikkatini çekmek üzere olumsuz duygulara daha güçlü bir his uygulayın.

Dokunsal Hissiyat

Şekil 6. Duygu içeren dokunsal efektler

Uzun titreşimden kaynaklanan duyulabilir gürültüyü önleme

Dikkat çekmeye yönelik dokunma teknolojisi için uzun titreşimden kaynaklanan duyulabilir gürültüyü önlemek amacıyla, artan bir efekt oluşturmak için deseni sorunsuz bir şekilde hızlandırın. Bunu, createWaveform(long[] timings, int[] amplitudes, int repeat) kullanarak yapabilirsiniz.

Uzun Titreşim

Şekil 7. Uzun titreşimli artış efekti