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

Capyloon, KaiOS #42

Open
sjehuda opened this issue Nov 24, 2022 · 16 comments
Open

Capyloon, KaiOS #42

sjehuda opened this issue Nov 24, 2022 · 16 comments

Comments

@sjehuda
Copy link
Contributor

sjehuda commented Nov 24, 2022

Currently, there are no XMPP messengers for KaiOS, so I offer web based instances.
I think we need to offer web based instances to other platforms too.
I didn't find instances for JSXC.
Candy Chat instances I've found either were inside path or not in English by default.

  1. User agent string to look for is "KAIOS"

  2. clients_KaiOS.json

[
    "<a href=\"https://jwchat.org/kaiwa/login.html\"><img src=\"assets/kaiwa.svg\" height=\"60\">Kaiwa</a>",
    "<a href=\"https://movim.hmm.st/\"><img src=\"assets/movim.svg\" height=\"60\">Movim</a>",
    "<a href=\"https://www.libervia.org/\"><img src=\"assets/libervia.svg\" height=\"60\">Libervia</a>",
    "<a href=\"https://conversejs.org/\"><img src=\"assets/conversejs.svg\" height=\"60\">Converse</a>",
    "<a href=\"https://web.xabber.com/\"><img src=\"assets/xabber.svg\" height=\"60\">Xabber</a>"
]
  1. New brands
    Kaiwa
    https://user-images.githubusercontent.com/19249089/203756088-1b4de181-ec81-4ed4-978c-9793d9485334.svg
    Movim
    https://user-images.githubusercontent.com/19249089/203756111-14f55efc-0484-4182-90da-4cd86c8ceef6.svg
    Libervia
    https://user-images.githubusercontent.com/19249089/203755858-4b415dbb-6db5-463a-804d-6ba7410b1f6f.svg
@sjehuda
Copy link
Contributor Author

sjehuda commented Nov 25, 2022

XMPP messenger https://git.disroot.org/badrihippo/convo (not yet available in stores)

@sjehuda
Copy link
Contributor Author

sjehuda commented Mar 10, 2023

Hello, @badrihippo

Can you please tell us what's the status of convo?

@sjehuda
Copy link
Contributor Author

sjehuda commented Mar 10, 2023

@edhelas is Movim a PWA yet?

That is, is Movim installable on devices such as Capyloon, KaiOS or other PDA/Phone devices?

Is the interface local or exclusively online.

What about desktop?

@sjehuda sjehuda changed the title KaiOS Capyloon, KaiOS Mar 10, 2023
@badrihippo
Copy link

Hello, @badrihippo

Can you please tell us what's the status of convo?

Convo is unfortunately on hold because I have not had time to work on it 🙁

