haroohie-club / SerialLoops

An editor for Suzumiya Haruhi no Chokuretsu (The Series of Haruhi Suzumiya)
https://haroohie.club/chokuretsu/serial-loops
GNU General Public License v3.0
14 stars 6 forks source link

Migrate codebase to Avalonia #371

Open jonko0493 opened 1 month ago

jonko0493 commented 1 month ago

We should use Avalonia instead of Eto. Avalonia supports more of what we need/want (see #237 as well as #71 and #326, all of which are Eto-specific issues). Jettisoning GtkSharp will be a massive boon for the Linux port in particular. Finally, this will potentially allow us to target mobile and web platforms (no idea if we'd want to do that, but we could!).

Our reasons for picking Eto were twofold:

  1. XAML is hard and we wanted to focus more on UI in code
  2. Eto would allow us more flexibility as it has the ability to create custom native controls per-platform

The first is still true. The second is, for the most important case at least, decidedly not. In #358, I proved that it was possible to have different audio backends when multi-targeting frameworks in Avalonia via platform-specific code directives.

With that major hurdle decidedly out of the way, we should start migrating to Avalonia.

jonko0493 commented 1 month ago

First batch of this done in #373. We'll be committing to an Avalonia branch in the meantime that we will eventually merge into the main branch.