¿Por qué es necesario probar mi aplicación para iPhone en un dispositivo iPhone real?

23

Desarrollé una aplicación para iPhone y ahora la quiero en App Store. Muchos de mis amigos geek de iOS me dijeron que lo probara en un dispositivo real, es decir, en un iPhone.

Entonces, me pregunto por qué es necesario probar la aplicación de mi iPhone en un dispositivo iPhone real a pesar de que (Apple) han dado un "simulador" que es casi lo mismo que mi dispositivo.

NSS
fuente
3
El problema es con "casi lo mismo que mi dispositivo". Casi lo mismo no es lo suficientemente bueno. La pequeña diferencia puede afectar las grandes cosas de su aplicación. No solo tiene que probarlo realmente en hardware, sino que debe pensar en probar en diferentes versiones del hardware y software (versión iOS).
Coral Doe el

Respuestas:

51

Debe probar la aplicación en un dispositivo real para al menos ver cómo se comporta con:

  • Hardware del dispositivo real
  • Conexión real a Internet (incluido el uso de una red celular frente a WiFi)
  • Tus dedos en lugar del mouse
  • Rendimiento con otras aplicaciones ejecutándose en segundo plano
  • Las limitaciones del iPhone, como la CPU, la capacidad del disco y la memoria ( Un simulador no es un emulador ).
  • Contexto real: ¿es fácil usar su aplicación en el tren o mientras camina por la calle? ¿Qué tal a la luz del sol o bajo la lluvia?

Desarrolladores de iOS, continúen esta lista.

Nikolay Fominyh
fuente
eso es bueno.. :). Lo muy simple en lo que debo pensar ... :) Thnaks
NSS
2
En realidad, debe probarlo con todos los dispositivos para los que está destinado (iphone3 / 3g / 4 / 4s / 5), así como con todas las versiones ios 3/4/5/6, o debe excluir explícitamente ese dispositivo / versión.
ott--
Gracias por el enlace simulador no emulador. Nunca supe que había una diferencia entre ambos.
Krishnabhadra
Están surgiendo laboratorios de prueba de dispositivos abiertos, lea, por ejemplo, mobile.smashingmagazine.com/2012/09/24/… . Quizás haya uno en tu vecindario. Google "laboratorio de pruebas móviles" "laboratorio de dispositivos abiertos"
Jan Doggen
20

Una cosa que nunca sabrá cuando pruebe con el emulador es cómo se siente realmente para un usuario que tiene un dispositivo real en la mano, deslizando los dedos en la pantalla. Como resultado, las acciones del usuario que parecían fluidas al simular con el panel táctil en su computadora portátil, pueden resultar bastante engorrosas para un uso real del dispositivo. Para asegurarse de que su aplicación esté bien, pruébela con un dispositivo real.

Otra cosa que vale la pena probar con un dispositivo real es el consumo de batería. Es más seguro probarlo con un dispositivo real que confiar en qué tan bien los desarrolladores de simuladores lograron reproducirlo en su herramienta.

Puede haber otras cosas que simplemente no están lo suficientemente cerca en el simulador. El volumen y el balance de audio, por ejemplo, la forma en que suena en su computadora portátil puede diferir de cómo será en un teléfono real. La vibración es otro ejemplo que apenas es posible acertar con el simulador. La forma en que funcionan los sensores giroscópicos en el teléfono real. GPS / cosas relacionadas con la ubicación. Etc etc etc ...


La prueba de simulador vs dispositivo real es un tema bastante importante. En uno de mis proyectos anteriores, una parte importante del éxito comercial fue un cuidadoso equilibrio entre este tipo de pruebas, que esencialmente se reduce a volver a hacer preguntas permanentes como ¿por qué en el dispositivo?

El trabajo real comienza cuando uno pregunta por qué , escogiendo las razones para elegir entre las pruebas en el dispositivo y en el simulador en casos y situaciones particulares.

Ignorar las pruebas de dispositivos expone su producto a un riesgo (bastante alto) de romperse directamente en las manos del usuario final, destruyendo por completo todos los esfuerzos que pone en desarrollo. Pero la cosa es que las pruebas de simulador son MUCHO más baratas y mucho más fáciles de automatizar. Si uno se apega ciegamente a las pruebas solo en el dispositivo, sus lanzamientos podrían volverse sustancialmente más tarde y más caros que los de los competidores.

mosquito
fuente
3
+1 por enfatizar la parte de la experiencia del usuario. Es una parte muy importante cuando se piensa en compartir una aplicación en una tienda de aplicaciones.
Coral Doe
1
Tuviste un gran comentario en la pizarra sobre el gasto mucho mayor de probar un dispositivo frente a un simulador. Creo que sería genial incluirlo en su respuesta. +1 incluso sin eso.
psr
@psr me alegro de que te haya gustado - actualicé una respuesta como sugeriste
mosquito
7

