-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite in Swift, and then have an ObjC wrapper? #820
Comments
That's funny, I had to build GRDBObjc in order to provide an FMDB compatibility layer to GRDB, for apps with legacy ObjC code. |
Oh, I should check that out when I get around to it. |
It's no longer maintained, so I wouldn't bet on its usefulness. But I like stories of convergent evolution :-) |
A literal Swift conversion would probably not too bad. But the interesting question in my mind is the “queue” pattern, which currently is an inherently synchronous implementation. At the minimum, I’d vote for no synchronous API and only asynchronous renditions in FMDB 3.0. And I’d suggest Combine publishers for Swift developers. (In Combine projects, wrapping closure based API in futures feels distinctly anachronistic.) I’d be inclined to see what comes out in WWDC 2021, too, as that might color our thoughts about about what the appropriate asynchronous patterns are going forward. I’m intrigued to hear their thoughts are, esp in light of the new async patterns in Swift 5.5. |
I'd want both async and sync operations personally. And Combine stuff would make sense too. And waiting till the next WWDC seems fine, I'm in no rush :) |
Not very, just time-consuming. I've been working on a roughly 1:1 port to Swift for a Linux project, where Obj-C is not available. It is very incomplete but should be easy to see where the gaps are. I haven't looked at macOS compatibility/portability as I'm not using that platform, but the code has no additional dependencies beyond SQLite itself. |
We are, haha |
您的邮件已经收到,我会尽快查阅,谢谢!Best Wishes!
|
I wonder how hard this would be?
The text was updated successfully, but these errors were encountered: