La Conferencia NSSPain

Empezando el taller de Core Data

Empezando el taller de Core Data

Ya estoy de vuelta tras pasar una semana (casi) en Logroño. Se ha terminado la NSSpain 2013. Y ya tengo ganas de la NSSpain de 2014. Por hacer breve esto: si te dedicas al desarrollo iOS con algún grado de dedicación y te has perdido este evento, ya puedes ir a darte cabezazos con un muro. La gente que ha venido, la calidad de las ponencias y, sobre todo, la intensidad técnica de las mismas ha sido para verlo y no creerlo. Estas cosas no se pueden dejar pasar.

Las charlas y los ponentes

Las charlas han sido increíbles. Nada de “relleno”. Nada de hablar de “mobile márketing” ni de otras historias. Código. Ideas. Patrones. Hemos tenido tres niveles: sesiones duras, muy duras de seguir y luego la de Peter Steimberg (@steipete). Esta sesión por sí sola se situó en una dimensión aparte. Cuando sea mayor quiero ser como Peter, el problema es que me falta cerebro para ello. Pero claro, es que el resto de los ponentes eran todos así. Gente que maneja git desde una consola zsh lanzando comandos como si no existiera mañana. Para los que todo es evidente. Todo lo que a mi cuesta años aprender, ellos ya lo saben. Da gusto estar con gente así. Porque, siendo auténticos sabios, son las personas más humildes, accesibles, sencillas y divertidas que puedas encontrarte. Por ejemplo, he podido desayunar con Marin (@mneor) y comentarle un issue que había respondido sobre en Github sobre Kiwi y Xcode 5, ¡cinco días antes!. Es decir, estaba hablando con el tío de verdad que reparte el bacalao en Kiwi. De película.

Eso, o encontrarte con dos personajes como @orta y Favio, Core Team de Cocoa Pods. Y que te digan que están contentos porque usas su proyecto. ¡Pero si lo que yo quiero es echarme al suelo y besar por donde pisáis!. Esta gente no se da cuenta del impacto que tienen a diario en las vidas de muchos desarrolladores. Y van por el mundo como personas normales, cuando no lo son. La comunidad les debe mucho. Mucho.

Para Marin Usalj todo está OK :-)

Para Marin Usalj todo está OK 🙂

Misma historia con el equipo al completo de Objc.io. Es decir, en apenas dos semanas he visto a Dave Werner (de iOS Dev Weekly) en el iOSDevUK (ya conocía a Dave de otros años) y ahora a los de Objc.io. ¿Qué es lo siguiente? ¿Tomar café con Tim Cook? (Por cierto: Tim, cuando quieras; y no te preocupes: corre de mi cuenta)

Victor Baro ha resumido los talleres mucho mejor que yo en un post dentro del Blog de Louesfera. Lo mismo con el post de Fernando Rodríguez en Applesfera. Bien contado, incluso algún cotilleo de más 😀

Mis talleres

Han sido una basura. Cuando comparas lo que tú puedes ofrecer con lo que cualquiera de éstos trae, te da hasta vergüenza estar por allí. Inicialmente me ofrecí para echar una mano con la NSSpain, porque creo que en España necesitamos este tipo de eventos para poder tener un lugar donde reunir al gremio de desarrolladores Cocoa. Un sitio donde compartir experiencias, donde aprender de los que vienen de fuera. Donde picarnos, y que nos sintamos estimulados por la alucinancia del Cocoa-Fu de estos mónstruos. Por todo esto me propuse apoyar en todo lo posible a los organizadores, porque necesitamos que esto salga bien y crezca. Y no pensaba que fueran a reunir a gente de Champions junto con uno de Regional preferente.

Pero es duro ir a la cena de ponentes y darte cuenta de que eres el tonto de la reunión. Es duro, pero me gusta. Sólo puedes crecer estando con gente muy inteligente, que además sabe mucho más que tú de todo. Y estoy dispuesto a dar batalla. Habrá que esforzarse más. Programando, aprendiendo, enseñando, con todo.

Por cierto, llegué tarde a mi primer taller. De nuevo, os pido disculpas a los que me esperasteis con enorme paciencia. Aunque no fue del todo culpa mía, en la Mili decían que si no quieres llegar tarde te vas el día antes. Así que la culpa me la endosáis a mí, que para eso os tuve esperando.

Por si alguien está interesado, he puesto en slideshare la presentación de los talleres, tanto de Core Data básico como algunas ideas de uso intermedio.

Y algo de código de ejemplo, en este repo de Bitbucket.

Logroño

No había estado en la ciudad y he podido visitar muchos de sus bares parques y rincones. Parece que vives en un bosque, al lado del Ebro. Viniendo de Sevilla, es normal que me encanten las ciudades con río. Pero es que es realmente bonito pasear y ver tanto verde junto. Y se come y se bebe bastante bien. Lo de beber, siendo la capital de La Rioja, es casi una obligación (de hecho, ya hay quien llamaba a la conferencia la NSWine). Me dejé una mañana para pasear y hacer fotos. Las he puesto en este album de Flickr.

Resumiendo

Que voy a repetir, eso está claro. El año que viene, si puedo, como asistente normal y así voy más relajado. O no, ya veremos. Pero si voy a contar algo, va a ser complicadete. O no, ya veremos, que siempre hay mucha gente empezando a desarrollar.

