Je suis intéressé par l'écriture d'applications pour l'iPhone et la plate-forme Android. J'espérais trouver un middleware / framework résumant certaines des différences entre les API et me permettant de spécifier la plate-forme cible au moment de la construction. Un tel cadre existe-t-il ou est-il prévu?
Réponses
Trop de publicités?Phonegap est un javascript/css/html basé cadre des objectifs de l'iPhone, Android et Blackberry. (Sur l'iphone au moins) peut être livré en tant qu'application native.
OpenFL est un opensource port de l'API Flash pour Bureau,le Navigateur,iOs,Android,Flash,HTML5,etc. et est une option à envisager pour ceux qui viennent de un Flash monde. Il s'appuie à la fois des binaires natifs et les cibles des navigateurs (Flash/HTML5).
MonoGame est une implémentation open source de Microsoft XNA 4.x Cadre. Il le rend facile pour XNA développeurs de créer des jeux de plate-forme avec une très grande réutilisation du code. Il prend actuellement en charge iOS, Android, Windows (OpenGL et DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, PlayStation Portable et la console OUYA.
Edit: Depuis que cette question a été posée un certain nombre de solutions viables ont été développés. Bien que le ton de cette réponse peut toujours être exactes (Pour bénéficier de 100% de la HW / OS une application native est probablement nécessaire) vous pouvez trouver un certain nombre de réponses possibles en dessous de cette question.
À la fois Android et l'iPhone ont très fortement défini les interfaces utilisateur. Même si vous avez trouvé un cadre qui a comblé les énormes différences sur la plupart des aspect plus bas niveaux (Android est programmé en Java sur le dessus d'une coutume VM, l'iPhone est en code natif programmé en Objective-C) et dans les niveaux supérieurs (apps pour iPhone sont complètement le bac à sable et isolé, l'Android modèle d'objet est distribué et les classes sont librement invoquée entre les applications et les bibliothèques), votre dernière application serait de se sentir étranger et de place dans l'un ou l'autre. Penser à l'absence de multitouch dans Android, ou le manque de matériel dédié boutons de l'iPhone.
Votre meilleur pari serait de développer une plate-forme d'interface utilisateur et le modèle et la logique de base de votre application dans une sorte de langage de script. Ensuite, trouver les services d'un interprète dans la plaine C (pour l'iPhone) et une en Java (pour Android.) Scheme, Lisp et Javascript pourrait s'adapter à la facture. Assurez-vous simplement que l'interprète n'est pas exposée aux utilisateurs finaux ou vous serait violer l'iPhone NDA...
Si votre application est les lourds vous pourriez suivre le modèle de nombreuses applications de l'iPhone et de développer natif des interfaces utilisateur pour iPhone et Android, et toute la logique de l'application sur un serveur distant. Votre INTERFACE utilisateur devient le seul installé une partie de l'application et tout le reste est hébergé à l'écart sur le net. Cela a l'avantage d'avoir la possibilité d'offrir des profils itinérants entre les différents dispositifs et une interface web.
L'ajout d'un autre service à la pile ici: Rhomobile est à la recherche pour créer tout cela. Il n'a pas l'air de devis simplifiés -- pensez de retour sur le web au début des années 90. Mais il pourrait être la meilleure façon de port de votre application préférée à toutes les grandes plate-forme mobile.
Plus de détails: Rhomobile promesses: Construire une fois, déployer pour n'importe quel smartphone
( Note: je ne travaille pas pour Rhomobile; seulement, est venu à travers l'histoire d'aujourd'hui. )
Je travaille(ed) tout à fait un peu avec les "indigènes" des solutions Obj-C et Java (Android 4). J'ai aussi créer une Application avec Appcelerator pour iPhone et Android qui fonctionne très bien. Le Appcelerator Api sont assez vastes. Le Appcelerator Évier de Cuisine App montre beaucoup de fonctionnalités et des éléments prêts à inclure dans une application ( https://github.com/appcelerator/KitchenSink ). Cependant depuis mon Appcelerator application n'est pas trop complexe, je ne me sens pas à l'aise en général à recommander. Un collègue m'a dit que leur équipe de dev essayé et ils n'étaient pas satisfaits. Il ne pouvait pas nommer une vraie raison. Cependant, je vais le tester pour voir où sont les limites du système. Une grande limitation est la plateforme de support (actuellement uniquement sur iOS et Android).
Comme à Rhodes, cette solution semble assez impressionnante sur le papier, notamment en termes de prise en charge des plates-formes. Je vois quelques problèmes avec elle. Tout d'abord, la démonstration des applications et de l'évier de la cuisine app besoin de beaucoup d'espace disque, exécutez un peu hachée et de look funky, parfois (au moins sur Android). Deuxièmement, il y a très peu de "monde réel" applikations à trouver. Je veux dire les applications qui ont été téléchargées au moins plus de 1000 fois et de servir du monde réel à des besoins autres que la simple démonstration dessein. Convivialité pour moi est la priorité absolue dans le mobile (consommateur) d'applications!
Je vois un grand potentiel en HTML/CSS/JavaScript/PhoneGap apps. Récemment, j'ai lu quelques articles sur des entreprises plus importantes, à l'aide de HTML(5) pour construire leurs applications (par exemple. Netflix http://mashable.com/2010/12/03/netflix-html5/, Zynga http://www.spielsucht24.de/2010/12/21/zynga-launches-html5-mafia-wars-atlantic-city-for-mobile-web/) Il ya encore quelques problèmes avec la facilité d'utilisation et snappyness qui doivent être résolus lors de la construction d'applications mobiles avec des technologies web. Un autre problème pourrait être les tests, le débogage et la maintenance de niveau de l'entreprise HTML apps.