Builder 41 Design Goals
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?