El caso es que quiero dar las gracias a Luis Ascorbe y Borja Reinares por el palizón que se han metido al organizar este follón. Os debemos mucho. Y necesitamos la NSSpain.

j j j

La era Nexus

Soy un fanboy de Apple. O eso dicen cuando me escuchan poner a caer de un burro las carencias de Android (especialmente de cara a los desarrolladores). Pero se ve que no me escuchan quejarme de los problemas que tienen los dispositivos Apple (o el software, como esas notificaciones modales para decirte que no se puede descargar el correo, WFT con mayúsculas en iOS). Sordera selectiva, se llama.

Soy un fanboy de Apple, pese a tener (y usar) un Lumia 800 con Windows Phone, un Nexus 4 con Android 4.3 o una Blackberry Z10 con BB10. Sin contar la Touchpad de HP con webOS, la BB PlayBook con Qnx, el N900 de Nokia o mi primer smartphone, un Windows Mobile 5. Creo que soy un fanboy de la tecnología en general, y de la tecnología móvil en particular. Me gusta todo aquello que caliente silicio (1ª Ley Freniche de cómo la tecnología te pone Palote)

Soy un fanboy de Apple, pero llevo casi dos meses usando como teléfono principal, sin descanso, un Nexus 4. Y lo complemento muchas veces con mi tableta Nexus 7 primera edición. Y ambos me gustan. Mucho.

Cómo comprar un Nexus

El Nexus 4 lo compré por necesidad. En Diciembre del año pasado vendí mi iPhone 4 y estuve tirando con el 3Gs, al que, por desgracia, se le notaba cada vez más la edad. El Lumia 800 me rescataba a veces, pero a la plataforma Windows Phone le faltaba el empuje que probablemente le de el nuevo Lumia 1020. Y no tenía la Z10 en esas fechas. Un día, desesperado por la lentitud del 3Gs con los mapas (y gracias a que estaba de suerte) pude comprar el Nexus 4 más pequeño, el de 8GB.

Digo estar de suerte, porque esta fue la primera cosa que me chocó. No había stock en la página de Google del Nexus 4. A veces había, otras no. Y lo único que te recomendaba Google era que “volvieras a mirar pasado un tiempo”. ¿Perdón?. ¿Volver luego?. Esto te pasa en una tienda online y no vuelves nunca. De aficionados. Nunca como entonces vi claro la diferencia entre Apple y Google.

El negocio de Apple está claro: venderte el dispositivo, y es muy raro que te dejen salir “vivo” de su tienda online si entras con la tarjeta de crédito en la mano. Cuando lanzan nuevos productos puedes “reservar” el producto. Cuando se agotan la cosa es aún más astuta e insidiosa: te dejan comprar, pero el plazo de entrega “aproximado” es de 4 semanas. Es decir, que tú pagas por adelantado y con ese dinero (que ya tienen), fabrican el iPhone que te venden. Como probablemente paguen con retraso a sus proveedores, es el negocio redondo, la genialidad a la que todo el mundo aspira: ganar montañas de pasta sin arriesgar un euro, sabiendo de antemano el número de dispositivos que tengo que fabricar y a dónde enviarlos, con lo que optimizo los envíos, etc. Lo dicho: perfecto.

Frente a esto, Google es una vendedora de anuncios on line, pero poco más. Decir que “se me han acabado”, que no se cuándo tendré más, ni garantizarte una reserva, es lamentable. Se puede dar el caso de que alguien mire, vuelva a las dos semanas justo después de que yo compre, se quede sin su teléfono y tenga que volver a mirar. Algo a todas luces injusto. Casi parece que no quieren que se vendan estos teléfonos. Y yo estoy convencido de eso: Google no quiere que se vendan los Nexus. Los sacan casi obligados en las Google I/O, para demostrar las nuevas capacidades del S.O., pero no lo tratan como un producto que en sí mismo les genere beneficio. Además, en el caso del Nexus 4 si venden muchos le hacen la competencia a LG, que es su fabricante. Sólo pregúntate: ¿cuántos anuncios has visto en televisión de los Nexus (tabletas y teléfonos)?. Cero, ¿cierto?. Claro que puedes pensar: “es que la tele es cara”. Aunque hablamos de Google, que no son precisamente pobres. Segunda prueba: ¿cuántos anuncios has visto en Youtube?.

Y eso que el teléfono se vende solo. Una pantalla increíble, un diseño precioso, muy sólido. Un teléfono libre, con las últimas actualizaciones del S.O. Android por debajo de los 300 Eur. Perfecto. Quizás demasiado, y por eso Google no quiere venderlo (para no molestar a sus fabricantes). El caso es que es el teléfono de los que se enteran (Geeks, seguidores de Google y gente que está atenta a la evolución tecnológica). Pero no el de las masas, cuando debería serlo por muchas razones: precio, ser un terminal libre, características, software…

Hard

