almindor / harbour-jTox

Sailfish OS native tox implementation for Jolla
GNU General Public License v3.0
12 stars 4 forks source link

[proposal] Create Qt toxcore library #47

Open sudden6 opened 6 years ago

sudden6 commented 6 years ago

Hi,

I'm one of the lead developers of https://github.com/qTox/qTox a desktop Tox client built with Qt. I noticed your project from being mentioned in in #toktok on freenode and wanted to know if you would be interested in creating a common Qt toxcore library so both our clients can build on a solid base and reduce the code duplication. If you're interested contact me over Tox or ping me on #qtox or #toktok.

mschilli87 commented 6 years ago

@sudden6, @almindor: In case you already got in contact about this, it would be great if you could quickly summarize the current status and roadmap. I think this is a fantastic idea that the Tox community can only benefit from but I do understand that this might not be all that trivial as it may sound. :wink: However, especially for people considering to contribute this could be a big plus as a shared effort would reduce the risk of the contribution ending up unused due to another library getting more popular.

sudden6 commented 6 years ago

@mschilli87 IIRC @almindor wanted to keep a very thin abstraction layer for his client. On the qTox side not much has happened, but this PR https://github.com/TokTok/qTox/pull/13 is a good start in the direction of making the toxcore abstraction more modular. Because of the release I haven't had time to merge it into the main repo yet.

antis81 commented 6 years ago

Hey, I am also former contributor to qTox - now using jTox on Sailfish and just stumbled upon this issue. Actually I have written such an API "incidentally" more than two years ago - now lingering in the dark and dusty corners of the internet, waiting to be unleashed… :)

The difference (and IMHO quite an advantage) of this approach is, that it uses thin (plus easy to use) "query layers" instead of Qt-Models. Currently it needs only two of 'em, namely ToxProfileQuery and ToxFriendQuery. What probably nobody has noticed, is that those actually can be used likewise in QWidget and QML based applications. A usage example for QML sits in the Toxer Readme file.

Now split this into a library, do some documentation work (if needed) and we almost instantly get a powerful and rock-solid technical code-basis for all kinds of Qt-Toxclients!

In current state the API sports simple 1v1 text chat (w/o history!), message notification and some other stuff in a rock-solid code base. An example for a QML representation is what I called ToxerUI.

antis81 commented 6 years ago

Hey guys, still interested in a generic QML framework? Believe it or not, there's one available now! #clickbaitstrikesback :)

-> Toxer framework: https://gitlab.com/antis81/toxer/blob/sfos -> SailfishOS reference implementation: https://gitlab.com/antis81/toxer-sfos/blob/split-projects (yeah i know. by the time of writing it is not merged back to master yet, but it will be soon)

Please share your ideas and don't hesitate in experimenting with it or even contribute code or other stuff…

antis81 commented 6 years ago

Just created a https://gitlab.com/Toxer organisation sporting currently two desktop & SFOS messenger implementations with more or less basic functionality. Both share the same C++ codebase! Please let me know when there is any interest.

@almindor Do you do Gitlab? You are happily invited. :)

almindor commented 6 years ago

@antis81 I've just registered since I only used my own gitlab before. Handle is almindor same as here.

almindor commented 6 years ago

@antis81 Do you have any preferred method of communication for the project?

antis81 commented 6 years ago

@almindor Please find me on discord or telegram. Other than that I prefer pull requests on gitlab plus a little review. :)

antis81 commented 5 years ago

It's been a while and meanwhile I found a bit time to add more stuff to Toxer - which I like to share.

It still requires a little effort by users (copying the *.tox profile to the right place), but it is actually possible now to chat with the SFOS client implementation. For "live testing" the app, I used the desktop version as counterpart. Here's some visual impression (message logs differ here caused by connectivity problems, still impressive ^^):

messenger_view

@almindor Last not least I installed a public #toxer IRC channel for general discussion about Toxer and I happily invite everyone interested. I cannot guarantee being online regularly, but I'll do my best.

almindor commented 5 years ago

Didn't realize you're the same guy that helped on lighthouse :D Is this channel on freenode? Sorry for not being more active on the toxer stuff, I had a pretty busy period lately. I'm about to add voice calls to jTox but am considering using the toxer base first and then adding it there. It's a lot of work tho.

antis81 commented 5 years ago

Didn't realize you're the same guy that helped on lighthouse :D

I am. :)

Is this channel on freenode?

Sorry forgot to mention I created a public #toxer channel on OFTC. This is the first IRC channel I ever created. Let's see how it goes…

Sorry for not being more active on the toxer stuff, I had a pretty busy period lately.

No problem. Toxer goals are quite different from jTox or other client implementations and it is totally fine to co-exist. For long time Toxer's project infrastructure made it very hard to for people to contribute stuff at all. Hope this keeps getting better now…

I'm about to add voice calls to jTox but am considering using the toxer base first and then adding it there. It's a lot of work tho.

Ok, thanks really! I'd recommend to start with something more simple than voice calls tho, but it is completely your decision. There's enough stuff to add and I don't have a real roadmap (prbly I should add one)… :)