enlaces 11.diciembre.2010

Enlaces relacionados con software Mac y programación Cocoa:

  • Mac.AppStorm es un sitio dedicado a hacer revisiones de software para Mac. Además de las revisiones de aplicaciones ofrece artículos de opinión, entrevistas a desarrolladores, y las reuniones de aplicaciones, que son comparativas o selecciones de aplicaciones. Un buen sitio para conocer el mejor software para Mac y estar informado de las novedades de aplicaciones.
  • 365Cocoa es un blog que ofrece trozos de código de Cocoa, uno por día durante un año. Los publica Pieter Omvlee que es el programador de Bohemian Coding, el creador de programas como Sketch y Drawit. Por cierto que a Pieter es uno de los programadores entrevistados en Mac.AppStorm.
  • Pure Reader es un plugin para Safari y otros navegadores que cambia el aspecto de Google Reader y lo convierte en un clon del programa Reeder. ¡ Hay que ver lo que se puede hacer con las CSS y un poco de imaginación !

novedades sobre cocoa en castellano

Uno de los problemas que he encontrado cada vez que he intentado aprender Cocoa ha sido la falta de referencias en castellano sobre el entorno de programación. Durante los últimos meses el panorama ha cambiado sustancialmente, tal como explico a continuación.

mu00277101En primer lugar, la editorial Anaya Multimedia ha publicado un par de libros de programación en entornos Apple. El primero es la traducción del famoso Cocoa Programming for Mac OS X, también conocido como el libro de la vespa, y que en español se titula Programación Mac OS X. El otro libro publicado es Desarrollo de aplicaciones para iPhone, que es la traducción de Teach Yourself iPhone Application Development in 24 Hours de la editorial Sams.

Además están apareciendo blogs e iniciativas muy interesantes relacionadas con Cocoa en castellano. El primer blog que encontré fue Hola mundo iphone. Está dedicado a programación para iphone, pero hay artículos muy interesante sobre Objective-C y Xcode. Es una pena que últimamente no se actualice con el ritmo anterior, pero tiene un montón de artículos para leer.

El siguiente blog que encontré fue Matching Brackets que a su vez me llevó a 85{480d580d36768405d93963bdd82c570c8132a231e8d2b870ef0b18322d1f72b2} Cocoa que es otro blog del mismo programador, y donde publica podcast en castellano sobre Cocoa. Los podcast son realmente buenos, y es un lujo tener algo así disponible en castellano. No tratan únicamente de Cocoa, sino que también hay charlas entre desarrolladores y es tremendamente interesante conocer de primera mano la opinión de gente que está metida en el negocio.

Precisamente el autor de 85{480d580d36768405d93963bdd82c570c8132a231e8d2b870ef0b18322d1f72b2} Cocoa es uno de los responsables del lanzamiento de NSCodeCenter que es un sitio de preguntas y respuestas al estilo StackOverflow pero sobre programación OS X. Es realmente importante la existencia de un sitio así, pues en los pocos días que lleva en funcionamiento está dando visibilidad a muchas gente que programa en Mac OS X y está creando una comunidad de programadores cocoa en español, que era algo que realmente yo echaba en falta.

abandonar la zona de confort

Durante los últimos 15 años mi zona de confort ha estado delimitada por el uso de sistemas operativos Windows y desarrollo de programas con xHarbour y FWH. Con este par de lenguajes he sido capaz de hacer programación de escritorio en entornos Windows y me he sentido muy cómodo con ellos. Han servido para mi propósito al crear primero jsnsoftware y luego alanit, que era vender software de acuerdo a la modalidad de distribución conocida como shareware. La aventura ha sido muy satisfactoria a nivel personal, pues me ha permitido aprender muchas cosas relativas a hacer y vender software empaquetado. Ha sido una de las cosas que he hecho en mi vida de la que estoy más orgulloso.

Hace tres años que compré mi primer Mac. Desde entonces que tengo el gusanillo de programar en OS X, pero siempre han surgido cosas que me han hecho aplazar el aprendizaje. Quizás la más importante haya sido que Windows era mi primer sistema operativo como usuario. Cuando tenía que arrancar el ordenador para hacer alguna cosa, casi siempre arrancaba Windows. Cuando arrancada Mac era para hacer alguna tarea específica que no podía hacer con Windows. Sin embargo, en el último año las tornas han cambiado. Ahora Mac OS X es mi primer sistema operativo, con el que arranco habitualmente el ordenador, y sólo arranco Windows cuando tengo que hacer alguna tarea específica que no puedo hacer con Mac OS X. Sin embargo el cambio no es completo, me falta precisamente lo que más me gusta hacer con un ordenador: programar.

Así que he decidido retomar el empeño de aprender Cocoa y hacer software para Mac OS X. Esto supone definitivamente abandonar mi zona de confort y entrar en un terreno totalmente desconocido para mi. Aunque en verano los niños mandan, quiero dedicarme a leer el libro de la vespa cuando tenga un ratito, teniendo presente una frase del prólogo del libro que me ha encantado: Antes de continuar, te aseguro que no eres tonto y que simplemente algunas cosas son difíciles. Armado con esta simple afirmación y la cabeza descansada, estás listo para aprender Cocoa.