Por experiencia y un despegue de la respuesta mejor votada:

  • Sus dedos en lugar del mouse fueron la mayor diferencia cuando desarrollamos Decimation X2 para Windows Phone 7. Estaba codificado en un emulador, ya que no teníamos un WP7 y fue antes del lanzamiento del WP7. Podríamos haber recibido un WP7 gratis antes del lanzamiento, en caso de que la última oración no tuviera sentido para usted, ya que Microsoft nos invitó a tener un título de lanzamiento en su teléfono. Resultó que lo que queríamos que el usuario hiciera con sus dedos era muy difícil en el teléfono real, pero fácil con un mouse. Y tenía que ver con casos de borde de pantalla. Desafortunadamente, nuestro juego requería que tus dedos estuvieran en el borde de la pantalla todo el tiempo, lo que algunos teléfonos hicieron difícil debido a su pantalla hundida, así como a las carcasas gruesas. De hecho, pusimos un parche para arreglar esto. Esto significa que a todos nuestros usuarios nuevos se les mostró un mal y potencialmente inutilizable, versión de nuestro juego. :(

  • Diferente velocidad de hardware fue la siguiente mayor diferencia. Tuvimos que adivinar literalmente por el método inexacto de tomar nuestra versión del juego para Xbox 360 y degradarla en consecuencia a la mitad de la velocidad de cuadros (60 fps a 30 fps) y un tercio de los GHz (3.0 GHz a 1.0 GHz), y adivinamos incorrecto. Los procesadores eran diferentes, por supuesto, y eso lo sabíamos. Sin el hardware, nos quedamos con cojas conjeturas. No fue nuestra elección ya que no teníamos WP7, pero aprendimos la lección que estoy compartiendo con ustedes ahora. En algunos teléfonos, durante las partes más intensas del juego, dejó caer fotogramas. :( A nadie parecía importarle, ya que asumían que la desaceleración era apropiada para partes tan intensas. Por lo tanto, no fue gran cosa, pero el punto es: Si esto hubiera sido un gran problema, la "aplicación" se habría roto de nuestras conjeturas.

Prueba en hardware real. Y cuando codifique varios hardware del teléfono, pruebe en los de gama baja si el rendimiento es un problema.

Xonatron
fuente
6

El Simulador de iPhone implementa algunas API que el iPhone no tiene (la principal que me viene a la mente es la API DOM XML, donde el iPhone solo admite SAX, que yo sepa, aunque esto podría haber cambiado ahora).

También te permitirá 'sentir' la aplicación, ¿son tus botones del tamaño correcto? ¿Los botones correctos caen bajo el pulgar? ¿El iPhone puede ejecutar la aplicación? El simulador no es un emulador y funciona simplemente agregando Cocoa Touch a su Mac de escritorio para esa aplicación. Debe simular advertencias de memoria insuficiente y similares.

ridecar2
fuente
5

Porque no vas a tener muchos usuarios caminando con un simulador en su bolsillo.

EDITAR: siempre que esté probando su aplicación en un simulador (o emulador), está utilizando un dispositivo falso que no puede ser, por definición, una representación 100% precisa de la cosa real. Un emulador puede ser más preciso que un simulador, pero aún habrá diferencias. El único emulador 100% preciso es el dispositivo en sí.

Diseñar, probar y optimizar el código en un simulador da como resultado una aplicación que está finamente ajustada para funcionar de manera óptima en un simulador. Sin embargo, sus usuarios no tendrán simuladores; estás apuntando al dispositivo equivocado. Una muy similar; pero no es el mismo dispositivo que usarán sus usuarios.

Esto puede conducir a varios tipos de problemas. Problemas graves como errores, accidentes son sin duda su principal prioridad. Pero hay otros; como la ergonomía Intenta sostener el simulador en tu mano. Sólo inténtalo. Los elementos de la interfaz de usuario se representan en una pantalla diferente, con una reproducción de color posiblemente diferente y, ciertamente, dimensiones diferentes (un problema exacerbado por las hermosas pantallas de retina, que no se resuelve completamente usando también un macbook de retina, por ejemplo). ¿Son esos exquisitos tonos de gris igualmente distinguibles en un dispositivo al sol?

Diferencias sutiles en la velocidad y diferentes emulaciones de sensores (o falta de ellas), a veces pueden alterar dramáticamente la experiencia.

Si su aplicación se basa en la conectividad a Internet, no hay forma de cambiar entre LTE, 3G, EDGE o GPRS, probar diferentes escenarios o incluso probar diferentes operadores.

¿Vas a admitir dispositivos con jailbreak? Quizás no lo sea, pero si lo es, probablemente esté dispuesto a probar su aplicación con una. O, si no lo estás, ¿estás seguro de que estás detectando un entorno con jailbreak?

¿El juego de iPad que estás desarrollando en el simulador es igualmente útil cuando un usuario sostiene su peso y usa sus dedos para jugar? ¿Son capaces de romper su aplicación múltiples toques involuntarios, algo que no pudo anticipar en el entorno de simulador seguro de un solo toque (o simétrico doble toque)?

¿Te sentirías cómodo abordando un avión comandado por un piloto que nunca ha abandonado el suelo?

La conclusión es: antes del envío, utilice el mismo dispositivo que usarán sus usuarios. Ninguno de ellos va a usar un simulador.

magma
fuente
44
El sentimiento simple y válido pero el detalle más allá de una sola oración hace que la respuesta sea más valiosa para la comunidad en general.
Jimmy Hoffa el
3

razón práctica:

1) No tiene el funcionamiento "enviar correo".

2) No puede poner el dispositivo al revés.

