Notez que j'ai presque exclusivement sur les "affaires/utilitaire/productivité" des applications, des choses qui dépendent largement assez standard éléments de l'INTERFACE utilisateur et s'attendent à s'intègrent bien à leur plate-forme. Cette réponse reflète. Voir Mitch Lindgren commentaire Shaggy Frog réponse de bons commentaires pour les développeurs de jeux, qui ont une situation complètement différente.
Je crois que @Shaggy Grenouille est incorrect ici. Si vous avez efficace, testé le code en C++, il n'y a pas de raison de ne pas le partager entre Android et l'iPhone, et j'ai travaillé sur des projets qui ne sont juste que, et il peut être très réussie. Il y a des dangers qui doivent être évités.
De manière plus critique, être prudent de "plus petit dénominateur commun." Autonome, algorithmique code, les actions très bien. Complexe de cadres gérer les discussions, parler sur le réseau, ou d'interagir avec le système d'exploitation sont de plus en plus difficile de le faire d'une manière qui ne vous force pas à briser les paradigmes de la plate-forme et shoot pour l'écran LCD qui fonctionne aussi mal sur toutes les plates-formes. En particulier, je vous recommande d'écrire votre code de mise en réseau à l'aide de la plate-forme des cadres. Cela nécessite souvent un "sandwich", où la couche supérieure est spécifique à la plateforme, et tout en bas de la couche de plate-forme spécifique, et le milieu est portable. C'est une très bonne chose si elle est conçue avec soin.
La gestion des threads et des minuteries doivent aussi être fait en utilisant la plate-forme des cadres. En particulier, Java utilise des threads fortement, tandis que iOS repose généralement sur son runloop pour éviter les threads. Lorsque l'iOS utiliser des threads, PGCD est fortement conseillée. Encore une fois, la solution est d'isoler réellement portables algorithmes, et de laisser à la plate-forme de code à gérer, comment il s'appelle.
Si vous avez un complexe, le cadre existant, qui est fortement filetée et a beaucoup de réseau ou le code de l'INTERFACE utilisateur, réparties tout au long de l', alors le partage, il peut être difficile, mais ma recommandation serait encore à chercher des moyens de refactoriser le code plutôt que de le réécrire.
Comme iOS et Mac développeur qui travaille beaucoup avec la croix-plate-forme de codes partagés sur Linux, Windows et Android, je peux dire que Android est de loin le plus ennuyeux des plates-formes de partager avec (Windows utilisé pour maintenir cette distinction, mais Android soufflé dessus). Android a eu le plus de cas où il n'est pas sage de partager du code. Mais il y a encore de nombreuses possibilités pour la réutilisation du code et qu'ils devraient être poursuivis.