-
Notifications
You must be signed in to change notification settings - Fork 569
Add goals section to README.md #971
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
Changes from 1 commit
19dee97
7d47e57
fa4cbd0
deae1c5
ea41c65
98f0bac
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -6,10 +6,11 @@ | |||||||
| [](https://docs.rs/druid/) | ||||||||
| [](./LICENSE) | ||||||||
|
|
||||||||
| Druid is an experimental Rust-native UI toolkit. Its main goal is to | ||||||||
| demonstrate the potential of Rust as an application programming language, while | ||||||||
| letting users write fast, small, and generally efficient programs with minimal | ||||||||
| hassle. | ||||||||
| Druid is an experimental Rust-native UI toolkit. Its main goal is to offer a | ||||||||
| polished user experience. There are many factors to this goal, including | ||||||||
| performance, a rich palette of interactions (thus a widget library to support | ||||||||
luleyleo marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||
| them), and playing well with the native platform. | ||||||||
| See the [goals section](#Goals) for more details. | ||||||||
|
|
||||||||
| Druid's current development is largely driven by its use in [Runebender], a new | ||||||||
| font editor. | ||||||||
|
|
@@ -62,6 +63,38 @@ druid's existing functionality and widgets. | |||||||
| [](./druid/examples/flex.rs) | ||||||||
| [](./druid/examples/custom_widget.rs) | ||||||||
|
|
||||||||
| ## Goals | ||||||||
|
|
||||||||
| Druid's primary goal is to provide a smooth and polished user experience with | ||||||||
| pixel perfect design and no behavioral quirks. In order to archive this we | ||||||||
luleyleo marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||
| strife for a variety of things: | ||||||||
luleyleo marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||
|
|
||||||||
| - Make it easy to build and package on all supported platforms. | ||||||||
| - Provide abstractions to avoid platform specific quirks. | ||||||||
|
||||||||
| - Provide abstractions to avoid platform specific quirks. | |
| - Provide a flexible and ergonomic API that abstracts common platform behaviour. | |
| - Make it possible to interact with the platform directly when more control is necessary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to note that abstracts common platform behaviour wouldn't cover things like the multi-click api in #859 because that's not a common platform behavior. It's an abstraction that builds the behavior.
luleyleo marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
luleyleo marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Enable robust internationalization. | |
| - Make internationalization easy and robust. |
luleyleo marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this item is a process goal, but not really an end goal? So I'm not sure I'd include it here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would say having a small dependency tree is an end goal. To put it differently, having a small dependency tree is one of the major reasons I'm personally interested in druid over Electron. I wrote in more detail about it #806.
Also the point about cargo build working is even more of a process goal, because that won't have any impact after the build step, while a small dependency tree will matter at runtime too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess I see "produce small and fast binaries with low memory usage" as being our shot at electron?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aside from being a good goal in general, I think it can be seen as such.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to the developer or the end user? 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To the end user. I think using user to mean end-user and developer to mean developer is a fine distinction to go with.