Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design discussion: native feel integration. #118

Closed
hmil opened this issue Aug 25, 2019 · 1 comment
Closed

Design discussion: native feel integration. #118

hmil opened this issue Aug 25, 2019 · 1 comment

Comments

@hmil
Copy link

hmil commented Aug 25, 2019

In #116 you opened my eyes as to what webrenderer is capable of doing and its limitations. However, I have since then looked at stain in more depth and there is another design question that itches me. How do you plan to deliver the full "expected" native experience?

Let me clarify this a bit: There are basic things users expect from a native app. The most basic example that comes to mind is the behavior of text input fields. There's plenty more like screen readers, font scaling, etc... (most of which are related to text in fact).
For instance, text inputs are incredibly complex widgets. From how to type non-us characters to how the caret and selection are expected to move based on key presses (varies per OS of course) and I'm not even mentioning rtl languages.

As an outsider, it would appear that the text input alone would require nearly as much work as the whole rendering stack for basic shapes. Projects like proton-native, which plans to rely on Qt, (let's call this category widget-based) don't have to deal with this. Of course the flipside of the coin is that they have a much harder time keeping the look and feel consistent across platforms.

While I understand how a widgets-based reactive ui framework deals with consistent styling (it overrides the shit out of the styles of the underlying widget kit), I do not understand how a renderer-based framework like yours can deal with the accessibility issues.

So yeah, do you currently have a plan as to how to handle this "native feel integration"?

btw: if you haven't already, you should definitely come say hi on the discord server of revery. They're doing bascially the same thing as you but for the reason/ocaml world. You guys might have very interesting experience feedback to share...

@cztomsik
Copy link
Owner

Accessibility was intentionally left out for now. I'd love to have it but it's still a project I'm doing in my free time and the scope had to be limited, sorry.

RTL & vertical langs are also out of scope for now and I don't think it's possible to do without having such people being part of the core team. And this is not just about text-input but also about text-shaping & text-layout which is very simplistic now.

I hope a some of that will be solved in the rust community, something maybe even during mozilla "oxidation" effort - rendering is not the only thing which is being reimplemented in rust so maybe it will be a bit easier then. People around webrender, pathfinder & druid projects are eventually going to deal with similar problems (and they are aware of it and also more skilled in this) so my strategy is now to wait, work on other things and hope for the best.

Text selection, etc. - yes, it's not easy but there is a lot of existing projects already, unlike GPU GUI renderers.

Thx for the revery channel, I know the project but I didn't know about their discord.

BTW: Instead of putting a lot of energy into trying to be as much "native" as possible (make lighter electron), I rather want to focus now on raspi (which is also much easier) because I think it is a way to get some funding (provide something which can be sold to B2B vendors) and then I can hopefully continue focusing on native too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants