Codename One: escribe en Java y ejecuta en iOS, Blackberry y Android
Codename One es el nombre de un producto desarrollado por varios exempleados de Sun Microsystems que promete ser el Santo grial del desarrollo para dispositivos móviles: uno escribe una única aplicación que después se podrá ejecutar en iOS, Blackberry, Windows Phone y Android como aplicaciones nativas. La aplicación se escribe en Java y después se compila en los servidores de la empresa Codename One (no nos podemos bajar "el ingrediente mágico") a binarios nativos para cada plataforma.
La herramienta es gratuita, aunque nos limita a construir 100 aplicaciones nativas para cada una de las plataformas al mes, excepto para iOS, donde tan sólo se pueden construir 5 al mes. El motivo por el cual para iOS se permite un número tan bajo de builds mensuales es porque a ellos les acarrea un costo económico muy superior el realizar estos builds. Si queremos, podemos comprar más builds: por sólo 9 dólares al mes podremos hacer todos los que queramos. La empresa también ofrece soporte y formación.
Al escribir aplicaciones con Codename One estaremos escribiendo código Java contra API Java específico de Codename One, que ellos traducirán después a la aplicación para cada una de las plataformas móviles. El modelo de programación de Codename One es muy parecido al de Swing, y la funcionalidad que ofrecen estos momentos está muy orientada a desarrollar aplicaciones que no sean juegos. No soportan, por ejemplo, 3D.
Aquí os dejo una demo de una aplicación construida con Codename One ejecutándose en un iPad:
En el diseño de Codename One han seguido el mismo camino que el propio Java: han comenzado por un mínimo común denominador de funcionalidad de todas las plataformas, y ahora según van teniendo tiempos y recursos van añadiendo características específicas para cada plataforma. En el caso de que una plataforma tenga funcionalidad a las cuales ellos no dan acceso desde su API tenemos un mecanismo "a lo JNI" para llamar a código nativo de esa plataforma.
Se trata sin duda de un proyecto muy ambicioso, pero la gente que está detrás de él es gente bastante válida y con amplia experiencia en el campo, como Chen Fishbein, fundador principal arquitecto de Lightweight User Interface Toolkit (LWUIT), el principal toolkit gráfico para Java ME, y también ha participado en el desarrollo de Sprint Wireless Toolkit.
¿Qué os parece esta herramienta?
Reader Comments (12)
La herramienta parece muy buena, pero y javaFX? el futuro no es que javaFX haga todo eso?
¿No sería mejor PhoneGap/Apache Cordova que usa HTML5/JS/CSS estándar y es abierto? Este permite reutilizar el esfuerzo para hacer webapps y aplicaciones móviles, ¿qué ventajas ofrecería Codename One frente a este? (aparte de usar Java)
La principal ventaja es que genera una app nativa, Phonegap no
Pues pinta bastante bien, habrá que probarlo.
Sino recuerdo mal (y no ha cambiado desde la última vez que lo miré), si te puedes bajar el compilador, pero lo tienes que configurar y no hay documentación, pero en el repositorio del SVN estaba. De todas formas el precio es bastante asequible por hacer toda la gestión de configuración para cada plataforma (sobre todo para el iOS).
Un saludo.
Perdonad PhoneGap genera una app nativa que incluso puede optar a la AppStore, es mas hay muchas apps en la AppStore programadas con PhoneGap.
Phonegap genera una app nativa pero en realidad es un browser que contiene tu aplicación (Pagina/s).
Esto tiene buena pinta. hay que ver como sigue y evoluciona.
Me parece un producto muy interesante, pero no consigo leer la letra pequeña... No encuentro donde tienen el negocio, donde ganan el dinero. He leído que un compañero ponía:
"De todas formas el precio es bastante asequible por hacer toda la gestión de configuración para cada plataforma (sobre todo para el iOS)"
Me gustaría saber de "que precio" habla nuestro compañero. Habla de los 9$ para aumentar nuestra posibilidad de hacer más aplicaciones en un mes? O es que cuando nosotros enviamos la aplicación a Codename One, ellos nos cobran un importe por traducir la App??
Me gustaría saber la respuesta cuanto antes, puesto que estoy muy interesado en temas así, voy a hacer un proyecto inminente y necesito escoger ya que herramientas usar.
Mucas gracias, y buen trabajo!
Hola a todos.
La ganancia la tienen en cuanto alguien paga por aumentar las apps por mes.
Aunque no lo creas hay bastantes programadores en Java que se benefician muchísimo al poder desarrollar una aplicación y portarla a RIM/Android/iOS a la vez. Y si te encuentras en este ámbito sabrás que (como desarrollador) en un mes puedes sacar diversas correcciones de una app (pues usualmente debes construirla y probarla en un dispositivo físico), por lo que en general podrías necesitar más de 100 build mensuales.
Igual, creo que ellos tienen publicado en su página otros planes para empresas que son mucho más caros pero con más beneficios. De igual forma, están comenzando con una empresa nueva, por lo que deben primero ganar clientes suficientes para luego ponerse (si quieren) ambiciosos.
Yo he desarrollado en Lwuit para portar J2ME (nokia, samsung etc) a Blackberry y me fue genial, pero lo malo era que no tenía porting a Android/iOS. Tanto Chen Fishbein como Shai Almog le daban soporte a Lwuit en Oracle, pero parece que Oracle no les dejaba sacar porting a Android/iOS por temas de competencia. Así que al parecer ellos vieron mejor negocio sacando su propia empresa con otro framework basado en lo que era LWUIT y en el que se pudiese hacer porting a las plataformas más populares (algo que todos esperábamos que pasara algún día con Lwuit).
Por otro lado. Con respecto a frameworks como PhoneGap. Es correcto que lo que hace simplemente es generar un browser donde montas una página web de una aplicación. Si ven en las especificaciones trabaja con HTML/JS/CSS. Lo malo es que es mucho más pesado que una aplicación nativa y que no tienes todo el control de los procesos como en las apps nativas. Sirve para algo muy sencillo mas no para apps complejas.
Saludos
Segun mi experiencia prefiero programar con HTML5 y Phonegap que con Codename a pesar de que mi entorno de trabajo sea Java. Es muy engorroso trabajar con codename aparte de dar muchos problemas con los recursos de sistema , cuelgues consecutivos , mala gestion de memoria ,no está nada optimizado y para Iphone no funciona 100% .
El IDE para desarrollar la interfaz grafica es muy rudimentaria aparte de tener muchos problemas con el fichero .res .
Creo que es un producto que esta muy verde y que habiendo apuesta libres y mas extendidas no creo que sea un producto que vaya a cuajar .
tengo una aplicacion condenameone pero deseo pararle a uyna tablet iview 792tpc me podrian ayudar en eso
programar en phonegap jejeje que gracioso no se si porque le digan programar a algo en html, o se concideren programadores por realizar algo en ello. codename es mejor que phonegap pero enormemente ya que este si genera codigo y no es un browser como phonegap, pero es muy probable que el codigo resultante no sea nada optimo similar a los .java que genera el jspc en lo personal para un proyecto decente y que valga la pena, no usaria ninguna de estas herramientas porque simplemente no le llegan ni a la mitan en rendimiento a una app realmente nativa. quiza un dia pero no es hoy ni mañana.