Builder 41 Design Goals
Builder Design
Obviously design is a never-ending project, but we'd like to address some things for the next release while we port from GTK 3 to GTK 4.
Builder focuses on being the best IDE it can be for writing GNOME-based applications. We know we can't complete against large projects that are more widely focused, so we take that focus seriously.
Some big ticket items we probably need to rethink:
-
(High Priority) Investigate tab alternative to our document switcher
- The primary constraint here is maximizing vertical space for code
-
(High Priority) Improve visibility of search results in the editor despite overlays
- Again, we want to maximize vertical real-estate
- (Low Priority) Re-think our layout of preferences
- Do we introduce "per project" preferences? The backend supports it.
- (Low Priority) How should we make it easier to apply settings across languages
- Things such as where to put curly braces, spaces vs tabs
- Currently you can use modelines, editorconfig, gsettings...
- (Low Priority) We have relatively few templates. How should they be displayed as we add templates for new languages, application styles.
- List scalability has reduced how many we add
-
(High Priority) What are the common problems that newcomers have to contributing to a project?
- We've already drastically simplified things by making it easy to just click "Run" and doing all the SDK management
- What is holding them back from getting to Run?
- What is holding them back once they have the code open?
- Do we need to focus on Git integration?
- Questions for users, and potential users.
- (Medium Priority) We need a "Simulator" design so people can run apps inside something that looks like a phone, tablet, laptop, etc with newest GNOME builds
- How can we make it easier for people to make GNOME Shell extensions without breaking their current desktop?
- How can we get people testing in-development GNOME with their app?
- (Low Priority) We've very much avoided things like menubars and favored contextual access better
- How is that working?
- What would we like to change?
- What is missing?
-
(High Priority) We need a new designer library/application to replace Glade or GTK 4
- What do people love about design tooling elswhere?
- What should we copy?
- What should we avoid?
- Glade was not well loved, why is that?
- How do we tighten the loop between design and code?
- (Low Priority) How well are the container-based terminals working for users?
- Terminal on host vs in build container vs runtime environment
- Do we need
-
(High Priority) We currently have multiple ways to search across a project. Can we unify them?
- Global search based on file names
- Global search based on functions/classes/etc
- Grep across files
- We have a command bar which is a little bit like a "shell" into the program.
- How is that working?
- How can we improve it?
- Should it be combined with Search features?
- Some previous work on #31, #29, and https://gitlab.gnome.org/Teams/Design/os-mockups/-/blob/master/command-search/command-search-aday.png
- We need new style schemes that match GTK's Adwaita theme well
- Should we focus on type more than color?
- Should we focus on style variants more than color?
- How well are they working for those with vision imparments?
- (Low Priority) Spell check is an underused feature. How can we elevate it's use?
- (Medium Priority) We have a button for fullscreen to raise it's visibility. Should we move that to primary menu?
- What about the panel buttons?
- (Low Priority) Are users using the shortcuts? Are they discoverable enough?
- (Low Priority) What languages are people using most?
- What languages would people use?
- What missing language features are driving them to other products?
-
(High Priority) Builder uses devhelp for documentation access, but that is showing design issues and we need something that can work better for accessing documentation while people write code.
- What do people really like on other platforms?
- How can we display that information to users when they need it?
- When do users need it most? Browsing? While writing? Quick reference?
- (Medium Priority) Builder uses Sysprof for performance profiling and that likely needs redesign work going forward.
- I wrote it while trying to triage GNOME Shell performance issues
- It is a bit cumbersome to use from a Sandbox, but possible
- How are people other than us on the GTK upstream team using it?