By using a self-signed certificate and enforcing the use of this certificate in your application (i.e. certificate or pubkey pinning) you are independent from any CA and have full control over the life time of the certificate. The traffic is also resistant against SSL interception since the man in the middle would need to use a certificate which you accept, i.e would need to have exactly the certificate you use in your server and also the public key. This is impossible unless the key got leaked or the server hacked (i.e. your fault).
If you use a pinned self-signed certificate with TLS you also profit from a proven technology which is available on most systems and for most programming languages so no need to look for alternatives.
Making it harder to intercept traffic locally
Note that TLS and similar technologies only protect against interception on the network. It does not protect against local interception on the device which can be done by hacking the application itself to intercept the traffic before encryption. Such protection can only be done if the application itself is protected against modification by the user, which is practically impossible as long as the user has full control of the device (i.e. can root it, can modify software).