Оптимизация FPS чата: ForEach fast path, keyboard animation без updateUIView, debounce pipeline, кэши с half-eviction, release notes механизм

This commit is contained in:
2026-03-19 03:35:04 +05:00
parent 422b20702e
commit 44652e0d97
21 changed files with 1349 additions and 318 deletions

View File

@@ -564,6 +564,7 @@ private struct ChatListDialogContent: View {
@State private var typingDialogs: Set<String> = []
var body: some View {
let _ = PerformanceLogger.shared.track("chatList.bodyEval")
// Use pre-partitioned arrays from ViewModel (single-pass O(n) instead of 3× filter).
let pinned = viewModel.allModePinned
let unpinned = viewModel.allModeUnpinned

View File

@@ -34,6 +34,7 @@ struct ChatRowView: View {
}
var body: some View {
let _ = PerformanceLogger.shared.track("chatRow.bodyEval")
HStack(spacing: 0) {
avatarSection
.padding(.trailing, 10)