I use the PHP Class "php-mobile-detect" (or "mobileesp", which I have not used personally) to determine whether the site is being accessed from a mobile device or not. I also tend to set a SESSION variable to record the result of that test, so I am not retesting every time the user loads a page.
Personally, I also find Smarty a handy tool here, as I use it to load different templates, based on the value in the above SESSION variable.
What this then means is that, regardless of device, users visit the same URLs, interact in the same (or very similar) fashions and receive outputs best suited/styled to the device they are accessing from.
This would also mean that any risks associated with Google detecting duplicate content, etc. would be avoided, as, when the spider visits, it will just see the desktop version of your site, and index that.