Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cualquier ventaja de la programación nativa para el desarrollo móvil?

Necesito desarrollar aplicaciones para una empresa en algunos sistemas operativos móviles más importantes, específicamente, iOS, Android y WP7.

Inicialmente estaba planeando codificar tres aplicaciones separadas para los tres sistemas operativos diferentes, cada uno usando el SDK nativo.

Sin embargo, ¿hay alguna ventaja en hacerlo? Hay una serie de herramientas multiplataforma disponibles – Sencha, Phonegap, Rhodes, etc ¿Cómo 'nativo' las aplicaciones creadas por ellos se sienten a través de dispositivos? ¿Qué tipo de integración de hardware tienen (cámara, GPS, almacenamiento local, etc.)?

No tengo ninguna restricción de tiempo y no tengo problemas para desarrollar tres aplicaciones nativas si hay alguna ventaja en hacerlo.

EDIT: En caso de que importe, las aplicaciones tendrán tanto, en línea y fuera de línea, las funcionalidades.

  • ¿Hay algún uso de favicon.ico para sitios web móviles?
  • HTML5 vs Native App: ¿Cuál elegir?
  • Cómo envolver un sitio web en una aplicación de teléfono?
  • ¿Cuál es el mejor SDK publicitario para móviles?
  • Windows Phone 7 equivalente de Android WebView
  • Desarrollo de aplicaciones móviles de plataforma cruzada
  • ¿Cual es mejor? ¿Aplicación nativa o aplicación híbrida?
  • ¿Podemos instalar Android OS en cualquier Windows Phone y viceversa, y lo mismo con iPhone y viceversa?
  • 4 Solutions collect form web for “Cualquier ventaja de la programación nativa para el desarrollo móvil?”

    Descargo de responsabilidad: he mantenido un registro de las herramientas de plataforma cruzada que usted ha mencionado, pero nunca han construido nada con ellos. Si lees este artículo, probablemente puedas adivinar que actualmente soy principalmente un desarrollador de Android.

    La respuesta es, depende. Ciertamente, hay ventajas para las aplicaciones nativas, pero la cuestión es si le importa (o se preocupa lo suficiente) acerca de esas ventajas para incurrir en la sobrecarga de desarrollo para múltiples plataformas. Puesto que usted no ha dado mucho detalle sobre qué tipo de aplicaciones está planeando construir, le daré un resumen de lo que sé.

    Voy a asumir que usted está hablando de soluciones basadas en HTML multiplataforma (como PhoneGap , Sencha y Rhodes ) y no plataformas multi-plataformas orientadas a juegos como Corona SDK o Moai y tampoco el siempre interesante Mono a través de MonoTouch Y Mono para Android . También estoy excluyendo Titanium que no es compatible con Windows Phone.

    Algunas de las lagunas que veo entre las soluciones nativas y las multiplataformas HTML son las siguientes:

    • Familiaridad de la interfaz de usuario
    • Rendimiento (especialmente UI)
    • Compatibilidad
    • Depuración
    • API de la plataforma

    Familiaridad de la interfaz de usuario

    Los usuarios de cada plataforma acumulan ciertas expectativas sobre cómo funcionan las cosas. Las aplicaciones en iOS a menudo tienen ciertos paradigmas de interfaz de usuario (que abarcan la parte superior con el botón Atrás de la izquierda, las tablas redondeadas / listas de UI, etc.), las aplicaciones en Android pueden tener otra (ActionBar, por ejemplo, similar pero no bastante Lo mismo que la barra iOS, o los elementos de presionado largo para menús de contexto), los usuarios de Windows Phone otro (azulejos y vistas panorámicas). Si genera la misma interfaz de usuario HTML, probablemente no podrá aprovecharla. Esos patrones de interfaz de usuario familiar hacen que la aplicación sea más intuitiva y cómoda para el usuario que normalmente no pasa el tiempo aprendiendo múltiples plataformas.

    Actuación

    Otra ventaja de los nativos es el rendimiento, especialmente el rendimiento relacionado con la interfaz de usuario, que sea el poder de procesamiento gráfico en bruto o simplemente cálculos. Si usted tiene interfaces de usuario sencillas esto puede no importar, pero si tiene complejas interfaces de usuario animadas, algunas cosas pueden terminar no tan suave. Esto es particularmente cierto en Android, donde tiene una amplia gama de dispositivos, incluyendo algunos de baja potencia.

    Compatibilidad

    Otra desventaja de usar una herramienta de multiplataforma HTML es que los teléfonos diferentes tratan con HTML / CSS / JavaScript de manera diferente. Es gracioso porque es un poco de una espada de doble filo. Por un lado, es genial que el HTML sea intrínsecamente multiplataforma, por el otro, todavía tienes problemas pendientes del dispositivo. Esto es especialmente cierto una vez más en Android, donde tiene tantos dispositivos diferentes y donde los fabricantes les encanta jugar con la implementación de WebView por alguna razón. Usted termina para arriba con pequeños insectos donde ciertos dispositivos hacen cosas raras. Si usted va nativo lleno, usted tiende para tener mejor compatibilidad (en el precio de poner en más trabajo por supuesto). El soporte para versiones anteriores de Android también tiende a carecer.

    Depuración

    Depurar JavaScript no es la experiencia más maravillosa en una plataforma móvil. Usted termina haciendo un montón de registro en la consola. Es viable, pero ciertamente no es tan agradable como entrar en su código línea por línea. Parece haber algún progreso en este frente (vea esta herramienta llamada weinre por ejemplo), pero no puedo comentar sobre lo bueno que es todavía como no he llegado a cavar en él.

    No sólo es ese tipo de depuración más difícil, pero notar errores es más difícil también. Los errores en su código JavaScript no terminarán en sus registros a menos que los capture manualmente y los registre. Usted puede terminar con las cosas en silencio no.

    API de la plataforma

    En general, los grandes jugadores que usted ha mencionado tienen soporte de hardware bastante decente. Las características que mencionó como cámara, GPS y almacenamiento local son bastante altas en la lista de características importantes para los desarrolladores de aplicaciones, por lo que las incluyen. Para una lista completa de características que probablemente querrá ir a la página web de cada uno (aquí es de alto nivel de PhoneGap gráfico de soporte de características por plataforma, por ejemplo), pero por lo general la gran función de teléfono cosas que usted piensa que hay. Aún así, hay un montón de cosas más complicadas que por lo que sé estos marcos no hacen o no hacen tan bien, en particular las cosas que tienen menos que ver con las características del teléfono y más relacionados con la plataforma. El subproceso es un ejemplo.

    El desarrollo de plataformas cruzadas requiere insertar una capa de intermediación entre el código y las API nativas. Hay varios costos potenciales para estos tipos de capas de intermediación, incluyendo:

    • Rendimiento (sobrecarga del intérprete, retraso JIT o pérdida de optimizaciones entre compiladores),

    • La huella de la memoria y el tiempo de carga de la aplicación,

    • Si la API de intermediación se mantiene al día con las últimas y mejores APIs de dispositivos y características de hardware lo suficientemente pronto (si las necesita)

    • Si hay APIs específicas del dispositivo (no multiplataforma) que la API de intermediación hace o no expone y si puede agregarlas,

    • Si la capa de intermediación proporciona o le permite anular sus capacidades de presentación UX / UI para hacer que la aplicación parezca comportarse y verse "apropiada" dentro de cada comunidad de dispositivos o almacenes de aplicaciones orientados,

    • Escribir una vez, depurar en todas partes (además de pruebas de regresión multiplataforma de una corrección para cualquier plataforma), etc.

    Tenga en cuenta que las ineficiencias de rendimiento podrían manifestarse en un drenaje más rápido de la batería, además de o en lugar de un retraso visible de la interfaz de usuario.

    Es posible que tenga que comparar y / o simular y probar las porciones centrales de su aplicación en particular para determinar si estos tipos de beneficios valen la adición de los costos de desarrollo requeridos.

    Yo personalmente uso PhoneGap. Mantengo mi biblioteca ui en un mínimo, tal vez utilizar sólo Jquery Mobile. Y siempre y cuando el código javascript está bien escrito, tal vez utilizar un marco de mvc, realmente no noto ninguna pérdida de rendimiento.

    A veces utilizo un servidor php remoto para la base de datos, y las llamadas ajax funcionan sin problemas, otras veces yo uso la bruja de almacenamiento html5 funciona bien también.

    Así que a menos que quieras aprender java o objetivo-c … 🙂

    Esta es una de esas preguntas para las que no hay respuesta y hay un montón de respuestas decentes – en general la respuesta es que a menos que haya algún código de controlador de dispositivo especializado que es propietario el caso general de usar la API como se diseñó evitará Equivocaciones

    Java proporciona una capa de abstracción rica aunque hay una protección de propiedad expuesta intencionalmente para la concesión de licencias – mi sugerencia es mirar eso como si fueras a proteger algo y que responderá a tu pregunta mejor que cualquier post

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.