No voy a hacer ninguna review del Nexus 4 ni de la tableta Nexus 7. Hay montones en Internet. Sólo quiero llamar la atención sobre cosas que me hacen gracia, sobre todo porque fueron enormemente criticadas cuando se lanzó el primer (y segundo, y tercer) iPhone:

  • ¡no tienen un conector USB para ponerles un pincho USB!. Eso, al parecer, era uno de los pecados del iPad. Se ve que con el tiempo ha quedado demostrado que con Wifi y servicios en la nube (Dropbox, Skydrive, iCloud, etc.) no es necesario cargar con un pendrive. El pendrive es la WiFi de los torpes.
  • siguiendo con el USB, vale, que no tengan entrada USB “gorda”. Pero podrían soportar el modo USB On The Go con adaptadores microUSB-USB. Google es muy open con Android, pero para hacer esto necesitas hacerle root al teléfono. Fail.
  • la batería de ambos es fija. No es intercambiable. Veo algunas similitudes con los dispositivos iOS. Aunque no puede ser ¿no?: las baterías fijas son algo del Averno.
  • ídem con la tarjeta SD. Vamos, que no tienen. Curioso. Será para ahorrar costes, pero es que cada vez se parecen más al estándar que marca el iPhone.
  • soporte para Flash. ¿Recuerda el Flash, abuela? Pues eso.

Ahora sí, tienen algunas cosas muy innovadoras:

  • NFC. Perdón, Android Beam. No sirve para nada, pero está bonito tenerlo, para amontonarlo en listas de características inútiles. Si las fotos se suben automáticamente a Dropbox y G+ ¿para qué voy a tocar un dispositivo con otro para emparejarlos y pasarla por Wifi? ¡Si la foto ya está en Dropbox/Google +!. La marcas allí y se la mandas a quien quieras por correo, Twitter, Facebook… En fin, que hasta ahora NFC es una promesa pero no he visto un solo uso útil de esta tecnología en el mundo real. Usado por personas normales. Por cierto, cuando tocas el teléfono con la tableta por detrás, tienes que apuntar bien hasta que se activa el NFC. Lo que lleva a estar frotando los dispositivos, algo que no me gusta demasiado…
  • cargador inalámbrico. Algo que excita mucho al que no ha tenido una tableta HP WouchPad con webOS y el cargador sin contacto TouchStone. Y el problema es que estos cargadores por inducción son lentos, muy lentos. Son muy chulos, la primera semana, y para hacer una demo de lo que es capaz mi teléfono y no el tuyo. Pero al final la base de carga debe estar enchufada, luego el momento sin cables se viene un poco abajo. Probadlo y me contáis.

Las cosas realmente innovadoras para mí ya no son el hardware. Defender que iOS es mejor que Android, que Android es mejor que iOS o cualquier otra postura basándose en el hardware es absurda. Salvo raras excepciones, cualquier smartphone hoy en día tiene un hardware impresionante. Tanto, que por desgracia ya no nos maravillan. Por eso la gente dice que Samsung no innova con su S4, o que el próximo iPhone va a ser un fracaso. No es que no avancen: es que los avances no impactan tanto en nuestro uso diario. Una batería de una semana de duración sí sería un avance notable, por ejemplo. O un cristal a prueba de balas que no se rompa en la primera caída.

Apps

La clave es el ecosistema: Apps y mantenimiento del S.O.

Y en el tema de las Apps la cosa ha cambiado mucho. Atentos, haters de iOS con lo que voy a decir: sólo me falta tener Things en el Nexus 4 (App de GTD) para poder prescindir de iOS y el iPhone. En mi caso, para lo que hago con el teléfono, tengo de todo. Repito, para que se vea bien lo fanboy que soy: uso un Nexus y me hace feliz, tanto que me planteo incluso cambiarme. Las Apps en Android no están tan bien acabadas como las de iOS, pero han mejorado en general mucho.

Un inciso para que nadie olvide que soy un Fanboy. Las Apps de iOS son mejores que las Android. Esto es un hecho indiscutible, sólo hay que tener dos dispositivos iOS y Android y usarlos. Apple hace aplicaciones, como Pages, Garage Band o iPhoto / iMovie para iOS que son las mejores, no en iOS, sino en cualquier plataforma móvil. Google hace buenas Apps, pero creo que salvo Maps no tiene ninguna que sea tan alucinante como las anteriores de iOS. Y las que tiene buenas (Maps, G+, Gmail, Youtube) son iguales en iOS y en muchos casos, son mejores en este último (caso de Google Now).

Por cierto, la aplicación de Mapas es muy chula. Además de ser un GPS casi perfecto, el detalle de ponerse en modo Street View al terminar un viaje es bastante chulo. También se equivoca a veces con las rutas, pero en general es una App que uso mucho y es muy buena. Google Now también me alucina, aunque es muy creepy y te sientes espiado cuando empieza a proponerte viajes basado en todo lo que ha recopilado de tu experiencia anterior. Por supuesto, Google nunca usará esos datos para venderte mejores anuncios (sabe si vives en un barrio con mayor o menor renta per capita, ve las veces que vas al cine, o de vacaciones, pero ellos nunca lo harán). Don’t be evil. My ass.

Dicho todo esto, la cantidad y calidad de las aplicaciones son suficientes para que me plantee seriamente el cambio permanente a la plataforma Android. Bueno ¿permanente?. Llevo sin usar un iPhone desde Febrero, creo… Menudo Fanboy

Las actualizaciones.

Esto es de lo que más me gusta. Es decir, estoy agradecido por tener un comportamiento normal en el resto de plataformas: que cuando salga una actualización pueda disponer de esas mejoras en mi teléfono o tableta inmediatamente.

