[swift] Swift SkeletonView 디자인 가이드라인

Swift SkeletonView는 iOS 앱에서 스켈레톤 뷰를 구현하는 데 도움이 되는 오픈 소스 라이브러리입니다. 스켈레톤 뷰는 앱이 데이터를 로딩하는 동안 사용자에게 로딩 상태를 시각적으로 보여주는 역할을 합니다. 이 글에서는 Swift SkeletonView를 사용하여 좋은 사용자 경험을 제공하기 위한 디자인 가이드라인을 안내하겠습니다.

1. 로딩 화면에 SkeletonView 적용하기

앱이 데이터를 로딩하는 동안, 보통 로딩 화면을 사용자에게 보여줍니다. 이때, SkeletonView를 사용하여 로딩 화면을 표현할 수 있습니다. SkeletonView를 로딩 화면에 적용하는 방법은 아래와 같습니다.

import SkeletonView

class LoadingViewController: UIViewController {

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        view.showAnimatedSkeleton()
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        view.hideSkeleton(transition: .crossDissolve(0.25))
    }

}

위 예제 코드에서 viewWillAppear 메서드에서 showAnimatedSkeleton()을 호출하여 로딩 화면에 SkeletonView를 표시하고, viewWillDisappear 메서드에서 hideSkeleton을 호출하여 SkeletonView를 숨깁니다. 이렇게 로딩 화면에 SkeletonView를 적용하면 사용자에게 로딩 중임을 시각적으로 전달할 수 있습니다.

2. 데이터 로딩이 완료된 후 SkeletonView 숨기기

데이터가 로딩되어 화면에 표시되기 시작하면, SkeletonView를 숨기는 것이 좋습니다. 이렇게 함으로써 사용자는 실제 데이터가 로딩되고 나타났음을 알 수 있습니다. 데이터 로딩이 완료된 후 SkeletonView를 숨기는 방법은 아래와 같습니다.

import SkeletonView

class DataViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        loadData()
    }

    func loadData() {
        // 데이터 로딩 로직 작성
        
        // 데이터 로딩 완료 후 SkeletonView 숨김
        view.hideSkeleton(transition: .crossDissolve(0.25))
    }

}

위 예제 코드에서 loadData() 메서드에서 실제 데이터 로딩 로직을 작성합니다. 데이터 로딩이 완료되면 view.hideSkeleton()을 호출하여 SkeletonView를 숨깁니다.

3. 적절한 SkeletonView 애니메이션 사용하기

SkeletonView는 다양한 애니메이션 효과를 제공하여 로딩 중인 화면을 보다 생동감 있고 유려하게 표현할 수 있습니다. 다양한 애니메이션 효과 중에서 적절한 효과를 선택하는 것이 중요합니다. SkeletonView에서 제공하는 애니메이션 효과에는 solid, gradient, sparkling, none 등이 있습니다. 아래 예제 코드는 Gradient 애니메이션을 사용한 SkeletonView를 보여줍니다.

import SkeletonView

class LoadingViewController: UIViewController {

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        view.showAnimatedGradientSkeleton()
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        view.hideSkeleton(transition: .crossDissolve(0.25))
    }

}

위 예제 코드에서 showAnimatedGradientSkeleton()을 호출하여 Gradient 애니메이션 효과를 적용한 SkeletonView를 표시하고, hideSkeleton()을 호출하여 SkeletonView를 숨깁니다.

결론

Swift SkeletonView를 사용하면 사용자에게 로딩 상태를 시각적으로 표현하여 좋은 사용자 경험을 제공할 수 있습니다. 로딩 화면에 SkeletonView를 적용하고, 데이터 로딩이 완료된 후 SkeletonView를 숨기는 등의 디자인 가이드라인을 따르면 앱의 사용성을 향상시킬 수 있습니다. Swift SkeletonView의 다양한 기능과 애니메이션 효과를 활용하여 사용자에게 동적이고 흥미로운 로딩 화면을 제공할 수 있습니다.

참고 자료: