2012-05-05 2 views
11

J'ai déjà développé un site web entièrement fonctionnel, et notre équipe cherche à exporter ce site vers une application iPhone (et éventuellement d'autres plateformes). Le meilleur exemple que je peux donner est que j'ai essentiellement fait Facebook, maintenant je veux faire l'application de Facebook (celle qui est lancée à partir de l'écran d'accueil d'un iPhone, pas du navigateur). Donc, évidemment, nous avons déjà la fonctionnalité, et nous avons juste besoin de le convertir vers une autre plate-forme. Est-ce difficile? Devrons-nous faire un tout nouveau logiciel et ignorer fondamentalement tout le code PHP existant que nous avons déjà? L'application sera essentiellement la même que le site Web, à l'exception de quelques modifications de mise en page. Nous pourrions vouloir qu'il soit capable d'accéder à la fonction de caméra et définitivement être en mesure de télécharger une image, ce qui, je pense, exclurait une application mobile? Je ne comprends toujours pas la délimitation entre faire une application mobile et une application qui se lance depuis l'écran d'accueil d'un iPhone. Avez-vous des suggestions pour savoir par où commencer et à quel point tout cela sera difficile? Si nous pouvons obtenir la fonctionnalité que nous voulons et nous faciliter la tâche en utilisant le code existant, nous serions ravis.créer une application mobile à partir d'un site web existant

Merci

+0

À quel point connaissez-vous objective-c? –

+0

Pas beaucoup, j'ai un bon fond C++ et j'ai une compréhension générale de l'endroit où l'Ob-C diffère, etc. –

Répondre

9

Commençons par Les bases.

Un site mobile est un site Web accessible via le navigateur Web du téléphone. Les pages HTML sont servies à partir d'un serveur Web (et l'interface utilisateur est optimisée pour la disposition du téléphone).

Une application native (souvent appelée "app") est essentiellement une application exécutable qui est téléchargée sur le téléphone. Pour iPhone, ils sont écrits en Objective-C. Pour Android, ils sont écrits en Java. Pour Windows Mobile, ils sont écrits en C#, etc.

Voici les mauvaises nouvelles que vous faites face:

-Afin pour votre application à lancer à partir du « écran d'accueil » de l'iPhone, il doit être compilé en utilisant Objectif C. Même avec Android/Java. -Pour accéder à la caméra, vous devez la compiler à l'aide de Objective C (ou Java pour Android).

Alors, voici quelques bonnes nouvelles pour vous:

-Vous pouvez facilement écrire votre application native pour être un front-end purement interface utilisateur et appelez votre code côté serveur existant à l'aide d'un modèle API REST pour la logique métier. Vous avez juste à exposer les fonctionnalités dont vous avez besoin d'exposer à l'application. C'est donc une façon de réutiliser la base de code existante et de simplifier l'application. Il existe de bons frameworks Objective C comme RESTKit qui rendent cela assez facile. -Vous pourriez rendre votre application vraiment ringarde et en faire essentiellement un navigateur Web pour votre site, mais cela pourrait ne pas être approuvé par Apple si vous ne le personnalisez pas quelque peu pour l'iPhone. Et ce sera une mauvaise expérience pour les utilisateurs d'iPhone qui s'attendent à ce qu'une application fonctionne comme une application. Je ne le recommanderais pas.-Si vous envisagez de publier sur plusieurs plates-formes ou si vous ne voulez pas avoir à gérer un projet Objective C (et un projet Java dans le futur), vous pouvez utiliser PhoneGap, Appcelerator Titanium ou Sencha Touch . Ce sont des wrappers qui prendront une application écrite dans les technologies web (HTML 5) et les compileront en applications natives. Ces applications HTML 5 peuvent accéder à la caméra, etc. Vos développeurs existants n'ont pas besoin d'apprendre Objective-C et peuvent utiliser leurs compétences HTML/JavaScript qu'ils ont déjà. Il y a beaucoup d'avantages à ces technologies. L'inconvénient est que votre application ne sera pas aussi bonne qu'une application native ou n'utilisera aucune des fonctionnalités "cool" du téléphone. Il va effectuer un peu comme un bon site web mobile. Si vous avez une bonne interface utilisateur/concepteur, vous pouvez créer quelque chose de très bien en utilisant ces technologies Web. Mais si vous cherchez simplement à imiter un site web dans une application native (et non créer le prochain jeu de tueur), alors c'est probablement votre meilleur pari pour un certain nombre de raisons.

Si vous google native app par rapport à phonegap (ou sencha touch), il ya une tonne d'informations sur les avantages et les inconvénients. C'est probablement un bon endroit pour commencer à apprendre.

+0

Ok, super. C'est un peu ce que mes recherches m'ont amené à croire, mais parfois les gens utilisent le mot "application" à la légère, et je ne suis pas toujours clair s'ils parlent d'une application native qui peut être distribuée ou simplement un site mobile, essentiellement . –

0

Cela dépend. Vous pouvez essentiellement utiliser UIWebViews et une feuille de style personnalisée pour faire de l'application un simple portail vers le site Web, ce que l'application facebook fait, je crois. Il ne fonctionnera pas aussi bien qu'une application vraiment native, mais il peut bien servir vos objectifs avec moins de maintenance.

1

Voir l'article 2.12 de l'App Store Review Guideliness

https://developer.apple.com/appstore/resources/approval/guidelines.html#functionality

... Apps qui sont tout simplement des sites Web empaquetés comme des applications ... peuvent être rejetées

+0

Alors, quelle application facebook différenciée pour se qualifier? –

+0

Facebook a personnalisé son application au téléphone, même si elle fonctionne dans un emballage Web. Si leur application native n'était qu'un navigateur Web pointant vers leur site Web normal, elle serait rejetée. Cependant, leur application native, et SDK, sont encore assez boiteuses pour une entreprise avec leurs ressources. – Joel

2

En plus de la bonne réponse de @Joel, vous devez d'abord comprendre quel type de fonctionnalités que vous devriez offrir à l'utilisateur, si la fonctionnalité principale ne sera en mesure d'afficher le site Web en utilisant UIWebView juste pour pouvoir distribuer le application sur le magasin, comme @Teofilo a déclaré it is not allowed. Il existe actuellement différentes solutions pour le développement d'applications multiplates-formes (PhoneGap), qui vous permettent de développer des applications pour différentes plates-formes en utilisant des technologies telles que html5, ajax etc via UIWebViews.
Cela dépend du type de fonctionnalité que vous souhaitez offrir à l'utilisateur, la performance sera certainement meilleure en cas de développement natif, car vous avez plus de contrôle sur l'application et sur l'appareil, mais peut encore être pratique à utiliser une solution multiplateforme si les fonctionnalités partagées sont faciles à mettre en œuvre, afin d'obtenir le même résultat sur différentes plateformes. Aussi peu importe le type de technologie que vous utilisez sur le backend, l'important est d'utiliser des formats/protocoles standard pour la communication (par exemple http/json). C'est juste mon point de vue, j'espère que quelqu'un pourra donner son point de vue sur ce sujet, car j'ai remarqué que c'est très récurrent aujourd'hui.
Cependant bonne question.

Questions connexes