radiant-player / radiant-player-electron

:zap: The future Radiant Player 2.0
https://radiant-player.github.io
32 stars 8 forks source link

Make the move to truly cross platform with Electron #1

Closed MarshallOfSound closed 8 years ago

MarshallOfSound commented 8 years ago

So I don't know about you guys but the constant platform specific bug fixes are annoying me far too much at the moment. I just spent months fighting with Windows WndProc calls....

Electron appears to be the way to go if you want a truly cross platform experience without writing a single line of native code. I started work on an electron port of GPMDP a few days ago and then realized this repo existed :+1:

My current work is under a new Org "Nucleus Player"
https://github.com/Nucleus-Player/Nucleus-Player

I'm interested as too what you guys planned to do with this repository and whether you'd be interested in accelerating Nucleus Player with me up to the feature level of Radiant and GPMDP?

My current plan is too reach feature parity with GPMDP and then (after much testing) push an update to GPMDP that will overwrite it with Nucleus Player. I think it would be great if the Radiant team worked towards a similar goal whereby both platforms would have a truly unified code base and feature set.

/cc @chrismou @jacobwgillespie @kbhomes @jadengore

ebramanti commented 8 years ago

For anyone wondering, GPMDP = https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-

@MarshallOfSound Thanks for your contact. We would love for radiant-player-electron to reach feature parity with our current implementation on OS X, but our priority right now is to release Radiant 2 and fix the bugs set in our milestone there. We have no plans of currently switching entirely to an Electron-only model (correct me if I'm wrong, @radiant-player/radiant-player-mac).

Nevertheless, it would be great to invest in an Electron implementation for Windows and Linux users, and that's what @jacobwgillespie has been working on in this repo. We would love to have you on Radiant Electron as part of the development team, especially with all of the extensive work you have done with Nucleus already. If you wish to stay separate, we understand, but joining forces with some devs passionate about GPM would be awesome!

jacobwgillespie commented 8 years ago

@jadengore I don't think you're wrong about that we have no plans to switch entirely, though I feel like more and more of our bug reports are coming from the fact that we're not a chrome-like environment, and given the nature of our app, I foresee a strong desire to move to embedded chrome, then a realization that that is essentially electron, then a move to electron (perhaps with a bit of native code addons as needed). But no official plans. :)

MarshallOfSound commented 8 years ago

@jadengore Yep, I get your target is the Radiant 2 milestone and that's got to be the priority. I do however believe (looking at your 2.0 milestone) that most if not all of your targets / issues will be fixed by simply moving to an electron implementation.

As @jacobwgillespie has said there are an increasing number of issues on Radiant to do with bugs that are out of your control purely because the WebView you guys use is not chrome / chromium based.

As far as I can tell from my naive just make it work first run at electron it does everything that we need it to do and integrates a lot better with the modular nature of the gmusic.js utility libraries that are under development.

Definitely focus on your release target but again as @jacobwgillespie said it is almost inevitable that we switch to electron. And a key reason in this decision for me is that electron does NOT require flash to use Google Play Music. This is a massive deal for people who refuse to use flash.

In regards to joining forces I'd love to join up but I'd prefer to stick to the Nucleus namespace for now as I have a lot of backend things setup with that namespace as a target (Squirrel update servers and automatic release config). If some of you guys want to hit up Nucleus I'd be happy to add you over there.

jacobwgillespie commented 8 years ago

I reopened this issue so that we can discuss duplication of efforts. Here's some of my initial thoughts, just off the top of my head:

In one sense, with GPMDP, google-music-electron, and radiant-player-electron, we are all kinda building the same app. We all want a cross-platform desktop app that integrates with GPM, and we're even starting to use some of the same underlying tech to get there.

In another sense, we're not building the same app. Just like with the rest of software, we've got some "competition" and differentiation going on - we're all adding slightly different features and implementations and the apps really aren't just clones of one another, but do have their own nuances. I'd think that this is healthy too as we kinda get a diversity of ideas / options.

In my opinion, the fact that we're all moving to the same underlying tech is kinda irrelevant to the duplication discussion. Of course we're all moving to electron as we need embedded webkit and that's the most polished way to get ahold of it. Kinda like how if you wanted to build a cross-platform game you might move to xyz framework. Looking at the internal implementation for the three apps, we're all doing things very differently under the hood.

So, I'm not entirely sure if we need to worry about "duplication" too much. In general, the maintainers for the three projects do not contribute code to the other apps, so we're not losing anything there, and we have gmusic-utils where we are sharing code so that's awesome. I guess what I'm trying to say is perhaps there's no harm in the three apps going on separately.

If we didn't want to let the three go on separately for whatever reason, then it seems like we have two options:

For the above discussed reasons, I don't think either of those is a good idea. Oh and another large consideration: branding and userbase.

So, branding and userbase. Each one of the apps already has a userbase and an existing brand - changing that brand would be disruptive. We have people who expect a certain name and look / feel, tell others about the app by name, websites that link to the project, etc. And personally I like how the names Radiant and Nucleus (which looks like GPMDP superseded it) are somewhat insulated from trademark issues (from what I understand Radiant was requested to change its name by Google back when it was Google Play Music for Mac).

And another smaller benefit for me personally (and I'm sure for the other devs as well) - this project is a massive learning exercise. The code architectures and technologies and best practices I'm gleaning from and applying to radiant-player-electron are really valuable for other programming projects and in my day job. The particular architecture chosen (React / Redux / IPC) was something I'm interested in learning as well as something I think would work best for this kind of app. Having different implementations is a good thing, in my opinion.

chrismou commented 8 years ago

Closing this as I'm fairly confident the decision has now been made 😜

MarshallOfSound commented 8 years ago

@chrismou We are now arch enemies

I mean

Who said that

:eggplant:

:laughing:

chrismou commented 8 years ago

Haha! You're going down, Nucleus boy 😹

Which, incidently, is the worst superhero name ever... 😉

ebramanti commented 8 years ago

@chrismou Nucleus Boy 😆