Je veux construire une bibliothèque d'analyse SyncML ( pas d'interface utilisateur ) qui devrait pouvoir créer des messages basés sur les informations fournies par l'application hôte, alimentées par les méthodes de la bibliothèque. De plus, la bibliothèque doit pouvoir effectuer des rappels aux méthodes dans l'application hôte.
Je veux pouvoir le compiler et le rendre disponible sur autant de plateformes que possible: Windows, OS Windows Phone 7, OSX, iOS, Linux, Android, BlackBerry. Fondamentalement, autant de plateformes que possible.
La priorité est de l'avoir sur les appareils mobiles.
Des questions:
- Quelle configuration dois-je utiliser? (langages de programmation, compilateurs, IDE etc.)
- Comment pourrais-je compiler cette bibliothèque pour ces différentes plates-formes et comment pourrais-je m'y connecter?
- Une autre info? par exemple, des articles couvrant le sujet du développement multiplateforme?
Je n'ai jamais fait ce genre de projet multiplateforme auparavant, donc toute information disponible pour me mettre dans la bonne direction serait la bienvenue.
Moi-même, j'ai une formation en C # /. NET et Objective-C.
Vous voudrez peut-être essayer Java - Java Runtime Environment (la machine virtuelle) est multiplateforme, Java peut être utilisé dans les appareils mobiles avec Android (ou avec Java ME) et .NET est très similaire.
la source
Ce n'est pas un choix mais plusieurs. S'il est tentant de trouver une chose qui va partout, ce n'est pas toujours la meilleure façon de le faire.
Par exemple, bien qu'il soit possible de compresser un code C ++ dans la plate-forme mobile Windows, tout .NET sera toujours plus facile ici que sa contrepartie du point de vue du support.
De même, il faut faire un choix majeur si vous voulez qu'il soit natif ou en cours d'exécution et êtes-vous strictement limité à un Web centric ou à un générique plus puissant? Par exemple, Adobe Runtime est plus omniprésent mais il se limitera à ce que vous pouvez faire par rapport aux langages de programmation de base.
La chose la plus importante, je suppose, est le type et le niveau de GUI que vous souhaitez créer.
Passons maintenant aux choix les plus prometteurs.
une. Pour Symbian, Blackberry, Android, BREW et Bada (samsung), Java / J2ME est le moyen le plus courant. Cependant, vous pourriez être mieux avec C / C ++ dans de nombreux cas, pour les trucs de noyau natifs dans certaines plates-formes.
b. Pour Windows .NET avec n'importe quelle langue prise en charge serait bien.
c. Pour iOS - il n'y a pas d'autre choix que l'objectif C. Ce n'est PAS vraiment du C ++ donc je ne le compterai pas comme un objectif
Voici une référence wiki qui montre l'ensemble de toutes les plateformes qui vous montre toutes les options et où elles s'appliquent.
Grâce à votre question, j'ai appris du lien wiki ci-dessus qu'il existe maintenant des SDK qui tentent de résoudre le problème ci-dessus. Les deux plus proches sont:
Marmalade: http://www.madewithmarmalade.com/marmalade/supported-platforms, cela prend en charge de manière intéressante presque toutes les plates-formes. Windows est sur le point d'être ajouté pour faire un cercle complet.
Code de particules: http://www.particlecode.com/
Je ne les ai pas encore utilisés, mais cela semble un travail intéressant.
la source
.NET est à peine disponible sur de nombreuses plates-formes, et Objective-C est encore pire, et .NET est un peu lent et ObjC n'a fondamentalement aucun support en dehors d'Apple. C en tant que langue ne vaut fondamentalement même pas la peine d'être pris en considération, sauf si un facteur externe vous oblige à l'utiliser.
Le seul langage viable résultant est C ++.
la source