[swift] SwiftGen을 이용한 사용자 액티비티 추적

많은 앱에서는 사용자의 액티비티를 추적하여 사용자 경험을 개선하고 비즈니스 요구에 맞게 데이터를 수집하는 것이 중요합니다. 이를 위해 SwiftGen을 사용하여 사용자 액티비티를 추적하는 방법에 대해 알아보겠습니다.

SwiftGen 이란?

SwiftGen은 iOS 프로젝트에서 편리하게 리소스 파일에 접근할 수 있는 코드를 생성해주는 도구입니다. 이를 통해 리소스 파일 이름에 대한 실수나 오타를 방지하고, 코드의 가독성을 높이는 데 도움이 됩니다.

사용자 액티비티 추적하기

  1. 우선, SwiftGen을 프로젝트에 추가합니다. 이를 위해 CocoaPods을 이용하여 SwiftGenPodfile에 추가하고, pod install 명령어를 실행합니다.
platform :ios, '10.0'
target 'YourProjectName' do
  use_frameworks!

  # CocoaPods dependencies
  pod 'SwiftGen'

  # Your other dependencies
  
end
  1. 트래킹할 액티비티에 대한 Enum을 생성합니다.
import Foundation

enum UserActivity: String {
    case login = "Login"
    case signUp = "Sign Up"
    case purchase = "Purchase"
}
  1. SwiftGen을 이용하여 Enum 값을 생성합니다. swiftgen config init 명령어를 사용하여 swiftgen.yml 파일을 생성한 뒤, 다음 내용으로 업데이트합니다.
strings:
  inputs: 
    - Resources/Localizable.strings
  
storyboards:
  inputs: 
    - Resources/**/*.storyboard
  
xcassets:
  inputs: 
    - Resources/**/*.xcassets
  
enums:
  output: 
    templateName: swift5
    path: YourProjectName/Generated
    enumName: UserActivity
    templatePath: default-swift5.stencil
  inputs: 
    - Resources/Activities.strings
  1. swiftgen 명령어를 실행하여 SwiftGen을 실행하고, Enum 파일이 생성되었는지 확인합니다.

  2. 액티비티를 추적하는 코드를 작성합니다. 액티비티의 타입에 따라 이벤트 트래킹을 수행할 수 있습니다. 이 예시에서는 Google Analytics를 사용하여 액티비티를 추적합니다.

import UIKit
import GoogleAnalytics

class ViewController: UIViewController {

    func trackActivity(_ activity: UserActivity) {
        GAI.sharedInstance().tracker(withTrackingId: "YOUR_TRACKING_ID")?.send(GAIDictionaryBuilder.createEvent(withCategory: "Activity", action: activity.rawValue, label: nil, value: nil).build() as [NSObject : AnyObject])
    }

    @IBAction func loginButtonTapped(_ sender: UIButton) {
        trackActivity(.login)
        // Login button tapped logic
    }

    @IBAction func signUpButtonTapped(_ sender: UIButton) {
        trackActivity(.signUp)
        // Sign Up button tapped logic
    }

    @IBAction func purchaseButtonTapped(_ sender: UIButton) {
        trackActivity(.purchase)
        // Purchase button tapped logic
    }
}

이제 SwiftGen을 사용하여 리소스 파일에 접근할 수 있고, 생성된 Enum 값으로 사용자 액티비티를 추적할 수 있습니다. 리소스 파일의 경로를 타이핑할 필요 없이, 안전하고 간편하게 앱의 사용자 경험을 추적할 수 있습니다.

결론

SwiftGen을 사용하여 사용자 액티비티를 추적하는 방법을 알아보았습니다. 이를 통해 코드의 가독성을 높이고, 오타나 실수를 방지하여 프로젝트의 안전성을 높일 수 있습니다. SwiftGen은 다양한 리소스 파일에 사용되며, 사용자 액티비티 추적 외에도 다른 기능에 유용한 도구입니다.

참고 자료: