Elementos nativos. ¿Desarrollo nativo o multiplataforma? Desarrollo híbrido y nativo: comparemos


Actualmente, 9 de cada 10 clientes potenciales solicitan el desarrollo de una aplicación para 2 plataformas a la vez: iOS y Android. Esto es bastante lógico, porque las plataformas mencionadas juntas ocupan más del 95% del mercado y es económicamente viable desarrollar una aplicación móvil específicamente para estas plataformas.

Durante la comunicación con los clientes, el director técnico de la empresa. mauris Vladimir Bondarenko tiene que explicar a menudo la diferencia en el desarrollo de cada plataforma y por qué se trata de dos productos completamente diferentes. Mucha gente cree que los programadores desarrollan una aplicación, que luego se registra en los mercados. Tienda de aplicaciones Y Google Play. En algunos casos esto es cierto, pero no siempre. Vladimir habló sobre los principales enfoques del desarrollo. aplicaciones móviles.

Sólo hay cuatro de ellos:

Creador de aplicaciones - servicio listo, que le permite crear una aplicación móvil en 30 minutos.

Este enfoque tiene dos ventajas: velocidad y costo. Como resultado, recibirá una plantilla, una aplicación sin marca con funcionalidad limitada y sin la posibilidad de adaptarla a sus necesidades. Con este enfoque de desarrollo, más del 50% de todos sus deseos no se harán realidad.

Aplicación multiplataforma- una única solución de software para ambos plataformas móviles. El producto en sí es un sitio web incluido en un navegador que ejecuta pagina de inicio cuando haces clic en el icono.

Ventajas:

  • Velocidad de trabajo. La interfaz de las aplicaciones multiplataforma responde.
  • Tiempo de desarrollo. Gracias a una única solución para 2 plataformas, el tiempo de desarrollo se reduce significativamente.
  • Soporte técnico de la plataforma.

Defectos:

Defectos:

  • API limitada. Aunque React Native admite una gran cantidad de API, todavía es necesario utilizar otras API a través de módulos integrados.
  • Diferencias entre las plataformas Android e iOS.
  • Rendimiento relativamente bajo. Si estás planeando desarrollar aplicación compleja, React Native no te conviene.

Como resultado, el usuario recibe una aplicación flexible con una interfaz nativa y responsiva y una base de software unificada. Pero vale la pena considerar que la tecnología es bastante nueva y, en algunos casos, los desarrolladores de su aplicación tendrán que modificar ellos mismos las estándar. desarrollo móvil componentes de software.

Desarrollo nativo- desarrollo de dos aplicaciones independientes para las plataformas iOS y Android.

Ventajas:

  • Facilidad de desarrollo y depuración. En general, desarrollar aplicaciones nativas es mucho más conveniente que, por ejemplo, desarrollar aplicaciones multiplataforma. Esto se debe al hecho de que en el desarrollo nativo no hay capas adicionales entre el código de la aplicación y Archivo ejecutable y, en general, las herramientas del nativo están más desarrolladas.
  • Disponibilidad de documentación y soporte técnico regular.
  • Velocidad de trabajo. Las aplicaciones nativas proporcionan alta velocidad y rendimiento.
  • Usabilidad. Las aplicaciones nativas brindan la oportunidad de implementar la interfaz y el comportamiento general de un programa de la manera más natural para una plataforma determinada.

Defectos:

  • Cobertura de plataforma.
  • Alto costo de desarrollo.
  • Es difícil encontrar un contratista con experiencia. En general, encontrar un buen desarrollador de Java u Objective-C es bastante difícil debido a la especificidad de esta área y a la mayor barrera de entrada a la tecnología.

¿Cuál es el resultado? Recibirá la aplicación más flexible con un arsenal completo de capacidades para cada una de las plataformas, pero la implementación y el soporte de la aplicación para cada una de las plataformas requerirán un equipo de desarrolladores independiente.

Hay una serie de tecnologías menos populares para implementar aplicaciones, pero todas encajan en la gradación descrita anteriormente.

Ahora, antes de desarrollar una aplicación, puede elegir el enfoque óptimo de implementación según su presupuesto, tiempo y funcionalidad.

En este vídeo podrás saber cuánto tiempo lleva desarrollar una aplicación móvil. Más vídeos en nuestro canal:

El desarrollo nativo significa el uso de lenguajes y herramientas originales para desarrollar un sistema operativo móvil. Las aplicaciones iOS se crean en el entorno de desarrollo XCode en Objective-C, Swift, C y C++. Se utiliza para crear aplicaciones para Android. entorno Android Studio y el lenguaje Java. Cada entorno de desarrollo contiene un conjunto completo de utilidades para escribir código, diseñar interfaces, depurar, crear perfiles (monitoreo) y crear aplicaciones. Tanto el entorno como el conjunto correspondiente de utilidades se crean específicamente para cada sistema operativo móvil y son las herramientas más convenientes y poderosas para desarrollar aplicaciones móviles.

El desarrollo multiplataforma implica el uso de utilidades especiales (marcos) para crear una aplicación basada en la familia de lenguajes JavaScript. Toda la estructura y lógica de la aplicación se crea utilizando dichas herramientas (PhoneGap, Titanium, Xamarin, Cordova, etc.) en JavaScript y luego se envuelve en un elemento de inicio nativo, es decir. se integra en el proyecto base para XCode o Android Studio. Esto le permite crear ensamblajes de proyecto con la misma lógica para varios sistemas operativos inmediatamente.

