2011-09-22 11 views
8

estamos buscando obtener una aplicación de escaneo de códigos de barras. Estamos considerando usar PhoneGap, pero nuestra única preocupación es la velocidad. Todo lo que la aplicación hará es escanear un código de barras y consultar un servidor para ver si es válido o no. La aplicación utiliza la cámara muy intensamente para escanear el código de barras a través de una imagen. Mi pregunta principal es, ¿el escaneo a través del teléfono será tan rápido como una aplicación nativa? La velocidad es muy importante ya que el usuario tendrá que escanear múltiples códigos de barras muy rápidamente.Rendimiento de la aplicación Phonegap frente al rendimiento de la aplicación nativa

Respuesta

4

El software integrado del teléfono es lo que hace el escaneo y la acción de la cámara. PhoneGap solo activará el evento y ayudará a transferir los datos, pero el teléfono hace todo el trabajo.

17

Phonegap utiliza las mismas API nativas, simplemente las abstrae para que pueda escribir su aplicación en html y javascript. El tiempo para tomar una foto o cualquier otro proceso nativo es menos importante que el tiempo que el usuario percibe. Esta es la parte del tiempo de ejecución nativo que necesita exponer al usuario + tiempo de respuesta de la API de abstracción + UI.

Siempre hay una sobrecarga de una abstracción, pero creo que es insignificante en una aplicación como esta (en teléfonos más nuevos que BB OS5). Los problemas actuales se originan en el hardware que representa el HTML y el navegador instalado en el dispositivo.

Muchos teléfonos BlackBerry no usan webkit (OS5 y abajo) y los navegadores que usan pueden parecer muy lentos al hacer webapps. Las versiones de BB OS de menos de 5 no tienen una forma digna de producción de comunicación entre las capas nativas y javascript, el truco que a menudo se ve es establecer y sondear los cambios en las cookies. Android siempre ha tenido un buen diseño de JavaScript para la interacción nativa afaik.

¡Los teléfonos BlackBerry y muchos teléfonos Android de gama baja no tienen GPU, o algunos teléfonos Android que sí tienen GPU no compilan el kit web para la GPU! Sin esto, su aplicación de IU puede tener esa sensación de lentitud, las páginas/botones demoran un poco más en responder, lo que es muy notorio cuando está tratando de pasar rápidamente por los menús.

Esto ha mejorado mucho desde que se lanzó el phonegap. El desfase de IU debe seguir disminuyendo hasta un punto en el que incluso los teléfonos de gama baja más nuevos estén listos para producción para webapps. Pero por mis experiencias aún no hemos llegado a ese punto en 2011.

3

Como otros señalaron, la interfaz de usuario basada en html5 puede parecer lenta. Tal vez no es un problema; solo tienes que probarlo y ver. Para escanear un código de barras y cargarlo en un servidor, la sobrecarga de Phonegap puede no ser significativa.

+1

Hay un repositorio de complementos de GitHub para PhoneGap. Uno de esos complementos es BarcodeScanner. https://github.com/phonegap/phonegap-plugins – Devgeeks

2

He desarrollado una aplicación de teléfono inteligente donde el escaneo de códigos de barras es una alternativa a la función principal de escanear una imagen que es reconocida por la tecnología de coincidencia de imágenes. Yo uso PhoneGap. No he comparado esto con el rendimiento de la aplicación nativa. Puedo decir que para mi IU básica (es una aplicación web para el teléfono inteligente), mis páginas web se procesan lo suficientemente rápido como para no ser un problema. Este rendimiento se ha observado en una CPU de teléfono inteligente de 600MHz (LG Optimus One con Android 2.2.1).

El emparejamiento de imágenes y el escaneo de códigos de barras se realiza en un backend de servidor, no en el teléfono inteligente. El problema radica en la velocidad de red desde el teléfono inteligente a través de WiFi o la red del proveedor de servicios, a través de Internet y en el servidor; luego está la respuesta del servidor a su teléfono inteligente. La velocidad de procesamiento de la coincidencia de imágenes o el escaneo de códigos de barras debe ser inferior a un segundo (idealmente medio segundo) de modo que cuando se agrega el retardo de red, todavía es un tiempo de respuesta de 1-2 segundos para el usuario.

Los archivos de imagen que estoy transfiriendo desde el teléfono inteligente al servidor están destinados a ser de alrededor de 40 KB.En una red WiFi típica de 54Mbps o la tasa actual de alrededor de 40Mbps en las redes de proveedores de servicios HSPA +, considero que el rendimiento de mi aplicación es adecuado. Incluso con una velocidad WiFi de señal justa de 15Mbps, la respuesta del usuario final es aceptable entre 1-2 segundos.

El ritmo de desarrollo de teléfonos inteligentes (procesadores de doble núcleo) y redes de proveedores de servicios (4G HSPA +) solo aumentará la industria. Es una gran oportunidad para el desarrollo de aplicaciones en el futuro.

Tema lateral: estoy usando código de Zanzíbar en el servidor para escanear códigos de barras y estoy a la caza de mejores alternativas. El desafío con el escaneo del código de barras del ISBN desde teléfonos inteligentes que tienen lentes sin zoom y sin macro es que el tamaño típico del código de barras es demasiado pequeño para que los algoritmos de escaneo de códigos de barras "simples" funcionen correctamente. Me gustaría conocer las alternativas y la experiencia de las personas con el escaneo de códigos de barras. Buscaría un código que pueda implementar en el back-end de mi servidor, en lugar de ejecutar el escaneo de código de barras residente del teléfono inteligente.

Cuestiones relacionadas