Je joue avec le développement d'applications Android en Java depuis un certain temps et je commence à comprendre. Cependant, si je veux démarrer sur une version iOS, je dois tout coder à partir de zéro - ce qui est, bien, indésirable.
Je me demandais quelles sont les solutions multiplateformes disponibles et dans quelle mesure elles fonctionnent dans la pratique. J'ai pensé aux applications Web - peut-être en utilisant jQuery Mobile ou Titanium , ou Adobe Flash / Flex / Air. Je n'ai pas encore de Mac, dans lequel je devrai probablement investir.
Donc mes questions:
Quels environnements de développement multiplateformes existent pour iOS / Android (et / ou d'autres appareils)?
Quelle a été votre expérience avec ces outils? (c'est ce que j'ai vraiment hâte de savoir)
la source
Réponses:
Avertissement: Je travaille pour une entreprise, Particle Code, qui crée un cadre multiplateforme. Il y a une tonne d'entreprises dans cet espace. De nouveaux semblent surgir chaque semaine. Bonne nouvelle pour vous: vous avez beaucoup de choix.
Ces cadres adoptent différentes approches, et nombre d’entre eux sont fondamentalement conçus pour résoudre différents problèmes. Certains se concentrent sur les jeux, d'autres sur les applications. Je poserais les questions suivantes:
Que veux-tu écrire? Application d'entreprise, application de productivité personnelle, jeu de puzzle, jeu de tir à la première personne?
Quel type d'environnement de développement préférez-vous? IDE ou simple éditeur de texte?
Avez-vous des sentiments forts sur les langages de programmation? Parmi les frameworks que je connais, vous pouvez choisir parmi ActionScript, C ++, C #, Java, Lua et Ruby.
Mon entreprise est plus dans l'espace de jeu, donc je n'ai pas autant joué avec les frameworks JavaScript + CSS comme Titanium, PhoneGap et Sencha. Mais je peux vous parler un peu de certains des frameworks orientés jeux. Les jeux et les applications Internet riches sont un domaine dans lequel les cadres multiplateformes peuvent briller, car ces applications ont tendance à accorder plus d'importance au fait d'être visuellement uniques et moins à se fondre dans les interfaces utilisateur natives. Voici quelques frameworks à rechercher:
Unity www.unity3d.com est un moteur de jeux 3D. Il ne ressemble vraiment à aucun autre environnement de développement dans lequel j'ai travaillé. Vous créez des scènes avec des modèles 3D et définissez le comportement en attachant des scripts à des objets. Vous pouvez créer des scripts en JavaScript, C # ou Boo. Si vous souhaitez écrire un jeu basé sur la physique 3D qui fonctionnera sur iOS, Android, Windows, OS X ou des consoles, c'est probablement l'outil qu'il vous faut. Vous pouvez également écrire des jeux 2D en utilisant des ressources 3D - un bel exemple de ceci est le jeu indépendant Max and the Magic Marker., un side-scroller basé sur la physique 2D écrit dans Unity. Si vous ne le savez pas, je vous recommande de le vérifier (surtout s'il y a des enfants dans votre ménage). Max est disponible pour PC, Wii, iOS et Windows Phone 7 (bien que cette dernière version soit un port, car Unity ne prend pas en charge WinPhone). Unity est livré avec des exemples de jeux complets avec des actifs et des textures 3D, ce qui aide vraiment à se familiariser avec ce qui peut être un environnement assez compliqué.
Corona www.anscamobile.com/corona est un moteur de jeux 2D qui utilise le langage de script Lua et prend en charge iOS et Android. Le point de vente de Corona est la possibilité d'écrire très rapidement des jeux basés sur la physique en quelques lignes de code, et le grand nombre de jeux basés sur Corona dans l'App Store iOS témoigne de son succès. L'environnement est très maigre, ce qui plaira à certaines personnes. Il est livré avec un simulateur et un débogueur. Vous ajoutez l'éditeur de texte de votre choix et vous disposez d'un environnement de développement. Le SDK de base n'inclut aucun composant d'interface utilisateur, comme des boutons ou des zones de liste, mais un module complémentaire CoronaUI est disponible pour les abonnés.
Le SDK Particle www.particlecode.com est une solution multiplateforme légèrement plus générale avec une expérience dans les jeux. Vous pouvez écrire en Java ou en ActionScript à l'aide d'un modèle d'application MVC. Il comprend un IDE basé sur Eclipse avec un éditeur d'interface utilisateur WYSIWYG. Nous prenons actuellement en charge la création pour les appareils Android, iOS, webOS et Windows Phone 7. Vous pouvez également générer du Flash ou HTML5 pour le Web. Le framework a été développé à l'origine pour les jeux sociaux multijoueurs en ligne, tels que le poker et le backgammon, et il convient aux jeux et applications 2D avec une logique complexe. Le framework prend en charge les graphiques 2D et comprend un moteur physique 2D.
NB:
La source
En termes de courbe d'apprentissage, je dirais que Unity avait la courbe d'apprentissage la plus raide (pour moi), Corona était la plus simple, et Particle et Airplay se situent quelque part entre les deux.
Un autre point intéressant est la manière dont les frameworks gèrent différents facteurs de forme. Corona prend en charge la mise à l'échelle dynamique, qui sera familière aux développeurs Flash. C'est très facile à utiliser, mais cela signifie que vous finissez par perdre de l'espace sur l'écran lorsque vous passez d'un écran 4: 3 comme l'iPhone à un 16: 9 comme les nouveaux appareils Android qHD. L'éditeur d'interface utilisateur du SDK Particle vous permet de concevoir des mises en page flexibles qui s'adaptent, mais vous permet également d'ajuster les mises en page pour des tailles d'écran individuelles. Cela prend un peu plus de temps, mais vous permet de donner à l'application un aspect personnalisé pour chaque écran.
Bien sûr, ce qui fonctionne pour vous dépend de vos goûts individuels et de votre style de travail ainsi que de vos objectifs - je vous recommande donc de télécharger quelques-uns de ces outils et de leur donner une chance. Tous ces outils sont gratuits.
De plus, si je pouvais simplement faire une annonce d'intérêt public, la plupart de ces outils sont en développement vraiment actif. Si vous trouvez un framework que vous aimez, envoyez-leur des commentaires et dites-leur ce que vous aimez, ce que vous n'aimez pas et les fonctionnalités que vous aimeriez voir. Vous avez une réelle opportunité d'influencer ce qui se passe dans les prochaines versions de ces outils.
J'espère que cela t'aides.
la source
MonoTouch et MonoDroid, mais ce qui va arriver à cette partie d'Attachmate maintenant est une conjecture. Bien sûr, même avec les solutions mono, vous créez toujours des vues non multiplateformes, mais l'idée étant la réutilisation de la logique métier.
Gardez un œil sur http://www.xamarin.com/ il sera intéressant de voir ce qu'ils proposent.
la source
Mon expérience avec la création de quelque chose de très simple dans PhoneGap + jQuery Mobile était bien. J'ai pu le faire rapidement pour iOS. Cependant, cela n'a pas fonctionné sur mes téléphones Android sans apporter de modifications. Le projet était une application très simple pour prendre des photos et les publier sur un site Web. Et à la fin de la journée, c'était "maladroit" par rapport à une véritable application native.
Je ne crois pas qu'il y aura jamais de développement multiplateforme facile. Je pense que le navigateur est aussi proche que possible. En choisissant quelque chose comme PhoneGap, je pense que vous n'échangez qu'un ensemble de points de douleur pour un ensemble différent de points de douleur.
la source
Si vous ne souhaitez pas utiliser un framework à part entière pour le développement multiplateforme, jetez un œil à C ++ en option. iOS prend entièrement en charge l'utilisation de C ++ pour la logique de votre application via Objective-C ++. Je ne sais pas dans quelle mesure la prise en charge d'Android pour C ++ via le NDK est adaptée pour faire votre logique métier en C ++ plutôt que juste quelques extraits de code critiques pour les performances, mais si ce cas d'utilisation est bien pris en charge, vous pouvez l'essayer.
Cette approche n'a bien sûr de sens que si votre logique applicative constitue la plus grande partie de votre projet, car les interfaces utilisateur devront être écrites individuellement pour chaque plateforme.
En fait, C ++ est le langage de programmation le plus largement pris en charge (à l'exception du C), et est donc le langage de base de la plupart des grandes applications multiplateformes.
la source
Bien que je viens de commencer à me pencher sur ce domaine de développement, je pense que cela se résume à cette différence fondamentale: certains outils conservent le code d'origine, et certains portaient en natif ...
par exemple, PhoneGap conserve simplement le code HTML / CSS / JS que vous écrivez et l'enveloppe dans suffisamment de code iOS pour être qualifié d'application, tandis qu'Appcelerator vous livre un projet XCode ... donc si vous n'êtes pas familier avec iOS, alors cela ne constituerait pas vraiment un avantage pour vous sur PhoneGap, mais si vous DO connaissez un peu, cela pourrait vous donner un peu plus la capacité de modifier les versions natives après votre effort de codage plus.
Je n'ai pas utilisé appcelerator moi-même, mais j'ai travaillé il y a quelques semaines sur un projet où l'un des membres de notre équipe a créé une application iPad complète en environ 24 heures.
Et oui, pour vous soumettre à Apple, vous devrez vous procurer un Mac, mais si ce n'est pas votre plate-forme de travail principale, vous pouvez aller bon marché.
la source
Cappuccino ou PhoneGap .
Parfois, essayer de trouver un raccourci ne vous fait pas gagner du temps ni ne vous donne un produit final comparable.
la source
Il y a aussi le SDK MoSync Mobile
GPL et licence commerciale. Il y a un bon aperçu de leur approche ici .
la source
Si vous avez déjà utilisé LUA, vous pouvez essayer Corona SDK pour créer des applications qui s'exécutent sur IOS et Android
https://coronalabs.com/
Je l'ai téléchargé et en ai dérangé quelques-uns, je trouve que LUA est un langage de script très facile à apprendre sans les tracas / limitations habituels du langage de script ...
la source
Il y a aussi BatteryTech que nous utilisons depuis 18 mois et en avons sorti plusieurs jeux. http://www.batterypoweredgames.com/batterytech
Tous les supports C ++, Android et iOS, tous les utilisateurs obtiennent la source complète. La nouvelle version 2 inclut des liaisons lua.
la source