45 votes

lacune téléphonique vs monotouch pour une application gourmande en données

Nous sommes à la recherche pour développer un usage intensif de données de l'application pour les appareils mobiles. Notre problème central est

  1. Nous aurons à y stocker beaucoup de données sur le client
  2. Le client veut que l'application fonctionne hors ligne
  3. Nos compétences sont très en développement web C# ASP.Net. Certainement pas Objective C

Nous avons pensé à trois possibilités pour dev

  1. Application Web en utilisant le stockage local HTML5 en tirant parti de l'application hors ligne de cache. Nous sommes sur une limite de 5MO pour le stockage local, mais ce pourrait être en baisse à 2,5 MO pour certains navigateurs

  2. Application Web via PhoneGap pour créer une application native. Gros avantage ici est que nous pouvons utiliser le système de fichiers pour le stockage. L'inconvénient c'est qu'il va passer par l'App Store (iOS, en particulier) - 30% chuck de revenus pour une application d'abonnement d'Apple

  3. Nous de construire l'application à l'aide de MonoTouch pour Android et iOS. Bonne - C# et .Net nous pouvons le faire. Mauvais - pas de Blackberry

Question

J'ai du mal à voir de véritables avantages de l'utilisation de MonoTouch sur PhoneGap dans cette instance. Quels sont-ils? Sont-ils tout?

Comme un exemple dans cet exemple, il serait vraiment utile d'enregistrer des données sur le système de fichiers, mais je crois que phone gap pouvez le faire via le Fichier objet. Évidemment, monoTouch serait l'effet de levier du Système.IO.

Est-il des cas où il est certain de fonctionnalités supplémentaires dans MonoTouch - en particulier les fonctions qui sont utiles pour mobile dev par exemple, la Géolocalisation ou l'appareil photo fonctions de type?. Ou n'téléphone écart à peu près toutes ces couverts.

Effronté Des Questions Supplémentaires

Est-il d'autres options que j'ai manqués ou les autres principaux avantages/inconvénients pour les trois approches, j'ai indiqué que j'ai oublié?

Merci pour tout le monde de l'expertise

40voto

Darbio Points 4515

Nous venons de finir un très intensif de données application écrite dans MonoTouch. L'application accède à des données SAP, à travers une couche intermédiaire, et l'expose sur l'application. Il permet également la mise à jour directe de l'application de SAP, de nouveau par le même niveau intermédiaire.

Nous sommes dans le processus de portage de ce Windows Phone et Android à l'aide de MonoDroid.

Il m'a fallu un certain temps pour convaincre le patron qui MonoTouch était la voie vers l'avant, et nous avons essayé quelques-uns des différents produits à l'avance, y compris mobile jQuery, ExtJS et Obj C.

Le temps, j'ai essayé de le convaincre en lui était l'époque de la Attachmate acquisition et il regarda, à la fois, comme MonoTouch était vouée à l'échec. Heureusement pour nous (moi), Xamarin rose comme la proverbiale Phénix de flammes, et ils ont continué à se développer Mono* pour ce qu'il est aujourd'hui.

En tant que développeur C# (et Mono amateur) la principale victoire sur l'Obj C ou tout du HTML/JavaScript a été le fait que j'ai pu utiliser le C# pour obtenir le travail fait. La documentation a été très bon, et quand le doco n'ai pas très bien coupé (récemment été mis à jour) la communauté n'.

Le canal IRC est très active, avec Xamarin employés et de la communauté des évangélistes toujours prêt à aider ou de donner un aperçu d'un problème. Que sont les listes de diffusion.

Un autre avantage sont les Éco-systèmes qui sont en croissance de près de MT. MT.Boîte de dialogue de l'élaboration de la Table de base de l'INTERFACE utilisateur est un absolu brise par rapport à l'XCode équivalent. Couple avec cette le .Net BCL qui est, certes, un sous-ensemble basé sur Silverlight, mais il a tout de Sérialisation, e-Mail à la Cryptographie, etc... Si .Net ne couvre pas, ou il n'y a pas un Mono* projet, vous pouvez toujours utiliser ObjC plugins avec votre MT code.

Je suis en désaccord que MT a 'prouver lui-même" comme une plate-forme éprouvée. Nous sommes en l'utilisant, et tandis que nous sommes une petite entreprise, il ya beaucoup de grandes entreprises utilisent également. Quelques unes des applications présentées par Apple dans les pubs TÉLÉ ici, dans Aus sont, paraît-il, écrit en MT.

Afin de rester objectif, la 2 'contre' de MonoTouch pour moi ont été que vous devez toujours être en mesure de lire ObjC (si, tbh, je ne vois pas cela comme un con... Comme un "C#" développeur que je dois être capable de lire et d'écrire une pléthore de langues, de toute façon) et le fait que, historiquement, MonoDevelop a été un peu buggé. Les bugs majeurs semblent avoir été écrasé et, avec elle étant un projet open source, vous pouvez toujours corriger et aider le reste de nous!

Pour répondre à vos préoccupations:

  1. Nous aurons à y stocker beaucoup de données sur le client

Utiliser le Système.IO classes de .Net en C#. Si vous n'êtes pas sûr de ces, MSDN a des tas d'exemples (MT cache l'iOS mise en œuvre de fichier de stockage)

  1. Le client veut que l'application fonctionne hors ligne

ils peuvent tous le faire, mais une application Native est toujours pour se sentir mieux, à mon avis.

  1. Nos compétences sont très en développement web C# ASP.Net. Certainement pas Objective C

MonoTouch est C# - jouer à vos points forts et ont une application dans les semaines, pas des mois!

Mes 2 centimes! Je n'hésiterais pas à choisir la même route, encore, encore et encore.

14voto

ColinE Points 36907

J'ai utilisé PhoneGap pour un certain temps maintenant (sur WP7), mais pas utilisé MonoTouch, cependant, je suis quelqu'un d'expérimenté C# / Silverlight développeur.

Quelques avantages de MonoTouch:

  • Vous code les résultats dans un natif de l'INTERFACE utilisateur, fournissant la meilleure expérience sur toutes les plateformes
  • C# est un "entreprenants-force" langage de programmation. Il est bien adapté pour le développement de l'usage intensif de données des applications
  • Vos compétences à jour, vous sera bien utile ici
  • Il existe de nombreuses applications écrites avec MonoTouch disponible via l'app store.

Quelques inconvénients de MonoTouch:

  • Vous écrivez le code C# de nouveau l'iPhone Api, par conséquent, du port, du Android, vous aurez besoin d'avoir une couche d'INTERFACE utilisateur pour MonoDroid.

Avantages de PhoneGap:

  • Il commence à ressembler assez mature cadre, avec de nombreuses applications écrites à l'aide de PhoneGap à travers la gamme complète de prise en charge des systèmes d'exploitation.
  • Il y a un bon soutien de la communauté pour PhoneGap
  • Il utilise HTML5, que beaucoup considère comme la technologie de l'avenir. C'est plutôt une déclaration générale, cependant, la plupart des grands acteurs (Microsoft, Adobe, ...) sont la sauvegarde.

Les inconvénients de PhoneGap:

  • Il utilise JavaScript, probablement le plus mal compris de la langue d'usage très répandu!
  • L'INTERFACE est écrite en HTML. Malgré les meilleurs efforts des frameworks tels que jQuery Mobile, il ne vous sentirez jamais natif.
  • Parce qu'il a de la plate-forme 'cale' code pour fournir une API cohérente, vous trouverez la plate-forme de questions spécifiques. Cependant, j'ai trouvé que le PhoneGap équipe corrigé assez rapidement.

En résumé, un choix difficile!

Personnellement, je aller PhoneGap, mais ne pas essayer d'imiter l'apparence et la sensation de tout système d'exploitation spécifique, plutôt, de créer votre propre INTERFACE utilisateur qui fonctionne bien pour votre application et l'utiliser sur toutes les plateformes.

2voto

dave Points 29

Il y a une nouvelle version de MonoTouch parue hier (8 février 2012) - 5.2. Beaucoup de nouvelles fonctionnalités pour rendre le développement d'applications iOS plus facile et plus rapide. Les détails à ce sujet peuvent être consultés à partir d'ici: http://blog.xamarin.com/

Ce qui fait de MonoTouch une technologie particulièrement intéressante est la possibilité de développer de très jolies applications sophistiquées pouvant fonctionner sans nécessiter de connectivité Internet. Cela peut être un gros problème.

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