Best practices for multi-platform development

I’m interested in what are the best practices to use UE4 for multi-platform development (e.g. for a title that must ship on both PC/Mac and iOS/Android).

The ideal solution would be to have a single project/code-base, but it’s unclear to me if/how this is feasible (e.g. when running on mobile: “how do you switch to a low poly version of a mesh”? “how do you remove effect X”? etc.).

Anyone have suggestions or experience with this subject?

First question would be what kind of game and how will the player interact with it?