La idea de ejecutar aplicaciones de iPad bajo Mac OS X

Dave Winer especula:

El software que compremos en la versión para Mac del App Store será el mismo software que funciona en el iPad y el iPhone.

Dicho de otro modo, están enseñándoles a los programadores, de forma privada, a escribir software de iPad para un iPad con teclado. O dicho de otro modo, el MacBook Air.

Rene Ritchie incluso se pregunta si esto es lo que está ocurriendo esta semana en la reunión privada de programadores de iOS que se está celebrando en Cupertino (no es así — se trata de unas sesiones sobre Game Center).

No hay duda de que iOS es donde se encuentra el jugo para los programadores. No sólo el jugo para los programadores de Apple, sino el de la industria en general. Es la plataforma más activa del mundo, y punto. Y creo firmemente que Apple ve el próximo Mac App Store como una oportunidad de atraer a programadores de iOS que nunca han creado aplicaciones para el Mac. Pero no creo que las aplicaciones de iPad vayan jamás a funcionar en el Mac tal cual, sin ningún cambio o adaptación que requieren los distintos interfaces y métodos de entrada. No se trata de generar código para ARM o x86, ni de plataformas de desarrollo. Se trata de que la manipulación directa de una pantalla táctil es fundamentalmente distinta de mover un cursor de ratón mediante un touchpad (y en menor medida: las aplicaciones de iPad asumen que van a funcionar a pantalla completa en una pantalla de 9,7 pulgadas y 1024?×?768 píxeles. ¿Qué ocurre en el escenario que plantea Winer cuando abres una aplicación de iPad en un iMac de 27 pulgadas?).

Puedo demostrar, prácticamente, que las aplicaciones de iPad no van a funcionar en el Mac como opción de serie. Las aplicaciones de iOS  que funcionan sobre Mac OS X, actualmente, en el emulador de iPhone/iPad que viene incluido en el kit de desarrollo de iOS. Resulta que no son muy cómodas de usar en un Mac. Los gestos que resultan naturales y agradables en un interfaz táctil resultan extraños y aparatosos usando un ratón o un touchpad. Nunca he escuchado a un programador de iPad — que ejecutan sus propias aplicaciones de iOS en sus Macs durante la fase de desarrollo, para realizar pruebas y eliminar fallos — decir que le gustaría poder vender sus aplicaciones tal cual a los usuarios de Mac. ¿Alguna vez habéis probado un juego como Pac-Man en el iPhone? Un juego diseñado desde el principio para usar un joystick o unos cursores de hardware no resulta demasiado bueno en un dispositivo sin joystick. Eso pasa con todas las aplicaciones de iOS al ejecutarlas en un Mac (y de forma parecida, los juegos de éxito para iOS como Angry Birds tienden a poseer controles que sólo tienen sentido en una pantalla táctil).

Dicho esto, antes de la presentación oficial del iPad, acerté con mi predicción de que el iPad (o, como lo llamé entonces, El Tablet) sólo podría ejecutar aplicaciones creadaes específicamente para el iPad — aplicaciones programadas con las mismas APIs y plataformas que las aplicaciones del iPhone, pero optimizadas para una pantalla del tamaño de un tablet. Me equivoqué sobre esto — el iPad permite la ejecución de aplicaciones de iPhone. Pero quienes tienen un iPad saben que es horrible usar en el iPad aplicaciones de iPhone no optimizadas para el iPad. Personalmente no uso ninguna de ellas. Sigo pensando que el motivo por el que Apple permitió que aplicaciones de iPhone pudieran ejecutarse en el iPad fue simplemente para asegurarse de que hubiera miles de aplicaciones disponibles desde el primer día, fueran o no ideales. El Mac no sufre este problema (no me sorprendería que con el tiempo no se puedan utilizar en el iPad aplicaciones de iPhone no optimizadas para el iPad).

Para resumir, creo que la idea básica planteada por Winder es correcta, en tanto que Apple pretende hacer que Mac OS X se parezca más al iPad, y que podrían estar investigando maneras de conseguir que el desarrollo de aplicaciones para Mac se parezca más al desarrollo de aplicaciones para iOS. Pero se equivoca en el modo exacto en que esto podría tener lugar. No puede ser y no será tan fácil como simplemente permitir que las aplicaciones de iPad se ejecuten en el Mac.

Creo que sería más como la relación que las aplicaciones nativas para iPad tienen con las aplicaciones para iPhone, si bien son diferentes. En Cocoa, las aplicaciones para Mac se basan en la plataforma AppKit — y AppKit se remonta a las pataformas originales de NeXT de finales de la década de 1980. Con el iPhone, Apple sustituyó AppKit con UIKit. Estoy lejos (muy lejos) de ser un experto en Cocoa, pero sé lo suficiente para decir que UIKit se diferencia de AppKit en más aspectos que simplemente las diferencias entre cursores de ratón y pantallas táctiles. UIKit es en ciertas maneras como partir de cero — y un sucesor de AppKit creado con la idea de “si pudiéramos hacerlo todo de nuevo, haríamos unas cuantas cosas de modo distinto”. ¿Puedo imaginar que aplicaciones de iPad se ejecuten tal y como las conocemos hoy en día Mac OS X? No. ¿Puedo imaginar una variante futura de UIKit para el Mac, que acabe dando aplicaciones nativas para Mac que por sí mismas se parezcan más a iOS? Sí1. De todos modos son sólo conjeturas sobre el futuro. El Mac App Store que tiene previsto su lanzamiento dentro de unos dos meses va a estrenarse sin otra cosa que aplicaciones de Mac creadas con nuestro viejo conocido, AppKit.

El sentido del éxito de Apple con iOS ha sido el contrario de “programar una vez, ejecutar en cualquier parte”. Es más como “programar una versión optimizada específicamente para este dispositivo concreto”.


  1. Lo mismo se aplica a posibles aplicaciones futuras para el Apple TV basadas en UIKit.