[swift] Swift Presentr를 사용한 실시간 업데이트 처리 방법

이번 블로그 포스트에서는 Swift Presentr 라이브러리를 활용하여 뷰 컨트롤러에 실시간 업데이트를 적용하는 방법에 대해 알아보겠습니다.

Presentr는 Swift로 작성된 뷰 컨트롤러 혹은 액션 시트를 간편하게 생성하고 표시할 수 있는 라이브러리입니다. 이 라이브러리를 사용하면 뷰 컨트롤러가 업데이트될 때 애니메이션 효과를 주거나, 특정한 스타일을 부여하는 등의 작업을 쉽게 처리할 수 있습니다.

Presentr 설치하기

Presentr는 CocoaPods을 통해 설치할 수 있습니다. Podfile에 다음과 같이 라이브러리를 추가합니다.

pod 'Presentr'

그리고 다음 명령어를 실행하여 라이브러리를 설치합니다.

$ pod install

Presentr를 이용한 뷰 컨트롤러 생성하기

Presentr를 이용하여 뷰 컨트롤러를 생성하려면 다음과 같은 절차를 따릅니다.

  1. Presentr 객체 생성하기
  2. 생성할 뷰 컨트롤러 설정하기
  3. 뷰 컨트롤러 보여주기
import Presentr

class MyViewController: UIViewController {

    func showDetailController() {
        let myDetailViewController = MyDetailViewController()
        let presenter: Presentr = {
            let width = ModalSize.full
            let height = ModalSize.full
            let center = ModalCenterPosition.center
            let customType = PresentationType.custom(width: width, height: height, center: center)
            let presenter = Presentr(presentationType: customType)
            presenter.roundCorners = true
            presenter.cornerRadius = 15.0
            return presenter
        }()
        myDetailViewController.customPresentViewController(presenter, viewController: myDetailViewController, animated: true, completion: nil)
    }

}

위의 예제 코드에서는 Presentr 객체를 생성하고, 생성할 뷰 컨트롤러를 설정한 후에 customPresentViewController 메소드를 사용하여 뷰 컨트롤러를 보여주는 것을 확인할 수 있습니다.

Presentr를 이용한 실시간 업데이트 처리하기

뷰 컨트롤러가 실시간으로 업데이트되어야 하는 경우, Presentr를 적절하게 활용할 수 있습니다. 예를 들어, 데이터 변경 시 업데이트된 내용을 바로 보여주는 뷰 컨트롤러가 있다고 가정해봅시다.

class MyDetailViewController: UIViewController {

    func updateData() {
        // 데이터 업데이트 로직
        // ...
        // 업데이트된 데이터를 화면에 반영
    }

}

데이터 업데이트 로직이 실행되고 나서 화면에 업데이트된 내용을 반영하기 위해서는 Presentr를 이용하여 현재 보여지고 있는 뷰 컨트롤러를 다시 표시해야 합니다. 이 때, Presentr를 재사용하거나 새로운 Presentr 객체를 생성하여 사용할 수 있습니다.

import Presentr

class MyDetailViewController: UIViewController {

    let presenter: Presentr = {
        let width = ModalSize.full
        let height = ModalSize.full
        let center = ModalCenterPosition.center
        let customType = PresentationType.custom(width: width, height: height, center: center)
        let presenter = Presentr(presentationType: customType)
        presenter.roundCorners = true
        presenter.cornerRadius = 15.0
        return presenter
    }()

    func updateData() {
        // 데이터 업데이트 로직
        // ...
        // 업데이트된 데이터를 화면에 반영

        // 현재 보여지고 있는 뷰 컨트롤러 갱신
        customPresentViewController(presenter, viewController: self, animated: true, completion: nil)
    }

}

위의 예제 코드에서는 Presentr 객체를 MyDetailViewController 클래스의 속성으로 선언하고, updateData 메소드 내에서 업데이트된 데이터를 화면에 반영한 후 Presentr를 이용하여 뷰 컨트롤러를 갱신하는 방식을 보여주고 있습니다.

마무리

이번 포스트에서는 Swift Presentr 라이브러리를 사용하여 실시간 업데이트 처리 방법에 대해 알아보았습니다. Presentr를 활용하면 뷰 컨트롤러를 간편하게 생성하고, 업데이트된 내용을 실시간으로 보여줄 수 있습니다.

관련 자세한 사항은 Presentr GitHub 저장소를 참고하시기 바랍니다.