Pero por desgracia (para los desarrolladores) en el mundo Android esto es la excepción, no la norma. Incluso con un Nexus, tienes que esperar una cola que no entiendo (cuando hay actualizaciones de Apple llegan instantáneamente a todos los teléfonos, no hay que esperar dos semanas). Y no es que Google no sepa de infraestructuras de servidor grandes, que aguanten mucha carga. Es desidia, pura y dura. Si te venden los Nexus libres, y no hay un operador de telefonía por medio ¿cuál es la razón de que no se actualicen todos a la vez? Que no se le dedican los recursos necesarios porque estos cuatro frikis que ya han sido maltratados cuando compraron el teléfono están domesticados y acostumbrados a esperar las migas que se caen de nuestro plato. Al menos, esta es la sensación que se me quedó tras el I/O, esperando día tras día la actualización. O eso, o tienen un único Pentium III como servidor para las actualizaciones de Android.

Además de tener la última versión, la respuesta y fluidez del teléfono y las Apps que uso (Evernote, la cámara, el correo, los navegadores: Firefox, Chrome y Opera, Swiftkey, los fondos animados, algún widget interesante, Dropbox, etc.) convierten este teléfono en una alternativa total a los Samsung Galaxy S4 de turno. Una persona normal le sacaría más partido (y le saldría más barato) si se comprara libre uno de estos. Pero se ve que no interesa: ni la operadora de turno te cuela un contrato de permanencia de 24 meses ni el fabricante saca un margen adecuado. Y por eso Google no lo publicita. Google fabrica los Nexus para su legión de adoradores, lo cual es triste. Porque deberían de estar al alcance de todos. Búscalos en El Corte Inglés. Suerte.

Ahora vendrán los típicos comentarios: “Es que tú no sabes usar bien Android”, “es que tienes que hacerle root al teléfono”, “es que con el S.O. oficial no, pero con tal ROM cocinada puedes hacer tal o cual”, “es que eres un fanboy”. He usado Android desde la versión 1.6 (HTC Magic) y desarrollo para Android. Creo que tengo cierto conocimiento de causa. Los argumentos que escucho muchas veces no están basados en las ventajas que tenga Android de cara a los usuarios, sino al partido que pueden sacarle cuatro geeks al teléfono. Algo no al alcance de todos.

Nuevos precios y conclusión

Mientras escribía esto Google bajó los precios del Nexus 4 hasta los 200 Eur. A este precio, pese a cualquier molestia que puedas tener, no hay otro smartphone que le haga sombra. Por 200 Eur es imposible encontrar mejor hardware, con el S.O. siempre actualizado y la oferta de Apps de Android. Para mí, es la opción evidente. Porque además, es libre.

Lo que me dejará un poso aún más amargo, ya que no se va a vender masivamente. Lo verás en las manos de muchos Geeks. Pero no en la de gente normal. Y la gente normal se merece este teléfono.

j j j

Charla sobre “El estado de la nación móvil”

Hablando del estado de la nación móvil

Este pasado Miércoles 12, estuve en Sevilla impartiendo una charla sobre cómo está ahora mismo el mundo móvil, de la mano de Avante. Fueron cuatro horas (con un pequeño descanso) en el que apenas tuve tiempo de hablar de iOS y Android, y algunas cuestiones generales. Me lo pasé muy bien, relatando mis batallitas. Supongo que los asistentes (que me tenían que aguantar), no tanto.

Es increíble lo mucho que cambia esta parte del sector informático en meses. En Julio estuve en Zafra realizando este taller, pero con más profundidad, para ayudar a una empresa a elegir su estrategia móvil para desarrollo. Como eran programas in house y ya sabían Java finalmente vimos que lo mejor era la ruta Android. Pero desde entonces Samsung ha sido condenada por copiona, ha salido el Kindle Fire HD, el Nexus 7, se han anunciado los nuevos Lumias… Esto va a velocidad de vértigo y son tantas las plataformas y hay tanto ruido que es normal que el que no esté al tanto quiera alguna indicación.

Al fondo, inasequible al desaliento
La pena es que no pudimos hacer casi ni un hola mundo con Xcode. Quería hacer algo también con Android, pero fue imposible. O haber enseñado alguna aplicación webOS, o Windows Phone. Pero cuatro horas se van volando, cuando hablas de algo que te apasiona 😀

P.D.: Avante ha convocado un máster de desarrollo iOS, Android y Windows Phone. Tienes la oportunidad de aguantarme enseñando a programar en  iOS y Android si te apuntas 😉

P.P.D.: ya a finales de 2010 estuve hablando en un encuentro e-Tic de Avante sobre iOS. Hay vídeo para recordarlo.

j j j

ClockRing, Mi tercera App es Software Libre

Pues eso, que he mandado a revisión por parte de Apple mi tercera App. Actualmente ya tengo dos subidas: MyEvents, para gestionar tus eventos importantes y saber cuántos días quedan hasta ellos, y FXPlayer, una App escrita a cuatro manos con la ayuda de @jnhidalgo @jnhernandez, y que te permite superponer efectos de sonido a una canción que tengas sonando en el iPod. Puedes verlas en la web de Femtocoders (Inglés) o en la sección iOS Apps del blog.

Esta tercera se llama ClockRing, y la idea es muy sencilla: hace que suene un pitido de señal horaria en tu iPhone, como los relojes Casio de toda la vida. Con la particularidad que te permite escoger qué quieres que suene: una campana de iglesia, un reloj de cuco, un pitido típico de la radio…

ClockRing App

ClockRing App