La analogía más cercana es el caso de Computadoras personales. MS Word, Skype, agentes de correo y calendarios son aplicaciones desarrolladas de forma nativa para el sistema operativo de escritorio. Todo lo que sucede en el navegador (sitios web, editores de texto y gráficos en línea, medios de comunicación social, chats, foros) – tecnologías multiplataforma.

Ventajas del desarrollo multiplataforma

El enfoque de desarrollo multiplataforma tiene los siguientes aspectos positivos:

  1. Se requieren menos recursos para implementar una aplicación para varias plataformas a la vez. Ésta, de hecho, es la esencia del enfoque multiplataforma: el mismo código funciona tanto en iOS como en Android. Se necesita exactamente la mitad de programadores trabajando en el proyecto. El diseñador sólo crea un conjunto de gráficos. Todo ello reduce el número de horas de trabajo y el presupuesto del proyecto.
  2. Menos tiempo de desarrollo. Debido a la falta de elementos de interfaz únicos y más tecnologías simples, el tiempo para crear productos simples suele ser menor.
  3. Ciclo de actualización de productos simplificado. Si es necesario agregar algo al proyecto o corregir algún error, esto se hace de inmediato para todas las plataformas a las que se distribuye el proyecto.
  4. Posibilidad de utilizar una versión móvil del sitio. La mayoría de las soluciones multiplataforma utilizan la familia de lenguajes JavaScript. Así que si ya tienes version móvil sitio, una parte importante del código y los materiales se pueden utilizar en la aplicación sin cambios.
  5. Utilizando una única lógica de aplicación. Se garantiza que la lógica integrada en la aplicación funcionará igual en todas las plataformas. Muy a menudo esto puede ser una desventaja debido a la diferente arquitectura de los sistemas operativos. Un ejemplo sorprendente es el botón "Atrás" en la navegación entre pantallas. Android proporciona un botón Atrás de hardware para estos fines. Para iOS, deslice el dedo desde el lado izquierdo de la pantalla o tenga un botón en el lado izquierdo de la barra de navegación. Si no crea ningún botón, los usuarios de iOS no podrán regresar. Si se hace, pero en el lugar equivocado y con un aspecto no estándar, será inusual e inconveniente para los usuarios de iOS; y si se hace como en iOS, será inusual para los usuarios de Android. Sin embargo, la lógica escrita y depurada una vez contiene potencialmente menos errores y discrepancias en su funcionamiento. Así que no tienes que hacer doble y triple trabajo para encontrar problemas en cada plataforma.
Ventajas del desarrollo nativo

El desarrollo en tecnologías y lenguajes nativos para iOS y Android tiene los siguientes aspectos positivos:

1. Velocidad de aplicación.

Dado que la aplicación se crea utilizando herramientas de desarrollo originales (XCode, Android Studio), el código obtenido como resultado de la compilación del proyecto es óptimo para esta plataforma. La aplicación recibe soporte completo de hardware del dispositivo (el procesamiento de las mismas imágenes se realiza mediante un procesador separado especialmente diseñado para este propósito: GPU), se utiliza subprocesos múltiples para implementar tareas complejas y cargar contenido en segundo plano. Durante el proceso de desarrollo, los programadores pueden medir la velocidad de todas las secciones del código y, si es necesario, optimizarlas. También tienen herramientas para monitorear el uso. memoria de acceso aleatorio, búsqueda de posibles fugas, etc.

2. Flexibilidad en la implementación.

A diferencia de las limitaciones en la construcción de interfaces y la complejidad de los efectos visuales impuestas por los marcos para el ensamblaje de proyectos multiplataforma, en el desarrollo nativo se puede implementar todo lo que las tecnologías de un sistema operativo móvil en particular son capaces de hacer.

3. Uso de las últimas tecnologías y dependencia de frameworks multiplataforma.

Las nuevas funciones de software y hardware proporcionadas por los fabricantes de dispositivos y sistemas operativos estarán disponibles para su implementación inmediatamente después del lanzamiento de las actualizaciones correspondientes. Por ejemplo, iOS 9 incluye la posibilidad de buscar dentro de las aplicaciones. Cada uno de ellos debe implementar un método especial que devuelva resultados para un determinado consulta de busqueda. Como resultado, para aquellas aplicaciones en las que se implementa esta funcionalidad, la capacidad de buscar contenido a través de partición del sistema buscar en iOS. El mismo lugar donde se buscan aplicaciones, contactos, eventos y demás información. En el caso del desarrollo multiplataforma, para implementar dicha funcionalidad, tendrá que esperar no solo el lanzamiento de iOS 9, sino también la actualización del marco correspondiente, y es imposible predecir cuándo se admitirán ciertas características nuevas. aparecerá y si aparecerá en absoluto.

⋅ 4. Facilidad y calidad de las pruebas.

