No description
This repository has been archived on 2019-12-07. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2016-07-17 17:05:31 +02:00
android Added message confirmations to protocol (ref #22). 2016-07-17 17:05:12 +02:00
core Added message confirmations to protocol (ref #22). 2016-07-17 17:05:12 +02:00
gradle Updated dependencies. 2016-01-27 21:23:09 +01:00
graphics Added launcher icon (fixes #2). 2015-09-24 15:29:40 +02:00
integration Added message confirmations to protocol (ref #22). 2016-07-17 17:05:12 +02:00
server Send messages via relays (fixes #26). 2016-06-24 13:34:59 +02:00
.gitignore Added .apk files to .gitignore. 2016-01-25 22:47:20 +01:00
build.gradle Updated dependencies. 2016-01-27 21:23:09 +01:00
gradlew Initial commit. 2014-10-03 12:55:35 +03:00
gradlew.bat Initial commit. 2014-10-03 12:55:35 +03:00
LICENSE Added license information. 2014-10-03 13:05:28 +03:00
PROTOCOL.md Added message confirmations to protocol (ref #22). 2016-07-17 17:05:12 +02:00
README.md Implemented AODVv2, including integration test (fixes #33). 2016-05-29 18:35:50 +02:00
settings.gradle Implemented AODVv2, including integration test (fixes #33). 2016-05-29 18:35:50 +02:00

Ensichat

Instant messenger for Android that is fully decentralized. Messages are encrypted and sent directly between devices via Bluetooth or Internet, without any central server. A simple flood-based routing is used for message propagation.

screenshot 1 screenshot 2 screenshot 3

Get it on Google Play Get it on F-Droid

Building

To setup a development environment, just install Android Studio and import the project.

Alternatively, you can use the command line. To create a debug apk, run ./gradlew assembleDevDebug. This requires at least Android Lollipop on your development device. If you don't have 5.0 or higher, you have to use ./gradlew assembleRelDebug. However, this results in considerably slower incremental builds. To create a release apk, run ./gradlew assembleRelRelease.

Testing

You can run the unit tests with ./gradlew test. After connecting an Android device, you can run the Android tests with ./gradlew connectedDevDebugAndroidTest (or ./gradlew connectedRelDebugAndroidTest if your Android version is lower than 5.0).

To run integration tests for the core module, use ./gradlew integration:run. If this fails (or is very slow), try changing the value of Crypto#PublicKeySize to 512 (in the core module).

License

All code is licensed under the GPL, v3 or later.

The launcher icon is based on the Bubbles Icon created by Paomedia which is available under CC BY 3.0.