become an xcoder en español

xcoderHace unos días visité la web de Cocoalab y vi que el libro Become an Xcoder estaba traducido a español. Debido a mi renovado interés en Cocoa, me tomé la molestia de preparar un PDF del libro para poderlo imprimir y leer mas cómodamente. La traducción del libro no la he hecho yo, lo único que he hecho es generar el PDF que dejo para descargar. El libro lo he alojado en Box.net y se puede visualizar en el sitio antes de descargar.

Descargar Conviertete en un Xcoder

de nuevo interesado en cocoa

Pese a que en mi trabajo de día vamos de cabeza a programar en Java, sigo dándole vueltas al tema de aprender Cocoa. Las aplicaciones hechas en Java para entornos Mac OS X muchas veces dejan mucho que desear, sobre todo en el aspecto de interfaz de usuario. Además, desde que Apple contrató al desarrollador de los macwidgets su blog está prácticamente muerto lo cual hace presagiar un negro futuro al proyecto.

Además Apple va tomando posturas de fuerza respecto al desarrollo para la plataforma iPhone, que es la misma que se usa para el iPad. Un par de lecturas interesantes sobre el tema están en Daring Fireball en español, en concreto El nuevo acuerdo para los desarrolladores del iPhone prohibe el uso del compilador de Adobe que convierte aplicaciones de Flash al iPhone y Por qué ha cambiado Apple la sección 3.3.1 del acuerdo de desarrollo para el iPhone. Lo que se dice en estos post es que Apple va cerrando puertas a que sus dispositivos se programen con entorno de desarrollo de otras empresas. Impide el uso de compiladores cruzados, que primero desarrollen la aplicación en un entorno distinto y luego compilen para los dispositivos de Apple usando sus SDK y librerías. Es una postura muy radical pero, como dice Daring Fireball, lo que tiene claro Apple es que no va a permitir que nadie le marque el ritmo en el desarrollo de sus dispositivos.

apple design awards 2009

Desde hace varios años, Apple organiza un congreso mundial de desarrolladores conocido como WWDC, y en el marco de este congreso otorga los los premios a los mejores programas para su entorno, los llamados Apple Design Awards o simplemente ADA. Estos premios se otorgan a las aplicaciones que destacan tanto por su excelencia técnica, su integración en el entorno Mac y su carácter innovador. Las aplicaciones premiadas sirven para hacerse una idea del nivel del software existente en el mundo Mac, donde se consigue aunar funcionalidad y elegancia muchísimo más que en cualquier otro entorno. Este año las aplicaciones premiadas, en la categoría de aplicaciones para Leopard, han sido las siguientes:

  • Billings: una aplicación de facturación para profesionales y medianas empresas.
  • BoinxTV: un estudio de televisión dentro de un Mac, y que fue una de las aplicaciones del último MacHeist.
  • Things: la aplicación GTD de referencia en entorno Mac.
  • Versions: un cliente standalone para Subversion.
  • Fontcase: una aplicación de gestión de fuentes tipográficas con un espléndido interfaz.

Basta hacer una visita a cualquiera de las web de estas aplicaciones para hacerse una idea de cómo las gastan los programadores Mac.

programar en OS X

Desde que tengo mi iMac estoy mirando por la web la manera de hacer software para OS X. Cuando se habla de programación para este entorno lo primero que surge es Xcode, el entorno de desarrollo de Apple específico para OS X. El entorno completo viene incluido en la licencia de OS X, y hay un montón de información en la web de Apple sobre el paquete. Además se puede encontrar mucha información en otras web. A nivel de iniciación, yo estoy siguiendo dos tutoriales para novatos: Become an Xcoder y Xcode quick tour guide. Programar con Objective-C da un poco de respeto, pero hay que hacerse la idea de al menos conocer la herramienta.

La segunda opción de herramienta de desarrollo que estoy valorando es REALbasic. Se trata de un entorno de desarrollo multiplataforma – Windows, Linux, OS X – basado en una extensión de Basic. Es una herramienta comercial, con una completa documentación y unos foros de soporte bastante moviditos. La versión estandar, que es la básica, trabaja con una base de datos derivada de SQlite y hay disponible una clase para trabajar con archivos DBF lo cual me puede venir muy bien a la hora de incorporar datos de mis programas.

Una tercera opción que quiero evaluar es Python con wxWidgets. Ahora mismo estoy buscando información sobre este entorno de desarrollo, pero lo que he visto me gusta.

De Xcode tengo claro que tengo que aprender un poco, al menos para ver de que va. Entre REALbasic y Python/wxWidgets me gusta del primero que parece un entorno estable y cuenta con respaldo empresarial, del segundo que es open source. Los inconvenientes que veo a cada uno son los derivados del tipo de licencia. REALbasic es de pago y libera versiones cada 3 meses, lo cual no me gusta pues empaquetan cada vez el producto tal cual está, y no se trazan objetivos para cada versión. De Python/wxWidgets no me gusta la dispersión inherente al open source y el tener que ir rebuscando para ver si encuentras una funcionalidad y una documentación adecuada.