Existe-t-il un framework multiplateforme pour développer des applications iPhone / Android?

Je suis intéressé par l’écriture d’applications pour l’iPhone et la plateforme Android. J’espérais trouver un middleware / framework qui élimine certaines des différences entre les API et me permet de spécifier la plate-forme cible au moment de la construction. Existe-t-il un tel cadre existant ou prévu?

Phonegap est un framework basé sur javascript / css / html qui cible l’iPhone, Android et le Blackberry. Il (sur l’iPhone au moins) peut également être associé à une application native. La couche d’interface utilisateur pour ces applications est généralement construite en HTML / JavaScript et peut être plus lente qu’une véritable application native.

coup de téléphone


React Native vous permet de créer des applications de classe mondiale sur des plates-formes natives en utilisant une expérience de développement cohérente basée sur JavaScript et React. React Native se concentre sur l’efficacité des développeurs sur toutes les plates-formes qui vous intéressent – apprenez une fois, écrivez n’importe où. Facebook utilise React Native dans plusieurs applications de production et continuera à investir dans React Native. L’interface utilisateur pour les applications React Native sont des contrôles natifs – votre interface utilisateur est généralement plus rapide qu’une approche HTML / javascript pour la gestion de l’interface graphique.

Réagir autochtone


Unity est un moteur de jeu multi-plateforme développé par Unity Technologies et utilisé pour développer des jeux vidéo pour PC, consoles, appareils mobiles et sites Web. Unity se distingue par sa capacité à cibler des jeux sur plusieurs plates-formes. Les plates-formes supscopes incluent Android, Apple TV, BlackBerry 10, iOS, Linux, ligne Nintendo 3DS, OS X, PlayStation 4, PlayStation Vita, Unity Web Player (y compris Facebook), Wii, Wii U, Windows Phone 8, Windows, Xbox 360. et Xbox One.

Unité


OpenFL est un port opensource de l’API Flash pour Desktop, Browser, iOs, Android, Flash, HTML5, etc. et est une option à considérer pour ceux venant d’un monde Flash. Il s’appuie également sur les navigateurs natifs et les navigateurs cibles (Flash / HTML5).

openfl