I have a KaiOS phone as my primary device and use XMPP as my primary mode of texting, so this will definitely finish at some point, but I can't give any timelines. Here's a basic todo list though:

  • Finish [WIP] Split OMEMO plugin into view and headless components conversejs/converse.js#3117 so that there's a headless version of ConverseJS OMEMO
  • Integrate the above into Convo
  • Display roster (it's there internally but right now you can only see open conversations, which means the only way to start a new conversation is to do it on a different device while Convo is running or to hope the other person messages you)
  • Some fixes to prevent it from freezing the first time it starts when the flood of messages come in, etc. (Basically respond more intelligently to events instead of blindly refreshing everything in response to every single event).

Once this is done, Convo should be usable 🤞

@sjehuda
Copy link
Contributor Author

sjehuda commented Mar 10, 2023 via email

@badrihippo
Copy link

Thanks for the offer, @sjehuda! I think I'd better finish the OMEMO part, because it's a bit complicated and I have to make sure it works well on KaiOS.

But once that's done you can definitely help with the rest of the interface! That will be things like adding menus and lists to show the contacts, toggle encryption, display images, etc. which is not specific to the device. I think you can do most of it without even having a device; just keep some basics in mind and I can live-test it to give you feedback.

But I'll get back to you when the OMEMO part is done! Hoping to get back in a week or two 🤞

@sjehuda
Copy link
Contributor Author

sjehuda commented Mar 11, 2023 via email

@edhelas
Copy link

edhelas commented Mar 14, 2023

@edhelas is Movim a PWA yet?

That is, is Movim installable on devices such as Capyloon, KaiOS or other PDA/Phone devices?

Is the interface local or exclusively online.

What about desktop?

Movim is a PWA yes https://movim.eu/#apps it requires to be always connected to internet however. But it can be installed on Android (and maybe the other OS you mentionned ?) directly from the web browser.
I added WebPush notification support in master, it will be there in the upcoming version (0.21).

@sjehuda
Copy link
Contributor Author

sjehuda commented Mar 14, 2023 via email

@badrihippo
Copy link

Hi! I realised I dropped this thread for more than a year. Unfortunately there have been not many updates from my end as I haven't been able to find the time to work on this. However, there's been some renewed interest in the project partly due to WhatsApp going to soon drop support for KaiOS.

So it might be usable now (at least, the most usable XMPP app currently available for KaiOS).

By the way, it might make sense to handle Capyloon separately from KaiOS? They are technically based on the same OS, but KaiOS is tuned for phones with physical buttons, whereas IIRC Capyloon is meant for touchscreen devices. So the apps designed for one may not work well on the other—for example I can imagine Movim working in Capyloon with a touchscreen browser but it seems like it'd be cumbersome and unoptimised for KaiOS button phones, which have smaller screens and can't be touch operated.


Updates on the pending problems I mentioned last time. Apart from OMEMO, the remaining two problems have been partially addressed:

  • OMEMO encryption Since OMEMO encryption will take time, it might make sense to develop more basic features (like adding a new contact) on the side.
  • Display roster there is now an option to browse and open a chat with existing contacts, as well as to close open conversations
  • Some fixes to prevent it from freezing the first time it starts when the flood of messages come in, etc. As a workaround, I have limited the app to only access/store the last 30 messages in each conversation (this includes "user is online/offline" messages! Also, I disabled groupchats since they tend to get flooded with messages causing a memory overflow. I should probably create a new screen so you can manually re-enter whichever groupchats you want

I haven't yet published Convo on any store, but put out a release so people can download the ZIP file and sideload it to KaiOS if they know how to do that. KaiOS users who do any kind of experimentation tend to know how to install files from a ZIP, but let me know if publishing it to some store would help. I imagine the BananaHackers store would be easiest to get into (also, the KaiStore requires people to implement ads)


Regarding what @sjehuda said earlier about contributing:

I don't have any experience with KaiOS program development; please let
me know if I can be of a help.

I don't have a phone of that type so I can't test it; please correct me
if I'm wrong.

If so, I'll see if someone sells a used Nokia 8110 and attempt to
purchase it next week.

I know it's been a while, but if you're still ready to contribute it would be good to have help on some of the issues listed in this project! ConverseJS already has most of the features, so it's just a question of exposing them to the UI. It is possible to test out from desktop if you resize your browser window to KaiOS size (240 x 320 px) but of course having the device gives you the full experience. Desktop browsers don't have the special Softkey buttons of KaiOS, but as a workaround I double-mapped [ and ] to act as left and right Softkey selection respectively.

Anyone else interested in contributing is welcome too!

Also, I'm assuming people here are using XMPP. I created a chat room about Convo if anyone wants to talk in detail there. We should probably do that or create an issue on the Convo repo since this seems slightly off-topic here.

@sjehuda
Copy link
Contributor Author

sjehuda commented Oct 18, 2024 via email

@poVoq
Copy link

poVoq commented Oct 18, 2024

it might actually be interesting to have an alternative UI for Movim for KaiOS.

The current one is indeed not very usable on small screens and with a keypad, but it is more lightweight than running ConverseJS. Back when I was running Ubuntu Touch on a Nexus 4, Movim was quite a bit more usable than Conversejs on this slow device.

The websocket interface of Movim is AFAIK largely undocumented and not meant to be used by other UIs, but maybe Edhelas is willing to give some hints for such a alternative KaiOS UI.

@badrihippo
Copy link

May you please share a current/dated user-agent string of Capyloon or KaiOS?

@sjehuda, here is the user agent on my KaiOS 2.5.2, according to DuckDuckGo:

Mozilla/5.0 (Mobile; Nokia_2720_Flip; rv:48.0) Gecko/48.0 KAIOS/2.5.2

I guess the KAIOS/* is the thing to look out for?

it might actually be interesting to have an alternative UI for Movim for KaiOS.

The current one is indeed not very usable on small screens and with a keypad, but it is more lightweight than running ConverseJS. Back when I was running Ubuntu Touch on a Nexus 4, Movim was quite a bit more usable than Conversejs on this slow device.

The websocket interface of Movim is AFAIK largely undocumented and not meant to be used by other UIs, but maybe Edhelas is willing to give some hints for such a alternative KaiOS UI.

@poVoq I actually like the interface of Movim; it looks more polished than most web-based XMPP solutions! For Convo, I chose ConverseJS mainly because I thought Movim requires a server as well, which requires extra setup (or registering on an existing Movim server). But if it's a PWA and running only in the frontend that could work too. @edhelas is it true that Movim requires a backend server as well, or could everything be included in the PWA?

That said, KaiOS devices are low spec—mine has just 512 MB RAM—so offloading some work to the backend may not be such a bad idea. I hear the new Cloud Mosa phones do something similar, running/rendering all apps remotely. Which sounds scary for privacy but great for performance as long as your Internet is good.

@poVoq
Copy link

poVoq commented Oct 19, 2024

Yes, Movim requires a server backend and offloads part of the work to it.

@badrihippo
Copy link

Just to update, Convo has now been released on the BananaHackers WebStore! This is not the official store, but it is still widely used (I already got 59 downloads within the first 32 hours of releasing it, although I'm not sure how many were direct downloads vs. from the store).

Group chat support has been added, which makes it much more usable (especially since most public group chats are unencrypted).

For the link, sending people directly to the webstore would have been ideal as users can install Convo directly. Unfortunately, the store doesn't load properly in the KaiOS browser (one is expected to use the app instead).

The Convo repo page loads properly and goes to the README. I've included a BananaHackers WebStore badge and installation instructions near the top so users should get the point. Perhaps that's the best option for now? (I could do a small website/home page in future. And hopefully get onto the official KaiStore and JioStore itself at some point, but that's more distant)

@sjehuda
Copy link
Contributor Author

sjehuda commented Oct 29, 2024

Congratulations!

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

4 participants