← All repositories

listless

A simple list app for Apple platforms

git clone https://code.inqk.net/listless.git


commit d9f8925d9d6b06bcec7b5bf5d72f17e5fe12e28c
parent 93e9e1d404c4294e263c4c662af02cbc4f2e65cb
Author: Michael Camilleri <[email protected]>
Date:   Wed, 22 Apr 2026 01:32:09 +0900

Add additional performance logging

Diffstat

MListlessiOS/Helpers/PerfSampler.swift | 18+++++++++++++++---

1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/ListlessiOS/Helpers/PerfSampler.swift b/ListlessiOS/Helpers/PerfSampler.swift

@@ -80,8 +80,10 @@ final class PerfSampler {
             forName: UIResponder.keyboardWillShowNotification,
             object: nil,
             queue: .main
-        ) { _ in
-            Task { @MainActor in PerfSampler.shared.keyboardWillShow() }
+        ) { note in
+            let animationMs = (note.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey]
+                as? Double).map { $0 * 1000 } ?? 0
+            Task { @MainActor in PerfSampler.shared.keyboardWillShow(animationMs: animationMs) }
         }
         NotificationCenter.default.addObserver(
             forName: UIResponder.keyboardDidShowNotification,
@@ -90,11 +92,21 @@ final class PerfSampler {
         ) { _ in
             Task { @MainActor in PerfSampler.shared.keyboardDidShow() }
         }
+        NotificationCenter.default.addObserver(
+            forName: UIApplication.didBecomeActiveNotification,
+            object: nil,
+            queue: .main
+        ) { _ in
+            Task { @MainActor in
+                PerfSampler.shared.record(label: "App.didBecomeActive", durationMs: 0)
+            }
+        }
     }
 
-    private func keyboardWillShow() {
+    private func keyboardWillShow(animationMs: Double) {
         pendingKeyboardWillShow = DispatchTime.now()
         record(label: "Keyboard.willShow", durationMs: 0)
+        record(label: "Keyboard.animationDurationReported", durationMs: animationMs)
     }
 
     private func keyboardDidShow() {