MonoGame est une implémentation open source de Microsoft XNA 4.x Framework. Il est facile pour les développeurs XNA de créer des jeux multi-plateformes avec une réutilisation de code extrêmement élevée. Il prend actuellement en charge iOS, Android, Windows (OpenGL et DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, PlayStation Mobile et la console OUYA.

monogame


Adobe Flash Et croyez-le ou non, Adobe Flash peut publier des fichiers binarys natifs sur ios, Android, Desktop et bien sûr sur le Web. La performance est raisonnable, mais pas incroyable. Si vous aviez un jeu Flash, vous pourrez peut-être le transférer facilement vers le mobile. Et cela ne nécessite aucun plugin d’aucune sorte. Il crée en fait un fichier binary autonome natif qui s’exécute sur chaque plate-forme.

adobe

Edit: Depuis que cette question a été posée, un certain nombre de solutions viables ont été développées. Même si le ton de cette réponse peut toujours être précis (pour bénéficier à 100% du système d’exploitation / système d’exploitation, une application native est probablement nécessaire), vous pouvez trouver un certain nombre de réponses possibles ci-dessous.

Android et l’iPhone ont tous deux des interfaces utilisateur très définies. Même si vous avez trouvé un framework qui comble les différences énormes sur les niveaux les plus bas (Android est programmé en Java sur une VM personnalisée, iPhone est un code natif programmé en Objective-C) et dans les niveaux supérieurs (les applications iPhone sont un complètement en mode bac à sable et isolé, le modèle d’object Android est dissortingbué et les classes sont librement appelées entre les applications et les bibliothèques) votre application finale se sentirait étrangère et déplacée dans l’une ou l’autre. Pensez au manque de multitouch dans Android, ou au manque de boutons matériels dédiés dans l’iPhone.

Votre meilleur pari serait de développer une interface utilisateur spécifique à la plate-forme et de disposer du modèle et de la logique de base de votre application dans un langage de script. Puis trouvez un interprète en langage clair (pour l’iPhone) et un en Java (pour Android). Scheme, Lisp et Javascript pourraient convenir. Assurez-vous simplement que l’interprète n’est pas exposé aux utilisateurs finaux ou que vous violeriez la NDA de l’iPhone …

Si votre application est riche en données, vous pouvez suivre le modèle de nombreuses applications iPhone et développer des interfaces utilisateur natives pour iPhone et Android, et disposer de toute la logique applicative sur un serveur distant. Votre interface utilisateur devient la seule partie installée de l’application et tout le rest est hébergé sur le net. Cela présente l’avantage supplémentaire d’avoir la possibilité d’offrir des profils itinérants entre différents appareils et une interface Web.

Ajouter un autre service à la stack ici: Rhomobile cherche juste à créer ceci. Il semble que la citation soit décevante – repensez au Web au début des années 90. Mais cela pourrait être le moyen le plus simple de porter votre application préférée sur toutes les principales plates-formes mobiles.

Plus de détails: Rhomobile promet: Construire une fois, déployer sur n’importe quel smartphone

(Remarque: je ne travaille pas pour Rhomobile; je viens juste de découvrir l’histoire aujourd’hui.)

Je n’ai aucune expérience directe avec iPhone ou Android, mais je viens de lire un article sur “Titanium” et lorsque j’ai visité leur site, j’ai trouvé ceci:

http://www.appcelerator.com/products/titanium-mobile/

J’ai beaucoup travaillé avec les solutions “natives” Obj-C et Java (4 Android). Je construis également une application avec Appcelerator pour iPhone et Android, qui fonctionne très bien. Les API d’Appcelerator sont très complètes. L’application Appcelerator Kitchen Sink affiche de nombreux éléments et fonctionnalités prêts à être intégrés dans une application ( https://github.com/appcelerator/KitchenSink ). Cependant, comme mon application Appcelerator n’est pas trop complexe, je ne suis pas à l’aise de le recommander. Un collègue m’a dit que son équipe de développement l’avait essayé et qu’ils n’étaient pas satisfaits. Il ne pouvait cependant pas nommer une vraie raison. Cependant, je vais continuer à le tester pour voir où sont les limites. La prise en charge de la plate-forme (actuellement uniquement iOS et Android) est une grande limitation.

En ce qui concerne Rhodes, cette solution semble assez impressionnante sur le papier, notamment en ce qui concerne les plates-formes sockets en charge. J’y vois cependant des problèmes. Tout d’abord, les applications de démonstration et l’application de l’évier de cuisine ont besoin de beaucoup d’espace disque, sont un peu instables et ont parfois l’air génial (du moins sur Android). Deuxièmement, il y a très peu d’applikations “réelles” à trouver. Je veux dire les applications qui ont été téléchargées au moins 1 000 fois et qui ne répondent pas aux besoins de la démonstration. La convivialité pour moi a la priorité absolue dans les applications mobiles (grand public)!

Je vois un grand potentiel dans les applications HTML / CSS / JavaScript / PhoneGap. Récemment, j’ai lu quelques articles sur les grandes entresockets utilisant HTML (5) pour créer 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-guerres-atlantique-ville-pour-mobile-web / ) Il rest des problèmes d’utilisation et de vivacité à résoudre lors de la création d’applications mobiles avec les technologies web . Un autre problème pourrait être le test, le débogage et la maintenance des applications HTML au niveau de l’entreprise.

Le framework Rhodes de Rhomobile fait cela. Les applications Rhodes sont natives pour chaque smartphone individuel

Mytopia a un framework inédit appelé RUGS. Ils ont présenté récemment à la conférence TechCrunch 50 et leur technologie semblait très intéressante. Ils ont pu comstackr une application fonctionnant sur toutes les plates-formes de smartphones (et ont pu par exemple tirer parti des capacités de chaque accéléromètre de l’iPhone). Malheureusement, leur site Web indique que vous devez les envoyer par e-mail si vous souhaitez plus d’informations. Peut-être vaut-il la peine de leur envoyer un e-mail si vous voulez vraiment développer sur un système ciblé multi-plateformes.

J’ai regardé leur présentation sur le webcast TC50, mais je ne suis malheureusement pas en mesure de trouver une vidéo pour vous maintenant.

S’il vous plaît poster ici avec un résumé de quel cadre vous décidez d’utiliser et pourquoi vous l’avez choisi.

QuickConnectiPhone vous permet d’écrire votre application en JavaScript et pourtant elle est toujours installable. Une version Android est en version Alpha inédite à ce stade.

Avoir les deux vous permettrait de créer votre application en JavaScript, CSS et HTML, d’appeler l’iPhone ou le téléphone Android pour connaître les comportements de l’appareil tels que les vibrations, les emplacements GPS, etc.

La version iPhone est téléchargeable sur https://sourceforge.net/projects/quickconnect/ et si vous me contactez, je peux vous envoyer la version Android.

Même si vous le vouliez vraiment, il ne serait pas pratique de créer votre propre framework multi-plateforme – iPhone est un code natif, Android Java.

Bien sûr, rien ne vous empêche, par exemple, de partager la logique C / C ++ principale dans une application de bureau avec son homologue iPhone.

Regarde ça:

http://www.xmlvm.org/overview/

Il s’agit d’un projet qui tente de comstackr de manière croisée des programmes écrits dans une variété de langues sources vers une variété de langues cibles. L’un des premiers cas de test consistait à écrire des programmes en Java et à les exécuter sur un iPhone. Regarder la vidéo sur le site en vaut la peine. Ils ont discuté de la possibilité de cibler aussi Android.

Cela dit, je ne l’ai pas essayé. Le projet semble assez bêta, et il n’ya pas beaucoup d’activité sur leur site SourceForge.

Vous pouvez développer des applications Java pour IPhone avec iSpectrum. De cette façon, vous pourrez réutiliser une quantité cohérente de votre code d’application entre Android et iPhone (et éventuellement des applets de bureau ou des MIDlets J2ME en fonction de ce que vous faites :))

