Firebase는 Google에서 제공하는 개발 플랫폼으로, 앱 개발에 필요한 다양한 기능을 제공합니다. 그 중 Dynamic Links는 앱 내에서 커스텀 링크를 생성하고 공유할 수 있는 기능입니다. 이번 글에서는 Swift에서 Firebase의 Dynamic Links를 사용하여 커스텀 링크 공유 기능을 구현하는 방법에 대해 알아보겠습니다.
Firebase 프로젝트 설정
- Firebase 콘솔에 로그인하고 프로젝트를 만듭니다.
- 생성한 프로젝트에 iOS 앱을 추가합니다.
- Firebase 콘솔에서 “Dynamic Links” 탭으로 이동하고, “시작하기” 버튼을 눌러 주요 설정을 완료합니다.
- 앱에 Firebase SDK를 추가하고,
GoogleService-Info.plist
파일을 다운로드하여 프로젝트에 추가합니다.
Dynamic Links 생성
Firebase의 Dynamic Links는 커스텀 링크를 생성하고, 그 링크를 공유하여 다른 사용자를 중복 없이 앱 내의 특정 화면으로 이동시킬 수 있습니다. 아래는 Dynamic Links를 생성하는 간단한 예제 코드입니다.
import FirebaseDynamicLinks
func createDynamicLink() {
guard let link = URL(string: "https://yourapp.com/invite?referralCode=12345") else { return }
let dynamicLinksDomain = "yourapp.page.link"
let linkBuilder = DynamicLinkComponents(link: link, domain: dynamicLinksDomain)
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.yourapp.bundle")
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.yourapp.package")
linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.navigationInfoParameters = DynamicLinkNavigationInfoParameters()
guard let longDynamicLink = linkBuilder.url else { return }
DynamicLinkComponents.shortenURL(longDynamicLink) { (shortURL, warnings, error) in
if let error = error {
print("Error creating Dynamic Link: \(error.localizedDescription)")
return
}
if let shortURL = shortURL {
print("Generated Dynamic Link: \(shortURL.absoluteString)")
}
if let warnings = warnings {
for warning in warnings {
print("Dynamic Link Warning: \(warning)")
}
}
}
}
이 예제 코드에서 “https://yourapp.com/invite?referralCode=12345”은 커스텀 링크의 기본 URL입니다. iOS 및 Android 매개 변수를 설정하고, 필요에 따라 소셜 메타 태그 및 네비게이션 정보 매개 변수를 추가로 설정할 수 있습니다. 생성한 Dynamic Link를 Firebase SDK의 shortenURL
메서드를 사용하여 짧은 URL로 변환시킬 수 있습니다.
Dynamic Links를 통한 앱 내 화면 이동
앱 내에서 생성한 Dynamic Link를 다른 사용자와 공유하고, 해당 링크를 클릭하면 앱 내의 특정 화면으로 이동할 수 있습니다. 아래는 앱을 실행시키고 Dynamic Link를 처리하여 특정 화면으로 이동하는 예제입니다.
import FirebaseDynamicLinks
func handleDynamicLink() {
DynamicLinks.performDiagnostics(completion: nil)
guard let incomingURL = URL(string: "https://yourapp.page.link/abcde") else { return }
DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
if let error = error {
print("Error handling Dynamic Link: \(error.localizedDescription)")
return
}
if let dynamicLink = dynamicLink {
// 처리할 링크가 있는 경우
if let url = dynamicLink.url {
print("Received Dynamic Link: \(url.absoluteString)")
// 링크 처리 및 화면 이동 로직 추가
// ...
}
}
}
}
이 예제 코드에서는 handleUniversalLink
메서드를 사용하여 앱이 실행될 때 동적 링크를 처리합니다. 링크에는 해당 링크로 이동할 때 필요한 모든 정보가 포함되어 있으므로 링크의 정보를 이용하여 앱 내에서 필요한 작업을 수행하고 특정 화면으로 이동시킬 수 있습니다.
결론
Swift에서 Firebase의 Dynamic Links를 사용하여 커스텀 링크 공유 기능을 구현하는 방법에 대해 알아보았습니다. Firebase의 Dynamic Links를 통해 앱 사용자 간에 링크를 공유하고, 앱 내의 특정 화면으로 이동할 수 있습니다. Firebase의 Dynamic Links API를 더 자세히 알아보고 싶다면 Firebase 공식 문서를 참조하시기 바랍니다.
참고 자료: