Answers to the specific questions.
If you use SwiftUI, you might be able to have just one version of the code with a multiplatform app target. But there is a good chance you will need to build separate iOS and Mac user interface code in some places to provide the best experience on both platforms.
SwiftData works on Mac, but it requires macOS 14, which is not out yet.
I have not used RevenueCat, but you have to ask yourself if you want people who buy a subscription to get both versions with the subscription. If so, you can have one subscription that works on both platforms. If not, you need separate subscriptions.
Renaming, moving, and deleting list items has a lot of differences. If your app does those things, you will need to create separate list code for iOS and Mac.
Stick with one Xcode project. Either use the multiplatform app target or create separate targets for iOS and Mac.
The following article has more information about multiplatform app targets:
https://www.swiftdevjournal.com/xcode-multiplatform-app-targets/
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags: