En las últimas semanas, está teniendo bastante éxito en la App Store una App para iPad llamada Machinarium. Se trata de un juego muy bonito, con unos gráficos preciosos… y desarrollado en Flash, utilizando la tecnología que ofrece Adobe Air para convertirlo en una App de iOS.
Hace bastante este tipo de cosas no estaban permitidas en la App Store, pero Apple abrió un poco la mano para permitir que Apps que no estuvieran programadas de manera nativa, utilizando sólo las herramientas del SDK de Apple (muy buenas, por otro lado), pudieran publicarse en la App Store.
Hasta aquí todo normal; Si la App está en el número uno ahora mismo, como vemos arriba, es que es buena… y lo es. Es un buen juego. Los comentarios y valoraciones de los usuarios, lo dejan claro.
Ahora, leamos una nota que han publicado al final de la descripción del juego;
Traducido;
Si el juego se cuelga (quita sólo), REINICIA tu iPad, el problema no tiene por qué estar en nuestro lado!
Curioso – Os podemos explicar por qué el juego es lento en su interfaz y por qué la mayor parte de las veces, simplemente se cuelga, ‘se quita sólo’, etc. Existe un proceso (llamado comúnmente ‘watchdog’ coloquialmente) en el sistema operativo de nuestro iPhone o iPad que se encarga de controlar que ninguna App ‘se pase de la raya’ en el uso de memoria, recursos etc. ¿Por qué? Porque si lo hace, el sistema operativo se puede volver inestable, bloquear o no responder. Si llega esa posibilidad, este proceso ‘mata’ la App y tenemos que abrirla de nuevo. Por supuesto, todos los programadores de Apps saben esto y tienen que programar sus aplicaciones teniendo esto en cuenta para que no se quiten solas. A menudo, es complicado y sobre todo en máquinas con poca RAM (iPhone original, 3G o últimamente el 3GS, con 128 y 256Mb respectivamente) el ‘perro’ viene y mata la App. Con Machinarium esto es lo que pasa. Es una App en 2D, relativamente sencilla técnicamente… en el SDK que Apple ofrece no sería demasiado complicado de programar, pero en este caso los desarrolladores han optado por ‘portar’ directamente la versión en Adobe Air que ya tienen hecha y ahorrarse mucho tiempo y esfuerzo (y también, dinero, lógicamente). El resultado es una App muy pesada, que tiene que cargar todo el ‘framework’ o entorno que permite a Adobe Air funcionar en el iPad dentro de una aplicación… con el consiguiente consumo de memoria extra y recursos que hacen falta. Un iPad 2, con una CPU de doble nucleo a 1Ghz y medio giga de RAM, suda mucho para conseguir moverla, a pesar de su potencia.
Es decir, hace lo mismo que hace Flash en los ordenadores; Usos altos de CPU y recursos para poder reproducir un simple video, por ejemplo. A nosotros nos gustaría que el Flash fuera realmente ligero y fácil de ejecutar en móviles, pero jugando con un Galaxy S2 hemos visto muchas webs arrastrarse por culpa de los Flash que tiene cargados, usando ordenadores hemos visto como una solapa de un navegador web consume más de la mitad de los recursos de la CPU o directamente el 100% de la misma, y hoy en día seguimos viendo que en el año 2011, a pocos meses de llegar al 2012, Adobe sigue sin optimizar realmente sus plugin Flash, que sólo recientemente empiezan a utilizar la aceleración hardware de la tarjeta gráfica (en ordenadores) para funcionar ‘más holgadamente’ sin fatigar la CPU tanto. Por ahora, ese no es el caso del iPhone, y un muy buen juego de iOS, precioso en su diseño y concepto, tiene que sufrir problemas de estabilidad por esta misma razón. Esto, es lo que Apple quería evitar con la posibilidad de utilizar Flash en sus dispositivos móviles.
Por último, nos gustaría dejar claro que si, también hay Apps que no usan Adobe Air que se caen, se cuelgan, no funcionan bien… ciertamente existen y si no funcionan bien, es responsabilidad exclusiva de sus desarrolladores, que no consiguen optimizarlas lo suficiente como para que no se queden sin memoria y funcionen debidamente.
Con todo, la App es número uno de la categoría de juegos en la App Store del iPad. Una muy buena aventura gráfica, de las de toda la vida – simplemente una lástima que no esté programada nativamente usando Cocoa Touch. Así, por otro lado, se podría distribuir también para iPad 1, iPhone etc…
A mi se me cierra solo siempre Facebook y está programado con el sdk de Apple, al igual que a otras apps que les ocurren lo mismo.
@Axxe desde luego. pero es que has ido a nombrar la App con más bugs de la historia de la telefonía móvil. Si intentas hacer una App más mala a propósito no te sale tan bien como Facebook para iOS, seguro.
A ver lo que pasa que el producto es muy malo, me refiero a adobe air. Monta una especie de maquina virtual y traduce el swf a OpenGL. Por eso requiere de una maquina mucho más potente.
Luego al rendir tan poco, muy pocos lo están usando, lo que hace que tampoco evolucione por parte de Adobe.
Por las pruebas que hicimos cuando salió, un iPhone 2G (si el primero) era entre 3 y 4 veces más rapido programando nativamente que un iPhone 4 o iPad 1 programado bajo flash y hablando solo de apps en 2D y sin motor de físicas. Metiendo el motor de físicas la diferencia aumentaba.
No estoy del todo de acuerdo con lo de «los desarrolladores han optado por ‘portar’ directamente la versión en Adobe Air».
Quien haya jugado a la version de PC o de MAC, se habrá dado cuenta que han reducido el numero de efectos visuales. Un ejemplo rapido: Al empezar a jugar, una vez el «perrito» nos da nuestro brazo, nos dirigimos al carrete de hilo. Si os fijais en la version de MAC o PC cuando estiras del hilo hace un efecto difuminado, en cambio en la version de iPad no hace ninguno de esos efectos, una pena, la verdad, me esperaba mucho mas.
@MARK_OSX bueno es saberlo, no estábamos al tanto de que no fuera exactamente la misma versión… además, después de todo, han tenido que ‘caparla’ para que pueda funcionar en un iPad 2. Increíble
@Berna nadie ha dicho que sean perfectos. De hecho, por aquí solemos criticarlos bastante, aunque eso, no llame la atención.
@Jsnyderc es que es Adobe Air
Hola, estaba buscando info de cómo pasar juegos flash a android y he visto tu critica, yo pienso que aunque tenga sus deficiencias, es una solución para los que queremos hacer aplicaciones gratuitas y somos simples diseñadores que manejan flash. Tenía en mente realizar unos cuantos juegos para mis hijos, juegos educativos recomendados por sus profesores y poder pasarlos a android, y de esta forma puedo hacerlo, sin que tenga que aprender un lenguaje nuevo. Creo que para casos como el mio es una buena solución. Y no siempre hay que mirar la parte negativa, yo le veo mucho positivismo a esto.
Un saludo.
Spora
@Spors es un punto de vista muy respetable, sin duda, y hay casos en los que es aceptable. Pero en general, como desarrollador de Apps para cualquier plataforma, Flash no es la solución… no lo era en el momento de la publicación de esta entrada y ahora, que el propio Adobe lo abandona, menos todavía.
Nunca se me había colgado el IPad 2 que tengo, pero en la fase del invernadero simplemente congelo y apareció la pantalla negra con la manzana. Espere un buen rato y después de pulsar el botón de encendido el sistema volvió a responder. Posteriormente reincié el sistema, entre al Safari para testar el funcionamiento y cuando volví a entrar al juego todavía se salió, esta vez sin pantalla negra. Finalmente en una nueva tentativa conseguí entrar al juego y terminar esa fase. No se si le habrá pasado a otros usuarios. Al principio y hasta que llegue a este post pensé que tenía corrompido el sistema y pensé en inicialización, pero después de leer esto pienso que no es necesario. Saludos y gracias por la información.