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

Ebou as a juicy client #3

Open
erlend-sh opened this issue Jun 18, 2023 · 2 comments
Open

Ebou as a juicy client #3

erlend-sh opened this issue Jun 18, 2023 · 2 comments

Comments

@erlend-sh
Copy link

erlend-sh commented Jun 18, 2023

Do you think Ebou might be flexible enough to fit the vision of a multi-modal client?

https://blog.erlend.sh/juicy-clients

Basically I’m wondering if you’d accept contributions towards this, starting with an additional view to support a Reddit-style interface. There’s a lot of interest in this within the Rust community so I’m confident we could rally support for this effort: https://www.reddit.com/r/rust/comments/146qxzn/building_a_better_rrust_together/

Although it’s several Dioxus versions ago now, there’s some prior art for a links-aggregator UI by @mrxiaozhuox here: https://github.com/mrxiaozhuox/dioxus-hackernews

@terhechte
Copy link
Owner

This will probably require a lot of refactoring due to the complexity of this approach:

  • To allow for different login mechanisms / profiles
  • To find a (let's call it ViewModel kind of layer (e.g. for a Post / Status) that is the greatest common denominator for all platforms (e.g. what do you do if one platform only has image and the other has image, thumbnail, medium, etc)
  • To find a reasonable UI experience that supports these sometimes very different kinds of data structures.

Ebou already has a pretty good nested / conversation view for toots & replies. This would be a very good starting point for a Ebou-Based client that consumes link aggregator APIs and the discussions related to it.

One possible approach would be to start working on this as a separate app, but everything that can be shared from Ebou could be refactored into a separate crate (e.g. ebou-ui or Ebou-shared) so that this separate app uses as much of Ebou as possible (while also improving the overall Ebou code structure).

Then, at some point, merging these codebases might be much simpler because of all the upfront groundwork (if that, then, is still a reasonable goal).

If this sounds interesting to you, I'd gladly accept PRs that start splitting the Ebou codebase up into multiple crates (e.g. a proper cargo workspace) and making the conversation view or the sidebar or the labels, buttons etc available to more crates. That would then be a good foundation to start forming a new app.

@erlend-sh
Copy link
Author

While not a Dioxus app, an official Lemmy app made in Leptos should also be quite instructive:

https://lemmy.world/post/1640453

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