UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

    Scheduled Pinned Locked Moved App Development
    5 Posts 3 Posters 140 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • brenno.almeidaB Offline
      brenno.almeida
      last edited by

      Hi everyone! I've been working on a qml Whatsapp client for Ubuntu Touch for a few weeks, now I think its good enough for its alpha release.

      The app is not complete, there's still a ton of work to do, and probably many bugs. If you want to test it out, feel free to install in your device, and get back here if you find any bug so I can look at it. The Whatsapp protocol is awful to work with, I'm posting this early to gather feedback about edge cases.

      Consider this app as Alpha, don't use it expecting to be 100% functional or complete, but use it to give feedback and help with the development.

      Also the app runs unconfined to setup a background daemon, more on the architecture bellow.

      Releases here: https://github.com/brennoflavio/greenline/releases

      Once its stable, I'll publish to the store. Now more details about it.

      Architecture

      This app is composed of 3 parts:

      1. Golang Daemon

      This daemon managed by Systemd connects to Whatsapp servers and runs continuously in the background, gathering events and pre processing them. Also:

      • Manages your encryption keys
      • Serialize whatsapp events, stores in a queue
      • Expose a JSON RPC endpoint to read and send messages, among other operations
      • Syncs users avatars, media, and other data
      • Sends notifications
      1. Python Backend

      Event driven backend that pulls events from the daemon and acts on them, building a chat room and message database. It also sends events to the frontend, updating the message list in real time

      1. QML

      The frontend is entirely written in qml and communicates with python using pyotherside

      In order to pull messages in the background, it needs to run unconfined.

      arubislanderA pparentP 2 Replies Last reply Reply Quote 1
      • arubislanderA Offline
        arubislander @brenno.almeida
        last edited by

        @brenno.almeida Do users of this app run the risk of Meta blocking or otherwise disabling their their accounts after a while, for using an unofficial WA cliΓ«nt? Or does this use the same.API as the browser is using?

        πŸ‡¦πŸ‡Ό πŸ‡³πŸ‡± πŸ‡ΊπŸ‡Έ πŸ‡ͺπŸ‡Έ
        Happily running Ubuntu Touch
        JingPad (24.04-1.x daily)
        OnePlus Nord N10 5G (24.04-2.x daily)
        PinePhone OG (20.04)
        Meizu Pro 5 (16.04 DEV)

        1 Reply Last reply Reply Quote 0
        • pparentP Online
          pparent @brenno.almeida
          last edited by

          @brenno.almeida

          Very nice!

          How do you interact with Whatsapp protocol? Did you reverse ingeneer it yourself? Do you use an existing library?

          1 Reply Last reply Reply Quote 0
          • brenno.almeidaB Offline
            brenno.almeida
            last edited by brenno.almeida

            @arubislander @pparent app uses whatsmeow, a golang implementation of Whatsapp Web socket. So from Whatsapp perspective, its like you're using Whatsapp Web.

            The risk of being banned using unofficial tools is never 0, but extremely low if you don't abuse the tool. Its the same risk of using the WhatsApp Matrix bridge for example, that uses the same library behind the scenes.

            pparentP 1 Reply Last reply Reply Quote 0
            • pparentP Online
              pparent @brenno.almeida
              last edited by

              @brenno.almeida

              Nice! Your app could be very useful especially to receive notifications in background with lower battery costs.

              Hope the whatsmeow library can remain reliable in the long run!

              Maybe you would like to post some screenshots of your app? πŸ˜‰

              1 Reply Last reply Reply Quote 0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better πŸ’—

              Register Login
              • First post
                Last post