¿Cuál es la diferencia entre el desarrollo de aplicaciones nativas y el desarrollo híbrido?
La aplicación nativa es una aplicación móvil desarrollada utilizando el sistema operativo local del teléfono móvil. Actualmente, los sistemas de telefonía móvil se dividen principalmente en Android y Apple iOS. Ambas partes tienen sus propios lenguajes y herramientas de desarrollo de programación. El desarrollo de aplicaciones nativas consiste en utilizar las herramientas de desarrollo oficiales.
El desarrollo de aplicaciones híbridas es la integración de aplicaciones nativas y aplicaciones web. Algunas secciones principales se desarrollan utilizando el modo nativo y el contenido no principal se implementa a través de la web.
Modelos de desarrollo de aplicaciones. Generalmente se dividen en WebAPP y webapp. NativeAPP tiene dos modos nativos. Cada uno de estos dos modos tiene sus propias ventajas. Sin embargo, con el desarrollo de HTML5, siempre se ha debatido si se debe utilizar el desarrollo de NativeApp o el desarrollo de WebApp. Y con la popularidad de los servicios en la nube, el uso de HTML5 para el desarrollo de aplicaciones web se está volviendo cada vez más popular. Se ha convertido en una tendencia. Los usuarios pueden elegir según las características y necesidades de la aplicación, o elegir un modelo híbrido de los dos:
.Desarrollo de NativeApp
El desarrollo de NativeApp es lo que llamamos el modelo de desarrollo de APP tradicional (modelo de desarrollo de APP nativa). Este desarrollo requiere diferentes lenguajes y marcos para diferentes sistemas operativos móviles como IOS y Android. Este modelo generalmente consta de dos partes: "datos del servidor en la nube + aplicación cliente". Todos los elementos de la interfaz de usuario, el contenido de los datos y el marco lógico de la aplicación se instalan en el terminal móvil.
Desarrollo de aplicaciones web
El desarrollo de aplicaciones web es un modelo de desarrollo de aplicaciones marco (modelo de desarrollo de marco de aplicaciones HTML5). Este desarrollo tiene la ventaja de ser multiplataforma. Este modelo generalmente se compone de "HTML5". El sitio web en la nube "" + cliente de aplicación de la aplicación " consta de dos partes. El cliente de la aplicación de la aplicación solo necesita instalar la parte del marco de la aplicación, y los datos de la aplicación se recuperan de la nube y se presentan al usuario del teléfono móvil cada vez que se abre la aplicación. abierto.
La diferencia entre el desarrollo de aplicaciones nativas y los modelos de desarrollo de WebAPP
WebAPP requiere el desarrollo de un "sitio web en la nube html5" y un "cliente de aplicación" Kunmingdu Network Company resume la siguiente presentación de este tipo. de la aplicación APP: Características:
(1) Cada vez que se abre la APLICACIÓN, la interfaz de usuario y los datos deben obtenerse del sitio web en la nube a través del marco de la APLICACIÓN
(2) Móvil; Los usuarios de teléfonos no pueden acceder a la aplicación si no pueden acceder a Internet.
(3) La APP tipo marco no puede llamar a los dispositivos hardware del terminal del teléfono móvil (voz, cámara, SMS, GPS, Bluetooth, sensor de gravedad, etc.)
(4 ) APLICACIÓN tipo marco La velocidad de acceso está limitada por el acceso a Internet de los terminales móviles, y cada uso consumirá una cierta cantidad de tráfico de Internet móvil;
(5) El paquete de instalación de aplicaciones de tipo marco es pequeño y solo contiene archivos de marco, pero una gran cantidad de elementos de la interfaz de usuario, el contenido de los datos simplemente se almacena en la nube;
(6) los usuarios de la aplicación pueden acceder a los últimos datos de la nube en tiempo real en todo momento;
(7) Los usuarios de la aplicación no necesitan actualizar las aplicaciones de la aplicación con frecuencia, logrando una interacción de datos en tiempo real con la nube;
Aplicable a empresas: comercio electrónico, finanzas, noticias y información y grupos empresariales que necesitan actualizar con frecuencia las aplicaciones de aplicaciones.
NativeApp (APP nativa) requiere el desarrollo de un "centro de datos de servidor en la nube" y un "cliente de APP". Kunming Mindu Network Company resume que este tipo de aplicación APP presenta las siguientes características:
(1) Cada vez que obtiene las últimas funciones de la APLICACIÓN, debe actualizar la aplicación de la APLICACIÓN;
(2) El paquete de instalación de las aplicaciones de la APLICACIÓN nativa es relativamente grande e incluye elementos de la interfaz de usuario, contenido de datos y marco lógico;
(3) Los usuarios de teléfonos móviles que no pueden acceder a Internet aún pueden acceder a los datos descargados previamente en la aplicación APP.
(4) La aplicación nativa puede llamar a los dispositivos de hardware de terminales de telefonía móvil (voz, cámara, SMS, GPS, Bluetooth, sensor de gravedad, etc.)
(5) Aplicación de la aplicación Actualizaciones La función implica enviarlas a varias tiendas de aplicaciones para su revisión cada vez.
Empresas aplicables: juegos, revistas electrónicas, aplicaciones de gestión, Internet de las cosas y otras aplicaciones APP que no necesitan actualizar frecuentemente el marco del programa.
Cómo elegir entre los modelos de desarrollo WebApp y NativeApp
La Web móvil es omnipresente y actualmente es la única plataforma que admite el acceso desde varios dispositivos. Al igual que la Web de escritorio, la Web móvil admite varios. dispositivos. Mobile Web también es la única plataforma para que los desarrolladores publiquen aplicaciones móviles, lo que conecta de manera efectiva varias interacciones móviles con tareas de escritorio y el desarrollo de NativeApp puede aprovechar al máximo las características del dispositivo, lo que a menudo no es posible con los navegadores web. un producto en sí, NativeApp es la mejor opción. Las siguientes secciones analizarán algunas de las funciones principales de NativeApp.
Cuándo elegir NativeApp
1. Cobrar por la aplicación
No existe ninguna disposición que indique que los desarrolladores no pueden cobrar tarifas de uso por una aplicación web móvil, pero sí deben hacerlo. Por cierta razón, la gente suele pensar que no pueden o no deben cobrar por una WebApp.
Por razones históricas, los servicios pagos en dispositivos móviles se han topado con dos obstáculos importantes:
2 Métodos de pago
Ingresar números de tarjetas de crédito en dispositivos móviles es bastante engorroso y también difícil. en muchos dispositivos más antiguos no hay seguridad. Un enfoque típico es que si necesita cobrar por su aplicación, puede llegar a un acuerdo con el operador y dejar que el operador cobre por su servicio en su nombre. Esto también significa que es necesario cooperar con varios operadores. Este suele ser el método preferido porque es posible que muchos usuarios de teléfonos móviles, como los adolescentes, no tengan ninguna tarjeta de crédito.
Otro método consiste en almacenar la información de la tarjeta de crédito del usuario en un sitio web seguro. Los usuarios pueden comprar servicios de aplicaciones iniciando sesión en el sitio web. Este proceso no es ideal, ya que significa que los usuarios ya no pueden comprar servicios directamente desde sus dispositivos móviles.
3. Compartir obligatoriamente
Los operadores de telefonía móvil recibirán una comisión. Ya sea que las aplicaciones se lancen a través de operadores o dispositivos móviles, proporcionan un mecanismo de cobro para las aplicaciones. Estos operadores y dispositivos móviles tomarán una parte de los ingresos y darán el resto a los desarrolladores de aplicaciones, lo que también significa que los desarrolladores deben cumplir con las reglas del mercado. La adaptación a las reglas del mercado de un operador suele ser muy difícil y requiere una gran inversión de recursos humanos. En comparación, las reglas del mercado para los dispositivos móviles son mucho más simples, pero también existen muchas dificultades.
Se bloquearán las aplicaciones y servicios que obstaculicen los intereses de operadores y desarrolladores de dispositivos móviles. En el pasado, los sitios que no dependían de operadores y desarrolladores de dispositivos móviles eran cerrados si sus ingresos eran demasiado notorios, pero últimamente eso rara vez sucede.
Si quieres cobrar por tu NativeApp, entonces debes aceptar esta realidad: debes cumplir con las reglas del mercado de otras personas y renunciar a parte de los ingresos.
4. Desarrollar juegos
Si quieres desarrollar un juego móvil (los juegos móviles son el segmento más grande del mercado móvil), entonces necesitas desarrollar una NativeApp. Los juegos consumen muchos recursos y requieren el uso de muchas API de dispositivo o API de plataforma. Aunque en la actualidad existen varios juegos desarrollados íntegramente con tecnología web que ocupan una determinada cuota de mercado, siguen siendo insignificantes en comparación con la cuota de mercado de NativeApp. Los usuarios de juegos tienen altos requisitos en cuanto a los efectos visuales y operativos de las aplicaciones. Aunque la Web móvil proporciona cierta experiencia de simulación, está lejos de satisfacer las necesidades de los usuarios.
Al desarrollar juegos móviles, debes considerar cuidadosamente qué plataformas debe admitir tu aplicación. Afortunadamente, existen muchas herramientas que pueden ayudarte a llevar tus juegos a múltiples plataformas, pero completar estas tareas aún requiere mucha mano de obra y recursos materiales.
5. Utilice la función de posicionamiento
La siguiente función es la función de posicionamiento, que puede determinar la información de ubicación actual del usuario a través de GPS o detección de señal. En el pasado, la información de ubicación del usuario solo se podía ver a través de las API de NativeApp, pero ahora la mayoría de los navegadores móviles convencionales tienen la API W3CGeolocation integrada. Dispositivos como iPhone o Android con WebKit instalado, o dispositivos equipados con navegadores Opera o Mozilla, pueden obtener la información de ubicación del usuario.
Creo que la función de posicionamiento traerá muchas aplicaciones nuevas a la tecnología Web. Si los navegadores web se pueden utilizar correctamente, los desarrolladores web pueden utilizar la información de ubicación de los usuarios y otros contenidos para desarrollar aplicaciones más interesantes. Aunque esto no es técnicamente difícil, está sujeto a normas de protección de la privacidad. Consideramos el navegador web como la entrada del usuario a WorldWideWeb. Añadir una función de posicionamiento supone introducir información sensible en el sitio web, lo que puede tener graves consecuencias. Sin embargo, la información de ubicación mostrada en aplicaciones con reconocimiento de ubicación debe ser autorizada por el usuario, y los usuarios ciertamente tienen derecho a prohibir que las aplicaciones publiquen su información de ubicación.
6. Utilice la cámara
La cámara puede proporcionar una gran cantidad de posibilidades para su aplicación. En el pasado, se utilizaba MMS (servicio de mensajería multimedia) móvil para procesar fotografías móviles. En otras palabras, después de tomar una foto, debe usar MMS para enviarla a un servidor. El servidor procesará la foto en consecuencia y le notificará los resultados del procesamiento. Este proceso requiere mucho tiempo y es complejo, y no hay garantía de confiabilidad.
Al acceder a la cámara, los desarrolladores de NativeApp pueden simplificar el proceso de tomar fotografías. Los usuarios pueden realizar un procesamiento simple de las fotos directamente en el cliente y solo cargar las fotos al servidor cuando sea necesario y mediante una transmisión HTTP confiable. El W3C está desarrollando una API para acceder a la cámara, pero aún no ha integrado oficialmente esta parte del trabajo en el navegador.
Las cámaras son muy útiles en muchos tipos de aplicaciones móviles, como aplicaciones de historias, aplicaciones de grabación de vídeos cortos, etc. Las cámaras se pueden utilizar para capturar muchos momentos importantes. En un futuro próximo, podremos ver que siempre que se fotografíe un determinado letrero a través de la cámara, la aplicación puede completar automáticamente la conversión de idioma en el letrero; esta tecnología ha comenzado a volverse popular en Japón.
7. Utilice sensores
Cada vez más dispositivos móviles tienen nuevas funciones de sensores. Este dispositivo puede detectar la velocidad física y la gravedad del dispositivo y enviar los resultados de los datos detectados al. dispositivo. Este dispositivo se utiliza a menudo para detectar si se ha invertido una configuración y la aplicación ajusta automáticamente la orientación de la pantalla en función de la información recibida.
Se pueden utilizar sensores para ayudar a los usuarios a aumentar la sensación de realismo al interactuar con el dispositivo; la mayoría de los dispositivos móviles son portátiles y las aplicaciones pueden ajustar el contenido según la orientación del dispositivo, como girar la pantalla, o detectar la física y puede adivinar el entorno del usuario en consecuencia. Para dar un ejemplo simple: por ejemplo, si el usuario está caminando, el sensor puede detectar un movimiento suave o velocidad. En este momento, se le puede proporcionar al usuario una interfaz de usuario de fuente grande, lo que le facilita ver la imagen. contenido en la pantalla.
Sin embargo, los desarrolladores no pueden confiar demasiado en los sensores, porque los sensores no pueden distinguir qué interacciones son intencionales y cuáles no tienen sentido. Cada interacción móvil debe pasar una "prueba de transmisión". Diseña tus interacciones con el usuario en un coche o tren lleno de gente. Considere si su aplicación puede manejar adecuadamente a un usuario que agita su dispositivo móvil si está en un metro lleno de gente o conduciendo un automóvil. A menudo, la mayoría de los desarrolladores no consideran estos factores. Asegúrese de diseñar un plan de respaldo para cada tarea para manejar las interacciones móviles en escenarios especiales.
8. Acceda al sistema de archivos
Si su aplicación necesita guardar datos localmente, entonces necesita desarrollar una NativeApp. Por ejemplo, desea guardar la libreta de direcciones, el número de teléfono o la información de correo electrónico del usuario, o guardar los datos obtenidos de otros dispositivos.
El acceso a los sistemas de archivos a menudo implica problemas de seguridad y protección de la privacidad del usuario. Las aplicaciones maliciosas pueden modificar o eliminar datos de su dispositivo móvil. Una aplicación portadora de virus puede explotar la red de conexiones del dispositivo móvil para propagar el virus a muchos otros teléfonos, lo que solía ocurrir antes de la introducción de los mecanismos de autenticación de aplicaciones móviles.
Por otro lado, los dispositivos móviles se están volviendo cada vez más personales, y una gran cantidad de información personal de los usuarios, así como información de amigos e información comercial de los usuarios se almacenan en dispositivos móviles. Es una buena idea desarrollar aplicaciones para esta información privada. Pero existen ciertos riesgos. El uso de datos guardados en dispositivos móviles puede proporcionar a los usuarios servicios más específicos.
Los desarrolladores deben recordar que solo pueden acceder a los datos privados de un usuario con la autorización del usuario. Hemos visto que muchas aplicaciones utilizan una gran cantidad de datos privados del usuario sin su autorización y se confunden con aplicaciones de spam o phishing, aunque estas aplicaciones originalmente brindan algunos servicios muy útiles. La mala comprensión de su aplicación por parte de la gente afectará la promoción de su servicio. Si el operador recibe demasiadas quejas sobre su aplicación, su servicio puede cancelarse e incluso otras aplicaciones pueden verse implicadas.
Es crucial al acceder al sistema de archivos que no acceda a los datos privados de ningún usuario sin la autorización del usuario. Y la mayoría de las aplicaciones suelen ignorar este punto. El W3C está desarrollando API estándar relevantes para desarrolladores de dispositivos móviles, pero este trabajo aún no se ha completado.
9. Usuarios sin conexión
La última razón por la que es necesario desarrollar NativeApp es que los usuarios pueden estar desconectados o no pueden acceder a la red móvil. Puede que esto rara vez suceda en las ciudades, pero incluso en las zonas rurales, la cobertura de la red se ha ido generalizando gradualmente. Pero de vez en cuando todavía se producen breves cortes de conexión de red, y su aplicación debe considerar cómo manejar este escenario.
Piensa en cuándo y dónde los usuarios suelen utilizar tu aplicación. Si se trata de un juego móvil, es probable que el usuario utilice la aplicación en un avión. Las aplicaciones de mapas de seguimiento se utilizan a menudo en ubicaciones remotas con cobertura de red deficiente. A menudo se accede a las guías de viaje móviles desde una red extranjera y a menudo requieren el pago de cargos de roaming y de red internacional. En este momento, es mejor que la aplicación proporcione a los usuarios servicios fuera de línea para garantizar que los usuarios aún puedan disfrutar de los mismos servicios sin acceso a la red.
Los navegadores que ahora admiten HTML5 también pueden implementar el acceso sin conexión, pero puede que no sea obvio para los usuarios. A medida que más y más navegadores comienzan a admitir el acceso sin conexión, las aplicaciones deben informar claramente a los usuarios que aún pueden acceder a las aplicaciones web móviles cuando se interrumpe la conexión de red.
NativeApps a menudo asume que la conexión de red es confiable. Las aplicaciones generalmente solo consideran situaciones en las que la red está en buenas condiciones, asumiendo que la red está cerrada y la velocidad de la red es lo suficientemente rápida. No es raro que los dispositivos móviles pasen repentinamente de un entorno con una buena red a uno con una mala red. Las NativeApps deben probarse en las peores condiciones de red. Por ejemplo, es posible que todavía haya cobertura de señal completa cuando el usuario inicia la tarea, pero puede que no haya ninguna señal de red cuando finalice la tarea.
Cuando los usuarios instalan NativeApps, no consideran si accederán a él en línea o sin conexión; esperan que NativeApps pueda funcionar normalmente bajo cualquier circunstancia. Y esto también es responsabilidad del desarrollador.
Cuándo debería elegir WebApp
Siempre que su aplicación no cumpla con una de las condiciones de NativeApp mencionadas anteriormente, no necesita desarrollar una NativeApp, pero debe elegir desarrollar una aplicación web. Como se mencionó anteriormente en el artículo, soy partidario de NativeApp. Creo que NativeApp tiene muchas cualidades excelentes y un gran potencial de mercado, pero WebApps es la única plataforma duradera de desarrollo de aplicaciones, servicios y contenido móvil.
NativeApp obviamente no puede proporcionar a los usuarios mejores servicios; por el contrario, aumentará el costo del proyecto, reducirá los canales para el lanzamiento de la aplicación, aumentará la complejidad de las actualizaciones de la aplicación y debilitará la confianza del desarrollador en la aplicación. control de la aplicación y ganancias, y puede causar problemas al dispositivo. NativeApp puede aportar beneficios a corto plazo a los desarrolladores, pero conlleva ciertos riesgos e incluso puede afectar al desarrollo sostenible del mercado móvil.
Las ventajas de la WebApp móvil han sido mencionadas en el artículo anterior. Si las funciones mencionadas en la sección anterior son las únicas razones para elegir NativeApp, entonces, si estos obstáculos se pueden bloquear en los navegadores móviles, ¿seguirá insistiendo en elegir NativeApp? El webOS de Palm ya ha comenzado a resolver algunos de los problemas mencionados anteriormente. Construyeron un sistema operativo totalmente móvil basado en WebKit, convirtiendo el teléfono en un navegador web. Las llamadas "NativeApps" son en realidad WebApps.
PhoneGap es un proyecto similar. Este proyecto de código abierto se utiliza para ayudar a los desarrolladores a desarrollar NativeApps en dispositivos iPhone, Android y BlackBerry, y puede simular las funciones del dispositivo (como funciones de ubicación y sistemas de archivos). Llamada de aplicaciones web. Estos códigos se pueden publicar y vender en la tienda de aplicaciones de cada dispositivo, pero se puede compartir el código común y el diseño que utilizan. Dado que se está desarrollando una aplicación web, los desarrolladores pueden desarrollar una versión simplificada de la aplicación para navegadores móviles de gama baja. Solo necesita desarrollarse una vez y puede implementarse en múltiples plataformas.
Para programadores con amplia experiencia en desarrollo móvil, cuando se trata de "desarrollar una aplicación rica en funciones", lo primero que les puede surgir mente es NativeApp. Aunque esta idea todavía se aplica en muchos dispositivos, las aplicaciones web móviles ahora también proporcionan interfaces funcionales lo suficientemente ricas como para que los desarrolladores las llamen. Esto permite que WebApp no solo se diseñe con funciones ricas y magníficas interfaces como NativeApp, sino que también se pueda migrar a varias plataformas sin siquiera modificar una línea de código.
Ahora, en el desarrollo de dispositivos móviles, la innovación de las aplicaciones web móviles ha entrado en un período culminante sin precedentes. Pero lo más importante es que, por primera vez, los desarrolladores de dispositivos móviles decidieron desarrollar conjuntamente un estándar para el desarrollo web móvil, al igual que el estándar para la web de escritorio. No solo eso, los consumidores reciben con agrado los dispositivos que admiten las funciones innovadoras de las aplicaciones web móviles o los dispositivos móviles que admiten navegadores de terceros.