web-dev-qa-db-fra.com

Utilisation de Phonegap pour le développement d'applications natives

Je suis récemment tombé sur Phonegap . Avez-vous essayé. C'est un outil incroyable qui prétend que les développeurs peuvent utiliser le framework basé sur HTML 5 comme Sencha touch et Jquery tout en ayant accès aux fonctionnalités natives sur le téléphone. De plus, le code est portable de Android vers Iphone avec un certain effort. Avant de m'y plonger, je veux savoir quelle est l'expérience du forum avec Phonegap. Quels sont les points faibles et est-il vraiment évolutif pour l'entreprise développement d'applications de niveau.

97
SaKet

J'ai construit quelques applications en utilisant PhoneGap, et pour ce qu'il offre, c'est génial. Il y a quelques notes rapides que je voudrais souligner, qui pourraient vous aider.

Disable device-based features you're not using L'accéléromètre, les fonctions de géolocalisation sont activées par défaut. Si vous ne les utilisez pas, je les désactiverais, car votre application se chargera plus rapidement (initialisera) et fonctionnera plus facilement.

onDeviceReady - C'est la méthode qui est appelée une fois que phonegap a été chargé et est prêt. $ (document) .ready ou tout ce à quoi vous êtes habitué, ne s'applique pas vraiment ici - à moins que vous ne fassiez que des choses HTML d'interface/codées en dur. Si vous interagissez avec des fonctionnalités iPhone, comme GeoLocation, vous devrez tout faire après onDeviceReady a été appelé .

Pick a UI/library Il existe une tonne d'options pour l'interface/les bibliothèques, jquery-mobile, sencha touch, jqtouch, etc. Ces options offrent chacune une approche unique et un ensemble de fonctionnalités. Faites des recherches et utilisez-en un, mais évitez de les combiner. Vous pouvez lire plus d'options, d'outils ici: http://www.phonegap.com/tool (lien mis à jour)

Also, more on just mobile development in general, with PhoneGap Si vous cherchez à créer des applications, qui sont distribuées via le marché Android et iPhone App Store, je voudrais lire leurs listes exhaustives pour obtenir des directives sur la façon de développer votre application. Par exemple, dans le lien outils ci-dessus, il y a un "outil/plugin" appelé Easy APNS - alors que cela est utile pour Android - et techniquement réalisable sur l'iPhone, il viole l'accord de développement, car il stipule que vous devez utiliser le réseau de notification Apple, etc.). Ce n'est qu'un exemple, mais la lecture de ces informations sera vous épargnera beaucoup de maux de tête, si tel est votre objectif final.

Dans l'ensemble, c'est génial pour les applications légères, surtout si vous venez d'un milieu de développement Web. LocalStorage, GeoLocation, etc. fonctionne très bien. J'espère que cela aide un peu ... et j'ai l'impression de poser des questions.

Édition supplémentaire:

Je pense vraiment que cela se résume à ce que vous voulez faire et à ce que vous savez faire. Matt a souligné que le développement d'applications natives, pour iOS, c'est mieux, etc. Oui, si vous avez le temps et les connaissances pour apprendre cela - bien sûr, natif sera mieux. Mais PhoneGap est fait pour les développeurs Web qui peuvent prendre leurs compétences existantes et créer des applications. PhoneGap vous permet également de créer des applications rapidement, pour iOS, Android, Symbian, Palm, Blackberry. Avec des ajustements mineurs à votre base de code pour chacun.

95
TNC

Voici tous les meilleurs guides de performance que j'ai lus pour PhoneGap ... il y a beaucoup à se méfier pour vous assurer des performances solides et stables ... mais vous pouvez tout ramasser en une seule soirée de lecture.

Voici les meilleures pépites:

Conseils sur les performances de PhoneGap/Web mobile

Activation de nouvelles fonctions

Architecture

Architecture de votre application dans Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2

52
ATSiem

Avant d'exprimer mon opinion sur Phonegap, je dois émettre un petit avertissement disant que je ne suis en aucun cas un développeur Web. Pour moi, écrire JavaScript et CSS, c'est comme se tirer les dents. Cela dit, je n'aime pas Phonegap.

Il y a quelques aspects très attrayants du cadre, principalement l'appel "Write-Once-Run-Anywere" et le "I-Don't-Have-To-Learn-Objective-C?" charme. Le cadre peut même vous donner accès à certaines fonctionnalités matérielles comme l'accéléromètre. Tous ces éléments sont valables, dans une certaine mesure.

Cela dit, aucune des grandes applications iOS n'est construite à l'aide d'un type de framework multiplateforme. Il y a tellement d'interactions UI subtiles et élégantes qui sont gérées pour vous par les contrôles UIKit natifs que de nombreux utilisateurs et développeurs tiennent pour acquis jusqu'à leur disparition, comme la multitude de courbes d'animation de vue incroyablement détaillées et les rebonds de défilement qui ne sont pas là dans l'interface utilisateur basée sur la vue Web. Vous pourriez travailler dur pour les reproduire parfaitement, mais pour cet investissement en temps, pourquoi ne pas simplement devenir natif?

Un deuxième point à noter est que la communauté de support pour les applications iOS construites par Phonegap est considérablement plus petite que les applications développées nativement. Si vous comptez sur la communauté pendant les projets, cela devrait également vous donner une pause.

En fin de compte, cela se résume à la qualité de l'expérience que vous souhaitez offrir. La limite supérieure est inférieure avec Phonegap. Si vous êtes prêt à accepter une expérience utilisateur moins qu'excellente en échange de temps de développement réduits et d'une portabilité accrue, c'est un cadre très viable.

En tant que sous-texte pour tous ceux qui sont intéressés, Marco Arment et Dan Benjamin ont récemment discuté de ce sujet. Vous pouvez l'écouter ici .

29
Matt Wilding

La procédure d'installation implique un certain nombre de packages (Java, Apache Ant, Ruby, iOS SDK, Android SDK et PhoneGap lui-même), qui doivent tous être correctement installés et configurés. Cela peut être un Pour être honnête, ils ont quelque chose appelé PhoneGap Build en version bêta qui devrait rendre cela beaucoup plus facile.

Nous l'utilisons avec NS Basic/App Studio pour produire des applications éligibles pour les magasins d'applications.

4
ghenne

si vous ne créez pas de jeu ni de widget, juste une application agréable à regarder, alors le téléphone est votre choix.

Mais vous devez faire attention à votre JS, éviter de faire quoi que ce soit dans JS par exemple si vous voulez faire une animation, éviter de régler une minuterie avec de petits intervalles (par exemple 100 ms), éviter jquery et les animations similaires. Par exemple, au lieu d'animer le fondu en définissant une minuterie de courte durée diminuant l'opacité à chaque point étape par étape (c'est ainsi que fonctionne le fondu jquery), vous devez utiliser les transitions CSS3 de l'opacité 1 à l'opacité 0.

Mon conseil est d'aller avec quelque chose comme zeptojs.com, après tout phonegap ne fonctionnera pas ie6 :-)

Consultez un didacticiel sur la façon de rendre votre JS plus léger

http://bcksp.blogspot.com/

2
Muayyad Alsadi

Si vous n'avez besoin d'aucune des fonctionnalités matérielles ou des performances au-delà de ce que fournissent HTML5 et Phonegap, une application Web encapsulée (plus un accès limité à d'autres fonctionnalités) est une excellente solution.

De nombreuses entreprises déploient des applications Web à grande échelle. Phonegap (ou tout simplement un contrôle d'affichage Web simple avec un contenu intégré) vous permettra d'exécuter ces applications Web hors ligne (sauf, bien sûr, pour toutes les données en ligne requises).

1
hotpaw2

Une "douleur" non mentionnée lors du déploiement entre plusieurs appareils différents: plus il y a d'appareils, plus la courbe d'apprentissage est grande. Pour déployer sur des appareils iOS avec PhoneGap, vous devrez apprendre les bases de Xcode sur un Mac. Pour déployer sur Android, vous devrez installer et apprendre Eclipse, le SDK Android, etc. Les autres plateformes exigent que leurs propres SDK soient utilisés. L'apprentissage de Xcode, Javascript et Java rudimentaires m'aide à comprendre les erreurs et la syntaxe générale.

"Créer une fois, déployer partout" laisse de côté beaucoup de pas!

0
Steve