Además de las herramientas mencionadas en el párrafo 1 para monitorear el uso de los recursos de hardware del dispositivo por parte de la aplicación, los desarrolladores y evaluadores tienen a su disposición toda una gama de tecnologías. En primer lugar, todos los parámetros del sistema se controlan automáticamente durante el funcionamiento de la aplicación. Si la aplicación comienza a utilizar más memoria de la esperada o más recursos procesador central, esto no pasará desapercibido. En segundo lugar, la posibilidad de un uso generalizado de pruebas unitarias: pruebas automáticas de casi todos los métodos de la aplicación. Si alguna parte de la aplicación deja de funcionar correctamente debido a algunos cambios en el código, una nueva version Simplemente no funcionará y el programador verá inmediatamente el motivo. En tercer lugar, existen amplias oportunidades para la integración de sistemas. monitoreo remoto errores. Cada proyecto nativo tiene incorporada la funcionalidad adecuada, que le permite ver el error y su causa que ocurrió en el dispositivo de cualquier usuario.

5. Soporte total de las tiendas. Aplicaciones Tienda y Google Play.

Ambas empresas están interesadas en garantizar que los usuarios reciban la experiencia más positiva posible actualmente al utilizar aplicaciones en sus respectivas plataformas. Esto significa que la aplicación debe verse con la mayor calidad posible (si la pantalla es una alta resolución, y las imágenes están borrosas, en la App Aplicación de la tienda simplemente no se lo perderán), trabaje lo más rápido posible (si una aplicación muestra una pequeña lista de elementos en 20-30 segundos, tampoco se lo perderá) y, en general, todo debe ser hermoso y conveniente. Si alguno de estos parámetros es demasiado bajo o no se cumple en absoluto, no se permitirá la entrada de la aplicación a la tienda. Si no están a la altura, lo cual es extremadamente difícil de lograr con tecnologías multiplataforma y, a menudo, imposible en principio, su solicitud nunca será considerada por las empresas pertinentes para su colocación en secciones publicitarias especiales (Destacados). Entre las aplicaciones ubicadas en las secciones Destacadas tanto de App Store como de Google Play, no hay ninguna creada con tecnologías multiplataforma. A excepción de proyectos de juegos en los que la interfaz no es sistémica.

conclusiones

Desde un punto de vista técnico y desde el punto de vista de la calidad de la interfaz creada, el desarrollo nativo tiene muchas más ventajas. Sin embargo, hay áreas en las que las tecnologías multiplataforma están justificadas: el sector del juego y los proyectos de prueba.

Los juegos modernos se escriben abrumadoramente utilizando tecnologías multiplataforma. Esto acelera enormemente el desarrollo sin sacrificar la calidad, porque... en este caso se utilizan marcos gráficos especiales (el más popular es Unity 3D). Si un proyecto necesita realizarse rápidamente para realizar algunas pruebas y la situación requiere que el proyecto funcione en varias plataformas simultáneamente, la implementación multiplataforma puede ser la solución óptima.

Si el proyecto no es un proyecto de juego, está dirigido a un desarrollo a largo plazo y requiere una experiencia de usuario positiva, el desarrollo nativo sigue siendo una opción más adecuada.

Cantidad diaria usuarios móviles El mercado global de aplicaciones móviles está creciendo y desarrollándose. Un empresario competente no puede dejar de notar esta tendencia y hará todo lo posible para sumarse a ella. Aplicación movil - gran opción para una startup.

La primera pregunta que le surgirá es ¿qué tecnología de desarrollo debería utilizar para crear la aplicación?

Hay tres enfoques de desarrollo: nativo, multiplataforma e híbrido. Cada uno tiene sus propias características y conduce a resultados diferentes. Para no dejarse influenciar por la elección de una empresa de subcontratación y desarrollar lo que es más Adecuado para las características específicas de su negocio., comparemos todas las tecnologías.

Enfoque nativo

La aplicación está desarrollada en el lenguaje “nativo” de cada plataforma: Java para Android y Objective-C/C++ para IOS.

Inicialmente, este método se utilizó para desarrollar aplicaciones que estaban "integradas" en el dispositivo: un despertador, un navegador, una galería, un reproductor de música.

Enfoque multiplataforma

Si en el enfoque nativo la misma aplicación se desarrolla por separado para iOS y Android, en el enfoque multiplataforma todo se desarrolla a la vez.

La aplicación podrá funcionar en todas las plataformas.

Los lenguajes de programación son estándar, como si estuviera desarrollando un sitio web: HTML y CSS.

Enfoque híbrido

Las aplicaciones híbridas combinan las características del desarrollo nativo y multiplataforma.

Básicamente, se trata de una aplicación multiplataforma dentro de un shell "nativo".

La interfaz, al igual que en una aplicación multiplataforma, utiliza el navegador de un teléfono inteligente, pero los elementos que requieren capacidad de respuesta y alto rendimiento están desarrollados en idiomas nativos.

Ahora que hemos entendido brevemente las características de cada desarrollo, analicemos qué tipo elegir, teniendo en cuenta las necesidades de tu startup.

Desarrollo nativo

1 Rendimiento y velocidad

La aplicación está desarrollada para una plataforma específica, en la que funcionará de la forma más productiva posible. Este servicio utiliza eficazmente la batería y la memoria del teléfono inteligente. El código se ejecuta más rápido y las nuevas funciones se integran rápida y fácilmente.

Los gestos, el seguimiento multitáctil y la ubicación geográfica son más fáciles de implementar.

2 Experiencia de usuario

Si el cliente está acostumbrado a la interfaz de Android, se sentirá incómodo al utilizar el sistema operativo IOS. Diseñar una aplicación nativa brindará a los usuarios confianza y una comprensión intuitiva de la apariencia y funcionalidad.

