109 votes

Développement cross plate-forme mobile application

De plus en plus et les plates-formes mobiles sont en cours de lancement et sdk sont disponibles pour les développeurs. Il existe plusieurs plate-forme mobile sont disponibles: Android, iOS, Moblin, Windows mobile 7, RIM, symbian, bada, maemo, etc.

Et en faisant de la croix-plate-forme d'application est des maux de tête pour les développeurs. Je suis à la recherche de choses en commun sur les plates-formes qui vont de l'aide pour les développeurs qui souhaitent port d'applications pour toutes les plateformes. Comme ce sont des diff résolutions d'écran, les méthodes de saisie, open gl soutien, etc. merci de partager les détails que vous connaissez pour l'un de plate-forme.

Ou il y a des possibilités, par l'écriture de code html (type de widget de chose) et de les charger dans l'application native. Je sais que sur android, dans lequel nous pouvons ajouter de la vue web en application en appelant setContentView(view)

Merci de partager la classe de détails que l'on peut ajouter l'affichage html dans l'application native de différents types de plates-formes que vous connaissez.

Le but de ce thread est de partager des détails commun à travers les développeurs. marquage de la communauté wiki.

La croix-plate-forme, des outils et de la bibliothèque

97voto

TechZen Points 52692

Ma réponse ici couvre certaines des limitations techniques de la croix-platfrom outils , mais permettez-moi de développer un peu plus:

Je pense que les outils de plate-forme ont historiquement toujours été perdants parce que ces outils ont le mauvais philosophique se concentrer.

Tous les points de vente pour le cross-platforme outils sont les avantages qu'ils apportent aux développeurs. Ils sont vendus sur l'idée qu'elles permettent aux développeurs d'écrire-une fois-run-n'importe où. Ils sont vendus sur l'idée qu'elles permettent aux développeurs d'étendre son marché sans avoir à apprendre de nouvelles Api. Ils sont vendus sur l'idée qu'elles permettent aux développeurs de sabrer dans les coûts et les délais de commercialisation.

Ce cross-platforme de l'outil sont PAS vendus sur le bénéfice qu'ils apportent aux utilisateurs finaux.

Avantages pour l'utilisateur final n'est pas un argument de vente, car la croix-plate-forme de développement est rarement un avantage pour l'utilisateur final. L'utilisateur final ne se soucie pas comment dur le développeur a dû travailler pour amener le produit sur le marché. Ils ne vous préoccuper du nombre de plates-formes, l'application peut s'exécuter sur quand ils ne l'utilisent pas, mais une plate-forme. Ils ont juste des soins si l'application ne ce dont ils ont besoin sur le matériel dont ils ont besoin pour exécuter sur. À moins d'avoir un besoin spécifique pour exécuter l'application sur plusieurs plateformes différentes, le fait qu'il ne leur apporte pas de valeur.

A l'inverse, les compromis à faire une croix-plate-forme API signifie que toutes les applications créées par l'API sera, au mieux, de grade B sur chaque plate-forme. Ils ne seront jamais le meilleur outil à utiliser sur chaque plate-forme.

Tout cela signifie que dans la plupart des cas d'utilisation, de la croix-plate-forme d'outils de donner à l'utilisateur final un produit de qualité inférieure par rapport à celles faites avec plate-forme Api spécifiques. L'utilisateur aura toujours un meilleur choix.

Vous faire de l'argent dans le long terme en donnant aux utilisateurs les outils les plus utiles. Si vous n'avez pas philosophiquement à se concentrer sur la prise de l'utilisateur plus facile et plus productif, vous êtes assez bien voué à l'échec dès le départ. Les utilisateurs finaux ont beaucoup de choix et si votre outil n'est pas un des meilleurs, vous ne voulez pas faire dans le marché.

Vous ne devez utiliser de la croix-plate-forme d'outils si vous pensez, "les utilisateurs de profiter réellement de l'exécution de cette application sur plusieurs plateformes différentes." Si vous commencez à regarder la croix-plate-forme d'outils uniquement parce qu'ils feront de votre (les développeurs) la vie plus facile, alors vous avez choisi pour les mauvaises raisons, et ils vont vous faire du mal plus que ce qu'ils vous aideront.

14voto

Jla Points 5923

Il existe plusieurs approches de développement cross plate-forme sur les appareils mobiles. Bien sûr, ils ont tous des limites. Aucune solution ne parvient à profiter de toutes les fonctionnalités de l'appareil au moyen d'une application native peut.

La réutilisation de code

Alors que tous les OS mobile de ne pas utiliser le même langage de développement et de l'API, vous pouvez parfois de la part de certaines classes ou de logique, niveau code.

C++, par exemple, peut probablement être ré-utilisé pour une application iOS, pour une application Android en utilisant le NDK, pour un Symbian application, car ils sont développés en C++, etc.

Certaines solutions offrent également la possibilité d'écrire l'application dans une autre langue que celle normalement utilisée par l'appareil. La plus célèbre (en fait le seul que je connais) sont commerciaux et basé sur le Mono de projet (développement C#):

Mais je ne suis pas sûr que l'on peut vraiment appeler cela de la croix-plate-forme de développement depuis la réutilisation de code est limité en fonction de l'appareil :

  • Windows Phone 7 ne sera pas permettre à du code natif de développement (peut-être dans d'autres mises à jour)
  • Autant que je sache, mono comme le projet n'existent pas pour toutes les plateformes (encore?) bada, webOS, maemo, etc.

Et l'INTERFACE utilisateur de la partie aussi des séjours spécifiques à chaque appareil.

Développement Web

Régulièrement réponse quand on parle de la croix-plate-forme de développement pour les mobiles est en développement web. Nous aurions alors besoin d'une cape, qui va utiliser le navigateur mobile, pour le faire paraître et de se comporter comme une application native. C'est ainsi que certains de la croix-plate-forme de cadre que nous allons voir plus sur le travail.

La montée de l'HTML5 apporte du développement web, des fonctionnalités qui ne peut être fait avec une application native comme la géolocalisation, l'application, le stockage local.

On trouve de plus en plus et cadres à développer une application web pour les mobiles avec une interface native en profitant des derniers standards du web HTML5, CSS3, Js:

Mais HTML5 est encore très jeune et la mise en œuvre peuvent varier d'un navigateur à l'autre. La plupart des navigateurs mobiles utilisez le moteur WebKit (à l'exception notable de Windows mobile/téléphone à l'aide de Internet Explorer) et même si ils ne sont pas nécessairement en charge les mêmes fonctionnalités. Base de données locale est toujours gênant de travailler avec et nous ne pouvons pas être sûr de savoir comment il va en œuvre par les différents navigateurs. En outre, même avec HTML5, web développement est encore très limitée par rapport à une application native. Vous ne pouvez pas accéder à vos contacts, appareil photo, accéléromètre, etc.

Edit: plus Tôt ce mois-ci, le W3C, ont livré quelques mises en garde à propos de l'évolution de HTML5: l'Article de ZDNet

Aussi, elle ne pourra convenir à une catégorie limitée d'applications.

Croix-plate-forme des cadres

Et que nous avons les applications mobiles multi-plateforme des cadres. Avec lequel vous pouvez probablement développer une fois et de les déployer sur les différentes plates-formes. Ces solutions se concentrent généralement sur iOS et Android et de s'appuyer sur le moteur WebKit. Ils offrent une plus grande interaction avec le téléphone fonctionnalités en cours de développement avec des technologies web. Les plus connus sont Nitobi PhoneGap, RhoMobile Rhodes, Appcelerator Titanium. Mais beaucoup d'autres sont là et n'utilisent pas tous la même technique que pour les MoSync qui traduisent votre code pour son propre langage intermédiaire avant de le compiler pour la plate-forme désirée.

[ 1 ] Rappelez-vous que Apple a une politique spéciale sur les applications écrites pour leur plate-forme. Ils ne semblent pas être le blocage de ces applications à cette date, mais c'est une information qui doit être pris en compte. Edit: Apple a changé cette politique depuis le 9 septembre.

6voto

seand Points 3426

Vous obtenez des points communs lors du déploiement en tant qu'application Web (html5 comme mentionné ci-dessus), mais pour les applications natives riches, les API sont complètement différentes pour les différents smartphones.

HTML5 peut améliorer quelque peu les choses, mais pour faire des choses intéressantes, vous devez devenir natif.

Il existe des frameworks de smartphone «multi-plateformes» tels que Phonegap, mais j'ai surtout entendu des commentaires négatifs sur son utilisation pour un «vrai» travail. (beaucoup de frais généraux, etc.)

5voto

Mathias Lin Points 16035

Oui, html5 est d'obtenir une certaine attention. Vous devriez aussi regarder ce consortium et de la plateforme de venir au T4. Pas sûr de la réussite de ce projet, comme il sonne comme un défi énorme, mais voici plus de détails:

Site web: http://www.wholesaleappcommunity.com/default.aspx

News: http://news.google.de/news/search?aq=f&pz=1&cf=all&ned=us&hl=en&q=%22Wholesale+Applications+Community%22

WAC vise à publier son premier la spécification et les composants de ses SDK pour les développeurs en novembre. Cette spécification sera basé sur le W3C des normes et de créer une plate-forme solide pour le développement de riches mobile web des applications. WAC fournira également rétro-compatibilité pour les appareils basées sur les JIL et BONDI les spécifications. (http://www.convergedigest.com/Bandwidth/newnetworksarticle.asp?ID=31021)

.

C'EST une coalition internationale de près de 25 entreprises de télécommunications, qui vise à créer une plate-forme ouverte à tous les développeurs et la vente de tous les utilisateurs de téléphone mobile. (http://www.downloadsquad.com/2010/02/15/atandt-wholesale-applications-community-is-a-platform-not-an-app/)

1voto

Fozi Points 2335

Autant que je sache, la plupart de ces appareils sont capables d'exécuter ceci:

Java ME - la plate-forme d'applications la plus répandue pour les appareils mobiles

Je pense que cela peut servir à la fois de bon et de mauvais exemple.

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