Hugo José Pinto ha anunciado en su blog el proyecto jaiPhon, un intento de llevar Java al iPhone -el smartphone de Apple- patrocinado por la empresa Inovaworks.
Este proyecto busca brindar de un entorno familiar (java + un IDE como Eclipse o Netbeans) para poder desarrollar aplicaciones compatibles con el iPhone. El producto será comercial y estará disponibles para fines de septiembre, principios de octubre.
En el pasado JavaOne, la gente apostaba porque Sun anunciara JavaFX mobile para el iPhone, cosa que no sucedió. Aunque si ha habido declaraciones de la empresa respecto al interes que tienen en lanzar un SDK o el mismo JavaME para este popular teléfono. Por otro lado, Apple mantiene su propio SDK que distribuye de forma gratuita (aunque hay que pagar una subscripción anual para publicar aplicaciones), con la pega de que se debe usar el entorno XCode que solo funciona en MacOSX y el poco conocido lenguaje Objective-C.
¿Existe mercado para una herramienta de este tipo?
Hummm ¿Contarán con permiso de Appel para todo esto?
Cocoa no es un lenguaje, es el framework orientado a objetos principal de Mac OS X El lenguaje de programacion es Objective-C
Como no sepan algo que los demás no, de momento Apple prohibe cualquier "interprete de codigo" en el iPhone, lo cual incluye la JVM, lo cual descarta, por cuestiones legales que no técnicas, cualquier programa en Java en el iPhone... hasta que Apple cambie esas condiciones legales.
A lo mejor saben que van a cambiar, o esperan que cambien y se la juegan para pillar antes el trozo de tarta. Lo unico cierto es que ahora mismo no hay ningún mercado... mañana quien sabe.
Los iPhones jailbreakados pueden usarlo desde hace tiempo. Pueden bajarlo dede Cyndia, y lo mantiene Jay Freeman, el mismo autor de Cydia, y del port de Python a iPhone.
Qué ánimos. Pues si Apple está creando el iPhone bajo estándares cerrados en los que ellos controlen y cobren hasta el entorno de desarrollo, el sistema operativo y hasta la computadora donde debe programarse, francamente prefiero dispositivos de otras compañías que no pretendan ejercer un monopolio en el desarrollo de sistemas.
Umm, si leemos el blog con atención, a mi me parece que los tiros van por otro lado:
"Our goals while building jaiPhon included:
Por lo tanto, a falta de más detalles, yo creo que lo que van a hacer es "programa en Java, que lo convertimos". Y eso puede tener sentido: hay más programadores que conocen Java que Objective-C.
Salu2
El iPhone tiene unos 80Mb RAM disponibles para el usuario. La máquina virtual es JamVM con GNU Classpath. Solo puedes crear aplicaciones de consola (creo). Y no tienes acceso a las APIs de open gl, efectos, y componentes de interfaz que ya proporciona el iPhone.
Objective-C es un lenguaje poco conocido pero fácil de aprender, basta con leer "Cocoa programming for Mac" y luego ya puedes usar y aprender el SDK del iPhone. Necesitas el sistema operativo OSX para tener acceso a el interface Builder de XCode. No creo que Apple pudiera hacer una versión multiplataforma aunque quisieran porque están hasta arriba de trabajo. Y de hacerla tendrían que portar el código a C/C++/java o algún lenguaje multiplataforma. Que no es solo trabajo de portar sino de re-implementar lo que ya les proporciona Cocoa y sin acceso al estupendo XCode (que para progamar en el iPhone es lo mejor que hay, con profiler, simulador, e interface builder). Comercialmente es una inversión poco clara. Es mejor dedicarse a otros temas y dejar que quien quiera programar para el iPhone se compre un OSX.
No me parece mal que Apple controle la App Store y las aplicaciones que entran. Esto deja fuera todas las aplicaciones con fallos evidentes, y que no siguen las guias de comportamiento e interfaz para el iPhone.
La obligación de usar OSX y máquinas Apple es otro tema, pero brevemente: la limitación de opciones de hardware permite a Apple prestar soporte, asegurar un funcionamiento correcto, e introducir cambios libremente en sus sistemas. Es el único que tiene sentido para Apple.
Añadir que siempre puedes hacer jailbreak y modificar el sistema operativo del iPhone o crear aplicaciones libremente, aunque te quedas fuera de la appstore claro.
Hola a todos.
Nuestra idea es que NO se tenga que hacer jailbreak para desarrollar en Java para iPhone. Como dice ibon, "programa en Java, que lo convertimos". Y lo convertimos para un Objective-C + que es 100% compilable por el SDK original (o bien que un gcc modificado) de Apple.
"AppStore compatible", como comento en mi blog.
Saludos,
Hugo José Pinto
Ahá, entendido. Entonces sí que puede haber mercado, todo depende de lo "traducible" que realmente quede la cosa, por que si la traducción es muy fiel, entonces pueden ganarse a la gente que ya sabe Java y no le vale la pena aprender Objective-C si así sale del paso.
Como no se lo compatibles ambos lenguajes, ya más no se.
De todas formas, suerte Hugo, veo que sigues con el tema de los móviles :D. Saludos de un colega del SIMagine y el viaje a Singapur/Australia ;)
El iPhone es una basura, es muy caro como para sustituir los telefonos, y muy disfuncional para sustituir una laptop
PD: No tiene 80 MB de ram, en realidad son 128, pero sige siendo una mierda
"es una basura" hala! que capacidad analitica! xD. Tiene unos 76Mb disponibles para el usuario según host_statistics(). iPhone no es caro comparado con telefonos similares (n95 8g=475€). No tiene sentido comparar un telefono con un laptop.
Ummm... las comparaciones son odiosas, y resulta "atrevido" (por la que te puede caer) criticar al iPhone en algún sentido... Pero es que no se puede decir que el iPhone no resulte caro (comparado con otros "teléfonos"), por lo menos en España.
Estoy muy de acuerdo con una opinión publicada en xataka: http://www.xataka.com/2008/07/14-iphone , en la que precisamente lo que se dice es que el iPhone es el mejor MID (Mobile Internet Device) que se ha inventado y como complemento, se puede usar como teléfono.
Pero, por la propia originalidad del iPhone, y sus propias carencias, cualquier comparación resultará odiosa. Solo quiero decir que en España resulta caro (aún comparándolo con otros teléfonos) se mire como se mire. Para algunos merecerá la pena y para otros no. Pero barato no es.
Salu2
Sera el mejor MID pero esta verde: su estabilidad (como usuario final) deja mucho que desear, pese al control de Apple: el paso del firmware 2.0.1 a 2.0.2 (corregir el uso 3G) es un auntentico dolor con o sin jailbreak (supongo que quedan dias para otro update ...).
2.0.2 corrige el problema con 3G según AT&T:
http://www.dailytech.com/Report+ATT+Source+Explains+Exact+Technical+Details+of+iPhone+3G+Probems/article12797.htm
En resumen el iPhone pedía más potencia de lo normal, lo que agotaba la capacidad de la celda en la que estaban. Ocurre sobre todo en areas con mucho tráfico. No se arreglará hasta que la mayoría de usuarios instalen el parche 2.0.2.
Quiza todo esto era un intento de Apple por ahorrar energía al amplificar la señal y pasaba a GSM en cuanto notaba una señal baja. Si lo hubieran lanzado primero en una ciudad concurrida habrían notado antes el problema.
El paso al parche 2.0.2 no es especialmente problematico (que yo sepa). Si interrumpes el backup del firmware se pueden corromper ficheros (no debería permitirse esta opción en software). El cierre inesperado de aplicaciones puede deberse a problemas de memoria o ficheros corruptos. Hay gente con problemas que persisten tras varios restores pero no se sabe cuanta o porque. Los foros suelen ser bastante subjetivos.
Si el iPhone es caro o no, depende de si realmente necesitas el contrato con el que te lo venden.
Con 2.0.2 el iphone se vuelve mas lento (aunque no se si tanto como en la 2.0). Por ahi lei que Apple recomienda minimizar el numero de aplicaciones instaladas. Hay serios problemas de estabilidad. El razonamiento mas plausible que he leido de la inestabilidad del iPhone es corrupcion de plists. Otros recomiendan solo instalar aplicaciones y updates desde iTunes (minimiza el riesgo de instalar aplicaciones corrompidas). Parece que el sandboxing no es "perfecto". Una vez una aplicacion hace crash, normalmente todas las aplicaciones excepto las originales quedan inutilizadas (desactivadas?). A partir de aqui las horas que puedes perder para recuperarlo son innumerables: reset, remove data, synch with iTunes, reset to factory, restore ... Y ya tenemos la "white apple of death": cuando el touch/iphone decide que no va a arrancar: salir de aqui cuesta unas cuantas horas, sobre todo si iTunes decide que tu aparato no es accesible:
MobileDevice: AMDeviceConnect: Could not connect to lockdown port
MobileDevice: send_message: Could not send message size: Bad file descriptor
2008-09-01 21:57:06.174 AppleMobileDeviceHelper[29290] exception while performing selector allClients on server: NSInvalidSendPortException [NSMachPort sendBeforeDate:] destination port invalid
MobileDevice: AMDeviceCopyValue: There was an error getting the value from lockdown
Could not receive size of messageMobileDevice: receive_message: Could not receive size of message: 0 Unknown error: 0
MobileDevice: _read_callback: Could not receive message
Algunos al menos son divertidos (SW):
MobileDevice: AMDeviceConnect: This is not the droid you're looking for. Move along, move along.
Vamos que 2.0(.x) es de mirame y no me toques mucho (por ahora):
http://www.macworld.com/article/134923/2008/08/iphonedebug.html
http://www.macworld.com/article/135025/2008/08/iphone2.html
http://www.twelvepin.com/twelvepin/apps.html
Y por si alguien sigue dudando:
http://discussions.apple.com/thread.jspa?threadID=1600894&tstart=15
Y pensar que he pagado 8 euros por ser betatester ... Al menos mi Nokia funciona :)
Entiendo que el mensaje "oficial" de Apple sea buen uso de la red 3G y seguridad, pero la plataforma, hoy por hoy, es de mirame y no me toques ...
Un fenomeno común en los foros de soporte es hablar de un problema como si fuera universal. Sin duda hay telefonos con problemas, pero no veo motivo para creer que es generalizado. Conste que ignoro a cuanta gente le ocurre, pero hablamos de millones de usuarios y multitud de weblogs dedicados, y solo puedo decir que la impresión general que tengo es que los problemas no son universales.
Como ejemplo has posteado 2 enlaces de un mismo editor de macworld, una aplicación para desactivar los backups (que antes eran lentos) y un hilo de discusión en apple. Si visitas cq. weblog por tag iPhone (engadget, tuaw, ibrico.es, etc.) veras que ni siquiera se menciona.
Y sí, es decepcionante que para mucha gente el sistema operativo no este respondiendo como debe. Probablemente hay alguna combinación de factores que desbarata el sistema.
"Pero, por la propia originalidad del iPhone, y sus propias carencias, cualquier comparación resultará odiosa. Solo quiero decir que en España resulta caro (aún comparándolo con otros teléfonos) se mire como se mire. Para algunos merecerá la pena y para otros no. Pero barato no es."
Comparandolo con otros telefono equivalentes el precio del mismo es parecido. Quien tiene un telefono de gama alta suele dejarse pasta en llamadas o internet, y el iphone con contratos de 40 euros mensuales tiene el mismo precio que telefonos de similares caracteristicas. Caro no es.
Por otro lado, la idea me parece mala de base, y ademas con toda seguridad va a acabar en un batacazo empresarial. Es mala, porque iphone utiliza un tonel de APIs propias Cocoa, UIKit, CoreGraphics, CoreQuartz... lo que requiere tener un monton de wrappers sobre un lenguaje (Obj-C)con una filosofia diferente a la de Jav. Mantenerles actualizados, minimamente documentados, etc... Y que dependiendo de que lenguaje generen desde Java, sea objc o c, hay un monton de dificultades a sortear que realmente van a acarrear terribles penalizaciones de rendimiento, en un aparato que tampoco va sobrado. Especialmente dramática será la gestión de memoria. En la versión de objc soportado por el iphone, no hay garbage collector, asi que le gestión se hace mediante conteo de referencias. Con lo que requerirá un runtime que se encargue de la gestión. Eso o introducir la gestión manual en el SDK.
Sera un terrible batacazo empresarial porque el boom de desarrollo sobre iphone ya se ha producido. Es decir, hay multitud de empresas y equipos de desarrollo que ya han sacado aplicaciones o están acostumbrados ya al desarrollo en XCode para iphone. Luego el mercado potencial queda muy reducido. ¿Porque emplear una herramienta que seguro será incompleta durante mucho tiempo, que generara aplicaciones mas lentas, pudiendo usar el relativamente bien documentado SDK de Apple? Y más teniendo ya a gente formada en el. Que no olvidemos permite realizar gran parte de la programación en C o C++, con lo que la rareza de objc queda mas compensada.
Veremos el dia 9 que tal va iTunes 8, porque creo que parte de la culpa es de iTunes ...
Evidentemente no tengo ninguna patente de "universalidad", pero puedo demostrar con logs que hay problemas. Tu puedes decir que mis problemas no son significativos y yo puedo contestarte que si son significativos para mi y puedo demostrarte con links que no estoy solo. Es muy significativo que Macworld publique esos articulos, diria que es historico ... No estamos hablando de un blog de unos colegitas ...
Algunos recomiendan volver a iTunes 7.7 (downgrade desde 7.7.1)
http://mike952.wordpress.com/2008/08/23/itunes-770-and-iphone-202-results/
(por cierto el anonimo quejica soy yo siempre, no es que seamos una multitud) ...
Osea que el iPhone es barato, los bugs existentes no existen, y para qué un proyecto de programar en Java cuando el Obj-C es infinitamente mejor...
¿Steve Jobs sabe castellano? :-D
Escribe tu comentario