3 Sin restricciones

La aplicación tiene Acceso completo a servicios y funciones del smartphone (bases de datos, geolocalización, cámara).

4 Facilidad de prueba

El rendimiento de la aplicación se puede controlar fácilmente. Si una aplicación consume más memoria de la esperada o más recursos de CPU, esto se ve inmediatamente durante la prueba.

5 Disponibilidad

Los usuarios podrán descargar la aplicación desde tiendas “nativas”: App Store, Google Play

6 Adaptabilidad

En el mercado un gran número de Dispositivos Android y adapte el diseño de diseño para todos ellos de manera más eficiente a través del desarrollo nativo.

Defectos

1 Velocidad de desarrollo

Si desea cubrir tanto iOS como Android con su aplicación, llevará más tiempo. El proceso implica el desarrollo de dos aplicaciones separadas.

2 Costos de desarrollo

El desarrollo separado para cada plataforma requiere más personal, lo que lleva a más gastos.

3 Servicio y soporte

Cuando se trabaja con una aplicación, es necesario buscar y corregir errores constantemente, implementar actualizaciones; para dos plataformas, esto requiere el doble de tiempo y recursos.

1 Velocidad de desarrollo y reducción de costes.

A diferencia del desarrollo nativo, una aplicación se desarrolla una sola vez para todas las plataformas. Esto reduce costos y reduce el tiempo de creación. Con este método, es más económico realizar una solicitud.

2 Servicio y soporte

El ciclo de desarrollo de una aplicación multiplataforma es más sencillo. Si es necesario corregir o actualizar algo, esto se hace para todas las plataformas a la vez.

Defectos

1 Velocidad de desarrollo y reducción de costes.

A pesar de que según la ideología del desarrollo este punto se considera una ventaja, la práctica demuestra que la implementación para dos sistemas operativos genera muchos errores. Esto aumenta el tiempo que lleva corregir los errores. La interfaz de usuario se muestra de forma diferente y el tiempo de adaptación también aumenta.

2 Bajo rendimiento

Los problemas más notables ocurren con las animaciones, los clics y el desplazamiento: la aplicación puede congelarse. Interfaz de usuario Está desarrollado en HTML, pero tendrás que pasar meses para lograr el rendimiento de la plataforma nativa.

3 Experiencia de usuario

Es necesario desarrollar una interfaz que sea intuitiva para ambos. usuarios de iOS y para Android.

De lo contrario, una aplicación creada según la Guía de interfaz humana de IOS será inconveniente Usuarios de Android. Y terminarás dedicando más tiempo a mejorar la experiencia del usuario.

4 Apelar a los “nativos”

Las soluciones estándar nativas aún no se resuelven en el desarrollo multiplataforma. Por lo tanto, a menudo se contrata a desarrolladores nativos para resolver la funcionalidad.

Cuando gana la multiplataforma:

  • Área de juegos móviles
  • Cuando necesitas llegar al mercado rápidamente para realizar algunas pruebas sobre tu idea de negocio, o cuando tienes un sitio web que quieres convertir en una aplicación a un costo mínimo.

Si el objetivo del proyecto es el desarrollo a largo plazo, es necesario funcionamiento sin problemas y respuesta rápida: ¡use desarrollo nativo!

Conclusión: casi todas las ventajas del desarrollo multiplataforma en la práctica son mitos y conducen a mayores costos, no a reducirlos.

Hace unos 2 años quería comprar un micrófono. Como de costumbre, antes de comprar, miré varias reseñas de los modelos más populares, conocí las características que distinguen a los micrófonos y visité el sitio web de la tienda donde iba a comprar el dispositivo. Mi elección recayó en el modelo M1 (para excluir acusaciones de publicidad y colocación de productos, cambiaremos el nombre del micrófono). Este modelo venía en dos configuraciones: un micrófono normal y una opción con conexión USB, que era más cara. Aparte de eso, las dos variaciones no fueron diferentes. Bien, tomemos el dinero y vayamos a la tienda. Ambos modelos estuvieron expuestos en la tienda. Cogí a la consultora y le pedí que me mostrara el micrófono que me gustaba. “¿Te gustaría llevarte este modelo?”, preguntó la chica, señalando una versión más cara con USB. “¿Está ella mejor? ¿Específicamente en términos de sonido? La niña pensó por un momento: “¡Sí, claro que es mejor!” Mi consejo: ¡no te fíes de los vendedores!

¿Pero a quién creer? Cuando queremos comprar un producto o servicio, nos comunicamos con vendedores que, lamentablemente, no son expertos en esta materia. En mi opinión, sólo hay una salida a esta situación. Toma todo en tus propias manos y, al menos superficialmente, comprende el tema que te interesa o busca un profesional en este campo y conoce su opinión. Hagamos precisamente eso. La pregunta que entenderemos es: "¿Qué es mejor: aplicaciones nativas o híbridas para plataformas móviles?"

Híbridos vs heterosexuales

