How to Build the Android App

Preamble

script located in the root of the repository, before starting to work on the remote.

If you are testing the app in the emulator you will need to use the IP address 10.0.2.2 to connect to a LibreOffice instance running on the same physical host.

Dependencies

Android SDK.

Android 14 Packages (install using the Android SDK Manager, found in tools/android within the sdk).

Android v4 support library.

Using command line

This is outdated -- we now use gradle:

Make sure you have the ANDROID_SDK_HOME and ANT environment variables set properly.

cd android/sdremote
make

Testing command-line or gbuild build

You willbe able to find the ready .apk in:

android/sdremote/bin/ImpressRemote-debug.apk

To test this using an emulator/phone you can do:

cd /path/to/sdk
./tools/android // Only if using emulator. Select "Tools->Manage AVDs...", create a new image if necessary, and start the image.
(If using a new emulator/phone you will need to ensure that it is set up to allow USB debugging, and that the USB permissions are set up correctly)
./platform-tools/adb install /path/to/apk

Download files from Pootle, put them to locale/ folder, and run a2po import.

How to Build the iOS App

You will need to have XCode installed (also needed to build LibreOffice in general) -- to work on the remote point XCode at the folloing location:

ios/iosremote/

If you are using a newer version of XCode it might try to update the project files -- you should avoid committing such changes unintentionally.

If you are only working on the remote and haven't done any other LO work please make sure you run the following command before committing to ensure that the commit hooks are installed (they are automatically installed as part of a full build, but that is ommitted if you are only working on the app):

./g -z

Localization

Use prop2po from Translate Toolkit to create pot files from strings files, and to convert localized po files back to localized strings files.

For example to convert Localizable.strings to Localizable.strings.pot:

This is a simple text-based protocol that should easily be parseable in most environment and languages. The protocol is easily extendable since any unrecognised but complete commands will simply be ignored by the client and/or server without causing errors.

History

During the very early stages of development (beginning of summer 2012) a JSON based protocol was used, however this was quickly replaced in favour of a text-based protocol to reduce dependencies and simplify use on all platforms (mainly the difficulty in easily accessing a json parser on the C++ side of things across all platforms without introducing extra dependencies) -- given the small number of commands this is seen as being perfectly sufficient. Binary and JSON based protocols were suggested during the GSOC 2013 term, however ultimately the current protocol was kept to guarantee backwards compatibility and to simplify development (i.e. no need for extra dependencies on any platform and/or complicated parsing code). All released clients speak this text based protocol (as of October 2013).

Please note that all contributions to The Document Foundation Wiki are considered to be released under the Creative Commons Attribution-ShareAlike 3.0 Unported License, unless otherwise specified. This does not include the source code of LibreOffice, which is licensed under the GNU Lesser General Public License (LGPLv3). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy (see Project:Copyrights for details). LibreOffice was based on OpenOffice.org.If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.