46 lines
1.8 KiB
Swift
46 lines
1.8 KiB
Swift
import SwiftUI
|
||
import Kingfisher
|
||
|
||
@main
|
||
struct WildGrowthApp: App {
|
||
// 接入 UserManager
|
||
@StateObject private var userManager = UserManager.shared
|
||
|
||
init() {
|
||
// 🔥 优化 Kingfisher 配置,提升图片加载速度
|
||
configureKingfisher()
|
||
// ✅ V1.0 埋点:初始化 + 记录冷启动
|
||
AnalyticsManager.shared.track("app_launch")
|
||
}
|
||
|
||
var body: some Scene {
|
||
WindowGroup {
|
||
// ✨ 统一入口:改为 SplashView
|
||
SplashView(isLoggedIn: $userManager.isLoggedIn)
|
||
.environmentObject(userManager)
|
||
}
|
||
}
|
||
|
||
// MARK: - Kingfisher 优化配置
|
||
private func configureKingfisher() {
|
||
// 1. 配置缓存:增大内存缓存,提升加载速度
|
||
let cache = ImageCache.default
|
||
cache.memoryStorage.config.totalCostLimit = 150 * 1024 * 1024 // 150MB 内存缓存(增大)
|
||
cache.memoryStorage.config.countLimit = 150 // 最多缓存 150 张图片
|
||
cache.memoryStorage.config.expiration = .seconds(3600) // 内存缓存 1 小时
|
||
cache.diskStorage.config.sizeLimit = 1000 * 1024 * 1024 // 1GB 磁盘缓存(增大)
|
||
cache.diskStorage.config.expiration = .days(7) // 磁盘缓存 7 天
|
||
|
||
// 2. 配置下载器:优化下载性能
|
||
let downloader = ImageDownloader.default
|
||
downloader.downloadTimeout = 20.0 // 20秒超时(增大)
|
||
// 允许并发下载更多图片
|
||
downloader.sessionConfiguration.httpMaximumConnectionsPerHost = 6 // 每个主机最多 6 个并发连接
|
||
|
||
// 3. 启用自动缓存清理(避免缓存过大)
|
||
cache.cleanExpiredCache()
|
||
|
||
print("✅ Kingfisher 配置完成:内存缓存 150MB,磁盘缓存 1GB,并发连接 6")
|
||
}
|
||
}
|