Migrates several more classes to use @Observable macro rather than the ObservableObject protocol for the performance gains and general modernization of patterns.
How to test
Navigate to the Note Composer view.
Tap "@" to bring up the user search view.
Observe that the search fires on key taps.
Navigate to the Note Composer.
Type a note.
Send it.
Observe that the note was sent.
Navigate to the Discover tab.
Search for something.
Observe that results appear as you type.
Navigate to your profile view.
Tap the Claim your username button.
Select either set up or already have.
Type in the box.
Observe that the UI responds as you type.
Screenshots/Video
No intended UI changes, but here are some videos of affected areas of code to show that they still work as expected:
Adding a mention to a note...(shows that the refactored TextDebouncer works)
Posting a note...(shows that RelayService as @Observable works)
Search in Discover...(shows that SearchController as @Observable works)
Username search...(shows that SearchController and TextDebouncer work)
Issues covered
1458
Description
Migrates several more classes to use
@Observable
macro rather than theObservableObject
protocol for the performance gains and general modernization of patterns.How to test
Navigate to the Note Composer view.
Tap "@" to bring up the user search view. Observe that the search fires on key taps.
Navigate to the Note Composer.
Type a note.
Send it. Observe that the note was sent.
Navigate to the Discover tab.
Search for something. Observe that results appear as you type.
Navigate to your profile view.
Tap the Claim your username button.
Select either set up or already have.
Type in the box. Observe that the UI responds as you type.
Screenshots/Video
No intended UI changes, but here are some videos of affected areas of code to show that they still work as expected:
Adding a mention to a note...(shows that the refactored
TextDebouncer
works)Posting a note...(shows that
RelayService
as@Observable
works)Search in Discover...(shows that
SearchController
as@Observable
works)Username search...(shows that
SearchController
andTextDebouncer
work)