Trabajando con varios dispositivos
Ya no tenemos un iPhone y un iPad, tenemos varios dispositivos, y con la llegada del iPhone 6 y el iPhone 6 plus quizá hasta demasiados, con varios tamaños de pantalla, incluso con varias resoluciones.
También disponemos de dispositivos con cámara, sin cámara, con cámara frontal y trasera, etc.
Mejorando la experiencia de usuario
Si quieres que tu App «vista fina» debes tener en cuenta estas cosas, ¿que pasaría si creas una App que te permite usar la cámara delantera y la App la está usando alguien con un iPod Touch sin cámara frontal?
O imagina que tu App tiene funcionalidad de teléfono y el usuario está usando tu aplicación desde su iPad.
Debes detectar este tipo de cosas y otras más para que el usuario tenga una experiencia de usuario inigualable usando tu App.
5 cosas a aplicar en tus Apps para mejorar la experiencia de usuario
A modo de ejemplo, pues hay muchas otras cosas que debemos tener en cuenta para crear Apps increíbles:
- Comprobar la presencia de cámara en el dispositivo
- Comprobar si el dispositivo tiene cámara frontal
- Detectar una pantalla retina
- Detectar si el dispositivo puede realizar llamadas
Comprobar la presencia de cámara
La clase UIMagePickerController tiene métodos de clase para detectar la disponibilidad de cámara, veamos como hacerlo:
-(BOOL)camaraDisponible { return [UIImagePickerControllerisSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]; }
Comprobar cámara frontal
Cualquier dispositivo con cámara frontal debe ejecutar una versión posterior de iOS4 o superior a esta, por lo que será esta la comprobación que hagamos mediante la siguiente macro:
-(BOOL)camaraFrontalDisponible { #ifdef __IPHONE_4_0 return [UIImagePickerControllerisCameraDeviceAvailable: UIImagePickerControllerCameraDeviceFront]; #else returnNO; #endif }
Detectar la pantalla retina
Esto es importante, ya que, ¿porque cargar fotos con máxima resolución si el dispositivo no tiene pantalla retina? Podemos ver si el dispositivo tiene este tipo de pantalla para ahorra transferencia de datos o mejorar el rendimiento de nuestra aplicación.
Con el siguiente código miraremos si la pantalla puede reproducir gráficos en alta resolución:
-(BOOL)retinaDisplay { int scale = 1.0; UIScreen *screen = [UIScreen mainScreen]; if ([screen respondsToSelector:@selector(scale)]) scale = screen.scale; if (scale == 2.0f) return YES; elsereturnNO; }
Detectar si puede realizar llamadas
Comprobaremos si el dispositivo puede realizar llamadas si puede abrir las URL de tipo tel; usaremos el siguiente código:
-(BOOL)puedeLlamar { return [[UIApplicationsharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]]; }
Y tú, ¿ya has implementado estas sencillas funcionalidades en tus aplicaciones?
Aprende estas cosas y muchas otras en mi Curso Online para crear Apps para iPhone e iPad, y si tienes problemas en tu aprendizaje o necesitas algo, aquí estoy para ayudarte.
4 Comments