Se me ocurrió la idea tras enterarme a través de José Mª Ortiz, un compañero de Jonathan Chacón (primer desarrollador ciego en el mundo que ha publicado una App en el App Store, bromitas pocas), de que MyEvents era accesible. Empecé entonces a pensar en los temas de accesibilidad y se me planteé “¿bueno, y un ciego cómo sabe de un vistazo que son las dos de la tarde y tiene que irse a comer?”. Evidentemente no “de un vistazo”, tienen que estar activando el iPhone, y VoiceOver te canta la hora. Pero se me ocurrió la idea de clockRing y pensé que podría ser útil. Además, José Mª, me pidió que implementase “para ayer” la posibilidad de programar alarmas en MyEvents (cosa que empiezo a preparar ya para la v1.2). Así que ClockRing era la oportunidad perfecta para practicar con la API de LocalNotifications.

La App es gratis, e incluye iAds para ver si me puedo pagar alguna cerveza a su costa. Pero hace tiempo que estoy con ganas de liberar algo de código. Así que ClockRing es Software Libre, según establece la licencia GPL v2. Vamos, que puedes ver el código, compilarlo, usarlo en tus proyectos, o para aprender, o para reírte, o para lo que quieras. Pero los trabajos derivados deben ser también libres. Si quieres una copia del código, pásate por la Wiki de la App ClockRing que tengo en FogBugz (otro día  hablaré de FogBugz y su increíble sistema de Bug Tracking, predicción del tiempo de entregas, Wikis, repositorios de código, etc.)

ClockRing aún no está disponible para su descarga desde el App Store, ya que está en el proceso de aprobación (cruzad los dedos). En el momento en que esté disponible lo anunciaré aquí (actualizando esta entrada) y en Twitter.

Actualización: ya puedes bajarte ClockRing gratis.

Happy coding!

j j j

Cómo utilizar promo-codes en iTunes

Los promo codes son códigos que Apple da a los desarrolladores (50 por versión de cada App) para que los regalemos a quien nos parezca. Se podrían gastar con la familia y los amigos, pero lo inteligente es guardarlos para los medios, bloggers y personas a las que te interese enseñar tu App sin que les cueste el dinero. Así eliminas una barrera de entrada y pueden probar tu trabajo más fácilmente.

¿Qué aspecto tiene un promo code? Es una ristra de números y letras tal que esta: KJT9MFJ3YLWN. De hecho, éste es un promo code real de la v1.1 de MyEvents, que regalé en Twitter. No te esfuerces: ya está gastado 🙂

¿Qué hacer una vez que tenemos un promo code? Vamos con el paso a paso:

  • Abrir iTunes
  • Nos vamos a iTunes Store. Nos aparecerá una pantalla como ésta:
iTunes abierto

iTunes abierto

  • En la parte derecha, si nos fijamos, hay un enlace que pone “Canjear”:
Canjear

Canjear

  • Pulsamos sobre él, se nos abrirá una ventana donde podremos meter el promo code:

  • Metemos el promo code y ¡listo!, App bajando.
  • Sincronizamos nuestro iPhone y ya la tenemos, por la patilla

Como nota añadir que, hasta hace unos días, los promo codes sólo funcionaban con la App Store de EE.UU. Ahora funcionan a nivel mundial. Apple ha tenido el detalle de esperar hasta la v1.1 de MyEvents para extender los promo codes a todas las tiendas 🙂

j j j

Usando XCode 3.2.5 con dispositivos iOS 4.2.1

Hace unos días salió la 4.2.1 de iOS para iPhone y iPod Touch. Sin pensarlo demasiado, actualicé mi iPhone 3Gs, que es la máquina que uso en el día a día, pero también la uso como máquina de desarrollo y pruebas. Pero no caí en el posible problema: tener en mi dispositivo instalado una versión de iOS no soportada por XCode.

Pero salió la 3.2.5 de XCode y me la bajé e instalé. Bueno, problema solucionado ¿no?. Veamos, esta versión soporta… ¿iOS 4.2? ¿Y qué pasa con iOS 4.2.1? Un sudor frío me recorrió la espalda. Y se confirmaron mis miedos con este tweet de @jdortiz:

Lógicamente, estoy en fase de pruebas para lanzar la v1.1 de MyEvents. Esto sólo te pasa cuando estás probando. Murphy es cruel.

Esta mañana, me remangué y me senté frente a XCode. Al abrir el proyecto, un solitario error:

Mi XCode no entiende qué es eso de iOS 4.2.1 🙁

Abrí el Organizer (para ver mis dispositivos), y nada más abrirlo me apareció la siguiente ventana:

Vamos, que XCode me estaba diciendo: “esto de iOS 4.2.1 no tengo ni idea de qué es, pero si quieres me leo unos cuantos ficheros del iOS de este iPhone y trato de ver si soy capaz de manejarlo”. Evidentemente, pulsé en Collect. Una barra de progreso me indicaba que se importaban los ficheros de iOS de mi iPhone. En segundo plano, XCode “desimbolicaba”, es decir, desensamblaba el código de iOS 4.2.1 y lo preparaba para poder depurar con él. Al finalizar, supe que había triunfado porque el Organizer me mostraba la versión correcta en mi dispositivo:

Ahora ya sólo me quedaba actualizar la información del proyecto (para que se compilase usando el SDK correcto) y del target (el ejecutable que genera XCode) para se enlazase con las bibliotecas de la versión correcta. Pulsamos sobre el proyecto, ? + I (obtener información) y en la pestaña Build, cambiamos Base SDK. En mi caso ponía 4.1 (missing) y le he puesto la última. Luego repetimos, pero en el Target, ? + I, build y ponemos el Base SDK a 4.2.

