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

Making Writing Good Fyne Code More Accessible #2

Open
2 tasks done
xypwn opened this issue Oct 16, 2023 · 3 comments
Open
2 tasks done

Making Writing Good Fyne Code More Accessible #2

xypwn opened this issue Oct 16, 2023 · 3 comments

Comments

@xypwn
Copy link

xypwn commented Oct 16, 2023

Checklist

  • I have searched the issue tracker for open issues that relate to the same feature, before opening a new one.
  • This issue only relates to a single feature. I will open new issues for any other features.

Is your feature request related to a problem?

Fyne makes it very easy to get started with UI programming, and the open community allows for everyone to share their code to everyone else's benefit. Fyne-x is just one place where a curated collection of community content is gathered.

However, I've noticed that many of the community widgets are poorly implemented, or lack certain standard features. One particular feature that often goes overlooked is extensibility, which even many fyne-x widgets don't fully support. I don't think this is out of lazyness, but simply due to the inaccessibility of proper guidelines and/or lack of any systems to check if the code conforms to fyne standards. Personally, I had to look at the source code to get an idea of how to implement extensible widgets properly. There should at a minimum be documentation!

I think the community aspect and ease of use is one of fyne's biggest strengths, but to get the maximum out of these qualities, there should be a simple way to ensure at least some level of quality and modularity.

Is it possible to construct a solution with the existing API?

No response

Describe the solution you'd like to see.

There must be clearly written standards with examples describing how widgets or other fyne extensions should be implemented.

Humans always make mistakes, and Go is a perfect language for building a simple static analyzer (https://pkg.go.dev/golang.org/x/tools/go/analysis). This analyzer could check, among other things, that all of the general initialization logic is done in ExtendBaseWidget, so extensibility is guaranteed.


Keep in mind that this proposal is not yet fully thought out, and we will have much to discuss. Feel free to drop in any constructive criticism of the suggestions.

@andydotxyz
Copy link
Member

It sounds like this is specific to fyne-x and not the main toolkit, should the issue be in that repo?

@xypwn
Copy link
Author

xypwn commented Oct 18, 2023

It sounds like this is specific to fyne-x and not the main toolkit, should the issue be in that repo?

The discussed problem and proposed solutions are on a level relating to the whole fyne project. It may be required to branch this issue out to some of the other subprojects, but the main fyne project seemed like a good starting point to me.

Additionally, I mentioned that fyne-x was just one of many projects that are affected by this issue.

@andydotxyz
Copy link
Member

This seems like a documentation issue, so moving

@andydotxyz andydotxyz transferred this issue from fyne-io/fyne Jan 27, 2024
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