Skip to content

Commit a91b6a8

Browse files
authored
Merge pull request #210 from YAPP-Github/develop
2.0.2
2 parents 0ba196b + a7839d8 commit a91b6a8

File tree

43 files changed

+713
-201
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+713
-201
lines changed

β€Ž.github/workflows/appstore_release.ymlβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ on:
1010

1111
jobs:
1212
build:
13-
runs-on: macos-latest
13+
runs-on: macos-26
1414

1515
steps:
1616
- uses: actions/checkout@v4
1717

1818
- name: Set up Xcode
1919
uses: maxim-lobanov/setup-xcode@v1
2020
with:
21-
xcode-version: '16.1'
21+
xcode-version: latest-stable
2222

2323
- uses: shimataro/ssh-key-action@v2
2424
with:

β€Ž.github/workflows/build_test.ymlβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ on:
1212

1313
jobs:
1414
build:
15-
runs-on: macos-latest
15+
runs-on: macos-26
1616

1717
steps:
1818
- uses: actions/checkout@v4
1919

2020
- name: Set up Xcode
2121
uses: maxim-lobanov/setup-xcode@v1
2222
with:
23-
xcode-version: '16.1'
23+
xcode-version: latest-stable
2424

2525
- uses: shimataro/ssh-key-action@v2
2626
with:

β€Ž.github/workflows/develop_hotfix.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
jobs:
1313
build:
1414
if: startsWith(github.event.head_commit.message, '[hotfix]')
15-
runs-on: macos-latest
15+
runs-on: macos-26
1616

1717
steps:
1818
- uses: actions/checkout@v4

β€Ž.github/workflows/testflight_release.ymlβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ on:
1515
jobs:
1616
build:
1717
if: ${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true }}
18-
runs-on: macos-latest
18+
runs-on: macos-26
1919

2020
steps:
2121
- uses: actions/checkout@v4
2222

2323
- name: Set up Xcode
2424
uses: maxim-lobanov/setup-xcode@v1
2525
with:
26-
xcode-version: '16.1'
26+
xcode-version: latest-stable
2727

2828
- uses: shimataro/ssh-key-action@v2
2929
with:

β€ŽProjects/App/Resources/Pokit-info.plistβ€Ž

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<key>CFBundlePackageType</key>
2222
<string>APPL</string>
2323
<key>CFBundleShortVersionString</key>
24-
<string>2.0.0</string>
24+
<string>2.0.2</string>
2525
<key>CFBundleURLTypes</key>
2626
<array>
2727
<dict>
@@ -94,5 +94,7 @@
9494
<string>UIInterfaceOrientationLandscapeLeft</string>
9595
<string>UIInterfaceOrientationLandscapeRight</string>
9696
</array>
97+
<key>AMPLITUDE_API_KEY</key>
98+
<string>$(AMPLITUDE_API_KEY)</string>
9799
</dict>
98100
</plist>

β€ŽProjects/App/ShareExtension/Info.plistβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<key>CFBundleName</key>
1414
<string>Pokit</string>
1515
<key>CFBundleShortVersionString</key>
16-
<string>1.0.9</string>
16+
<string>2.0.1</string>
1717
<key>CFBundleURLTypes</key>
1818
<array>
1919
<dict>

β€ŽProjects/App/Sources/AppDelegate/AppDelegate.swiftβ€Ž

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,25 @@
66
//
77

88
import SwiftUI
9+
import UIKit
910

1011
import ComposableArchitecture
1112
import Firebase
1213
import FirebaseMessaging
1314
import GoogleSignIn
15+
import Dependencies
1416

1517
final class AppDelegate: NSObject {
18+
@Dependency(\.amplitude)
19+
private var amplitude
20+
1621
let store = Store(initialState: AppDelegateFeature.State()) {
1722
AppDelegateFeature()
1823
}
1924
}
2025
//MARK: - UIApplicationDelegate
2126
extension AppDelegate: UIApplicationDelegate {
27+
2228
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
2329
if GIDSignIn.sharedInstance.handle(url) { return true }
2430
return false
@@ -30,6 +36,15 @@ extension AppDelegate: UIApplicationDelegate {
3036
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
3137
) -> Bool {
3238
self.store.send(.didFinishLaunching)
39+
40+
// 운영체제 버전 (ex: "iOS 18.0.0")
41+
let osVersion = "iOS \(UIDevice.current.systemVersion)"
42+
43+
// μ•± λ²ˆλ“€ 버전 (ex: "2.0.1")
44+
let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? ""
45+
let amplitudeKey = Bundle.main.infoDictionary?["AMPLITUDE_API_KEY"] as? String ?? ""
46+
amplitude.initialize(amplitudeKey, nil)
47+
amplitude.track(.app_open(deviceOS: osVersion, appVersion: appVersion))
3348
return true
3449
}
3550

β€ŽProjects/App/Sources/MainTab/MainTabFeature.swiftβ€Ž

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ public struct MainTabFeature {
2424
private var categoryClient
2525
@Dependency(UserDefaultsClient.self)
2626
private var userDefaults
27+
@Dependency(\.amplitude.track)
28+
private var amplitudeTrack
29+
2730
/// - State
2831
@ObservableState
2932
public struct State: Equatable {
@@ -103,6 +106,14 @@ public struct MainTabFeature {
103106
guard state.linkPopup == nil else { return .none }
104107
state.categoryOfSavedContent = nil
105108
return .none
109+
case .binding(\.selectedTab):
110+
switch state.selectedTab {
111+
case .pokit:
112+
amplitudeTrack(.view_home_pokit(entryPoint: "pokit"))
113+
case .recommend:
114+
amplitudeTrack(.view_home_recommend(entryPoint: "recommend"))
115+
}
116+
return .none
106117
case .binding:
107118
return .none
108119
case let .pushAlertTapped(isTapped):
@@ -197,6 +208,13 @@ private extension MainTabFeature {
197208
let categoryIdString = queryItems.first(where: { $0.name == "categoryId" })?.value,
198209
let categoryId = Int(categoryIdString)
199210
else { return .none }
211+
212+
switch state.selectedTab {
213+
case .pokit:
214+
amplitudeTrack(.view_home_pokit(entryPoint: "deeplink"))
215+
case .recommend:
216+
amplitudeTrack(.view_home_recommend(entryPoint: "deeplink"))
217+
}
200218

201219
return .send(.async(.κ³΅μœ λ°›μ€_μΉ΄ν…Œκ³ λ¦¬_쑰회(categoryId: categoryId)))
202220
case .κ²½κ³ _ν™•μΈλ²„νŠΌ_클릭:

β€ŽProjects/App/Sources/MainTab/MainTabFeatureView.swiftβ€Ž

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,8 @@ public extension MainTabView {
7474
}
7575

7676
if self.store.linkPopup != nil {
77-
PokitLinkPopup(
78-
type: $store.linkPopup,
79-
action: { send(.λ§ν¬νŒμ—…_λ²„νŠΌ_λˆŒλ €μ„λ•Œ, animation: .pokitSpring) }
80-
)
77+
PokitLinkPopup(type: $store.linkPopup)
78+
.onAction { send(.λ§ν¬νŒμ—…_λ²„νŠΌ_λˆŒλ €μ„λ•Œ, animation: .pokitSpring) }
8179
}
8280
}
8381
}
@@ -93,11 +91,9 @@ private extension MainTabView {
9391
.overlay(alignment: .bottom) {
9492
VStack(spacing: 0) {
9593
if store.linkPopup != nil {
96-
PokitLinkPopup(
97-
type: $store.linkPopup,
98-
action: { send(.λ§ν¬νŒμ—…_λ²„νŠΌ_λˆŒλ €μ„λ•Œ, animation: .pokitSpring) }
99-
)
100-
.padding(.bottom, 20)
94+
PokitLinkPopup(type: $store.linkPopup)
95+
.onAction { send(.λ§ν¬νŒμ—…_λ²„νŠΌ_λˆŒλ €μ„λ•Œ, animation: .pokitSpring) }
96+
.padding(.bottom, 20)
10197
}
10298

10399
bottomTabBar
@@ -273,7 +269,14 @@ private extension MainTabView {
273269

274270
var body: some View {
275271
GeometryReader { proxy in
276-
let bottomSafeArea = proxy.safeAreaInsets.bottom
272+
let bottomPadding: CGFloat = {
273+
if #available(iOS 26.0, *) {
274+
return 32
275+
} else {
276+
return 48
277+
}
278+
}()
279+
277280
HStack(spacing: 20) {
278281
Spacer()
279282

@@ -306,7 +309,7 @@ private extension MainTabView {
306309

307310
Spacer()
308311
}
309-
.padding(.bottom, 48 - bottomSafeArea)
312+
.padding(.bottom, bottomPadding)
310313
.padding(.top, 36)
311314
.pokitPresentationCornerRadius()
312315
.pokitPresentationBackground()
@@ -319,6 +322,7 @@ private extension MainTabView {
319322
}
320323
.presentationDetents([.height(self.height)])
321324
}
325+
.ignoresSafeArea(edges: .bottom)
322326
}
323327
}
324328
}

β€ŽProjects/App/Sources/MainTab/MainTabPath.swiftβ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,13 +194,13 @@ public extension MainTabFeature {
194194
case .검색:
195195
return .merge(
196196
.send(.path(.element(id: stackElementId, action: .검색(.delegate(.컨텐츠_검색))))),
197-
.send(.inner(.λ§ν¬νŒμ—…_ν™œμ„±ν™”(.success(title: Constants.링크_μ €μž₯_μ™„λ£Œ_문ꡬ))), animation: .pokitSpring)
197+
.send(.inner(.λ§ν¬νŒμ—…_ν™œμ„±ν™”(.success(title: Constants.링크_μ €μž₯_μ™„λ£Œ_문ꡬ, until: 4))), animation: .pokitSpring)
198198
)
199199
default:
200-
return .send(.inner(.λ§ν¬νŒμ—…_ν™œμ„±ν™”(.success(title: Constants.링크_μ €μž₯_μ™„λ£Œ_문ꡬ))), animation: .pokitSpring)
200+
return .send(.inner(.λ§ν¬νŒμ—…_ν™œμ„±ν™”(.success(title: Constants.링크_μ €μž₯_μ™„λ£Œ_문ꡬ, until: 4))), animation: .pokitSpring)
201201
}
202202
case .recommend(.delegate(.μ €μž₯ν•˜κΈ°_μ™„λ£Œ)):
203-
return .send(.inner(.λ§ν¬νŒμ—…_ν™œμ„±ν™”(.success(title: Constants.링크_μ €μž₯_μ™„λ£Œ_문ꡬ))), animation: .pokitSpring)
203+
return .send(.inner(.λ§ν¬νŒμ—…_ν™œμ„±ν™”(.success(title: Constants.링크_μ €μž₯_μ™„λ£Œ_문ꡬ, until: 4))), animation: .pokitSpring)
204204
/// - 각 ν™”λ©΄μ—μ„œ 링크 볡사 κ°μ§€ν–ˆμ„ λ•Œ (링크 μΆ”κ°€ 및 μˆ˜μ • ν™”λ©΄ μ œμ™Έ)
205205
case let .path(.element(_, action: .μ•Œλ¦Όν•¨(.delegate(.linkCopyDetected(url))))),
206206
let .path(.element(_, action: .검색(.delegate(.linkCopyDetected(url))))),

0 commit comments

Comments
Β (0)