¡Listo! Graba (? + S) y cambia entre dispositivo y simulador un par de veces. Parece que XCode no refresca bien el cambio. Ahora, ya puedes probar con la 4.2.1 en el Simulador y en tus dispositivos.

P.D.: Jorge me avisó en este Tweet de que alguien ya había escrito algo sobre este problema, pero 1) está en Inglés y 2) no está tan mascadito. ¡Espero que os sirva!

j j j

Vídeo de mi intervención en eTic

Pues aquí está el vídeo de mi intervención en el encuentro eTic 2010: Mobile Development y que se titula: “Crea ¡ya! tu equipo de trabajo para Apple iOS”

En la intervención hablo de todo lo necesario para crear o reconvertir un equipo de programadores y que escriban apps para iOS. Está grabado con mi cámara y la calidad no es profesional (gracias, Walter!), pero al menos así está a la altura del contenido 🙂

Crea ¡ya! tu equipo de desarrollo en iOS from Diego Freniche on Vimeo.

La presentación que utilicé está en Google Docs

La cobertura de los medios del evento:

En el vídeo podéis verme con la camiseta que me preparé de Fanboy gracias a los Macniacos

j j j

Mis Gadgets estas vacaciones

Después de leer este post en El Blog de Serantes, me he sorprendido por coincidir en la idea y en el tiempo con David. Pero el tuvo la idea antes (como un año antes), luego la paternidad está clara. 🙂
Este verano, antes de salir, me repetí varias veces aquello de “menos es más”. Revisé mentalmente todos los cacharros que me suelo llevar y el uso que realmente les acabo dando. Y tomé la decisión de reducir al máximo mi arsenal tecnológico.

Lo que no me llevo

  • mi cámara DSLR Nikon D70. Ya un poco vetusta, pero no deja de ser una excelente cámara. No me la llevo porque luego me da pereza llevarla para un rato, no quiero dejarla sola en la piscina y mucho menos llenarla de arena en la playa. Para fotos casuales, mejor mi iPhone 3Gs y para algo un poco más complicado, nada mejor que la pequeña Sony.
  • mi videocámara. Graba en SD y en cinta MiniDV, pero funciona muy bien. Y no ocupa demasiado espacio. Pero las cintas eran un caos, no tenía claro qué estaba pasado al ordenador y qué no, etc. Encima es un cargador más, otra bolsa… Nada, los vídeos los grabo con mi iPhone 3Gs, que después de mi experiencia en NYC me demostró de lo que es capaz como video cámara. El iPhone 4 debe ser ya la pera.
  • el Netbook Asus 904HD. El año pasado lo usé como reproductor multimedia, fundamentalmente.Con su bolsa para transportar, etc. Este año, he metido en el iPod Touch de los niños un montón de películas, convertidas con VideoMonkey y listo.

Lo que me llevo

  • mi mujer su iPhone 3G y yo mi 3Gs. Imprescindibles como teléfonos, para el correo, e incluso para escribir esta entrada 🙂
  • el iPod Touch 8GB de los niños. Como videoconsola para niños menores de 4 años es perfecta. No necesitan leer ni pulsar complicados botones. Tocan y listo. Aprendizaje instantáneo. Y como media center tampoco está mal, sobre todo si llevas el cable Belkin de conexión iPhone <–> TV. Pinchas el iPod a la tele del hotel y listo.
  • mi cámara de fotos Sony. Me la dieron por los puntos de la gasolina. Aunque tiene 10 megapíxeles, se nota la falta de óptica y la velocidad, sobre todo acostumbrado a la D70. Pero para fotos en la playa es ideal.
  • el iPad. Bueno, mi mujer se lleva su iPad, que es suyo, y del que no se despega para leer libros en formato electrónico. Lectora empedernida como es, le ha visto las ventajas al iPad como lector (y como todo lo demás) inmediatamente.
  • como todos los cacharros de Apple usan el mismo cargador, me llevo un par de ellos y voy rotando. Menos chismes.

Resumiendo, que a las vacaciones va uno a desconectar. Y cargar con dos docenas de aparatos “por si tengo un rato y me aburro” es absurdo. Si te aburres en ese rato, vas y te pegas un baño. O lo disfrutas. Yo hace años que no tengo esa sensación de aburrimiento: siempre tengo miles de cosas por hacer y hay otras miles que me gustaría estar haciendo. Por eso, espero fervientemente esos momentos de no poder hacer otra cosa que mirar al mar y llenarme los ojos de luz y tranquilidad… si me dejan los niños 🙂

j j j

Leyendo para emprender

Cuando el año pasado en Octubre, decidí dejar Isotrol e iniciar una nueva etapa en solitario programando apps para el iOS (el S.O. del iPhone, iPod Touch e iPad) tenía claro que no quería cometer viejos errores de mis anteriores etapas como empresario. Quería crecer y mejorar, como persona, como profesional y como emprendedor. Por ello me metí en Amazon y compré un conjunto de libros que tocan estos tres temas.

