114 votes

iOS / Android cross plate-forme de développement

J'ai été jouer avec le développement des applications Android en Java pour un certain temps et je commence à obtenir une poignée sur elle. Cependant, si je veux sur démarrer sur une version iOS j'ai besoin de code de tout à partir de zéro - ce qui est, bien, indésirables.

Je me demandais sur quelle croix-plate-forme de solutions sont disponibles et comment elles fonctionnent dans la pratique. J'ai pensé à des applications web - peut-être à l'aide de jQuery Mobile ou de Titane, ou d'Adobe Flash/Flex/Air. Je n'ai pas encore de Mac, je vais probablement investir dans de la.

Donc mes Questions :

  1. Ce développement multi-plateforme, il existe des environnements iOS / Android (et/ou d'autres appareils)?

  2. Quelle a été votre expérience avec ces outils? (c'est ce que je suis vraiment curieux de savoir)

104voto

DocDude Points 1508

Disclaimer: je travaille pour une société, de Particules de Code, qui fait une croix-plate-forme de cadre. Il y a une tonne de sociétés dans cet espace. De nouveaux semblent ressort chaque semaine. Une bonne nouvelle pour vous: vous avez beaucoup de choix.

Ces cadres adoptent des approches différentes, et beaucoup d'entre eux sont fondamentalement conçus pour résoudre les différents problèmes. Certains sont axés sur les jeux, certains sont axés sur les applications. Je voudrais poser les questions suivantes:

Que voulez-vous écrire? D'applications d'entreprise, la productivité personnelle de l'application, jeu de puzzle, de tir à la première personne?

Quel type d'environnement de développement préférez-vous? IDE ou plain ol' éditeur de texte?

Avez-vous des sensations fortes sur les langages de programmation? De la cadres de, je suis familier avec, vous pouvez choisir à partir d'ActionScript, C++, C#, Java, Lua, et de Rubis.

Mon entreprise est plus dans l'espace de jeu, donc je n'ai pas joué autant avec le JavaScript+CSS frameworks comme Titanium, PhoneGap, et Sencha. Mais je peux vous dire un peu plus sur certains des jeux orientés cadres. Des jeux et des applications internet riches sont un domaine où la croix-plate-forme des cadres peuvent briller, parce que ces applications ont tendance à accorder plus d'importance visuelle unique et moins sur les mélanger avec native de l'Isu. Voici quelques cadres de chercher:

  • L'unité www.unity3d.com est un moteur de jeux 3D. C'est vraiment différent de tout autre environnement de développement que j'ai travaillé. Vous construire des scènes avec des modèles 3D, et de définir un comportement par l'association de scripts à des objets. Vous pouvez créer un script en JavaScript, C#, ou Boo. Si vous voulez écrire un 3D jeu basé sur la physique qui sera exécuté sur iOS, Android, Windows, OS X, ou des consoles, c'est probablement l'outil pour vous. Vous pouvez également écrire des jeux 2D en utilisant les éléments 3D-un bel exemple de cela est de l'indie jeu de Max and the Magic Marker, un 2D basé sur la physique side-scroller écrit dans l'Unité. Si vous ne connaissez pas, je vous conseille de le vérifier (surtout s'il y a des enfants dans votre foyer). Max est disponible pour PC, Wii, iOS et Windows Phone 7 (bien que la dernière version est un port, depuis l'Unité ne prend pas en charge WinPhone). L'unité vient avec quelques exemples de jeux complet avec les éléments 3D et de textures, ce qui aide vraiment à obtenir jusqu'à la vitesse avec ce qui peut être un peu compliqué de l'environnement.

  • 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 capacité à écrire des jeux basés sur la physique très rapidement, en quelques lignes de code, et le grand nombre de Corona-jeux dans l'app store d'iOS est une preuve de sa réussite. L'environnement est très maigre, qui plaira à certaines personnes. Il est livré avec un simulateur et le débogueur. Vous ajoutez votre éditeur de texte de son choix, et que vous avez un environnement de développement. La base SDK ne comprennent pas les composants de l'INTERFACE utilisateur, comme des boutons ou des zones de liste, mais un CoronaUI add-on est disponible pour les abonnés.

  • La Particule SDK www.particlecode.com est un peu plus général de la croix-plate-forme de solution avec de l'expérience dans les jeux. Vous pouvez écrire en Java ou ActionScript, à l'aide d'une application MVC modèle. Il comprend un basé sur Eclipse IDE avec une INTERFACE utilisateur WYSIWYG de l'éditeur. Nous avons actuellement à la construction d'un support pour Android, iOS, webOS et Windows Phone 7 appareils. Vous pouvez également sortie en Flash ou en HTML5 pour le web. Le cadre a été développé à l'origine pour le multijoueur en ligne de jeux de société, tels que le poker et le backgammon, et il convient 2D jeux et applications avec une logique complexe. Le cadre prend en charge les graphiques 2D et comprend un moteur physique 2D.

NB:

Aujourd'hui, nous avons annoncé que les Particules de Code a été acquis par Appcelerator, décideurs du Titane croix-plate-forme de cadre.

...

À compter du 1er janvier 2012, [Particule Code] n'est plus officiellement en charge de la [Particule SDK] plate-forme.

Source

  • L'Airplay SDK www.madewithmarmalade.com est un C++ framework qui permet de développer en Visual Studio ou Xcode. Il prend en charge les graphiques 2D et 3D. Airplay cibles iOS, Android, Bada, Symbian, webOS et Windows Mobile 6. Ils ont également un add-on pour construire AirPlay apps pour PSP. Mon C++ est très rouillé, je n'ai pas joué à beaucoup, mais il a l'air cool.

En termes de courbe d'apprentissage, je dirais que l'Unité avait la plus raide de la courbe d'apprentissage (pour moi), Corona a été le plus simple, et de Particules et Airplay sont quelque part entre les deux.

Un autre point intéressant est la façon dont les cadres de gérer les différents facteurs de forme. Corona prend en charge dynamique de mise à l'échelle, qui sera familier aux développeurs Flash. C'est très facile à utiliser, mais signifie que vous finirez par perdre de l'espace à l'écran lorsqu'on passe d'un écran 4:3 comme l'iPhone, de un 16:9 comme le nouveau qHD Android. La Particule du kit de développement d'INTERFACE de l'éditeur vous permet de créer des mises en page flexibles qui sont à l'échelle, mais vous permet également d'ajuster les mises en page pour chaque taille d'écran. Cela prend un peu plus de temps, mais permet de rendre l'application look personnalisé pour chaque écran.

Bien sûr, ce qui fonctionne pour vous, dépend de votre goût et de style de travail ainsi que vos objectifs -- donc, je vous recommande de télécharger un couple de ces outils et de leur donner un coup de feu. Tous ces outils sont gratuits pour essayer.

Aussi, si seulement je pouvais mettre dans une annonce de service public -- la plupart de ces outils sont en cours de développement. Si vous trouvez un cadre que vous le souhaitez, par tous les moyens d'envoyer des commentaires et faites-leur savoir 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.

Espérons que cette aide.

15voto

Derek Beattie Points 6285

MonoTouch et MonoDroid mais que se passera-t-il à cette partie d’Attachmate maintenant est quiconque conjecture. Bien sûr même avec les solutions mono vous créez toujours vues non multi-plateforme mais l’idée étant de la réutilisation de la logique métier.

Gardez un oeil sur http://www.xamarin.com/ , il sera intéressant de voir ce qu’ils proposent.

12voto

Evan Points 3138

Mon expérience de quelque chose de très simple dans PhoneGap+jQuery Mobile était très bien. J'ai été capable de le faire rapidement pour iOS. Toutefois, il ne fonctionne pas sur mon téléphone Android sans faire des changements. Le projet était très simple application pour prendre des photos et les publier sur un site web. Et à la fin de la journée, il se sentait "maladroit" par rapport à une véritable application native.

Je ne crois pas qu'il y aura jamais facile de la croix-plate-forme de développement. Je pense que le navigateur est aussi proche que vous obtiendrez. En choisissant quelque chose comme PhoneGap je pense que vous êtes tout simplement la négociation un ensemble de points de la douleur pour une autre série de points de la douleur.

7voto

yeoman Points 212

Dans le cas où vous ne souhaitez pas utiliser un véritable cadre pour le développement cross plate-forme, prendre un coup d'oeil sur le C++ comme une option. iOS prend entièrement en charge à l'aide de C++ pour la logique de l'application via l'Objectif-C++. Je ne sais pas comment bien Android de soutien pour le C++ via le NDK est adapté pour faire de votre logique métier en C++ plutôt que de simplement certains critiques des performances des extraits de code, mais dans le cas où ce cas d'utilisation est bien pris en charge, vous pouvez lui donner un essai.

Cette approche a évidemment de sens que si la logique de l'application constitue la plus grande partie de votre projet, comme les interfaces utilisateur devra être écrit de manière individuelle pour chaque plate-forme.

Comme une question de fait, le C++ est le plus largement pris en charge le langage de programmation (à l'exception du C), et est donc le langage de base de la plupart des grandes applications multiplates-formes.

6voto

Robot Woods Points 4515

Bien que j'ai juste commencé à regarder cette zone de développement, je crois qu'au fond, cette différence fondamentale: certains outils de conserver le code d'origine, et un port natif...

par exemple, PhoneGap ne cesse de le HTML/CSS/JS le code que vous écrivez, et l'enveloppe suffisamment iOS code pour se qualifier comme une application, alors que Appcelerator vous propose un projet XCode...donc si vous n'êtes pas familier avec iOS, alors ce ne serait pas vraiment fournir un avantage à vous sur PhoneGap, mais si vous NE le connaissez un peu, cela pourrait vous donner un peu plus de possibilité de modifier les versions natives après votre plus grand effort de codage.

Je n'ai pas utilisé appcelerator moi-même, mais il a travaillé sur un projet il y a quelques semaines, où l'un des membres de notre équipe a fait une toute application iPad en 24 heures environ, à l'aide de.

Et oui, à soumettre à apple, vous aurez à obtenir un mac, mais si ce n'est pas votre principale plate-forme de travail, vous pouvez aller à bas prix.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X