Лучше всего вам написать в общий интерфейс, чтобы ваш код более высокого уровня мог быть согласованным, а части, которые будут отличаться, будут абстрагированы в свои собственные библиотеки. Таким образом, вы можете писать приложения, использующие общую кодовую базу, хотя большая часть работы будет выполняться в ваших библиотеках, поскольку именно здесь вы подключаетесь к платформе.
Таким образом, вы можете попытаться минимизировать избыточную работу, но использовать каждую платформу более полно.
Если вы ограничиваете себя тем, что каждый из вас может сделать, то вы сокращаете количество своих пользователей, так как есть много чего вы не сможете сделать или сделаете хорошо.