[SwiftUI] 햅틱 반응 적용하기

2023. 11. 15. 03:20· → Swift Archive
목차
  1. SensoryFeedback
  2. 내가 구현한 HapticFeedback

iOS 앱을 만들다보면 햅틱 반응이 앱을 한층 더 풍부하게 만들어 준다는 생각이 든다. 물론 무분별하게 쓰면 안되겠지만 그래도 강조하고 싶은 인터렉션이나 사용자 관점에서 좋은 경험을 줄 수 있다면 적극적으로 사용하는 것도 좋을 것 같다.

 

SensoryFeedback

우선 최근 17.0 버전부터 지원하는 SensoryFeedback 이라는 것이 있다. 

사용방법은 아래와 같다. 아래와 같이 버튼과 연결하여 hapticFeedback 이 true 가 되면 .success 라는 햅틱 피드백을 줄 수 있다.

import SwiftUI

struct HapticView: View {
    @State var hapticFeedback = false
    
    var body: some View {
        Button("햅틱") {
            hapticFeedback = true
        }
        .sensoryFeedback(.success, trigger: hapticFeedback)
    }
}

내가 구현한 HapticFeedback

아래는 내가 쓰는 햅틱 방법이다. 보통 햅틱을 action 과 함께 쓰기 때문에 action 과 같이 끼워 넣는다. 방법이 틀릴 수는 있겠지만 나는 정적(static) 메서드로 구현하여 객체의 인스턴스를 생성할 필요가 없고, 간단하게 햅틱 피드백을 호출할 수 있도록 만들었다.

import SwiftUI

final class Haptic {
    static func notification(type: UINotificationFeedbackGenerator.FeedbackType) {
        let generator = UINotificationFeedbackGenerator()
        generator.notificationOccurred(type)
    }
    
    static func impact(style: UIImpactFeedbackGenerator.FeedbackStyle) {
        let generator = UIImpactFeedbackGenerator(style: style)
        generator.impactOccurred()
    }
}

사용방법

아래와 같이 아주아주 간단하게 사용할 수 있다. 어떠한 조건을 걸어줄 수도 있고, 활용도가 높고 사용하기 편해서 나는 이렇게 쓴다.

import SwiftUI

struct HapticView: View {    
    var body: some View {
        Button("햅틱") {
            Haptic.impact(style: .soft)
        }
    }
}

 

참고자료

 

SensoryFeedback | Apple Developer Documentation

Represents a type of haptic and/or audio feedback that can be played.

developer.apple.com

'→ Swift Archive' 카테고리의 다른 글

[SwiftUI] 네트워크 연결 확인하기  (0) 2024.01.23
[SwiftUI] 커스텀 글래스모피즘 구현하기  (0) 2024.01.10
[SwiftUI] PolygonChart 만들기  (1) 2023.12.15
[SwiftUI] 원하는 코너에 Round Corner 적용하기  (0) 2023.11.15
[SwiftUI] 네비게이션 Back 버튼 커스텀  (0) 2023.11.12
  1. SensoryFeedback
  2. 내가 구현한 HapticFeedback
'→ Swift Archive' 카테고리의 다른 글
  • [SwiftUI] 커스텀 글래스모피즘 구현하기
  • [SwiftUI] PolygonChart 만들기
  • [SwiftUI] 원하는 코너에 Round Corner 적용하기
  • [SwiftUI] 네비게이션 Back 버튼 커스텀
Swift librarian
Swift librarian
Swift librarian
Swift Library
Swift librarian
전체
오늘
어제
  • 분류 전체보기 (231)
    • 📺 Programming (5)
    • → Architecture (2)
    • → Design Pattern (0)
    • → Computer Science (15)
    • ⚙️ Algorithm (0)
    • → 알고리즘 관련 (22)
    • → Problems (104)
    • 🚀 Project (0)
    • → 알쏭달쏭 (0)
    • → Shook (2)
    • → Solver (8)
    • → Taster (7)
    • → Outline (4)
    • → Pointer (2)
    • → Guesser (3)
    • 🦜 Swift (2)
    • → Swift Archive (12)
    • → Swift Study (12)
    • → Xcode (6)
    • 🧰 Framework (0)
    • → Foundation (1)
    • → UIKit (2)
    • → SwiftUI (3)
    • → CoreData (2)
    • → MapKit (1)
    • → CoreHaptic (1)
    • → User Notification (1)
    • → StoreKit (2)
    • 🏛️ Library (0)
    • → TCA (0)
    • 🐈‍⬛ Git (8)
    • → Git의 원리 (2)
    • → Git 심화 (1)
    • 📦 Other (1)
    • 👦🏻 Log (0)

최근 글

hELLO · Designed By 정상우.v4.2.2
Swift librarian
[SwiftUI] 햅틱 반응 적용하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.