Published on

Xcode loyihasiga haptics va vibratsiya qo'shish

Authors

Haptics β€” bu vibratsiya uchun texnik atama. iOS ilovalarida foydalanuvchi biror tugmani bosganda yoki xato xabari kelganda qurilmani titratish mumkin. Bu, atigi bir necha qator kod bilan, foydalanuvchi tajribasini sezilarli yaxshilaydi.

Muhim eslatma: Vibratsiyani sinab ko'rish uchun ilovani haqiqiy qurilmada ishga tushirish kerak β€” simulyatorda his qilib bo'lmaydi.


HapticManager: Singleton klass

Oldingi videodagi SoundManager kabi, bu yerda ham Singleton pattern ishlatamiz β€” bitta nusxa butun ilova bo'ylab ishlatiladi:

class HapticManager {
    static let instance = HapticManager()

    func notification(type: UINotificationFeedbackGenerator.FeedbackType) {
        let generator = UINotificationFeedbackGenerator()
        generator.notificationOccurred(type)
    }

    func impact(style: UIImpactFeedbackGenerator.FeedbackStyle) {
        let generator = UIImpactFeedbackGenerator(style: style)
        generator.impactOccurred()
    }
}

Ikkita alohida funksiya yaratildi, chunki Apple'ning o'zi haptics'ni ikkiga ajratadi:

  • notification β€” muvaffaqiyat, ogohlantirish, xato kabi holat xabarlari uchun
  • impact β€” jismoniy "zarba" sezgisi uchun

View β€” barcha variantlar

struct HapticsBootcamp: View {
    var body: some View {
        VStack(spacing: 20) {

            // Notification turlari
            Button("Success") {
                HapticManager.instance.notification(type: .success)
            }
            Button("Warning") {
                HapticManager.instance.notification(type: .warning)
            }
            Button("Error") {
                HapticManager.instance.notification(type: .error)
            }

            Divider()

            // Impact turlari
            Button("Soft") {
                HapticManager.instance.impact(style: .soft)
            }
            Button("Light") {
                HapticManager.instance.impact(style: .light)
            }
            Button("Medium") {
                HapticManager.instance.impact(style: .medium)
            }
            Button("Rigid") {
                HapticManager.instance.impact(style: .rigid)
            }
            Button("Heavy") {
                HapticManager.instance.impact(style: .heavy)
            }
        }
    }
}

Qaysi variantni qachon ishlatish kerak

Notification turlari (UINotificationFeedbackGenerator):

TurQachon ishlatiladi
.successAmal muvaffaqiyatli tugaganda
.warningOgohlantirish paydo bo'lganda
.errorXato yuz berganda

Impact turlari (UIImpactFeedbackGenerator):

TurTavsif
.softEng yengil
.lightYengil
.mediumO'rtacha
.rigidQattiqroq
.heavyEng kuchli

Haqiqiy qurilmada sinash

Qurilmani kompyuterga ulang, Xcode'da yuqori chap burchakdagi simulyator ro'yxatidan qurilmangizni tanlang, HapticsBootcampni ilovaning birinchi ekrani qilib qo'ying, va "Run" tugmasini bosing. Har bir tugmani bosganingizda turlicha vibratsiya his qilasiz.


Xulosa

Apple'ning tayyor vibratsiya variantlari (success, error, medium, heavy va boshqalar) ko'pchilik holatlarda yetarli. Maxsus vibratsiya yaratish ham mumkin, ammo bu standart variantlar keng qamrovli va bir necha qator kod bilan ilovangizga juda yaxshi foydalanuvchi tajribasi qo'shadi.

HapticManager.instance.notification(type: .success) yoki HapticManager.instance.impact(style: .medium) β€” ilovangizning istalgan joyidan chaqirishingiz mumkin.

Buy mea coffee