I'm looking to develop a macOS screen sharing app that utilizes WebRTC. I've narrowed it down to three options: Electron, Tauri, and native Swift. From what I've seen, Electron seems to have the easiest WebRTC integration, but I'm concerned it might be resource-heavy. Tauri appears to offer better performance, although diving into Rust could be time-consuming, and I'm unsure about the overall support and whether the performance gains are substantial. On the other hand, Swift promises native performance, but I'm hesitant to part ways with React since I'm really familiar with that ecosystem. Has anyone built something similar using these frameworks?
5 Answers
Going with Swift is smart if you want native support, especially with accessing things like the Screen Capture Kit API. If React is your preferred UI tool, you might need to explore creating node bindings or look into existing solutions for seamless integration. Just try to get that balance right!
Overall, if you're aiming for a quick market entry, go with Electron. For something you're passionate about that you want to develop and maybe turn into a business, Tauri or Swift would be better choices. If it’s strictly for Mac users, Swift is definitely a strong contender. Good luck with your project!
I have some experience with Tauri, and I enjoyed it, but it does have a few quirks, especially around API boundaries. If you're not strong with Rust, you might find the learning curve a bit steep. Given what you mentioned, I would lean toward Electron since it would make your integration with WebRTC smoother.
If sticking with React is important to you, Swift might not be the best choice. Electron plus React seems like the way to go for ease of implementation, especially with WebRTC. And honestly, Electron's resource usage isn't as bad as many say; it's just not the tiniest option out there, but it'll still get the job done effectively! If you're considering making a web app first, Tauri is worth looking at—it can give you a broad reach with manageable resource needs.
When deciding on tech, consider that performance might not be your top priority. Developer experience and speed of development can be more crucial unless you're already getting millions of users. So, think about how quickly you want to get your app out there!
Related Questions
Fix Not Being Able To Add New Categories With Intuitive Category Checklist For Wordpress
Get Real User IP Without Installing Cloudflare Apache Module
How to Get Total Line Count In Visual Studio 2013 Without Addons
Install and Configure PhpMyAdmin on Centos 7
How To Setup PostfixAdmin With Dovecot and Postfix Virtual Mailbox
Dovecot Error Unknown database driver mysql