Hello devs,
I've developed a mobile IM client using Smack for Android (asmack). I realized that the login process takes up to 30 seconds on slow networks (e.g. GPRS/EDGE), which is not uncommon in my country. I was wondering if it would be effective to implement pipelining or something like XEP-0305: https://xmpp.org/extensions/xep-0305.html.
For example, can we just take for granted that the server will support starttls and send stream header+starttls in one packet, saving a roundtrip? Of course bandwidth would not benefit from this since the amount of data exchanged is still the same, but I'm sure the time that we can save is considerable. Of course errors would be handled accordingly (e.g. starttls not supported) by e.g. throwing an exception or just proceeding with login.
Cheers