[swift] Swift Koloda를 사용하여 카드 검색 기능 구현하기

Koloda는 Swift로 작성된 카드 기반의 사용자 인터페이스 라이브러리입니다. 이 라이브러리를 사용하면 사용자가 좌, 우로 스와이프하여 카드를 조작할 수 있는 기능을 손쉽게 구현할 수 있습니다. 이번 블로그 포스트에서는 Swift Koloda를 사용하여 카드 검색 기능을 구현하는 방법에 대해 알아보겠습니다.

필요한 준비물

이 예제를 실행하기 위해 몇 가지 준비물이 필요합니다.

  1. Xcode: Swift 코드를 작성하고 실행하기 위해 Xcode 개발 환경이 필요합니다.
  2. Koloda 라이브러리: 이 라이브러리를 다운로드하여 프로젝트에 추가해야 합니다. Koloda GitHub에서 최신 버전을 다운로드하세요.

프로젝트 설정

  1. 새로운 Xcode 프로젝트를 생성합니다.
  2. 다운로드한 Koloda 프로젝트 파일을 Xcode 프로젝트 내에 추가합니다.
  3. Main.storyboard 파일을 열고, View Controller를 추가합니다.
  4. 추가된 View Controller의 Class를 CardSearchViewController로 설정합니다.

View Controller 설정

이제 View Controller의 코드와 Storyboard를 설정해야 합니다.

  1. CardSearchViewController.swift 파일을 열고, 클래스 선언 위에 다음 import 문을 추가합니다.
import Koloda
  1. CardSearchViewController 클래스를 다음과 같이 업데이트합니다.
class CardSearchViewController: UIViewController, KolodaViewDataSource, KolodaViewDelegate {

    @IBOutlet weak var kolodaView: KolodaView!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // KolodaView의 dataSource와 delegate를 self로 설정합니다.
        kolodaView.dataSource = self
        kolodaView.delegate = self
    }

    // MARK: - KolodaViewDataSource

    // KolodaView에서 보여줄 카드의 개수를 반환하는 함수를 구현합니다.
    func kolodaNumberOfCards(_ koloda: KolodaView) -> Int {
        return 10 // 예제로 10개의 카드를 보여줍니다.
    }

    // KolodaView에서 특정 인덱스의 카드를 반환하는 함수를 구현합니다.
    func koloda(_ koloda: KolodaView, viewForCardAt index: Int) -> UIView {
        // 카드 뷰를 생성하고 내용을 설정합니다.
        let cardView = UIView(frame: CGRect(x: 0, y: 0, width: kolodaView.frame.width, height: kolodaView.frame.height))
        cardView.backgroundColor = UIColor.blue
        return cardView
    }

    // MARK: - KolodaViewDelegate

    // 사용자가 카드를 좌측으로 스와이프했을 때 호출되는 함수를 구현합니다.
    func koloda(_ koloda: KolodaView, didSwipeCardAt index: Int, in direction: SwipeResultDirection) {
        if direction == .left {
            // 좌측 스와이프한 경우 추가적인 작업을 수행합니다.
            print("Swiped left")
        }
    }
}
  1. Main.storyboard 파일을 열고, 추가한 View Controller를 선택한 후 오른쪽 패널에서 Identity Inspector를 선택하여 Class를 CardSearchViewController로 설정합니다.
  2. View Controller의 View에서 KolodaView와 연결할 Outlet을 추가합니다. View Controller 클래스 선언 아래에 다음 코드를 추가합니다.
@IBOutlet weak var kolodaView: KolodaView!
  1. 다시 Main.storyboard 파일로 돌아가서 KolodaView를 추가합니다. 추가한 View를 선택한 후 오른쪽 패널에서 Connections Inspector를 선택하고, 아래쪽의 Referencing Outlets에서 kolodaView Outlet과 View Controller를 연결합니다.
  2. KolodaView의 dataSource와 delegate도 이와 같은 방법으로 연결합니다.

실행

이제 프로젝트를 빌드하고 실행하여 카드 검색 기능을 확인할 수 있습니다. 카드 뷰를 좌우로 스와이프하여 다른 카드를 볼 수 있고, 좌측으로 스와이프한 경우 “Swiped left”가 출력됩니다.

카드 검색 기능은 이 예제를 기반으로 원하는 방식으로 수정하고 추가로 개발할 수 있습니다. Koloda 라이브러리의 다양한 기능과 설정 옵션을 확인하고 응용할 수도 있습니다.

이제 Swift Koloda를 사용하여 카드 검색 기능을 구현하는 방법에 대해 알아보았습니다. 즐거운 프로그래밍 되세요!

참고 자료: