web-dev-qa-db-fra.com

Le meilleur moyen de créer des applications natives avec JavaScript?

Je joue depuis un moment avec phonegap, j'ai fait des tests sur mon Android ...

C'est joli Nice.

Mes questions sont:
Quel est le meilleur framework (votre favori) pour développer des applications mobiles natives avec côté client Web (HTML/JavaScript/CSS)?

Est-il facile de créer et de gérer ces applications en parallèle sur plusieurs plateformes (iOS/Android/BlackBerry)? At-il beaucoup d'exceptions entre différentes plateformes (iOS/Android/BlackBerry)?

Quelles sont les exigences pour développer mon application pour iOS? Devrais-je avoir besoin d'un IDE spécial avec un SDK spécial? Dois-je avoir un Mac?

17
Michael Kisilenko

Nous construisons actuellement une application iOS native avec React Native . Ce serait dommage si cela n'était pas inclus ici.

Avantages:

  • React considère le DOM comme un détail d'implémentation. Cela a rendu la transition vers l'interface utilisateur native très naturelle. Il supprime également le besoin de HTML/CSS lors de l'écriture d'une application native. Tout ce dont vous avez besoin, ce sont des composants natifs, écrits en JavaScript.
  • Composants natifs! Les composants natifs fondamentaux ont déjà été rapprochés de JavaScript et une communauté occupée au travail apporte tout le reste. Le fait est que si vous connaissez ou souhaitez apprendre un peu d'Objective C ou Java, il existe un processus facile pour ajouter un module natif (ou un module tiers) à React Native.
  • Itération rapide Plus de 2600 commits ont été enregistrés dans la branche principale depuis l’ouverture de la source ouverte en mars.
  • Vous bénéficiez de tous les avantages de React normal: une couche de vue virtuelle, des différences, une création d’interface utilisateur déclarative, une expérience de développeur fantastique et une communauté exceptionnelle.
  • Vous pouvez créer plusieurs plates-formes à partir du même référentiel, en réutilisant une grande partie de la même base de code (principalement la logique d'application).

Les inconvénients:

  • C'est encore jeune. Quelques fonctionnalités nécessitent le jimmy-rigging, une bibliothèque tierce ou Objective-C/Java personnalisé pour fonctionner.
  • Certaines grandes bibliothèques tierces liées au DOM ou à l'API de navigateur ne fonctionnent toujours pas sur React Native, y compris React Router.
  • XCode et le programme pour développeurs d’Apple ont été les plus gros problèmes, mais il n’ya aucun moyen de contourner ce problème.

Est-il facile de créer et de gérer ces applications sur plusieurs plates-formes?

React Native pour Android a été open-source le 14 septembre 2015. Je ne l'ai pas encore utilisé, mais voici ce que j'ai pu apprendre jusqu'à présent. Mise à jour 10/21/16: React Native pour la plate-forme universelle Windows a été annoncé plus tôt cette année. Cela signifie que vous pouvez maintenant utiliser React Native pour créer des applications pour le bureau Windows, les téléphones Windows et même la Xbox!

React Native est not destiné à être une mentalité à écrire une fois, courir n’importe où. Ils adoptent plutôt un paradigme apprendre une fois, écrire n'importe où. iOS étant une plate-forme très différente d'Android, un effort sincère doit être mis dans la conception de l'une ou l'autre plate-forme. Les API natives seront également différentes.

Ainsi, vous finirez par réécrire du code pour les composants natifs et les API. Cependant, une grande partie de votre logique d'application peut être réutilisée. En fait, React-Native est organisé de sorte que vous puissiez conserver vos applications Android et iOS dans le même référentiel, de sorte que vous puissiez réutiliser le même code lorsque cela est possible. Je pense que c'est brillant, mais seul le temps le dira. Selon eux , cela fonctionne bien jusqu'à présent.

À propos, une équipe de Facebook a créé une application iOS en utilisant React Native , puis a développé la version Android en trois mois en utilisant 87% de la même base de code.

Quelles sont les exigences pour développer mon application pour iOS?

Actuellement, vous avez besoin d’un Mac et d’un XCode pour pouvoir vous déployer. Actuellement, il y a très peu de moyens de contourner cela. Selon ce problème et d'après les conversations sur Slack, une fois déployé, vous pouvez réellement développer à partir d'une machine Windows ou Linux. Facebook travaille également à l'open source pour tous leurs Nuclide packages, qui, selon leur présentation à F8 , incluront des outils pour empaqueter et construire sans XCode.

Dans l’ensemble, React Native a été une expérience remarquable. À mon avis, il est au dessus de tout ce qui existe actuellement. Le sentiment au sein de la communauté est également très positif. Je ne peux que supposer que cela s'améliorera avec le temps.

14
Jacob Turner

Si votre application va être très simple (par exemple, un port d'une application Web existante) et que vous n'en avez besoin que sur une plate-forme et que l'intégration avec les fonctionnalités spécifiques au téléphone n'est pas nécessaire, vous pouvez utiliser simplement une vue Web sur la plate-forme sélectionnée . Si la plate-forme que vous avez sélectionnée est iOS et que vous ne maîtrisez pas la programmation, procédez comme suit:

  • Téléchargez xCode sur votre Mac,
  • Téléchargez ce projet d'application d'affichage Web simple: https://github.com/nomtek/iOSWebViewApp
  • Ouvrez l'application d'affichage Web simple dans xCode
  • Ajoutez vos HTMLs au projet
  • Exécuter :)

Avantages de cette approche:

  • Configuration simple
  • Aucune bibliothèque supplémentaire à charger - l'application démarre beaucoup plus rapidement
4
chomasek

C'est un domaine qui ne cesse de changer et il ne fait que s'améliorer. Googler au moment de votre intérêt serait le meilleur pari. Au moment d'écrire ces lignes, je regarde ce qui suit actuellement, sans ordre particulier:

3
Indu Devanath

Phone Gap semble être votre meilleure option si vous essayez d'utiliser javascript pour créer une application mobile

Oui, vous aurez besoin d’un Mac, car vous devrez installer XCODE ( https://developer.Apple.com/xcode/ ) - le propre IDE d’Apple.

1
Duarte TB

ce sont les options

Phonegap: http://phonegap.com/

PhoneGap est un framework gratuit et open source qui vous permet de créer Applications mobiles à l'aide d'API Web standardisées pour les plateformes qui vous intéressent . .Téléchargez le Phonegap.

Coronalabs: http://coronalabs.com/

Corona SDK crée des applications mobiles riches pour iOS, Android, Kindle et Nook. Créez des applications> mobiles de haute qualité en une fraction du temps.

Appcelerator: http://www.appcelerator.com/

Appcelerator est la première plate-forme mobile unique permettant aux entreprises De créer, de> livrer et d'analyser leurs applications mobiles.

1
Sridhar R

React Native est actuellement la meilleure option pour créer des applications mobiles en JavaScript. 

Voici mes 3 principales raisons:

  1. Développement et mises à jour très actifs - après tout, il est originaire de FB

  2. Courbe d'apprentissage négligeable

  3. Excellentes ressources en ligne

J'ai pu écrire une application petite mais fonctionnelle sans expérience préalable de React Native et même la déployer sur le Google Play Store en moins de 2 jours. 

En outre, l'un des principaux avantages de React Native est que vous pouvez "éjecter" votre application à tout moment et continuer à travailler dessus sous Android Studio ou XCode. Cela pourrait être un grand soulagement dans les projets qui démarrent simplement mais qui peuvent devenir complexes avec le temps.

Voici un court tutoriel que j'ai assemblé lors de la création de ma première application native pour Android: http://geekycentral.com/creating-a-native-Android-app-using-javascript-hello-react- originaire de/

0
Adil Shaikh

Si vous investissez un peu dans l’apprentissage d’un nouveau langage de script, Coronalabs serait votre nouvelle arme de choix. Avec elle, vous pouvez créer des applications natives (multiplates-formes) et vous pouvez utiliser une vue Web pour ajouter vos fichiers HTML/CSS/Javascript si vous en avez besoin. 

0
Rob Vermeulen