Unsolved A call for supporting Andama, the open source remote desktop application.
-
I am John Bourkelis, the developer of the remote desktop application, Andama Remote Desktop.
First, I would like to thank everyone working for Qt because by using the Qt framework I managed to make this application a reality, running on multiple operating systems and in a very short time.
Andama is an open source remote desktop software that enables you to connect to a remote computer and use the mouse and keyboard as if you were sitting in front of it.
There is no need for complicated router setup, or any knowledge of the remote computer IP. Only the remote computer's ID and password are required.You can download and try the first experimental version of the application from this link: http://www.andama.org/downloads. The keyboard is not working on Linux yet.
The source code can be found here: https://github.com/YiannisBourkelis/Andama-Remote-DesktopOf course, there are many things to be done such as:
- Converting UI from Qt Widgets to Qt Quick
- Developing the application for iOS, Android and Windows Phone
For these reasons, I started an Indiegogo campaign to gather the required funds for the further development of the application.
To promote the Indiegogo campaign, I assigned to an office the composition and distribution of a press release for the application in blogs and in the media, as English is not my mother tongue. The press release has been published in Cision but for some reason I have not seen posts on other blogs and technology news websites. As a result, the Indiegogo campaign didn’t get the required attention.
Through this post I would like to ask anyone who finds Andama interesting to support it either through a donation or by uploading a review of the software on his blog or news site so that it will be promoted. The campaign will end on 23 January 2016 and is located here: https://www.indiegogo.com/projects/andama-an-open-source-remote-desktop-software/x/12527307#/
The press release is here: http://news.cision.com/dakota-digitalltd/r/sovereign-software-developer-unveils-new-era-of-remote-desktop-management,c9885870I am also available for Qt, if they wish to present the application as an example of an open source application that uses Qt Quick and runs on all popular platforms for desktop computers and mobile devices including Windows, OSX, Linux, iOS, Android and Windows Phone.
The application architecture is such that the code is common to all platforms by more than 99%. I estimate that the total lines of code in the first stable version will be less than 10,000. This makes it ideal for someone who would like to study how to use Qt Quick to write user interfaces that work across all platforms, how a communication protocol is implemented, how encryption and compression of data are implemented, how you can use an API of a specific operating system and many other interesting programming practices. -
Sounds great !
However, I don't understand if Andama UI uses QtQuick and if it is already to iOS and Android and Windows phone : at some point, you state it is to be done but later on you write that Andama is a good example showing QtQuick and mobile OS target...but I will sure have a look to your github repo ! Thanks for sharing. -
Will I be able to run my own Andama Proxy ?
-
@mrjj Yes you car run your own Andama Proxy. The code already compiles fine under Linux, OSX and Windows. The proxy source code is located here: https://github.com/YiannisBourkelis/Andama-Remote-Desktop/tree/master/src/AndamaProxy
-
@Charby Currenty Andama uses Qt Widgets for the UI. I was able to compile the application for iOS and run it on an iPad just for testing. I am planning to create the UI for the mobile platforms using QtQuick because it is more suitable for this purpose.
-
@Yianni I can help designing a QtQuick MVP to have a try on mobile
-
So this would be working like teamviewer?
sounds really cool. -
@Charby Great! We can discuss about it when you have some spare time.
-
@Yianni I can get myself available one day starting from next week to have a try.
What were your reasons no to fork UltraVNC GPL project, creating a Qt branch for instance ? -
@mrjj Yes there are some similarities, but there are some important differences to:
- It is free and open source.
- You can connect to a remote computer for as long as you want.
- You can connect to multiple remote computers at the same time.
- You can host the AndamaProxy on your own server for increased speed and security.
- All data will be encrypted using client-side encryption. The encryption key will be the password of the remote computer (This is what I am considering implementing).
- You can inspect the source code of the program to be sure that everything is implemented as described.
-
@Charby UltraVNC contains C code written maybe 10+ years before and it is very difficult to follow the logic.
I wanted to know exactly what every bit of code is doing. Also I used C++ and RAII to minimise the possibility of memory leaks.
The philosophy of VNC in general is to connect to an other computer using it's IP address and setting up port forwarding rules on the router.Maybe I took the hard road to implement everything from the beginning but at the end I managed to create a solution with much less code that runs pretty fast and contains modern C++ code. The current implementation with the proxy has a latency between 500ms-1000ms when doing something on the remote computer. It will be much faster with direct connections.
-
Hi and welcome to devnet,
Looks very promising :)
-
@SGaist Thank you for the warm welcome
-
Hi, good idea of supporting a proxy, for connecting to some of my customers (because they are doctors inside of a hospital firewall) I have to pay for proprietary solutions like www.gotomypc.com, which gives you a proxy connection. But it's sloooow for console windows.
So if Andama (αντάμα right?) would offer a good proxy that would be great!
BTW: I looked at your source code on GitHub, consider switching commenting in Greek to commenting in English, remember the English people have a saying: it's all Greek to me :-)
-
@hskoglund Yes, Andama is αντάμα. I am planning to do plenty of refactoring to the current code and I will also try to translate all the comments from Greek to English.
Have you tried Andama inside the hospital? How was your experience?
-
About trying Andama: not yet, the hospital is 600 km away, but I'll go there in a couple of weeks, should be interesting to try (i know things like FTP or chat programs doesn't work inside the hospital's firewall).
-
Do you already have a design documentation and a bug tracker in place?
I would like to work on Andama next Wednesday to switch to Qt Quick and integrate localisation with Qt linguist. As for issues : I have noticed that keyboard local settings are not handle (typing 'a' on a french kb will result with a 'q')
It is already satisfactory (congrats!) but It would be even better to compare frames and send incremental changes only... -
@Charby I have not created a design documentation yet, only code comments in Greek language. I will start translating these comments in English.
For issues we can use the issue tracker on github.
Next Wednesday is ok for me. We can arrange a meeting and start working on it. In the meantime I will upload in github some UI prototypes for the mobile devices I have created.
I suggest to start with the mobile UI because it is a little bit simpler to implement compared to the Desktop OS UI.Andama is already sending only incremental desktop image changes. When a client is connected to a host, the host sends the whole desktop image to the client. After that, it sends only the changes to the previous desktop image.
This is implemented in screenshotsworker.cpp > void screenshotsWorker::prepareAndSendScreenshotDiff().
The lag that we experience now is because all traffic is routed through the proxy located on a linux VPS in Germany. When direct connection functionality is implemented everything will be much faster.