team-phoenix / Phoenix

A multi-system emulator and library manager designed to be both powerful and easy to use.
http://phoenix.vg
GNU General Public License v2.0
377 stars 40 forks source link

Re-architecture #325

Open athairus opened 7 years ago

athairus commented 7 years ago

On the UI side, create platform-specific interfaces that utilize native widgets. Namely:

Rationale: Every platform has its quirks and it may take less effort to use native widgets, where these quirks are implemented for free, than custom widgets where we have to do everything

The frontend will now consist of two "backends": A library backend (which will provide data in the optimal format for each platform) and an emulator backend (which will handle making instances of the backend process, see #314 for more details)

athairus commented 7 years ago

Frontends

Note: % of userbase provided by Steam hardware survey, using November 2016 numbers

Windows

UWP API (aka Modern/Metro/Windows Runtime/WinRT)

Covers 48.37% of the userbase Only the latest Windows 10 is supported by this API Documentation: https://developer.microsoft.com/en-us/windows/apps/develop

Samples

Grid/listview sample: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/XamlListView/cs Even better example: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/XamlUIBasics/cs/AppUIBasics

Notes

UI

macOS

Covers 3.59% of the userbase

Linux

Covers 0.88% of the userbase

athairus commented 7 years ago

Backends

(reserved)

athairus commented 7 years ago

Alternate multi-platform frontends

https://nwjs.io/