As much as I enjoy using Swift Concurrency Combine is still the better way to observe state IMO. AsyncSequence works well for some cases but the ergonomics of Combine are better at this point in time.
Learning Combine is more fun than you might think https://practicalcombine.com/
Practical Combine - Donny Wals
Learn Combine from the ground up with a solid theoretical foundation and real-world examples of where and how Combine can help you move from writing imperative code to writing reactive code that is flexible, clean and modern.