Para empezar por algún lado, recurramos a un método probado y verdadero: buscar en Google el problema que nos interesa. Google devuelve decenas de artículos escritos como si fueran copias al carbón. Varios tipos de blogueros, programadores, gerentes, anunciantes, madres de anunciantes, abuelas de gerentes y otras personas "excelentes" en este tema están tratando de transmitirnos las siguientes cosas de una manera interesante, individual y divertida:

  1. Hay aplicaciones web puras que casi parecen nativas. Por ejemplo, app.ft.com. Deben separarse de los híbridos.
  2. Las aplicaciones web puras no funcionan sin una red.
  3. Una observación interesante: el contenido de las aplicaciones web puras es más fácil de buscar. Simplemente ingrese la consulta que le interesa en un motor de búsqueda y, si Google lo ama, el usuario verá su sitio en la primera página de resultados de búsqueda.
  4. Otra observación interesante: las aplicaciones híbridas y nativas deben cumplir ciertas reglas para poder publicarse en AppStore o GooglePlay. Por otro lado, puedes crear fácilmente tu propia aplicación web acogedora con un diseño llamativo y llamativo, y nadie te dirá una palabra.
  5. Los costos de mano de obra al escribir aplicaciones híbridas son menores en comparación con las nativas, ya que todo el código se escribe en todas las plataformas a la vez.
  6. Y se necesitan menos desarrolladores. Busquemos un par de personas fuertes que sepan HTML y JavaScript. Nos escribirán todo. De lo contrario, busque todo tipo de desarrolladores de Java, C#, C++, Objective-C y luego pague dinero a toda esta multitud.

  7. Soportar aplicaciones híbridas es más económico porque, nuevamente, parece que el código es el mismo para todas las plataformas. Lo cambiamos en un solo lugar y listo.
  8. Las aplicaciones nativas son mucho más rápidas que las aplicaciones web e híbridas.
  9. Una aplicación nativa puede funcionar con todos los componentes del dispositivo, mientras que las aplicaciones híbridas y web tienen acceso limitado. Por ejemplo, el acceso a la cámara en aplicaciones nativas es un hecho. Pero para que el híbrido pueda tomar una foto con tu cámara, debes esquivarlo.>
  10. Al desarrollar aplicaciones nativas, obtenemos una interfaz de usuario original para cada plataforma. Híbrido y web no pueden hacer esto.

Arrancamos las mantas

Parece que ahora conocemos la diferencia entre aplicaciones híbridas y nativas. En este punto, puede terminar tranquilamente el artículo y ponerse manos a la obra: escribir el código. ¡Pero no! Recordamos: "¡No confíes en los vendedores!" Y la mayoría de las personas que escribieron todos estos puntos son vendedores, de una forma u otra. Entonces, averigüémoslo más a fondo.

Aplicaciones web

La idea misma de un sitio web que parezca una aplicación es, por supuesto, interesante. Este enfoque tiene desventajas y ciertas ventajas. Pero hay una gran pregunta: "¿Por qué?" Imagine que es un usuario que no tiene conocimientos especiales de tecnologías de TI. Abres algún sitio web y... ¡Oh, Dios! ¡Mi solicitud se ha abierto! ¡Demonios! ¡Probablemente sea algún tipo de virus! Pero espera, ¿por qué está visible la línea del navegador? ¿Es este un sitio o algo así? ¿O sigue siendo una aplicación? Hmm, no está en la lista de instalados. Funciona terriblemente lento. Prefiero instalar una aplicación normal en lugar de esta, no entiendo qué.

En general, el significado de todo este mimetismo no está del todo claro. ¿Por qué engañar al usuario? Después de todo, alguien podría creer que se trata de una aplicación y esperar un comportamiento coherente con aplicación regular. Me gustaría hacer la siguiente comparación: busquemos una piedra redonda y sana y pintémosla para que parezca un balón de fútbol. Y luego le preguntaremos al primer aspirante a jugador de fútbol con una pierna rota sobre sus impresiones sobre nuestro diseño original.

Híbridos

Como no tengo mucha experiencia trabajando con PhoneGap y otros frameworks de este tipo, decidí discutir este tema con nuestro desarrollador JS/HTML, quien escribió el programa usando el framework PhoneGap. Resulta que la mayoría de los problemas descritos ya se han resuelto. En esta página, el Señor Negro disfrazado nos promete que ahora la respuesta a los clics será rápida e indolora. Hay un carro y un pequeño carrito de varios complementos que le permiten acceder varios sistemas dispositivo de destino. Y si falta algo, puedes escribir tu propio complemento. Y parece que aquí está: ¡una excelente solución para el desarrollo de aplicaciones móviles multiplataforma! Pero pensemos más profundamente en este problema.

