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 App 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).