August 2020

Veli Tasalı yazdı   ·   27 August 2020

plan life android gnome uprotocol

August 2020

August 2020

This summer was full of events. I talked about some of it in a previous post1. We passed the first phase of GNOME Challenge, TrebleShot has become the de-facto open-source file-sharing app on Android, and I met lots of great people.

I also published the roadmap for uprotocol development. uprotocol2 aims to standardize the file-sharing tools so that even simple media apps (e.g., gallery) can share files using the same protocol. It is also better than any proprietary solution as it is an open one.

TrebleShot 2.0 will be benefiting from uprotocol. It will use the dedicated uprotocol library for the Android platform apart from the base Java library. Because 2.0 will be a major release, it will break the compatibility with older versions. Doing so has a few benefits. For instance, it will have cleaner code. It will also be more secure because the legacy code will not be a part of the protocol.

Designing this protocol needs careful work as what comes after the release has to be compatible with this major release. For that reason, I want to include encryption support before releasing it.

uprotocol has a future, in my opinion. It will enable any app to send files to uprotocol clients and vice-versa. But It looks like it will not be without a fight. Nearby Share has come to be only recently, and most people will choose it over uprotocol solutions. It is especially true for simple tasks. However, I believe those solutions will always have a limited range as they are, again, proprietary.

CoolSocket, a socket library empowering uprotocol, needed some work. I added new features that should make communication more reliable and easy to manage. It can now cancel an operation without any task overhead. The cancel call waits for the next exchange and informs the remote so that both sides will cancel. However, canceling will not close the connection. It will only stop whatever the next thing is. The two sides can still communicate after handling the cancel call. The only problem I had while working on these features was the performance going down to almost 10% of its actual potential due to two sides being in talk all the time. To avoid the performance impact, I made the reading side wait for 2048 operation cycles, which only happens if you use the same descriptor. If you use a different descriptor each time, this cycle will not be able to help the performance gain.

Apart from this, TrebleShot has risen to the throne in the FOSS file-sharing category. Recently, with India banning ShareIt, many derivatives based on TrebleShot surfaced on Play Store and other places. Some of them were not complying with the license. I am guessing this is what happens with FOSS apps all the time, and this is especially true in proprietary spaces like App Store and Play Store because only a small number of people are interested in whether the app they are using FOSS or not. It is not much of a problem for desktop solutions as they are harder to compile and understand.

Another good news is we passed the first phase of the GNOME Challenge. Our "The Open University Project" is one of the twenty projects that did so. If it can make it to the third phase, it will be fun to work on because we will be writing invitation emails to many great people to be on our platform. Also, let me also say, I admire these people very much.

With our project, we aim to educate people in the community and certify them to increase their chances in the software space and of contributing to open-source software. And, as we are just getting started, I am preparing the roadmap for our project, and afterward, we will give it a proper name as you might know "The Open University Project" is the project name, and we never planned using it when launched. I am looking for something that resembles what the platform does.

That was the summer for me. It was fun and different this time. Thank you for taking the time and reading this.


  1. May 2020, the previous update on the summer. 

  2. uprotocol, the open standard for content sharing.