¿Cuáles son estas píldoras mágicas, complementos que resuelven todos los problemas? ¿Quizás esto sea algún tipo de magia? Lamentablemente, no existe la magia en nuestro mundo. Al menos en TI. Los complementos son contenedores de JavaScript sobre código nativo de Android o iOS. Básicamente, PhoneGap es una GUI que en realidad es una aplicación web que se ejecuta en un WebView. La parte lógica del programa, ejecutada mediante complementos, que en realidad son llamadas a código nativo a través de JavaScript, interactúa con el dispositivo. Ahora que conocemos los componentes de una aplicación Fongap, podemos especular sobre cómo funcionará.

  1. ¿Qué sabes sobre el dolor? Vista web para Versiones de Android 4.3 es terriblemente lento cuando necesitas mostrar algo un poco más complejo que información de texto. En la versión 4.4, el motor de WebView se convirtió en Chromium, por lo que quizás esto mejore un poco la situación. En general, para todos los fongapers y los de su calaña, esto significa dolor y sufrimiento al intentar ejecutar una aplicación en Android. En iOS la situación es mucho mejor, ya que el motor de Safari funciona mejor.
  2. - Disculpe, ¿eres mujer? "Seré lo que quieras, bebé". Dependiendo del dispositivo, se pueden utilizar aplicaciones para la interfaz. diferentes estilos. Esto, por supuesto, no está mal, pero no cambia la lógica del diseño. Hay un botón "Atrás" en iOS, lo que significa que también estará en Android. Y no importa que nadie la necesite allí. Otro ejemplo es la barra de acciones. En iOS tradicionalmente se encuentra en la parte inferior de la pantalla, en Android está en la parte superior de la pantalla. En la aplicación PhoneGap, su Actiobar no cambiará de posición según el dispositivo, simplemente se verá diferente. Y una cosa más: cada OC tiene determinadas características. Por ejemplo, animación. Mira iOS y Android. Animación de transiciones entre pantallas. ¡Ella es diferente! Las aplicaciones híbridas no podrán replicar estas funciones.
  3. La devastación no está en los armarios, sino en las cabezas. Otro factor importante que por alguna razón nadie tiene en cuenta. Los desarrolladores de PhoneGap suelen ser desarrolladores de aplicaciones para el usuario. No tienen idea de cómo debería verse la interfaz para Android o iOS, ya que no han leído las guías de estilo. No saben nada sobre las características de la plataforma porque no han leído la documentación. Pero son buenos creando sitios web. En consecuencia, recibirá una aplicación similar al sitio web. ¿Lo necesitas? ¿Realmente lo necesitas? ¿Mira esta imagen? ¿Sigues confiando en tu elección?
  1. ¿Gnomos? ¿Eres tú? Junto a los complementos. Estos son sólo fragmentos de código que resuelven algunos problemas. También puedes usarlos en una aplicación nativa. El problema es que a menudo su aplicación debe resolver problemas que son un poco diferentes de aquellos que resuelven estos fragmentos de código. Es decir, será necesario cambiarlos, pero ¿quién lo hará? Su desarrollador sólo conoce JavaScript y HTML. Otro punto sutil es la combinación de complementos de diferentes desarrolladores. Si los complementos funcionan en áreas relacionadas, es posible que utilicen los mismos componentes. Esto puede provocar efectos secundarios interesantes. Y la última piedra en el jardín de los complementos: algunos de ellos no son particularmente populares y, como resultado, no están bien probados. Esté preparado para el hecho de que usted mismo tendrá que actuar como evaluador.

En general, ¿qué quiero decir? En este caso, la multiplataforma es imaginaria y las aplicaciones se verán extrañas. Creo que las aplicaciones híbridas deberían usarse como prototipos donde puedas medir la reacción del usuario ante tu idea y obtener comentarios. Para la versión de producción es mejor utilizar aplicaciones nativas. Estas consideraciones son relevantes para todos los híbridos que trabajan en una combinación de HTML/JS.

Nativo

No escribiré nada especial sobre los nativos. Todo está claro aquí. Funcionan rápidamente, tienen buen aspecto y tienen una amplia gama de opciones de personalización. Y cuestan en consecuencia. Aunque los primeros tres puntos son relevantes sólo si no ha contratado a un equipo de profesionales sólidos con siete años de experiencia en Nueva Delhi.

Verdaderamente multiplataforma

En mi opinión, el único marco que realmente puede permitirle escribir una aplicación móvil multiplataforma en este momento es C++ Qt. Este marco genera nativo código de android Con usando Android NDK. Por lo tanto, el rendimiento debe estar al nivel del código escrito por el programador cuando ayuda de Android SDK, y para fragmentos que utilizan cálculos pesados, incluso mayor, gracias al NDK. Qt es una biblioteca probada y de alta calidad. Esto significa que no detectará ningún error estúpido en el proceso. En caso de cualquier problema, puedes echar un vistazo a las fuentes de Qt. De hecho, esta es una característica muy necesaria para los desarrolladores. En algunos casos, esta es la única forma de solucionar el error. Para obtener el programa para la plataforma de destino (Android o iOS), sólo necesita recompilar las fuentes. Aunque, hasta donde yo sé, a veces todavía hay que escribir código nativo para la plataforma, ya que no todas las funciones están disponibles a través de las bibliotecas Qt. Ojalá esto sea corregido pronto.

Pero también hay desventajas. Para el desarrollo de la producción, deberá adquirir una licencia Qt, lo que, en consecuencia, cuesta dinero. Este es un problema grave para los nuevos desarrolladores. Además, por el momento, Qt para el desarrollo móvil todavía está húmedo. Estamos esperando los próximos lanzamientos.

Conclusión

Por el momento, no existe ninguna herramienta que pueda considerarse en conciencia un verdadero entorno multiplataforma para el desarrollo de aplicaciones móviles. Quizás en el futuro este lugar lo ocupe Qt, pero de momento está vacante. Para probar su idea desarrollando un prototipo, puede usar fácilmente varios marcos JS/HTML, pero no recomendaría usarlos para desarrollar aplicaciones de producción complejas. En este ámbito de desarrollo, actualmente no existe ninguna alternativa a las aplicaciones nativas.

