Objetive-C for Dummies

Hoy me llegado ya el libro de Objetive-C for Dummies que he comprado en Amazon UK. La verdad es que no tenía intención de comprarlo (aun), pero como ya me había comprado el libro iPhone Development for Dummies, Amazon me envió una oferta de un 40% de descuento al que no me pude resistir.
Lo cierto es que el libro de iPhone Development for Dummies está muy bien redactado y lleno de ejemplos claros, ya llevo del orden de una tercera parte del libro y no se si acabaré publicando alguna aplicación, pero por lo menos me habré divertido un rato hasta que me dedique a otra cosa.
El autor de Objetive-C for Dummies es el mismo que el del libro anterior, con lo que eso ya era una garantía, porque hay algunos libros que son auténticos ladrillos con carencias pedagógicas abrumadoras, y en este caso - quizás por que el target somos dummies
- Neal Golstein tiene facilidad para enseñar.
Si entre tus inquietudes está programar para el iPhone, estos libros son un must, y además son baratos.
Por si alguien se pregunta el porqué de comprar en Amazon UK y no en Amazon USA, la razón es clara, los gastos y tiempo de envío que son muy inferiores desde la filial británica.
Cambio a Movistar, errores nuevos
Desde que tengo líneas de Movistar en mi dos iPhones (2G 1.1.4 y 3GS 3.1.2) me están apareciendo unos mensajes raros en la pantalla del terminal. He googleado y si bien es cierto que le aparece a más clientes de Movistar, nadie tiene una respuesta a los mismos, ni la misma Telefónica de momento... esta entrada no tiene más objetivo que si alguien la encuentra y ha solucionado el problema, me pueda iluminar.
Adios HTC Magic, hola iPhone 3GS
Por fin he vuelto a coger las ganas a escribir en este blog abandonado... y que menos que para despedirme del HTC Magic de Vodafone que tan poco me ha convencido.
Fui de los primeros clientes de Vodafone en tener un HTC Magic (¡de Google y con Android!) el pasado mes de mayo, pero no había pasado más de un mes y ya estaba decepcionado. Desde la falta de usabilidad, aplicaciones pobres en su mayoría (hay excepciones) y los acabados del terminal, fueron los que convencieron a pasarme a Movistar para conseguir el nuevo iPhone 3GS. Y es que el que ha probado un iPhone, como era mi caso desde finales del 2007, se queda enamorado, o por lo menos esa es mi casuística
Al final, por una cuestión de stock - que en Movistar no tienen terminales 3GS de 16Gb - , me decidí por un iPhone 3GS blanco de 32Gb y la verdad es que estoy muy contento con él. El poder volver a usar aplicaciones como Evernote, 1Password, iDisk, Dropbox y otras muchas más, es toda una satisfacción. Incluso he activado el Push de la cuenta MobileMe para sincronizar contactos y calendarios y funciona como tendría que funcionar sin grandes calvarios y comportamientos extraños, nada que ver con la sincronización con Google Contacts u otros. Eso si, la batería se nota como baja, pero para eso están los cargadores
Ya queda menos para mi HTC Magic
La cuenta atrás ya ha empezado, en breve podré disponer de un estupendo Android, el HTC Magic de Vodafone. Lo cierto es que hacía mucho tiempo que no cambiaba de terminal, y eso es desde finales del 2007, cuando conseguí mi iPhone que tantas satisfacciones me ha dado hasta el momento (sino fuera por su limitación de EDGE/GPRS).
Además, como buen geek que me considero, no podía dejar pasar esta oportunidad sin probar un sistema Android. Esto no quita, que cuando salga el nuevo iPhone en Junio, como está previsto, también caiga en la tentación.
Ya veremos, la carne es débil

