Skip to content

Commit e67dd02

Browse files
committed
[feat] #208 amplitude - 사용자 정보
1 parent 71eada9 commit e67dd02

File tree

4 files changed

+28
-11
lines changed

4 files changed

+28
-11
lines changed

Projects/App/Sources/AppDelegate/AppDelegate.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ extension AppDelegate: UIApplicationDelegate {
4444
let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? ""
4545
let amplitudeKey = Bundle.main.infoDictionary?["AMPLITUDE_API_KEY"] as? String ?? ""
4646
amplitude.initialize(amplitudeKey, nil)
47-
4847
amplitude.track(.app_open(deviceOS: osVersion, appVersion: appVersion))
4948
return true
5049
}

Projects/CoreKit/Sources/Data/Network/User/UserClient+LiveKey.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import Moya
1212

1313
extension UserClient: DependencyKey {
1414
public static let liveValue: Self = {
15+
@Dependency(\.amplitude.setUserProperties)
16+
var amplitudeSetUserProperties
1517
let provider = MoyaProvider<UserEndpoint>.build()
1618

1719
return Self(
@@ -22,7 +24,10 @@ extension UserClient: DependencyKey {
2224
try await provider.request(.닉네임_수정(model: model))
2325
},
2426
회원등록: { model in
25-
try await provider.request(.회원등록(model: model))
27+
let response: BaseUserResponse
28+
response = try await provider.request(.회원등록(model: model))
29+
amplitudeSetUserProperties(["userId": response.id])
30+
return response
2631
},
2732
닉네임_중복_체크: { nickname in
2833
try await provider.request(.닉네임_중복_체크(nickname: nickname))

Projects/Feature/FeatureIntro/Sources/Splash/SplashFeature.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ public struct SplashFeature {
2727
var keychain
2828
@Dependency(VersionClient.self)
2929
var versionClient
30-
@Dependency(\.amplitude.track)
31-
private var amplitudeTrack
30+
@Dependency(\.amplitude)
31+
private var amplitude
32+
@Dependency(UserClient.self)
33+
var userClient
3234

3335
/// - State
3436
@ObservableState
@@ -106,7 +108,7 @@ private extension SplashFeature {
106108

107109
case .onAppear:
108110
return .run { [isNeedSessionDeleted = state.isNeedSessionDeleted] send in
109-
amplitudeTrack(.view_splash)
111+
amplitude.track(.view_splash)
110112
try await self.clock.sleep(for: .milliseconds(2000))
111113
/// Version Check
112114
let response = try await versionClient.버전체크().toDomain()
@@ -177,6 +179,10 @@ private extension SplashFeature {
177179
let tokenRequest = ReissueRequest(refreshToken: refreshToken)
178180
let tokenResponse = try await authClient.토큰재발급(tokenRequest)
179181
keychain.save(.accessToken, tokenResponse.accessToken)
182+
183+
let user = try await userClient.닉네임_조회()
184+
amplitude.setUserProperties(["userId": user.id])
185+
180186
await send(.delegate(.autoLoginSuccess))
181187
} catch {
182188
await send(.delegate(.loginNeeded), animation: .smooth)

Projects/Feature/FeatureLogin/Sources/Login/LoginFeature.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ public struct LoginFeature {
2323
var userDefaults
2424
@Dependency(KeychainClient.self)
2525
var keychain
26-
@Dependency(\.amplitude.track)
27-
private var amplitudeTrack
26+
@Dependency(\.amplitude)
27+
private var amplitude
2828
/// - State
2929
@ObservableState
3030
public struct State {
@@ -110,10 +110,10 @@ private extension LoginFeature {
110110
func handleViewAction(_ action: Action.View, state: inout State) -> Effect<Action> {
111111
switch action {
112112
case .애플로그인_버튼_눌렀을때:
113-
amplitudeTrack(.login_start(method: .apple))
113+
amplitude.track(.login_start(method: .apple))
114114
return .send(.async(.애플로그인_소셜_API))
115115
case .구글로그인_버튼_눌렀을때:
116-
amplitudeTrack(.login_start(method: .google))
116+
amplitude.track(.login_start(method: .google))
117117
return .send(.async(.구글로그인_소셜_API))
118118
}
119119
}
@@ -173,7 +173,11 @@ private extension LoginFeature {
173173
let appleTokenRequest = AppleTokenRequest(authCode: authCode, jwt: jwt)
174174
let appleTokenResponse = try await authClient.apple(appleTokenRequest)
175175
keychain.save(.serverRefresh, appleTokenResponse.refresh_token)
176-
amplitudeTrack(.login_complete(method: .apple))
176+
amplitude.track(.login_complete(method: .apple))
177+
178+
let user = try await userClient.닉네임_조회()
179+
amplitude.setUserProperties(["userId": user.id])
180+
177181
await send(.inner(.로그인_이후_화면이동(isRegistered: tokenResponse.isRegistered)))
178182
}
179183
case let .구글로그인_API(response):
@@ -189,7 +193,10 @@ private extension LoginFeature {
189193
keychain.save(.accessToken, tokenResponse.accessToken)
190194
keychain.save(.refreshToken, tokenResponse.refreshToken)
191195
keychain.save(.serverRefresh, response.serverRefreshToken)
192-
amplitudeTrack(.login_complete(method: .google))
196+
amplitude.track(.login_complete(method: .google))
197+
198+
let user = try await userClient.닉네임_조회()
199+
amplitude.setUserProperties(["userId": user.id])
193200

194201
await send(.inner(.로그인_이후_화면이동(isRegistered: tokenResponse.isRegistered)))
195202
}

0 commit comments

Comments
 (0)