*En este artículo, analizamos aplicaciones híbridas basadas en navegador web.

Nativo o híbrido: esa es la cuestión. Hacer Buena elección, es necesario comprender claramente qué es cada tipo de aplicación y para qué sirve.

¡Interesante! Según las estadísticas de Flurry Analytics, pasamos el 90% de todo el tiempo en el teléfono en aplicaciones.

Si bien cada tipo tiene sus fervientes partidarios, las aplicaciones nativas e híbridas se respiran mutuamente, lo que dificulta elegir un ganador claro.

Con muchos años de experiencia en el desarrollo de aplicaciones nativas e híbridas, he estudiado en profundidad las características de ambos tipos. En este artículo intentamos recopilar Principales ventajas y desventajas de los nativos y los híbridos., para que le resulte más fácil tomar la decisión correcta.

APLICACIONES HÍBRIDAS Y NATIVAS

Entonces, ¿en qué se diferencian estos dos tipos de aplicaciones entre sí?

aplicación nativa es nativo de cada plataforma, ya sea iOS o Android, y está escrito específicamente para ella en un lenguaje específico.

Se utilizará Swift u Objective-C para escribir una aplicación iOS nativa. Para nativos aplicaciones de Android Java o Kotlin bastarán.

Sin embargo, según las estadísticas de VisionMobile, el 47% de todas las aplicaciones nativas de iOS y el 42% de todas las aplicaciones nativas de Android también utilizan HTML5.

Y aquí hay un ejemplo de una aplicación nativa:

Aplicación mundialmente famosa para comercio electrónico Bounce fue escrito por nuestros desarrolladores en Swift para iOS y Java para Android.

La aplicación está disponible en tienda Apple Y Google Play.

A diferencia de los nativos aplicaciones híbridas están desarrollados para ambas plataformas simultáneamente y escritos en un lenguaje universal.

Puede familiarizarse con los híbridos utilizando el ejemplo de nuestra otra aplicación, muy extendida en el mercado occidental: LASIK, para buscar cirujanos en línea y concertar una cita.

La aplicación está disponible en tienda Apple Y Google Play.

Echemos un vistazo más de cerca a cada uno de los tipos y descubramos sus secretos más profundos. Comencemos con aplicaciones híbridas de dos caras.

VENTAJAS DE LAS APLICACIONES HÍBRIDAS

  • Ahorro . Si no está dispuesto a vaciar su billetera en busca de la aplicación perfecta, pero desea una aplicación sencilla a un precio asequible, entonces la híbrida es su opción. ¡Solo piense cuánto ahorrará creando una aplicación para dos plataformas a la vez!

  • Entrar al mercado en 2 plataformas a la vez . Dado que una aplicación híbrida está escrita para dos plataformas a la vez, llega a dos mercados simultáneamente. Debido a esto, el número de usuarios potenciales también se duplica, junto con las posibilidades de que tu aplicación sea descargada. Sin embargo, sobre esto fortalezas Las aplicaciones híbridas se están agotando y vale la pena prestar atención a sus debilidades.

DESVENTAJAS DE LAS APLICACIONES HÍBRIDAS

  • Impracticabilidad . Incluso una aplicación híbrida bien diseñada puede quedar obsoleta rápidamente. El progreso no se detiene y los propietarios de aplicaciones intentan mantenerse al día. Tan pronto como aparecen nuevas tecnologías, cada uno de los propietarios intenta agregar una función extravagante a su aplicación lo antes posible. Desafortunadamente para los híbridos, Se necesitarán de 3 a 6 meses para cambiar el marco. y agregarle nuevas funciones. Sólo entonces los desarrolladores también podrán mejorar su aplicación. En las aplicaciones nativas, las innovaciones se pueden agregar inmediatamente después de su anuncio.

Es poco probable que nuestra aplicación tenga demanda entre los usuarios si resulta ser de mala calidad e inestable:

Según las estadísticas, casi la mitad de los usuarios eliminan inmediatamente de sus teléfonos inteligentes las aplicaciones aburridas y mal diseñadas e instalan en su lugar otras aplicaciones mejores y competitivas.

  • Baja velocidad . A menudo, las aplicaciones híbridas son páginas web que no son especialmente eficientes, por ejemplo, a la hora de desplazarse por contenido pesado: imágenes, animaciones, etc.

Desplazamiento – vertical o desplazamiento horizontal páginas.

Además, el desarrollo híbrido basado en diseño web sufre varias compilaciones, lo que también reduce la velocidad de la aplicación y no agrada en absoluto a los usuarios.

La compilación es el proceso de traducir un lenguaje de programación de alto nivel (PHP, Java, JavaScript) al lenguaje de máquina.

  • Desafíos de diseño . Si desea que el aspecto de su aplicación coincida con el diseño del sistema profesional y bien investigado de cada plataforma, ya sea iOS o Android, tendrá que diseñar para ambos sistemas operativos por separado. Las aplicaciones de iOS y Android tienen sus propios estándares de diseño únicos y, dado que una aplicación híbrida no cumple con estos estándares, su apariencia deberá ajustarse para adaptarse al marco apropiado. Resulta que al final del trabajo recibirás solo una solicitud, pero gastaste tiempo y dinero en dos.

  • Inseguridad del código fuente . Una de las graves desventajas de las aplicaciones híbridas es su inseguridad. Si bien una aplicación nativa puede estar cifrada antes de lanzarse a la tienda oficial, una aplicación híbrida permanece "desnuda". Dado que muchas aplicaciones híbridas se basan en página HTML, entonces no cuesta nada mirar su código fuente y comprender cómo funciona la aplicación. Como mínimo, su código puede ser robado. Como máximo, un atacante puede utilizar su aplicación para sus propios fines egoístas, por ejemplo, para obtener información y datos privados sobre la aplicación.