iPhone AppStore: Los buenos contra los malos, desarrolladores contra los piratas
Los buenos contra los malos, la cierto es que algunos no estarán del todo de acuerdo y posiblemente piensen que sea al revés, que piratear sea un derecho - lo cierto es que con el tiempo he oído todo tipo de opiniones. La cuestión es que hay una facción que se intenta ganar la vida programando y vendiendo sus productos, y otros que intentan usar dichos productos sin soltar un euro si es posible.
No seré yo quien desde aquí lance mensajes moralizantes, porque decir que nunca he usado software pirata sería una falacia. De hecho, no conozco a nadie que nunca haya usado software pirateado. Pero este no es objetivo de esta entrada, entrar en un tema tan controvertido, del que se ha hablado tanto y del que se puede argumentar y desvariar durante días.
El objetivo de esta entrada es comentar el ecosistema que se ha montado entre los que intentan que sus productos no sean pirateados, y los que se dedican a piratearlos, y los métodos que se usan para conseguir cada uno sus objetivos.
El que yo sea un "iPhone Developer WannaBe" (o sea, que me gustaría ser un desarrollar para el iPhone) no cambia nada mi forma de pensar, ni menos la orientación de esta entrada. De hecho, si alguien me pregunta, yo me decanto del lado de los desarrolladores y de los métodos que muchos usan, y de ellos voy a hablar. Lo que no he hecho nunca, ni probablemente haré, es fomentar públicamente la piratería, ni facilitaré como "hacer el mal" con ningún tipo de instrucciones ni similar.
Sin embargo, no oculto que desde un punto de vista totalmente tecnológico, profeso cierta admiración a la innovación y técnicas usadas para conseguir sus propósitos; de hecho, siendo un poco geek diría que algunas son auténticas obras de arte. Y esta admiración va tanto para los que inventan estrategias para evitar sistemas de protección como para los que las implantan.
Entrando en materia, y para evitar duplicar contenido que ya existe - mejor redactado que si yo lo hiciera -, os recomiendo leer una serie de artículos - todos en inglés - específicos que son realmente interesantes:
- El blog de Ben Chatelain, desarrollador de la aplicación Full Screen Web Browser. En su blog narra como ha conseguido detectar las copias piratas y hacerlas funcionar en modo demo ("Cracked copies of Full Screen Web Browser function as demos") incluso aportando estadísticas. Y también al usar este método tan poco punitivo, convertir algunas de esas copias piratas en ventas ("iPhone App Pirates are Purchasing Full Screen").
- iPhoneCrackDetector. Otro blog con toque ácido donde relatan métodos para detectar copias piratas. Ninguna de esas entradas tienen desperdicio. Además, cuenta que está siendo víctima de ataques DDoS contra su sitios webs, a lo que el responde publicando los UDIDs (identificadores únicos de iPhones) de piratas, y dice que tiene miles de ellos. Sobra decir, que esos listados podrían ser publicados o usados con otros fines, para que os hagáis una idea, su equivalente es la famosa lista de morosos del RAI y ASNEF.
- RipDev. Otra empresa que desarrolla soluciones software muy conocidas para iPhones jailbreaked, la última Icy un sustituto del Cydia. Esta gente ha desarrollado un producto tipo SDK que permite proteger aplicaciones, se llama Kali Anti-Piracy, que según ellos está siendo un éxito. En parte debe de ser por la política de precios que tienen.
- "Anti-Bootlegging Measures and the iPhone App Store", artículo del blog de John Gruber que presenta otros puntos de vista muy acertados.
Referencias seguro que hay muchas y más irán surgiendo.
Lo cierto es que la batalla se presenta cuando menos larga e interesante, porque a menos que Apple nos sorprenda en la futura actualización del firmware 3.0, el escenario parece que no va a cambiar mucho.
Y para cerrar esta entrada, si aun os quedan ganas, leed esta otra que escribí hace un tiempo: "Surrealismo en la lista iPhoneSDK".
Desactivación de carpetas en Gmail IMAP
A través de Genbeta, he descubierto como desactivar carpetas de IMAP en la cuenta de Gmail. Algo que llevo esperando desde hace mucho tiempo porque tanto en mi iPhone como en mi iMac, no me quedaba otro remedio que verlas todas.
De esta forma, solo tendremos visibles las carpetas que queramos sincronizar, y por lo tanto bajar la carga de tráfico que por ejemplo, la sincronización de la carpeta Spam suele generar. Esto es un problema crónico en el Mac porque la aplicación Mail no permite seleccionar las carpetas IMAP a sincronizar - ¡o yo aun no he descubierto como hacerlo! -, algo que se puede hacer de forma fácil en cualquier otro cliente del mercado y desde hace años (así es MacOSX).
Los detalles de como personalizar dichas carpetas lo puedes leer en la entrada original del blog Gmail Blog.
Surrealismo en la lista iPhoneSDK
En este mundo hay de todo y se puede ver de todo, como ejemplo recurrente el email que alguien ha enviado a la lista de desarrolladores iPhoneSDK (lista de distribución para programadores de aplicaciones para el Apple iPhone):
The cracked version of Spore: Origins is out! Anyone who wants to host
this app for Cydia should email me at: xxxxx@gmail.com
Please put SPORE ON CYDIA! I know multiple hundreds of people who want
badly, so be kind and help them.
Thanks,
xxxx xxxx
Por una cuestión de no darle publicidad al individuo he ocultado su nombre y dirección de email, pero como os podréis imaginar ha resultado dicho email "sensación" en la lista.
Hay que tener muy poca sensibilidad o luces, para enviar propuestas de piratería a una lista de distribución donde sus integrantes precisamente son los que se intentan ganar la vida vendiendo aplicaciones.
Sin embargo, si que puedo adelantar que ha sido un interesante debate el que se ha generado, porque han salido a luz las distintas facciones típicas en estas soluciones, desde los que apuestan por introducir complejos sistemas antipiratería (que al final solo perjudican en mi opinión al usuario legal) hasta los que apuestan por mejorar el valor añadido de forma continuada en el producto.
Se puede acceder al hilo mediante los archivos de la lista, pero requiere registro previo.
Evernote, cada día más útil
Recientemente, Evernote me ha solucionado un problema al que aun no le había encontrado una fácil solución. En el trabajo y a nivel personal he utilizado durante mucho tiempo las notas del Microsoft Outlook para guardar cualquier tipo de información que me parecía relevante, y que en algún momento podría serme útil. El asunto es que el número de notas almacenadas superaba las 600 y deseaba de alguna forma tener dichas notas en casa y accesibles desde mi iMac (Mac OSX).
Al final he recordado que una pasarela podría ser Evernote, y dicho y hecho, he seleccionado las más de 600 notas, y con un click de ratón he pulsado sobre el botón de "Add to Evernote". Después de un rato, todas esas notas ya estaban sincronizadas en los servidores de Evernote, y accesibles desde mi iPhone, y por lo tanto desde casa.
Me ha gustado tanto la idea, que incluso me he creado una categoria (notebook según la terminología de Evernote) aparte para importar mi repositorio de código fuente. En este caso, he tenido que usar un truco, añadir la extensión .txt a todos los ficheros para que mediante un drag&drop sobre el cliente de Evernote me añadiera los ficheros al repositorio.
Por último, y para terminar, otra de las tareas que suelo encomendar a Evernote es la de guardar páginas web, por si en algún momento desapareciera su contenido. Existen otros servicios Web 2.0 que dan esta funcionalidad, como Furl.net, pero lo cómodo en este caso este tener el máximo de funcionalidades "útiles" integradas.
Evernote me parece una de esas utilidades imprescindibles que cualquiera debería tener, aunque solo sea para hacer copias de seguridad de información relevante. Sobre todo cuando es gratis
Vivir de la iTunes App Store
Estoy subscrito a la lista de distribución de correo electrónico iPhoneSDK de Erica Sadun, que como el nombre indica es una lista orientada a desarrolladores, en la que se tratan temas muy interesantes desde las cuestiones típicas del código, hasta temas relacionados con las vías de promoción de las aplicaciones dentro del marco que Apple ha marcado.
Lo que me ha llamado mucho la atención, es que cuando ha surgido un hilo respecto a la piratería de las aplicaciones de la AppStore y su aparición en torrents de múltiples sites, varios desarrolladores mostraban su natural indignación y preocupación, dado que varios de ellos habían abandonado sus puestos de trabajo para vivir de la venta de aplicaciones en la AppStore. Me he quedado perplejo, es cierto que se han comentado bastantes veces los cheques con cientos (y algunos miles) de dólares que algunos desarrolladores y empresas han recibido en los primeros meses fruto de las ventas, pero de ahí a pensar que esta fuente de ingresos se va a sostener en el tiempo para permitirte vivir de ello, creo que es cuando menos temerario.
No dudo que puede haber aplicaciones fantásticas y que pueden ser "killer apps", pero de ahí a un planteamiento de "programo para el iPhone y vivo de ello" hay una gran diferencia, sobre todo para la gran mayoría de los que lo intenten.
Desde mi forma de verlo, la AppStore ha sido una gran idea, y fruto de ello ha sido el boom de ventas, pero sigo pensando que es una cuestión del time-to-market y del momento, y que en futuros meses el ritmo de ventas se normalizará y a la baja, y no como fue en los primeros meses de aparición del iPhone 2.0.
Gaps de conocimiento y áreas funcionales
Mi tiempo es muy limitado (como el de cualquiera), y entra en contraposición con todos los proyectos y conocimiento que me gustaría desarrollar y adquirir. Es el destino del procrastinador
Desde hace unos meses me pica el gusanillo de programar una aplicación para el iPhone, cuestión que requiere aprender Objetive-C y las APIs específicas de Cocoa, y por otro lado también llevo intento aprender a programar en Python, como alternativa a las soluciones a las que hasta la fecha he usado, siendo éstas PHP para entornos web, y Perl para scripting en general.
Si bien es cierto que me gusta mucho Perl, ya he leído lo suficiente de Python, para reconocer su superioridad, y su amplio espectro de aplicación, sustituyendo totalmente al combo del PHP+Perl (y otros más probablemente).
El problema con el que me encuentro es que a día de hoy ya tengo un "expertise" en PHP y Perl que me va a costar conseguir con Python, y en cierta forma, las áreas funcionales del desarrollo para web y para scripts las tengo cubiertas, por lo tanto, se podría decir que el aprendizaje en Python es opcional, y una mejora.
Por otro lado, en el área de desarrollo para iPhone - y casi por similitud en Mac OSX - no tengo ni la base mínima.
Entonces, pensando en un esquema de un árbol de soluciones o áreas funcionales, que tienen que ser cubiertas con distintos "approachs", aunque éstos no sean los más apropiados u óptimas, me he autoconvencido para postergar mi aprendizaje de Python y enfocar los esfuerzos a Objetive-C y Cocoa.
De esta forma, dentro del marco que "todo me atrae", cubro más áreas funcionales, y experimento en áreas distintas. Aunque siempre llegará alguien que me dirá, "quién mucho abarca poco aprieta"
