[ios] 컨텐츠 공유 및 저장

iOS 앱을 개발하다보면 사용자가 앱에서 본 컨텐츠를 손쉽게 다른 앱으로 공유하거나 저장할 수 있게끔 하는 기능을 구현해야 할 때가 있습니다. 이번 포스팅에서는 iOS 앱에서 컨텐츠를 공유하고 저장하는 방법에 대해 알아보겠습니다.

컨텐츠 공유하기

사용자가 앱 내에서 본 이미지, 텍스트, 링크 등을 다른 앱으로 공유하려면 UIActivityViewController를 사용하면 됩니다.

let text = "이것은 공유할 텍스트입니다."
let image = UIImage(named: "exampleImage.jpg")

let activityViewController = UIActivityViewController(activityItems: [text, image], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)

위와 같이 UIActivityViewController에 공유할 컨텐츠와 액티비티를 설정한 후, present를 통해 화면에 표시하여 사용자가 원하는 액션을 선택할 수 있게끔 할 수 있습니다.

컨텐츠 저장하기

컨텐츠를 앱 내부에 저장하려면 Core DataRealm과 같은 로컬 데이터베이스를 사용할 수 있습니다. 또한 사용자가 본 이미지나 문서를 기기 내 파일 시스템에 저장하려면 FileManager를 사용하여 파일을 저장할 수 있습니다.

guard let data = image.jpegData(compressionQuality: 1) else { return }
let fileManager = FileManager.default
let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!

let fileURL = documentsURL.appendingPathComponent("exampleImage.jpg")
do {
    try data.write(to: fileURL)
} catch {
    print("Error saving image: \(error.localizedDescription)")
}

위 코드는 이미지를 JPEG 형식으로 인코딩한 후, FileManager를 사용하여 디렉토리에 해당 이미지를 저장하는 예시입니다.

결론

iOS 앱에서 컨텐츠를 손쉽게 공유하고 저장하는 방법을 알아보았습니다. UIActivityViewController를 활용하여 컨텐츠를 다른 앱과 공유하거나, FileManager를 사용하여 앱 내부에 컨텐츠를 저장할 수 있습니다. 사용자 친화적인 인터페이스와 기능적인 면에서 고려하여, 적합한 방법을 선택하여 구현하면 됩니다.