VENTAJAS DE LAS APLICACIONES NATIVAS

  • Alta calidad . Un desarrollador de aplicaciones nativas altamente especializado le escribirá un código limpio y único. Muchos años de experiencia en desarrollo y estándares claros para aplicaciones nativas de iOS y Android lo ayudarán a crear un producto de alta calidad con amplia funcionalidad y reducir el riesgo de errores casi al mínimo.
  • Baja probabilidad de rechazo para la colocación en App & Play Stores . Dado que una aplicación nativa cumple de forma nativa los requisitos estándar de una plataforma específica, es poco probable que encuentre algún problema al ejecutar su aplicación en tiendas oficiales Tienda de aplicaciones y tienda de juegos.
  • 100% uso del diseño UX . Los usuarios modernos se ven mimados por interfaces coloridas y detalladas, y es poco probable que las aplicaciones simples y estandarizadas les interesen. Es en el desarrollo nativo donde se utiliza al 100% el diseño UX, lo que permite crear alta calidad y interesante aplicación. Con una aplicación híbrida, obtienes una interfaz estandarizada en ambas plataformas.

  • Variedad de herramientas de desarrollo. . Gracias a muchos años de experiencia en el desarrollo de aplicaciones nativas, existe una gran cantidad de marcos, plantillas y otras herramientas probadas diferentes que le permitirán hacer que su aplicación sea única, individual y estable.
  • Gran comunidad de desarrolladores . Y, por supuesto, al desarrollar una aplicación nativa, es poco probable que encuentre un problema que nadie haya resuelto antes. Esto significa que no tendrá que dedicar más tiempo a buscar una solución adecuada, sino que podrá recurrir a la experiencia de otros programadores.

DESVENTAJAS DE LAS APLICACIONES NATIVAS

  • Precio . Como dicen, el queso gratis sólo está en una ratonera. Una aplicación nativa es un producto único y de alta calidad, cuya creación requiere mucho tiempo y, por supuesto, un desarrollador altamente calificado con muchos años de experiencia. Por lo tanto, dicha solicitud cuesta en consecuencia.

DATO INTERESANTE

Te sorprenderás cuando descubras qué es realmente. desarrollar iOS nativo la aplicación cuesta menos que la híbrida . ¿No me crees? ¡Ver por ti mismo!

Al desarrollar una aplicación nativa, cuentas con una gran variedad de herramientas incluidas en el SDK de una plataforma en particular. Es decir, todo lo que necesitas es utilizar estas herramientas en tu aplicación nativa.

En el caso de un híbrido, sólo hay que esperar que exista una adaptación para una u otra herramienta nativa en función del framework elegido para el desarrollo híbrido.

Si no existe tal herramienta, tendrá que esperar a que aparezca o considerar marcos alternativos, es decir, con un híbrido hay muchos más problemas.

En base a esto, resulta que, crear Una aplicación iOS nativa es más barata que una aplicación iOS híbrida..

Si comparamos el desarrollo de una aplicación híbrida y dos nativas, el precio de la híbrida será menor, como era de esperar, porque en una aplicación híbrida el backend y el frontend son aptos para dos plataformas a la vez.

En una aplicación nativa, es necesario desarrollar dos interfaces independientes que cumplan con los estándares generalmente aceptados de cada plataforma.
De ahí los precios:

APLICACIÓN HÍBRIDA PARA iOS– $11.5K
APLICACIONES HÍBRIDAS iOS + Android
$12.5K

APLICACIÓN NATIVA para iOS– $10K
APLICACIONES NATIVAS iOS + Android
$18K

Sin embargo, si miras de cerca, notarás que el costo de las aplicaciones nativas no es mucho mayor que el costo de las híbridas.

Ahora piense si ahorrar dinero al desarrollar una aplicación o no. ¿O tal vez hacer dos nativos a la vez?

Después de todo, es muy importante para los usuarios cómo apariencia aplicación y qué tan conveniente y de alta calidad será.

¿QUÉ APLICACIÓN DEBO ELEGIR?

En este caso, estará 100% seguro de que el dinero no se desperdició y, como resultado, recibirá exactamente la aplicación que solicitó.

ENTONCES ,

Elija una aplicación híbrida si quieres conseguir:

  • aplicación sencilla
  • Aplicación para dos plataformas a un precio económico.
  • 1 aplicación con capacidad de ingresar rápidamente a dos mercados (ios/Android)

Elige una aplicación nativa, si necesitas:

  • Aplicación profesional que cumple con todos los estándares de la plataforma seleccionada.
  • aplicación compleja con amplia funcionalidad
  • aplicación de alta velocidad

Ahora que sabes todo y más sobre las aplicaciones nativas e híbridas, puedes tomar fácilmente la decisión correcta.

Haz realidad todos tus sueños e ideas más locos con .



gastrogurú 2017