viernes, marzo 27, 2009

Desarrollando para iPhone siendo amigo de Bill (Capítulo I)

Hace un tiempo un amigo compró un iPhone. Hasta ese momento siempre lo había visto de lejos como un gadget muy geek de los que nos tiene acostumbrado Apple, pero cuando me puse a jugar con él, me di cuenta que la velocidad de respuesta y lo amigable de la interfase era muuuuy superior a lo que yo estaba acostumbrado.
Me interesó la posibilidad de meter dedos en ese teléfono al igual que lo hago con los que tienen Windows Mobile... pero enseguida me di cuenta que el sistema operativo no es tan abierto como es el de Microsoft y que en verdad no podía hacer mucha cosa! (nada, digamos)

"Podés bajar aplicaciones del Apple Store" se escuchó por ahi... 
El Apple Store es un repositorio de aplicaciones para iPhone/iPod que hoy cuenta con más de 20.000 aplicaciones creadas por desarrolladores independientes (o empresas que no son Apple), las cuales, luego de pasar por un estricto proceso de aprobación por parte de Apple, pueden ser descargadas desde el teléfono gratuitamente o pagando unos pocos dólares (o centavos).
Entre estas aplicaciones se encuentran algunas sorprendentes y otras que no se entiende para qué sirven...
La cosa es que si Apple aprueba una aplicación, la misma pasa instantaneamente a estar disponible para millones de usuarios ... nada mal.

Lo primero que hice fue meter dedos en un html, un poco de javascript y teniendo en cuenta el tamaño de la pantalla hice una pequeña aplicación web que podía ser accedida via el browser del teléfono (Safari) y que "conversaba" con un servidor que le enviaba órdenes a través de webservices.
Muy lindo, pero me hice trampa...  no es una aplicación iPhone.. es una aplicación web que se puede ejecutar en cualquier browser de cualquier aparato que tenga uno (pc, telefono, psp, ps2, etc).
Y obviamente no es una aplicación que califique para estar en el Apple Store.

Entonces... si quiero hacer una aplicación nativa iPhone de verdad.. por dónde arranco?
"Hola Mundo(Mac)" era lo que me sonaba en la cabeza... quiero hacer el clásico Hola Mundo y que se vea en el iPhone.. cómo hago??

La verdad, no tenía idea ni siquiera que lenguaje de programación utilizar, ni si habia un SDK, ni nada, por lo que empecé por las básicas, entre al iPhone Developer Center en el sitio de Apple a llenarme de conocimientos. Lo primero que me llamó la atención fue un cartelito: "Tienes que tener el Mac Leopard 10.5.5 o superior para poder ejecutar el SDK de iPhone". A la pelota!!.. tengo que tener una mac?? no hay un sdk para Windows?? ... no, no hay.

No conozco a nadie que tenga una Mac en mi entorno (en general las Mac se asocian con diseñadores gráficos y personas no-gamers... no tengo a nadie asi cerca :) ).
Bue... ya veremos que hacemos con este tema pensé ... asi que fui a la sección de videos, los típicos del "gettting started"... y para mi sorpresa, tampoco los podia ver!! Me decia que tenia que tener iTunes instalado (cosa que tengo).. cuando intentaba bajar el link para abrirlo directamente en iTunes, me decia que no tenia un SO de Mac!

Ufff... Steve, me la estás complicando!!

Que hago entonces? ... bue... leo algún PDF..
Cualquier programador, que ya haya programado en algún lenguaje, te puede llegar a leer 4 páginas seguidas antes de empezar a sufrir el síndorme de abstinencia de teclado. Si no podés ni probar los ejemplos, es muy aburrido seguir leyendo un documento que te explica cosas que venís viendo desde la facultad.

Pero al menos me sirvió para enterarme de algunos detalles sobre los sistemas operativos Mac y la estructura de sus frameworks, su COCOA ... y que el lenguaje de programación que tendría que aprender era Objective-C (un lenguaje orientado a objetos parecido a todos, pero muy diferente... fuertemente tipado como le gustan a Marcos! ).

Bien. Luego de un tiempito leyendo los documentos, empecé a perder interés. Sabía que necesitaba una Mac... pero qué hacía? me compraba una Mac para probar un SDK??? ni loco.... me gastaba esa plata en cerveza??? mmmm....  o... agarraba mi PC que uso bien poco y la transformaba en una Mac ???

La última opción fue la que escogí, y luego de un par horas en internet y unos dólares invertidos para cambiar algún perfiférico no compatible (tarjeta de red, sonido), tenía una Mac corriendo en mi PC con el Leopard 10.5.2. Mi propia Hackintosh de aproximadamente U$S 250.



Casi casi, estaba muy cerca de poder desarrollar mi "Hola Mundo" ... 
La historia de cómo instalé el Leopard, cómo lo actualicé a la última versión y mi "Hola Mundo" en el iPhone, se vienen en el próximo capítulo!

5 comments:

Marcos Crispino dijo...

Que grande! (por mencinarme en el post, no por lo de la hackintosh...)

¿No probaste instalar en una máquina virtual? Ni idea si se puede, pero creo que yo hubiese empezado por ahí.

Fabi dijo...

Es cierto, me olvidé de comentar ese paso!! Lo primero que probé fue una virtual en mi notebook. Le di 2gb de RAM. No me fue nada bien, leeeento, pantallas azules a cada rato (en mi notebook, no solo en la VM). De ahi fue que investigué un poco y no todo hardware sirve, comenzando con el procesador que tiene que ser un Intel SS3.
En la VM no logré conectarme a la red / internet y tampoco logré hacer andar el sonido.
Pero lo que me mató fue la lentitud desesperante.
El PC en el cual está ahora tiene solo 1gb de RAM y anda volando.

1000ton dijo...

Amigo de Bill, muy bueno el post y la idea.

Estaría bueno que por lo menos escondas los cables para la foto, para estar a tono también con la linda estética de las Mac...

Ahora, explicame esta parte del post porque te juro que no la entiendo:

"el sistema operativo no es tan abierto como es el de Microsoft"

¿¿¿¿¿EL QUÉÉÉÉ????? ¿Pero te tomaste una antes de escribirlo? ¿O tenés negocios ocultos con tu amigo Bill?

Un abrazo, ¡y hasta la próxima entrada!

Fabi dijo...

Una PC sin cables no es una PC (al menos no se ve la silla donde esta apollado el gabiente para la foto).
Querido amigo Milton... lo que pasa que vos sos un "no-clicker" de alma!! de esos que para leer un dvd arrancan con "mount -d dvd+r /dev/logica/ .... ".
De todas formas con "abierto" no me refería al código, sino a la posibilidad de tunearlo y hasta hacerlo pelota... este de iPhone no tiene mucho para customizar o al menos no a simple vista.
Lei tu post del Acer nuevo... no queres meterle un Leopard ?? :)
Un abrazo

Milton dijo...

Me diste una buena idea.
Cuando me den las b... Bueno, cuando me de el tiempo, pruebo, consultando tu experiencia antes.
Un abrazo.