Plus d’infos sur http://www.flexycore.com

Votre meilleur choix sera AirPlay, visitez le site Web AirPlay

Un clic et vous déployez pour Android, iPhone, Samsung Bada, Symbian, Windows Mobile, BREW, WebOS et Maemo.

Mon livre HTML5 pour iOS et Android vous permet de prendre des applications Web créées en HTML, JavaScript et CSS, et de les transformer en applications autonomes que vous pouvez télécharger sur les boutiques d’applications (gratuitement ou à vendre) – http://html5formobile.com – les encapsuleurs à faire pour les SDK iOS et Android sont disponibles gratuitement sur le site Web et vous n’avez besoin d’aucune connaissance du langage de programmation si vous suivez les instructions du livre.

Je me rends compte que cette question est plutôt ancienne, mais elle apparaît sur les recherches Google, alors j’ai pensé que ce serait une bonne idée de la mettre à jour.

Je pense qu’un bon framework pour les deux plates-formes et qu’il fonctionne en natif, permettant d’écrire des jeux performants, serait Corona.

Lien: http://www.anscamobile.com/corona/

Nous avons eu du succès avec le middleware Ice-Touch pour que les appareils iPhone et Android communiquent avec les mêmes serveurs. avec une génération de code assez décente pour les objects et méthodes réseau. mais la logique locale doit encore être écrite dans la langue du téléphone. De cette façon, nous pourrions tirer parti des avantages de l’interface utilisateur, tandis que notre modèle fonctionne sur le même serveur et que nos contrôleurs sont générés automatiquement.

texte du lien

Je voulais juste mentionner qu’une application Web utilisant le plug-in Gears peut utiliser la géolocalisation ( non plus disponible ) (services de localisation GPS et Wifi).

Je ne suis pas sûr qu’il y ait de l’espoir d’obtenir le support des engrenages sur un iPhone, mais c’est une autre approche utile pour créer des applications Web avec des fonctionnalités supplémentaires tout en ayant une large scope de périphériques.

Un tel cadre, par nature, ne pouvait pas tirer parti des fonctionnalités spécifiques à l’iPhone telles que l’accéléromètre ou les gestes à plusieurs doigts. Cela annulerait aussi probablement les termes du SDK d’Apple.

Comme Andyuk l’a suggéré, envisagez d’écrire une application Web. Les fonctionnalités de base, comme l’appel de quelqu’un, sont accessibles de cette manière.

Il n’y a rien d’existant (ça vaut la peine de compter, voire pas du tout), et je doute qu’il y ait jamais quelque chose d’officiel prévu.