I want to refer to a screenshot of qtox:

Some things you can see in this UI, that I really like:
Just suggestions, as you might overlook them. Its like correcting your own text, you will never find those things ;)
Edit: BTW: Feel free to add me on jabber for more feedback and chat: contact.nicohood.de
I hope your client prompts for a friend request. Otherwise I'd need your account names.
I like a lot of these, here are my thoughts on them:
It feels like you got used to the cluttered appearance of other chat applications and would like to see that in Dino, too ;)
The top of the user chat. Contains the name once more, some voice controls (maybe planned feature) and especially the status message (if supported by xmpp/omemo?). Also alias and other user setting could be added here.
That's what the headerbar is for. It contains the name, a menu and someday will also have buttons for initiating calls. A status message might be realized as a subtitle, similar to the topic in MUCs.
if supported by xmpp/omemo?
Sorry if I got that wrong, but: That sounds like Gnu/Linux. OMEMO is a _minor_ part of XMPP. In fact, there is not a single client actually implementing the OMEMO standard, they all implement some variation which the XMPP standards foundation wasn't happy with. But yes, XMPP supports status messages. And no, OMEMO is not specified to encrypt them.
I would add that a click on the bar (or the name) could lead to contact details, like in android apps? I would expect to find encryption keys there.
There is already a menu with an "Contact Details" entry in the headerbar (function itself not yet implemented).
Group user chats. (not seen in the screenshot). Its an extremely nice feature to separate friend contacts from others such as support requests for my software. For more than 10 contacts this becomes handy.
Do you mean the group attribute of roster contacts? This won't be in the conversation list but might be somehow displayed in the roster list ("Add Chat").
Sorting friend list by online status (default) + offline chats for last message time. This way you don't miss messages from a friend who went offline but has a name starting with "z". On the other hand sorting a-z should also be possible.
Friend list? Do you mean the conversation list or in the roster list? The roster list does not (and probably won't) include the online status at all. The conversation list focuses on the _conversation_ and not on some feature of the counterpart.
Small icons of the contact list. I normally have >50 contacts. Small icons with less height is extremely important.
Again, this is a contact list, not a roster. Unless you are chatting with your > 50 contacts simultaneously, you don't need to seem them all at once. If you want to find a specific entry, you can still use the search function.
Smiley button for some basic smileys -> Also icon packs are still missing
A special taskbar icon that blicks for new messages and shows you online status as well.
There is a separate issue for that
Send button
There are separate issues for those.
@fiaxh I understand now better what you mean. You are right, some things should be kept more simple. I was especially confused about the contact list (I think you call it roster?) and the conversation list. I have another suggestion then:
Why not have the current roster list split into two tabs. One list with all contacts (currently in "Start Chat") and one list with open conversations (as it is now). This would give you the option to have all online contacts shown in the same menu, but you can switch to "chatting only" list to clean things up.
And the friendlist shows all people, maybe with categories. And you can always see which of the "other" not so "popular" friends are also online. You could add a visual effect of switching left/right. I think this is implemented similar in some smartphone apps.
If you want more details about my ideas, we can chat. That might be simpler, also because we both speak german.
That's what the headerbar is for.
Valid, good idea.
But yes, XMPP supports status messages. And no, OMEMO is not specified to encrypt them.
Important feature to me. Should be shown in some top bar. Also your own status should be shown in the UI somewhere. I'd love to encrypt this as well please.
Do you mean the group attribute of roster contacts? This won't be in the conversation list but might be somehow displayed in the roster list ("Add Chat").
As explained above, yes I mean it in the whole friendlist then.
Friend list? Do you mean the conversation list or in the roster list?
Roster list.
Again, this is a contact list, not a roster. Unless you are chatting with your > 50 contacts simultaneously, you don't need to seem them all at once. If you want to find a specific entry, you can still use the search function.
Somehow valid, if you only open the chatting contacts. However I'd still add an option for smaller entries at some date.
I'd love to encrypt this as well please.
This is not about wishes. Encrypting broadcasted messages is technically not really feasible.
Remember that to decrypt you need to have a certain key. If the status message is encrypted with a single key, each device of each of your contacts would use the same key to decrypt the message, so once one device is stolen, your status messages can be decrypted. The number of devices can easily get into hundreds if not thousands, this is not really controlable. This does not even include the problem of getting the key to the other users device (which, when done securely, will require likely a kilobyte of traffic for each device).
When using a secure ratchet-based crypto protocol like OMEMO, the work to exchange the key would be required again for every status message that is exchanged. Also in that case, you would be required to re-encrypt the message once any of your contacts adds a new device. This might be feasible if you are permanently on a non-metered, high-bandwidth internet connection (so you don't have a problem with regularly uploading up to megabytes of data) and you use a high-end computer (to do all the crypto work of encrypting a message very often). But that's not the system requirements we want for our users, right?
What is possible though, is to sign the status message. Thus your contacts can verify that the message was really sent by you. This is standardized for OpenPGP and might be for OMEMO (but is not yet).
Tox has the same problems, they just don't care that their system does not scale. Having a few hundred contacts on Tox on a mobile phone over the mobile network will be fun (well you will likely use only a few hundred megabytes of traffic until you phone turns off because your battery will drain pretty fast).
Most helpful comment
This is not about wishes. Encrypting broadcasted messages is technically not really feasible.
Remember that to decrypt you need to have a certain key. If the status message is encrypted with a single key, each device of each of your contacts would use the same key to decrypt the message, so once one device is stolen, your status messages can be decrypted. The number of devices can easily get into hundreds if not thousands, this is not really controlable. This does not even include the problem of getting the key to the other users device (which, when done securely, will require likely a kilobyte of traffic for each device).
When using a secure ratchet-based crypto protocol like OMEMO, the work to exchange the key would be required again for every status message that is exchanged. Also in that case, you would be required to re-encrypt the message once any of your contacts adds a new device. This might be feasible if you are permanently on a non-metered, high-bandwidth internet connection (so you don't have a problem with regularly uploading up to megabytes of data) and you use a high-end computer (to do all the crypto work of encrypting a message very often). But that's not the system requirements we want for our users, right?
What is possible though, is to sign the status message. Thus your contacts can verify that the message was really sent by you. This is standardized for OpenPGP and might be for OMEMO (but is not yet).
Tox has the same problems, they just don't care that their system does not scale. Having a few hundred contacts on Tox on a mobile phone over the mobile network will be fun (well you will likely use only a few hundred megabytes of traffic until you phone turns off because your battery will drain pretty fast).