Pero claro, comprar los libros no es lo mismo que leerlos. Y leerlos no es lo mismo que comprenderlos. Y, en cualquier caso, lo importante, lo único importante de toda preparación, es aplicar lo aprendido. Leer, comprender, aceptar e interiorizar no son nada comparados con hacer. La parte más importante del Getting Thing Done es, precisamente, el Done.

De momento, llevo leídos:

  • Gestiona mejor tu vida, de Berto Pena, librazo que recomiendo a cualquiera que sienta que no le llegan las horas al final del día.
  • The 4 hour workweek, un libro revolucionario por lo simple que te plantea cómo cambiar las cosas. Hay que leerlo dejándose retar por las nuevas ideas de Tim Ferriss y ser capaz de ser flexibles y responder al reto. Me lo recomendó Jaime Gallo y ha sido una revelación.
  • Beginning iPhone 3 Development ha sido mi primer libro de iPhone SDK, y me ha ayudado a preparar mis primeras Apps. He necesitado leerme también (en formato electrónico, no aparece en la foto) Learn Objective-C on the Mac, para tener una idea del lenguaje que está detrás de Cocoa Touch y no perderme. Este último me ha encantado, porque es muy académico y directo. Si sabes C, o Java, te explica las cosas con profundidad y sin mitos. Pero no te lleva de la manita, ni trata de suavizar según que cosas.

Estoy ahora mismo con:

Y luego vendrán:

  • En Julio, SCJP 1.6 Study Guide.
  • Y en Agosto – Septiembre, mezclaré los libros de Joel Spolsky y Micro ISV con el segundo del iPhone, iPhone SDK 3 Programming.

Por supuesto, seguiremos leyendo en blogs, en PDFs (algo del iPad habrá que mirar), etc. Es fundamental el estar permanentemente formándonos, revisando, mejorando (o intentándolo). Tener curiosidad y ganas de aprender es uno de los ingredientes de la salsa de la vida.

¿Y tú? ¿Con qué libros andas ahora? ¿Me recomiendas alguno?

j j j

Controlar una presentación de KeyNote con tu iPhone

Controlar una presentación de KeyNote con tu iPhone
Estoy asistiendo a un curso de Presentaciones Eficaces que me está gustando bastante. Aunque tengo a mis espaldas muchos cursos (literalmente muchas miles de horas de formación, no de vuelo) siempre es bueno seguir aprendiendo y revisar hasta lo que uno cree que hace bien. O mejor debería decir que es imprescindible revisar precisamente lo que se piensa que es una fortaleza. Ya conocéis el dicho: “dime de qué presumes…”.
El caso es que a mi me gusta aprender. Tanto cosas técnicas como habilidades personales. Suelo estar dispuesto a escuchar a aquel que pienso  que merece la pena escucharle. El problema suele ser convencerme. A medida que se cumplen años se tiende a pensar que “ésto ya lo he visto”, etc. Y con el curso el profesor lo ha conseguido. Valentín nos ha enganchado con su hablar suave, su dominio del escenario, el contenido adecuado del curso. Vamos, con su saber hacer. Y nos ha puesto deberes.
Concretamente debemos presentar frente a la clase un proyecto para convencer a un jurado de que nos escoja. Apoyados por una presentación multimedia. Y es aquí donde me ha surgido la necesidad. Hasta ahora he utilizado para las presentaciones PowerPoint e Impress (de la suite OpenOffice.org). PP me parece demasiado complicado de usar en ocasiones, aunque con buenos resultados. E Impress da buenos resultados para una guardería, pero se aleja del toque pulido y postindustrial de las Keynotes de Apple. Así que la opción que me quedaba era Keynote, de Apple. Lo estoy usando desde hace poco, pero creo que han dado en el clavo. De manera sencilla tienes acceso a las principales funciones y los diseños predeterminados, así como las transiciones y animaciones de las diapositivas tienen “ese toque” Apple. Vamos, que voy a usarlo para esta presentación.
Hablamos de una presentación. Luego necesitamos más cosas. Una son las diapositivas / slides que aparezcan como apoyo a mi discurso. Esto ya lo tenemos. Otra es el discurso en sí y mi actuación frente al público. De eso me encargo yo. Me queda un detalle: el iPhone. Quiero decir, el control remoto de la presentación multimedia. Cuando hablas frente a un auditorio puedes quedarte clavado en un sitio, tras un atril, parapetado en una mesa, o bien usar el entorno y dominar el escenario de forma que apoye a tu discurso. A mi lo que me gusta es esto último. En mis cursos rompo muchas veces la distancia con mis alumnos, paseando por el aula, sentándome en la mesa, en una silla al lado de alguno, etc. Y para hacer todas estas cosas con estilo se precisa de un cacharro que permita ir pasando las diapositivas a medida que uno habla.
El truco en sí
Para controlar la presentación necesitamos:
un Mac donde pondremos la presentación de KeyNote. En mi caso es mi querido MacBook Pro.
un proyector (lo pone el profesor)
un iPhone para controlar KeyNote de forma remota
una aplicación para el iPhone, concretamente Mocha VNC Lite, que encima es gratis
Los pasos a dar son:
1. crea tu presentación con KeyNote y tenla a mano. Sí, esto puede parecerte una chorrada, pero eres tú el que ha pedido un paso a paso.
2. activa el acceso remoto al escrito de tu Mac, AKA VNC, mediante Preferencias del Sistema -> Compartir -> Compartir escritorio
Una vez tengamos instalada la aplicación en el iPhone, bajada desde el AppStore, necesitaremos controlar la pantalla del Mac desde el iPhone. Para eso, Mocha VNC Lite nos permite introducir la dirección IP de nuestro Mac y ¡listo!. Pero claro, estamos suponiendo que hay un punto de acceso WiFi al que nos hemos podido conectar, tanto con nuestro Mac como con el iPhone, y que ambos están en la misma subred (sus direcciones IP son similares, por ejemplo son 192.168.1.10 la del Mac y 192.168.1.15 la del iPhone).
pondremos a ejecutarse la presentación en el ordenador. Se quedarátendremos que conseguir que veamos en la pantalla del

