PhoneGap vs. Flex vs. Appcelerator vs. Corona: nuevas conclusiones

Pasada ya casi una semana desde los últimos post en los que evaluaba estas herramientas, he tenido constancia de dos hechos que me han hecho cambiar de opinión. Además, revisando la tabla del último post, creo que no he sido todo lo exacta que me habría gustado, así que en vez de modificar todo el artículo, me he decidido a hacer una nueva tabla y sacar nuevas conclusiones. Si no sabes de qué va todo esto, aquí tienes los posts anteriores relacionados

¿Qué es lo que me ha hecho cambiar de opinión? Para empezar, mi tabla anterior era demasiado “estricta” o “personalizada” y ponía características como “regulares” cuando no eran más que temas subjetivos. Por ejemplo, que a mi me parezca mejor lenguaje ActionScript que JavaScript no significa que si una herramienta usa JavaScript tenga que tener peor nota. Por esta razón, he igualado las características de las herramientas basadas en opiniones subjetivas. ¿Cuando evalúo una característica como mala? cuando supone un impedimento real para el desarrollo. Por ejemplo, el hecho de que para construir una aplicación para IOS sea necesario tener un Mac es una característica regular, pero no es impedimento, por lo que no la he puesto como roja (y antes sí).

¿Que es lo que he puesto entonces como rojo/malo/impedimento? 3 cosas nada más:

  1. El precio: Flash Builder 4 y Corona.
  2. Que la aplicación se distribuya con el código fuente: PhoneGap.
  3. Que requiera un modelo específico de dispositivos: Adobe Air mobile para Android requiere terminales de gama alta con procesador de Arm7 (gracias Erik por avisar!).

Así que mis conclusiones son distintas. Flex baja muchos puestos por el hecho de que no funciona en todos los dispositivos Android, y PhoneGap también, al permitir que cualquier pueda bajarse tu aplicación y verle todas las tripas. Entonces, ¿cuál elijo?

Primero hay que preguntarse el objetivo de la aplicación

  • Publicarla en el AppStore/Android Market con un precio por descarga (aplicación de pago). No puedes usar PhoneGap porque podrá ser “pirateada” con extrema facilidad, al incluir el código fuente. Ni deberías usar AdobeAir porque no funcionará en todos los dispositivos Android. Te queda solo Corona para juegos y Appcelerator para el resto de aplicaciones.
  • Publicarla en el AppStore/Android Market como aplicación gratuita. Puedes usar PhoneGap, siempre que no te importe que el mundo entero vea tu código. No deberías usar Adobe Air por la misma razón que el punto anterior, así que te queda Corona y Appcelerator.
  • Aplicación a medida. Puedes usar PhoneGap, tu cliente quiere que le desarrolles una aplicación a medida, no robarte el código. Puedes usar Adobe Air mobile siempre y cuando te asegures de que tu cliente va a tener terminales con el procesador Arm7, y le dejes bien claro (por escrito) que no funcionará con terminales que no lo tenga, para evitar sorpresas posteriores. Aquí puedes elegir el que quieras y usar la guía para programadores con prisa de mi anterior post.

Nada más, si quieres saber de qué va todo esto, puedes ver mi posts anteriores sobre desarrollo de aplicaciones móviles multiplataforma:

13 thoughts on “PhoneGap vs. Flex vs. Appcelerator vs. Corona: nuevas conclusiones

  1. Si te preocupa el código fuente de tu aplicación con PhoneGap puedes usar Google Closure para minificarlo. Aunque en teoría esto no impide que la gente intente “desofuscarlo”, en la práctica si no es fácil nadie tiene tiempo para dedicarle a eso (aunque lo que hagas sea el Angry Birds).

  2. Bueno, más que ver el código fuente y copiarlo, el problema surge cuando cobras por una aplicación cuyo código fuente se puede “sacar” aunque no se entienda para hacer otra aplicación idéntica y gratuita o pirata.
    Sin duda, es una opción a tener en cuenta, gracias Nacho :)

  3. Hace falta mencionar lo mejor multiplataforma Rhodes de Rhomobile. (www.rhomobile.com) Rhodes soporta lo mayor cantidad de OSs y lo mayor funciones del depositivo. Ademas tiene una familia de herramientos como RhoSync, Rhohub, RhoStudio y otros cosas para hacer aplicaciones de alto calidad.

  4. Siempre leo el blog y me parecen espectaculares tus post. Tengo q comentarte que yo me he comprado una Mac especificamente porque estoy desarrollando para mobile, y especificamente iPhone/iPod.

    Segun leo dejaste todas las opciones “alternativas” para desarrollar para mobiles, dejando de lado un exaustivo analisis de las herramientas naturales que trae cada una de las plataforma

    Xcode es muy poderoso, y no solo para aplicaciones mobiles sino para de escritorio tambien. Tiene muchas herramientas que permiten realizar grandes procesos de forma simple y rapida. Si bien el lenguaje para iPhone es Objective-C, no creo que sea mas complicado de aprender que cualquier otro lenguaje. Si uno tiene bien la logica, lo demas es casi cuestion de sintaxis. Tambien se puede desarrollar en C. Lo que se complica es que la mayoria de la info esta en ingles y para algunos eso puede ser un impedimiento.

    Android por su lado, con el ADT ofrece muchas posibilidades porque no solo es posible instalarlo en Eclipse, sino en cualquier otro IDE que este basado en este, como ser Aptana o el mismo Flex… Lo otro bueno es que es java, pero sin embargo, hay q tener en cuenta que tiene sus “cuestiones personales’ oara construir las aplicaciones, la parte de la UI y demas, que no es dificil de aprender y ademas, al ser multiplataforma y en java podes encontrar muchisisisma documentacion en espaniol

    La verdad es que yo no he desarrollado en otras plataformas que no sean las nativas y tampoco tengo tanta experiencia, pero sin embargo creo que merecen un punto en esta gran investigacion que hiciste, solo para hacer notar que todo tiene lo bueno y lo malo y que depende de cada uno “hacerlo mejor que el otro”

    Agradezco el lugar a replica y te sigo leyendo y esperando por mas post sobre programacion.

    Saludos

    • Si, solo he analizado las herramientas que permiten crear aplicaciones para distintas plataformas a la vez, usando el mismo código.
      Gracias por tu comentario :)

  5. hola, jejej

    despues ponerle estrella a este post en google reader, me he encontrado que aun me salen en los de Coder Facts… es cosa mia o sigue fallando el feed?

    saludetes!

  6. Buenas, he visto que en tu bio pones que desarrollas en Appcelerator y PhoneGap. Cuando te viene un cliente, te pide algo y lo desarrollas en PhoneGap qué le comentas sobre el código y el acceso a él?

    • Hay que decírselo siempre al cliente, claro, y decidir con el la tecnología a utilizar. Puede que no le importe pues la aplicación es ligera y toda la lógica y datos están en el servidor. O puede que si y hay que buscar otra alternativa (como Appcelerator).

Comments are closed.