KwikChat

## Design principles

* Beautiful and easy to use client without sacrificing security or privacy
* Uses well established XMPP protocol.


## Features

* End-to-end encryption based on OMEMO.
* Send and receive images as well as any other kind of files
* Read receipt from contacts.
* Username based autogenerated profile picture for your Contacts
* Groups support.
* Very low impact on battery life


### XMPP Features

KwikChat works seamlessly with every XMPP server. However XMPP is an
extensible protocol. These extensions are standardized as well in so called
XEP's. KwikChat supports a couple of these to make the overall user
experience better. These XEP's are:

* [XEP-0065: SOCKS5 Bytestreams](http://xmpp.org/extensions/xep-0065.html) (or mod_proxy65). Will be used to transfer
files if both parties are behind a firewall (NAT).
* [XEP-0163: Personal Eventing Protocol](http://xmpp.org/extensions/xep-0163.html) for avatars and OMEMO.
* [XEP-0191: Blocking command](http://xmpp.org/extensions/xep-0191.html) lets you blacklist spammers or block contacts
without removing them from your roster.
* [XEP-0198: Stream Management](http://xmpp.org/extensions/xep-0198.html) allows XMPP to survive small network outages and
changes of the underlying TCP connection.
* [XEP-0237: Roster Versioning](http://xmpp.org/extensions/xep-0237.html) mainly to save bandwidth on poor mobile connections
* [XEP-0313: Message Archive Management](http://xmpp.org/extensions/xep-0313.html) synchronize message history with the
server. Catch up with messages that were sent while KwikChat was
offline.
* [XEP-0352: Client State Indication](http://xmpp.org/extensions/xep-0352.html) lets the server know whether or not
KwikChat is in the background. Allows the server to save bandwidth by
withholding unimportant packages.
* [XEP-0363: HTTP File Upload](http://xmpp.org/extensions/xep-0363.html) allows you to share files in conferences
and with offline contacts.

#### How do I install KwikChat?

You can download the app freely from Google play store

#### How do I create an account?
You cannot create an account, only predefined users created on server of your choice can login to application for use.

##### Domain hosting
Using your own domain not only gives you a more recognizable Jabber ID, it also gives you the flexibility to migrate your account between different XMPP providers. This is a good compromise between the responsibilities of having to operate your own server and the downsides of being dependent on a single provider.

##### Running your own
You need a jabber server supporting OMEMO to use the cleint with predefined users.
If you pick ejabberd make sure you use the latest version. Linux Distributions might bundle some very old versions of it.

#### I get 'delivery failed' on my messages

If you get delivery failed on images it's probably because the recipient is not using Kwikchat application or lost
network connectivity during reception. In that case you can try it again at a
later time.

#### What is end-to-end encryption method?


* OMEMO works even when a contact is offline, and works with multiple devices. It also allows asynchronous file-transfer when the server has [HTTP File Upload](http://xmpp.org/extensions/xep-0363.html). However, OMEMO not widely support and is currently implemented only [by a handful of clients](https://omemo.top).

Comments