Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
proton-native.js.org
Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
1–10 of 37 posts
Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#2After a long time, Proton Native V1 was starting to show it's age. So I ended up making a complete rewrite that includes a lot of the most requested features including flexbox, styling, hot reloading, and components with the same API as React Native.
For those of you who value native components, I've also been working on an experimental wxWidgets backend. There are only a few components, but I hope to implement all the components of the Qt backend soon.
Let me know of any questions you have and thanks!
Previous discussion: https://news.ycombinator.com/item?id=16978901
Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#3Well done!
Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#4Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#5See also: https://github.com/tauri-apps/tauri
Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#6Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#7- iOS and Android - React Native - Web - React Native Web - macOS - Apple's Project Catalyst (run iPad apps on macOS) - Windows - React Native Windows by Microsoft - Linux - none yet, you could use Electron but that's undesirable
Perhaps one could instead use Proton Native for desktop and React Native for mobile, I wonder what the code sharing capabilities are for that.
Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#8In the case of macOS, this is no longer true - when Apple finally kicked Carbon fully, Qt (IIRC, in 5.13 or something? 5.12 and prior used HIThemes, which was... showing age) switched to rendering true AppKit behind the scenes. There's a few custom controls where they render their own, if no AppKit equivalent exists, but otherwise it's AppKit all the way down.
As someone who used to decry Qt as not native, I'll be the first to admit it's fine now - if something looks "off" on macOS, it's probably moreso the implementing the author doing something different than the underlying framework.
Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#9> But those components are not native, meaning they are drawn by Qt instead of using the components provided by the OS. In the case of macOS, this is no longer true - when Apple finally kicked Carbon fully, Qt (IIRC, in 5.13 or something? 5.12 and prior used HIThemes, which was... showing age) switched to rendering true AppKit behind the scenes. There's a few custom controls where they render their own, if no AppKit…
"As with Cocoa and Carbon, Qt provides widgets that look like those described in the Human Interface Descriptions. Qt's widgets use HIThemes to implement the look and feel. In other words, we use Apple's own APIs for doing the rendering."
I guess the documentation could be outdated, but changing over from drawing native-looking widgets to wrapping native widgets (like wxWidgets, SWT and libui) sounds like a big and fundamental (and likely incompatible) change, especially since Qt doesn't do this on other platforms. The release notes[2] don't mention any rewrite of the Mac widget implementation.
Re: Show HN: Proton Native V2 – Create Cross Platform Desktop Apps with React
#10I've been tinkering with React Native and it looks like you can do something quite similar to Proton Native here, while also targeting mobile platforms. Here is how you can cover the gamut of platforms: - iOS and Android - React Native - Web - React Native Web - macOS - Apple's Project Catalyst (run iPad apps on macOS) - Windows - React Native Windows by Microsoft - Linux - none yet, you could use Electron but that's…