He asistido a un curso de Presentaciones Eficaces que me ha gustado bastante. Aunque tengo a mis espaldas muchos cursos (literalmente muchas miles de horas de formación, que no de vuelo) siempre es bueno seguir aprendiendo y revisar hasta lo que uno se cree que hace bien. O mejor debería decir que es imprescindible revisar precisamente lo que se piensa que es una fortaleza. Ya conocéis el dicho: “dime de qué presumes…”.

El caso es que a mi me gusta aprender. Tanto cosas técnicas como habilidades personales. Suelo estar dispuesto a escuchar a aquel que pienso  que merece la pena escucharle. El problema suele ser convencerme. A medida que se cumplen años se tiende a pensar que “ésto ya lo he visto”, etc. Y con el curso el profesor lo ha conseguido. Valentín nos ha enganchado con su hablar suave, su dominio del escenario, el contenido adecuado del curso. Vamos, con su saber hacer. Y nos ha puesto deberes.

Concretamente debemos presentar frente a la clase un proyecto para convencer a un jurado de que nos escoja. Apoyados por una presentación multimedia. Y es aquí donde me ha surgido la necesidad. Hasta ahora he utilizado para las presentaciones PowerPoint e Impress (de la suite OpenOffice.org). PowerPoint me parece demasiado complicado de usar (en ocasiones), aunque con buenos resultados. No le he dedicado el tiempo necesario, creo. E Impress da buenos resultados para una guardería, pero se aleja del toque pulido y postindustrial de las Keynotes de Apple. Así que la opción que me quedaba era Keynote, de Apple. Lo estoy usando desde hace poco, pero creo que han dado en el clavo. De manera sencilla tienes acceso a las principales funciones y los diseños predeterminados, así como las transiciones y animaciones de las diapositivas tienen “ese toque” Apple. Vamos, que voy a usarlo para esta presentación.

Hablamos de una presentación. Luego necesitamos más cosas:

  • Una son las diapositivas / slides que aparezcan como apoyo a mi discurso. Esto ya lo tenemos. No confundamos nunca una presentación con un PowerPoint. Si no, llegamos rápidamente a la muerte por PowerPoint.
  • Otra es el discurso en sí y mi actuación frente al público. De eso me encargo yo.
  • Me queda un detalle: el iPhone. Quiero decir, el control remoto de la presentación multimedia.

Cuando hablas frente a un auditorio puedes quedarte clavado en un sitio, tras un atril, parapetado en una mesa, o bien usar el entorno y dominar el escenario de forma que apoye a tu discurso. A mi lo que me gusta es esto último. En mis cursos rompo muchas veces la distancia con mis alumnos, paseando por el aula, sentándome en la mesa, en una silla al lado de alguno, etc. Y para hacer todas estas cosas con estilo se precisa de un cacharro que permita ir pasando las diapositivas a medida que uno habla.

El truco en sí: controlar la presentación con el iPhone

Para controlar la presentación necesitamos:

  • un Mac donde pondremos la presentación de KeyNote. En mi caso es mi querido MacBook Pro. Si no tienes un Mac, puedes hacer lo mismo con OO.org y Windows, o con Office y Windows. Es una pena, pero esta vez no hay truco para Linux 🙁
  • un proyector (lo pone el profesor)
  • un iPhone para controlar KeyNote de forma remota
  • una aplicación para el iPhone, concretamente Logitech Air Mouse que encima es gratis
  • la parte servidora de la App de iPhone, el Logitech Touch Mouse Server

Los pasos a dar son:

  1. crea tu presentación con KeyNote y tenla a mano. Sí, esto puede parecerte una chorrada, pero eres tú el que ha pedido un paso a paso. Pon un enlace en el escritorio.
  2. instala la aplicación Logitech Air Mouse en el iPhone.
  3. descarga el Logitech Touch Mouse Server para Mac. Es una imagen de disco (fichero DMG). No hace falta ni instalarla: haces doble click, se abre, arrancas el programa servidor y a esperar conexión del iPhone.
  4. necesitamos conectar con el Mac desde el iPhone. Para ello, hay que activar la WiFi en el iPhone (y en el Mac, claro)
  5. arrancamos la App en el iPhone. Una vez que nos aparece el Mac en la lista de servidores nos conectamos. Ya podemos mover el ratón por la pantalla del Mac tocando la pantalla del iPhone. Y hacer click. Y encima, como el iPhone es multitouch, tenemos los gestos de los Trackpads Mac en el iPhone.
  6. Arrancamos la presentación y listo: click izquierdo avanza y click derecho retrocede. ¡Misión cumplida!

Y por si no ha quedado suficientemente claro, aquí os pongo un vídeo que muestra cómo manejar el portátil con el Logitech Air Mouse.  La noticia original la vi en el Blog oficial de Logitech.

j j j