An untrained end user who uses a mobile web browser is vulnerable to phishing and can't easily verify the the authenticity (or security) of a website among other issues. Also, it is very easy to prevent even a knowledgeable user from detecting MITM by hiding the HTTPS icon, replacing it with a favicon, or many other tricks since most many browsers completely hide the entire URL.
Is a native application (perhaps with certificate/root cert validation) really the only way to achieve reliable, secure interaction with my back end services over HTTPS?
Should I train my end users to not use a web browser, and use an "app" that is hard-coded to my URLs and optionally does additional certificate validation to reduce MITM risk?
Should my web server go as far as detecting a mobile session, and prevent them from authenticating?