Touchpad Source Release

By | August 19, 2012

As I mentioned I'm planning to do, I'm finally now releasing the source code and assets for the Touchpad app and related server code. I've received some interest and feedback that I'm just not finding the time for myself to implement. I built the app primarily to solve a problem that I had, and now that the problem is pretty much solved for my needs, I've mostly stopped working on it. That said, I'd like to enable others to make improvements!

The source is available on GitHub. The code and assets are released under the MIT license; however, my hope is that if there is interest in working on the app, that contributors will issue pull requests on GitHub and I can release updates with your improvements to all the current Touchpad users. Of course, Touchpad will always be completely free and never include ads: I won't be profiting from anyone's work on this project. Anyone contributing a change that is released with the Touchpad app on Google Play will of course be credited.

Here is a rough outline of where the project is at:

  • Probably the highest priority issue to fix is connection stability issues. I personally have not been able to reproduce these problems on my network/device with rare exceptions (once a week at most), but many users have reported this as a much more frequent issue in comments here and on Google Play. This is almost certainly due to the lack of multithreading in the Android app. On my network, I seemed to just be able to get away with using a non-annoying timeout period for TCP socket operations (the Timeout option in Preferences), but clearly this isn't cutting it for many users. I believe the server app is solid here, I'm much more experienced with C++/Windows and was comfortable using a separate thread for network operations. The real solution to this problem would likely be to implement multithreading for network communication in the Android app.
  • I've included all the resources used to build the app: both SVG files created with Inkscape, and rendered PNG files. One thing on my to-do list was to automate the rendering of the SVG files into PNG. The reason this is tricky is it made a lot of sense to use one SVG file to render several of the interface assets, by turning various layers on/off. I didn't dig into Inkscape/SVG files enough to figure out how to automate this process, and I wasn't changing these assets frequently enough to justify that investment.
  • Had I known that it was practical to use the VNC protocol as a means of controlling the computer without involving the remote viewing capabilities of VNC, I would have used it instead of building my own protocol and server app. This would be much better because users would not have to worry about installing a native windows application on their computer, not to mention a native app that has the ability to listen for commands from the internet and control their machines! Additionally, any platform with a VNC server application available could be controlled by Touchpad, instead of just windows. This would be a fantastic improvement, but a challenging one.
  • There is a difference between the code released on GitHub and the latest version on Google Play. I began implementing a system for saving favorite servers by adjusting the menu hierarchy and some other small changes, but I never finished this feature.

Hopefully, this isn't starting the open source life of this project off too terribly! My hesitation in doing this so far has simply been that I have little experience with open source projects. If you see me doing something stupid, please don't hesitate to tell me!

9 thoughts on “Touchpad Source Release

  1. JC

    I've been looking for one of these apps that works at the windows login screen, so that I can logout and log back in to another user account using the app. There is an iOS app called Touchpad that I've used that can do this, and it uses UltraVNC server instead of a proprietary one. Do you know of any android apps that do this as well? Or if there's something I'm just setting up wrong?

  2. Deepankar

    hey hi I want to know how do the mobile device connects to the in over wi-fi or bluetooth or what?? Kindly help me as I want to learn.

  3. Deepankar

    I also want to learn from the code...I am using eclipse...where do I get all d libraries tha u hav used...I am just a beginner...can u help me in dis....what all configurations shud i do before running ur project in eclipse.

  4. darkdeity

    to start off... ty vm for makeing this program... as per not using vnc... your saving your self a big headache... along with gaining some appreciation from some of the smaller communities that dont like over used controlling applications... ill see what i can do to help the dev, and wish you the best of luck!

  5. Fletcher Johnson

    The fact that you are releasing the source code is incredibly fantastic. It's a great app and I'm using it right now to write this message. It definitely sounds like the right direction in making it platform agnostic!

  6. anand

    no doubt any body would like your app, me too like the same,

    if you can provide an option where i can use your app exclusive for scrolling mode, so i will use laptop touch pad for moving the mouse cursor and android app for scrolling.

    and may be if there is a gripper kind of thing in your app exclusive for scrolling, if i pull down the scroll will be downwards and the same for the upward movement.

    Reason being my phone after a little use, the screen becomes sticky and multitouch becomes tough.


Leave a Reply

Your email address will not be published. Required fields are marked *