[swift] Swift UI에서 다른 앱과의 상호작용 방법에 대해 알려주세요.

Swift UI는 iOS 앱 개발을 위한 사용자 인터페이스 빌딩 프레임워크입니다. 다른 앱과의 상호작용은 다른 앱과의 데이터 공유, 파일 및 URL 공유, 인증 및 인터액션 등을 포함합니다. 아래 예제 코드와 함께 이러한 상호작용 방법을 살펴보겠습니다.

1. 다른 앱과의 데이터 공유

Swift UI에서는 UIActivityViewController를 사용하여 데이터를 다른 앱과 공유할 수 있습니다. 예를 들어, 텍스트를 다른 앱에 공유하는 코드는 다음과 같습니다.

Button(action: {
    let text = "Hello, world!"
    let activityVC = UIActivityViewController(activityItems: [text], applicationActivities: nil)
    UIApplication.shared.windows.first?.rootViewController?.present(activityVC, animated: true, completion: nil)
}) {
    Text("Share Text")
}

2. 파일 및 URL 공유

파일이나 URL을 다른 앱과 공유하려면 UIDocumentInteractionController를 사용할 수 있습니다. 다음은 이미지를 공유하는 예제 코드입니다.

Button(action: {
    if let imageURL = Bundle.main.url(forResource: "image", withExtension: "png") {
        let documentController = UIDocumentInteractionController(url: imageURL)
        documentController.presentOpenInMenu(from: .zero, in: UIApplication.shared.windows.first?.rootViewController?.view, animated: true)
    }
}) {
    Text("Share Image")
}

3. 인증 및 인터액션

다른 앱과의 인증 및 인터액션은 각 앱에 대한 고유한 SDK 및 API를 사용할 수 있습니다. 예를 들어, Facebook SDK를 사용하여 Facebook에 로그인하는 코드는 다음과 같습니다.

Button(action: {
    // Facebook 로그인 처리
    let loginManager = LoginManager()
    loginManager.logIn(permissions: ["public_profile", "email"], viewController: UIApplication.shared.windows.first?.rootViewController) { loginResult in
        switch loginResult {
        case .success(let grantedPermissions, let declinedPermissions, let accessToken):
            // 로그인 성공 처리
        case .cancelled:
            // 사용자가 로그인 취소
        case .failed(let error):
            // 로그인 실패 처리
        }
    }
}) {
    Text("Login with Facebook")
}

Swift UI에서 다른 앱과의 상호작용 방법을 살펴보았습니다. 추가적인 상호작용 방법은 각 앱에 대한 공식 문서 및 SDK를 참조하시기 바랍니다.