Except that mobile devices like phones and tablets are fundamentally different than PCs.
No they aren't. Current phones and tablets are still von Neumann computers. If they have ARM processors instead of x86/amd64 processors, then the different instruction set is handled by the C compiler. The only significant difference is the user interface, but writing multiple interfaces for the same software shouldn't be an overly complicated problem.