Best practice for cross-platform development

I know this topic is probably highly subjective, and I’m sure there’s been a lot of articles and forum posts on similar issues. But I’m not looking for methods for cross-platform development, I’m looking for best practices. If you guys know of any good articles, guides, or outlines, please feel free to share links.

Here’s the deal, I’m currently writing a casual game that will be compiled for windows/mac, iPhone, Android, and [hopefully] PS/Xbox. The gameplay will be identical on each platform and I’ve setup alternate inputs for detecting swipes instead of arrow key pushes, so I can use the same project to build on all platforms. My question comes in when I’m setting up my shaders. I’m using more advanced and expensive shaders for the desktop versions, while staying more conservative for mobile platforms. What’s the best way to support different shaders on different platforms?

I’d like to keep all the platforms in one unity project (if possible, but if it’s not the best method, please explain why), just for ease and speed of development.

Nobody, really?