2010-08-26 5 views
1

Le fait que différentes plates-formes mobiles puissent utiliser des langues similaires implique-t-il que vous puissiez réutiliser des classes entre ces plates-formes? Par exemple, le code C++ sur les appareils iOS, Android et Symbian. Ou y a-t-il d'autres choses à prendre en compte, des bibliothèques, etc.? Dans le même esprit serait-il possible de partager le code C# entre iOS, Android et Windows Phone en utilisant MonoTouch et MonoDroid (éventuellement)?Classes multiplateformes mobiles

Modifier: Serait-il possible de partager le code UI entre MonoTouch, MonoDroid?

Répondre

1

Non, les langues sont définitivement trop différentes. Pour être en mesure de réutiliser les cours, ils doivent être écrits dans la même langue. Et puisque Apple a sorti toutes les langues sauf Objective-C d'iOS, vous ne pourrez pas réutiliser le code. L'état de MonoTouch après Apple (scandaleux [subjective]) décision [1] est maintenant très en doute.

Cependant, dans la mode typique de la dictature [à nouveau subjective], Apple n'a pas été complètement cohérente, ils n'ont pas interdit l'utilisation des technologies comme PhoneGap (http://phonegap.com) ou titane (http://www.appcelerator.com/). Là, vous écrivez votre application en HTML5, Javascript & amis. Si vous pouvez vivre avec des applications d'écriture en utilisant ces techniques, une approche multiplateforme avec une seule base de code est toujours possible.

Et bien sûr, n'oubliez pas que les algorithmes ne sont pas spécifiques à la langue. Les classes dans différentes langues peuvent souvent être rendues presque identiques en fonction, bien que vous ayez l'inconvénient de devoir en maintenir plusieurs.

Edit:

Clarifications de discussion:

  • Il est en fait pour soutenir l'utilisation des classes C++ [2]. Cela ouvre des possibilités de partage de code de parties plus abstraites d'une application.
  • L'état de MonoDroid semble très peu clair. La discussion dont il est question dans [1] est longue et comporte plusieurs réponses fortes dans les deux sens. Il est important de se rappeler que la cible de facto d'Apple dans ses nouvelles clauses de licence est Flash, et non des frameworks multiplateformes en eux-mêmes, quoi que dise Steve Jobs [3]. Cela laisse ouverte la possibilité qu'Apple puisse vouloir autoriser silencieusement des applications basées sur MonoDroid ou d'autres frameworks multiplateformes.

[1] Comme d'habitude, ce n'est pas 100% clair, par exemple, voir cette question: Is MonoTouch now banned on the iPhone?

[2] http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html#//apple_ref/doc/uid/TP30001163-CH10-SW1

[3] http://www.apple.com/hotnews/thoughts-on-flash/?aosid=p204&siteid=1503186&program_id=2554&cid=OAS-EMEA-AFF&tduid=fb90c7ac85c9a334decb42b892cda59b

+0

Outrageous est une assez bonne description - une certaine variation est certainement subjective. – Murph

+0

Mais ils pourraient être écrits dans la même langue [C++ par exemple] (http://stackoverflow.com/questions/270455/is-it-possible-to-program-iphone-in-c "test") ou suis-je Il manque quelque chose? Aussi, à propos de mono, il semble qu'ils [acceptent toujours ces applications] (http://stackoverflow.com/questions/2604033/is-monotouch-now-banned-on-the-iphone/2714999#2714999 "test") . Mais je suis d'accord qu'il serait dangereux de s'appuyer sur le fait que ça va rester comme ça. – Jla

+0

A propos de HTML5, je craignais que vous auriez beaucoup moins de possibilités avec une application native. Mais je suppose que le code que je serais capable de réutiliser (ou pas) sur différentes plateformes aurait de toute façon les mêmes limites. – Jla

Questions connexes