-
Notifications
You must be signed in to change notification settings - Fork 370
What is Candy? #412
Comments
On the grounds that anything with a View layer is never going to be used without customization, I would look into separating Candy into a toolkit and a vanilla UI implementation, essentially supposed to be extended via fork. The toolkit would instead be intended to be used as is. |
Everything you stated is definitely in line with what Candy is to me (and my use case). For me (and I hear similar woes in this issue forum) Candy was a real pain to customise -- because the View layer was not modular enough to be monkey-patched effectively. Extension points seem to exist by coincidence rather than design. IMHO, this is the main pain point. It's also the main selling point, at first glance Candy does appear to be quite customisable -- especially when compared to the other XMPP Web Chat libraries. It's only when you really sink your teeth in that you come into some tough-to-solve problems. |
I guess I'll add a bit about my specific use case. Basically, I work on a real-time web application where students interact in a classroom-like environment online. With Candy, students can easily communicate to each other and their instructor inside the virtual classroom. Candy is integrated into the application as a small pop-up in the bottom right corner of the screen, which is themed with the customer's brand colours. Not sure if this is a typical use case, but I chose Candy after seeing some of the examples in the Wiki's "in the Wild" section: https://github.com/candy-chat/candy/wiki/Candy-In-The-Wild Seems like most of those interfaces would have been quite cumbersome to cobble together! Especially the one where it's integrated into a game -- not really sure how they did that. |
Could you perhaps include some screenshots of that implementation so we can understand the extent of your customisation, @tylermauthe? |
Probably, I'll find out if it's okay to share. |
In planning for changes to come to Candy, it's important I think for us all to fully understand what Candy wants to be, what the project is trying to achieve and what use-cases we support.
Background
From http://candy-chat.github.io/candy:
and
Some discussion at #207:
Relative positioning
Other Javascript XMPP clients include:
Converse is intended to be separate from any service, permitting connection to any network; the opposite of the statement on the Candy website and the general trend towards specific clients for specific services. Kaiwa is much more similar to Candy, with a bunch of features that Candy lacks, but based on Backbone and some &yet specifics (HumanView, etc) without any focus on customisation/extensibility.
Candy's current upside is that it intends to be extensible with a plugin system and customisable in terms of theming. The downside is that both of these are difficult, brittle, and don't scale well; this is partly because Candy
Potential statements of Candy's purpose
Some candidate statements, without being dressed up, might be:
Further:
These of course might be composed.
I'd love to hear everyone's thoughts on what Candy is to them, what Candy should be and how it might be differentiated from other similar projects. If we can decide this, we can properly allocate effort to work that will advance a goal, rather than starting from either implementation fantasies or narrow resolutions to specific issues.
The text was updated successfully, but these errors were encountered: