El otro día estuve echando un vistazo al panorama de desarrollo de aplicaciones del iPhone. Al parecer, existe un conjunto de utilidades para Mac OS X que te permite programar aplicaciones para el iPhone.
Entre estas utilidades podemos encontrar un compilador que te permite hacer compilación cruzada, un conjunto de headers para poder crear aplicaciones que utilicen su framework y un emulador para poder testear las aplicaciones sin tener que subir los cambios a un iPhone cada vez que quieras probar tu código.
Ya sea por aburrimiento o por ganas de aprender algo nuevo, me he propuesto hacer algun proyecto chorra en ese framework. Lamentablemente, el primer problema con el que me encontrado es que tengo que disponer de un ordenador Mac con OS X 10.5.3 (mínimo). Pero bueno, no pasa nada. Esto es muy propio de los sistemas cerrados.
Hasta hace poco, los Macs que había probado habían sido los de amigos, los de las Apple Stores, etc. Sí, son bonitos y tal... se pueden usar, sí... Son cerrados...
Gracias a Darwin, en mi empresa compraron recientemente un MacBook y pude "trabajar" realmente sobre uno de ellos. Mi experiencia: una gran mierda.
- El teclado es parecido al QWERTY, pero no es QWERTY. Los símbolos no están donde toca. A la hora de programar, molesta bastante. ¿Que me acostumbre? ¿Por qué? ¿Por que es más cool ser diferente? ¿Es más cool tener que cambiar de esquema mental cada vez que cojas un PC diferente?
- Los atajos de teclado básicos: no entiendo a quien se le pudo ocurrir la idea de que teniendo focalizado un icono en el gestor de archivos, al pulsar la tecla ENTER, se te permitiera renombrar el nombre del icono en vez de abrirlo; el hecho de tener que pulsar dos teclas para usar el PageUp, PageDown, End, Home... Si quieres usar estos últimos en conjunción con la tecla "shift" para seleccionar texto (algo que uso muy a menudo a la hora de programar), sufrirás una parálisis temporal en la mano derecha.
- El hecho de no poder maximizar una ventana me molesta bastante. Aquí parece que la filosofía es "la aplicación decide lo que el usuario quiere ver, y el espacio que necesita para verlo". Por culpa de esta genial idea, me encuentro con el siguiente problema:
- Abro Safari (se me abre google.es).
- Pulso "maximizar" y la ventana no se maximiza, sino que se ajusta al contenido de la web.
- Busco algo en google.
- Ahora el contenido de google no se ve bien, vuelvo a pulsar "maximizar" y se vuelve a ajustar.
- Hago click sobre un enlace cualquiera.
- La nueva web no cabe en la ventana, por lo que vuelvo a pulsar "maximizar" y se vuelve a ajustar.
- Me canso de todo y pienso que no debería desperdiciar mi preciado tiempo pulsando un mismo botón mil veces y apago la máquina.
- El "mazanita" + tab no cambia el foco en las ventanas. Lo cambia en las aplicaciones. Si tienes dos terminales abiertas, debes pulsar "manzanita" + "otra movida que no recuerdo".
- Etcétera.
Este gran cúmulo de gilipolleces me sacan bastante de quicio. En el momento que el usuario es más rápido que la máquina, es porque algo falla.
Pero bueno, dejando de lado la ineptitud de los que idearon el sistema, hablemos de mi odisea.
Para empezar, me fijé que existía una imagen para VMWare con el sistema operativo Mac OS X 10.5.2 creada por un tal
~pcwiz, así que me dispuse a instalarla. El torrent se llamaba "~pcwiz's VMware Leopard Image". Se puede encontrar por
mininova o por
thepiratebay.
Una vez iniciado sobre mi VMWare en GNU/Linux, veo que todo va muuuy leeentooo. Tan lento que me cuesta como 5 minutos arrancar el sistema operativo. Pero dejo estos detalles aparte, ya que no aportan nada al hilo principal (acabé usando VMWare sobre Windows, donde al parecer, multiplica la velocidad considerablemente).
Si habeis tenido algún problema, podeis mirar
el hilo oficial de ~pcwiz e intentar buscar respuestas.
Nota:
Si no os funciona la red, explico la solución:
- Configurar la red en modo "Bridged"
- Después de cada reinicio del OS X, abrir las preferencias del sistema.
- Ir al apartado "Network".
- Borrar todas las interfaces ethernet que tengais.
- Crear una nueva ethernet, poner su nombre y pulsar aceptar.
- La dejamos tal y como está (en modo DHCP) y pulsamos "Apply".
- La ventana seguirá diciendo que el cable está desconectado, pero no pasa nada.
- Cerramos las preferencias y probamos a abrir el Safari.
Bien, una vez llegados a este punto, vereis que tenemos un Mac OS X 10.5.2, donde el SDK del iPhone es imposible de instalar. Para ello necesitamos Mac OS X 10.5.3 (mínimo).
- Primera regla del club de las amigas: intenta no actualizar nada si no es imprescindible.
- Segunda regla del club de las amigas: ten siempre a mano un backup de la imagen de ~pcwiz.
- Tercera regla del club de las amigas: no uses nunca el Apple Software Updater.
Para actualizar a Mac OS X 10.5.5 sin morir en el intento, se puede seguir
este tutorial. En resumen, es lo siguiente:
- Descargar e instalar el Pacifist.
- Descargar y no instalar el update de Apple a 10.5.5.
- Abrir un terminal y convertirse en root usando "sudo -s". El password es "pcwiz".
- Abrir un terminal y dejar ejecutándose el siguiente comando: while sleep 1; do rm -fR /System/Library/Extensions/AppleIntelCPUPowerManagement.kext; done
- Ejecutar el Pacifist y abrir con dicho programa el update que nos hemos descargado antes.
- Navegar por los directorios e instalar solo el System/Library/CoreServices.
- Voilà, ya tenemos 10.5.5.
Si reiniciamos puede ser que no llegue a arrancar nunca (se queda en la pantalla blanca con la manzana y la animación de debajo dando vueltas indefenidamente, sin dar ningún error), pero no pasa nada. Hacemos un reset y en teoría tendría que arrancar.
En el próximo post quizás comentaré mis primeros pasos con el SDK del iPhone y haré un mini hello world.
PD: No, no se puede instalar sobre VirtualBox ya que no soporta PAE.
PD2: Desde aquí doy las gracias a
bad, por aguantarme durante todo el proceso y ayudarme en lo que ha podido... Sí, tiene las tablas del MySQL corruptas, pero dejadlo. Es feliz así :P