y por supuesto ya dicho motivo:

3) bajo ancho de banda

4) potencia computacional muy pequeña en comparación con el simulador

5) Las llamadas Open GL se implementan un poco diferente en el simulador

6) espacio en disco / RAM ..

ingconti
fuente
Los simuladores y emuladores modernos le permiten rotar el dispositivo. Los basados ​​en la nube también, por ejemplo, el emulador Nokia Lumia ofrecido por BrowserStack.
Dan Dascalescu
algunas rotaciones tienen errores o no están implementadas ... intente ... :) y Apple dice: developer.apple.com/library/content/documentation/IDEs/…
ingconti
3

Si bien se ha mencionado que el rendimiento del hardware es generalmente peor, debe tenerse en cuenta que este no es el caso con OpenGL ES. El simulador lo implementa en software para que no sea raro, para notar un gran aumento de rendimiento mientras se ejecuta en el dispositivo.

Además, existen algunas diferencias menores entre las implementaciones de software y hardware de Open GL ES, por ejemplo, las sugerencias de precisión del sombreador pueden tener diferentes resultados.

Bartosz Ciechanowski
fuente
2

Cuando implementamos cosas para iOS (o Android, o Windows Phone), desarrollamos no para el escritorio sino para el dispositivo. Para algunas aplicaciones de cálculo / recursos pesados, esto puede significar un comportamiento normal en el simulador, PERO problemas en el dispositivo real.

Entonces, situaciones como esta se pueden encontrar en etapas posteriores si no probamos en el dispositivo desde el principio:

  • Advertencias de memoria / bloqueos
  • Velocidades de cuadro OpenGL de un solo dígito
KK.
fuente
2

Hay algunas características como PushNotification , uso de la cámara , etc., que solo podemos probar en un dispositivo; Estas son características que no se pueden probar en un simulador.

Y probar su aplicación en un dispositivo real antes de enviarla a la App Store reduce las posibilidades de rechazo de la aplicación; a veces, una aplicación funciona bien en el simulador, pero se bloquea en un dispositivo real, que es la razón principal de los rechazos de la aplicación.

Ravi Sharma
fuente
2

Puede haber diferencias reales de rendimiento entre el dispositivo real y el emulador. Descubrimos que solo probar con el emulador resultó en una aplicación muy lenta en muchos casos, lo cual no esperábamos.

Nathan Pilling
fuente
3
Irónicamente, una de mis aplicaciones tiene un mejor rendimiento en el dispositivo real que en el emulador de mi computadora portátil.
Michael Itzoe
1
@nathan: ¡Creo que usamos SIMULATOR en lugar de EMULATOR! El SDK de Android tiene un emulador, mientras que el SDK de iOS proporciona un simulador ... y existe una diferencia entre el emulador y el simulador. isnt? así que leí tu respuesta reemplazando el emulador de palabras por un simulador .. n tnx 2 ans :)
NSS
-1

La experiencia del usuario varía de un dispositivo a otro debido a diferentes sistemas operativos y

especificaciones de hardware Por lo tanto, es necesario probar una aplicación de iPhone en el

dispositivos: dispositivos móviles que ejecutan varias versiones de iOS en el mercado.

Aunque un simulador es útil para identificar cualquier problema que enfrente el usuario final,

probar la aplicación en el dispositivo original ayudará a identificar y abordar los principales

inquietudes del usuario.

johnson
fuente