Android support
At the moment the plan is to support this via libpurple plugin. I am trying to make a native libpurple plugin, implementing all features of current Python TorChat and this would also be able to be compiled for ARM processors. There seems to be an android version of libpurple now and orbot also seems to work, so this seems to be the most reasonable way for me at the moment to get something up and running.
I might be interested in helping with this. I currently don't know any of the relevant code bases, but hey. I could at least go read bits of them.
Unfortunately I do not (yet) own an Android device myself, so everything I believe to know about Android is from what I read from other people on the web. What I do know is that it is possible to cross compile from Linux/i386 (or Windows or probably also from Mac) to Android/ARM with Free Pascal (once you have managed to set up this build environment with all its necessary tools). Unfortunately I have never done this myself, so I cannot be of much help here (the only cross compiling I do at the moment is from Linux to Windows which is quite simple).
There is some information scattered across the FPC Wiki: http://wiki.lazarus.freepascal.org/Custom_Drawn_Interface/Android#Configuring_the_Free_Pascal_Compiler_for_Android This link also contains stuff about the LCL GUi toolkit which is NOT of interest to us at the moment but it also contains some general information about setting up the compiler and binutils for producing Android/ARM code and all we ultimately need to do is to be able to compile and link a simple shared library and none of the more complicated GUI stuff is needed. As far as the combination FPC & Android is concerned this is all still pretty new and bleeding edge stuff but I expect it to become easier over time.
And If it is for some reason not easily possible to make a plugin for libpurple on android then there is still the possibility to use the core units of TorChat to make a simple library that can be called directly from a little Java GUI (without needing pidgin and purple at all)
I would be interested in contributing to this. Would it not be better to use existing code from jtorchat and port that into an android application? This seems like a much easier way to achieve it than compiling native ARM code.
I don't know anything about JTorChat, this is a completely separate project from different authors, they re-implemented everything from scratch in Java.
As far as creating native ARM code is concerned I think this is easier than it sounds. Once the build environment is set up its just a matter of clicking the compile button.
And as far as I am concerned I would definitely not use Java for the core protocol implementation, I would make a native libtorchat.so with the existing code base (much simpler than the libpurple plugin, just a thin wrapper around TTorChatClient exposing a flat procedural interface) and then make a Java/Android GUI that will use this lib.
Reimplementing all the code from scratch only for Android is too much work, don't underestimate just how much work this is to get it right, and then you would still end up with code (Java) that does not run on all platforms and has ridiculously huge runtime dependencies (Java) and resource requirements on the platforms where it runs. I'm doing this rewrite now once and for all in a very portable, safe, clean and powerful language (Object Pascal) and then there will be code that can easily be compiled for any platform without any runtime dependencies at all.
Once the libpurple plugin is complete (very soon) and the standalone GUI is also complete (a few months) then we can start making a generic libtorchat.so (would only take a day or two to wrap the TTorChatClient class into a procedural API) that can serve as the basis for any sort of client anywhere, even on the iPhone.
Yeah, that sounds like a much better idea than mine actually.
I've never coded in pascal before; I will have a dabble over the next few days.
I'll be keeping a lookout for your libpurple plugin.
It appears the guardianproject.info has two separate XMPP clients with OtR support, Gibberbot is seemingly all Java, but Beem already uses libpurple : http://guardianproject.info/tag/jabber/ I suspect this make Beem integration the natural route for Android.
As an aside, Adium is another natural target for integrating a libpurple plugin, perhaps the most popular open source IM client for Mac OS X. I believe they're also quite security friendly since they were amongst the first IM clients to integrate OtR without requiring a plugin. At present, Adium has fallen behind Jitsi for security conscious people, since Jitsi integrates ZRTP by default, but Jitsi is straight Java, not libpurple, but still.
I'm going to set up a wiki page here soon when I find some time (when I am in documentation writing mood again which will probably be when the file transfer implementation is complete in the libpurple plugin) and explain how to set up an environment for building it on Linux, on Windows and on OS X (here I might need external help), how the code is organized and how to get started and the ideas behind all the not so obvious things, etc.
Hi -- just curious, don't mean to bug, but is this still planned? Trying to get a friend to use TorChat but they keep resisting because they don't want to be tethered to a PC. Thanks for your efforts!!
its till planned but unfortunately no progress so far. One of the problems also is I still don't own any Android device myself (yes, I don't have any smart phone, I don't even have a telephone at all).
You don't need an actual device, you can use an emulator. The best and fastest way to do it is load an android-x86 image into virtualbox, and debug over the virtual network connection.
On Thu, Oct 25, 2012 at 6:44 PM, Bernd Kreuss [email protected]:
its till planned but unfortunately no progress so far. One of the problems also is I still don't own any Android device myself (yes, I don't have any smart phone, I don't even have a telephone at all).
— Reply to this email directly or view it on GitHubhttps://github.com/prof7bit/TorChat/issues/7#issuecomment-9786923.
You need an actual device to be particularly inspired however. ;) I haven't dug into the code really myself yet.
Hi, first time GitHub user - I signed up specifically to encourage this project!
With MSN Messenger being closed down I'm looking for an alternative for my desktop that also runs on Android. Googling brought me here - hope you can create something soon, I refuse to move to Skype.
I have now finally started with an android port. You might want to keep an eye on this: https://github.com/prof7bit/TorChat-Android but don't hold your breath, its still incomplete and not yet working, I have just started with the core network and protocol components and framework, no UI yet, no working app yet. I have decided to change my initial plans and instead write the android client entirely in Java instead of waiting for a stable and usable (for android) release of the FPC ARM cross-compiler.
Horray! Thanks for this -----Original Message----- From: Bernd Kreuss [email protected] Date: Tue, 15 Jan 2013 12:43:57 To: prof7bit/[email protected] Reply-To: prof7bit/TorChat [email protected] Cc: [email protected] Subject: Re: [TorChat] Android support (#7)
I have now finally started with an android port. You might want to keep an eye on this: https://github.com/prof7bit/TorChat-Android but don't hold your breath, its still incomplete and not yet working, I have just started with the core network and protocol components and framework, no UI yet, no working app yet. I have decided to change my initial plans and instead write the android client entirely in Java instead of waiting for a stable and usable (for android) release of the FPC ARM cross-compiler.
Reply to this email directly or view it on GitHub: https://github.com/prof7bit/TorChat/issues/7#issuecomment-12288174
Hi! I can't compile jitsi-android repository.
Please help me!!!!!!!!!