core data, otra historia más

0 comentarios
Una vez más tocó aprender a usar una nueva pieza del puzzle del iPhone SDK: Core Data. Echando la vista atrás la verdad es que no ha sido tan complicado pero intentar desgranar los mecanismos del core data por las noches y con sueño se hace más complejo.

El primer error fue no preverlo con antelación, con lo que estamos manejando dos modelos de datos, el que persistimos y el que usa el juego en tiempo real. Es un engorro porque tenemos que ir traduciendo de uno a otro cuando grabamos y recuperamos la información, con el consiguiente proceso de pruebas de que los datos sean los mismos que dejaste.

El segundo error fue no leer a fondo la documentación y ponernos a probar cosas con una lectura rápida de ciertos manuales. El exceso de confianza muchas veces te hace perder más tiempo del que ganas siendo un buen conocedor del sistema.

El tercer error, como no podía ser de otra manera, es seguir pensando en el mundo Java y sus ORMs. El modelo que maneja el core data no sigue los mismos mecanismos que los modelos de Java, tiene particularidades que te pueden hacer perder tiempo (sobretodo en el manejo de tipos básicos).

Lo bueno de todo lo aprendido es saber que en realidad no cuesta tanto y que para próximos usos las lecciones ya están aprendidas (parece que no aprendemos, otra vez pecando de exceso de confianza).

App store stats!

0 comentarios
Cuando uno publica una aplicación en el apple store siempre es con un objetivo: que se la bajen. Y antes de que esto suceda uno siempre hace elucubraciones sobre el posible mercado, el número de descargas mensuales, las estadísticas por país, por día etc etc.

Nosotros no somos ninguna excepción y después de 5 días desde la publicación de WeMore queremos compartir estos datos con vosotros. Ahí van:
======================================================================
We More 1 CH
We More 1 DK
We More 1 AT
We More 1 LU
We More 1 LV
We More 1 NL
We More 1 PL
We More 1 PT
We More 1 SE
We More 1 BR
We More 1 EG
We More 1 MY
We More 1 PH
We More 1 QA
We More 1 SG
We More 1 TR
We More 2 GR
We More 2 HU
We More 2 ID
We More 3 CA
We More 3 FR
We More 3 IT
We More 3 HK
We More 3 IN
We More 3 TW
We More 4 AU
We More 4 JP
We More 6 DE
We More 6 CN
We More 12 GB
We More 13 ES
We More 46 US
======================================================================

Como podéis ver son 130 descargas en 5 días (se publicó el 26 de noviembre). El resultado son unas 30 descargas por día (aprox.) que situan a la aplicación en la posición 90 del top100 de la categoría de Redes sociales en la app store de España.

De estos datos podemos sacar conclusiones interesantes: lo primero que tienes que hacer al bajarte WeMore es registrar tu iPhone para que el programa lo cuente y lo situe en el mapa del mundo (recordad que WeMore es un contador de iphone's). Pues bien, aún habiendo 46 guiris americanos que se han bajado la app, únicamente nos constan 14registros. ¿Será porque son desconfiados? Interesante ...

Otra conclusión a extraer, la cual ya la intuíamos, es que el gran mercado es el americano (sin menospreciar al resto, claro). Esto nos reafirma en el hecho de que hacer las aplicaciones en multiidioma es fundamental.

Más cosillas: a día de hoy el número de descargas es residual (2,3,4,6, etc). Esto significa que o te situas muy bien en el top al salir la aplicación o es imprescindible darle publicidad.

Esperamos que estos datos os hayan sido de utilidad.

M.

por fin se publicó

0 comentarios
Parecía mentira que una aplicación tan sencilla nos haya costado tanto que se publicara, y es que la hemos tenido que subir retocada dos veces. Aún así ya está aqui, WeMore una aplicación para saber cuantos iPhones hay por el mundo, para saber qué país es el que tiene más iPhones.



La idea inicial que teníamos era en realidad hacer una "lucha" entre iPhones y Androids, saber cuantos hay por país y ver que sistema es el más extendido. Pero en realidad lo dejamos en lo que es ahora, sin embargo ya tenemos pensado intentar hacer lo mismo para móviles Android.

Y es que resulta complicado sacar tiempo para dedicarle a desarrollar programas fuera de tu trabajo, quitándole tiempo a la familia, aficiones y demás cosas. Creo que podríamos intentar crear algún tipo de grupo de los programadores en ratos libres, podríamos llamarlo los "Sunday Developers", porque los domingos se aprovechan más que ningún día. En cualquier caso, es un grupo que espero dejar cuanto antes y poder dedicarme a esto como actividad (laboral) principal.

Esperemos que en breve podamos decir que ya hemos creado el contador de Androids, pero esa batalla ya llegará.

Work in progress

0 comentarios
Hace mucho que no escribimos ninguna entrada en el blog. De hecho, viendo la fecha de la última publicación, nos remontamos hasta octubre. El motivo es muy sencillo: estamos intentando cerrar nuestro primer "gran proyecto": un juego para iPhone.

Sí señores, un pequeño juego que espero que sea de vuestro agrado. La verdad que no hemos parado desde principios de octubre... Ya son casi dos meses de noches hasta las 2-3-4 de la mañana. A veces pienso que te ha de gustar mucho ésto para tal sacrificio, pero creemos que merece la pena. Yo personalmente estoy convencido de que llegaremos al número uno en la lista de juegos en su versión gratuita.

Digo en su versión gratuita porque uno de los dilemas que se nos plantea es el precio a nuestro trabajo. Una gran cuestión, sin duda, ya que siempre se tiene la duda de si poner el "primer trabajo" gratis o no. Al respecto hemos pensado en, como no, hacer dos versiones, una gratis y otra no. Las dos perfectamente funcionales, pero una que permita un sólo jugador (la gratuita), y otra que permita jugar con gente.

Es un modelo de trabajo ampliamente utilizado y que esperemos que dé sus frutos. Tan pronto como lo sepamos lo publicaremos aquí.

Mientras tanto hemos subido otra "tonto-aplicación" al AppStore. La verdad que parece que seamos un poco torpes, porque ya nos la han rechazado 2 veces. Todo por no leer la documentación que Apple proporciona al respecto: que si logos, que si imágenes, etc etc.

Total, que esperamos poder ver pronto el fruto de nuestro trabajo.

M.

Llamadas

0 comentarios
El martes al mediodía recibí una llamada de un número raro, raro, raaaaro. Empezaba por +1, con lo que pensé quién cojones de fuera de España me podía llamar. Total, descuelgo, y un tiparraco me pregunta si hablo "spanish", y si me importaría hablar en inglés. Después de unos segundos de incerteza pensando si colgar o no, me lancé y pensé: "¡Porqué no!". No sé vosotros, pero mi nivel de inglés no está como para mantener una conversación por teléfono con un tio de... ¡California! Sí, sí, cómo lo leéis... C-A-L-I-F-O-R-N-I-A!

Era un tío de Apple, que me llamaba por una de las aplicaciones que hemos subido al AppStore. Me preguntaba porqué la habíamos categorizado en "Casino" y si era legal en España. Le contesté que sí, y me dijo que tenía que mirarse la legislación española y que tardaría un par de semanas más.

Total, que colgué con dos sentimientos encontrados:
(1) Alegría por haberme "defendido" en mi conversación con el tiparraco.
(2) Tristeza por tener que esperar dos semanas más a ver nuestra segunda aplicación en el mercado (eso si finalmente la declaran "legal").

Ahora veo que estos de Apple se toman las cosas en serio. De hecho, siempre me he preguntado si en EEUU son más serios que en España haciendo software, tengo la sensación de que sí, pero me gustaría comprobarlo "insitu". Quizás el futuro me permita hacerlo.

Y mientras tanto, no vaya a ser que comenta el mismo error dos veces, he ido a modificar la fecha de lanzamiento de esta app para ponerla en el 1 de noviembre de 2009. DÍA "D", HORA "H"!!!!

M.

Impaciencia

0 comentarios
Hace ya más de 15 días que enviamos otra aplicación al AppStore. Desde entonces se suceden momentos de subidón y de bajón. La verdad que es curioso ver cómo te afecta el hecho de esperar una respuesta de Apple alrededor de un mes de trabajo. No quiero ni pensar si uno viviera de ésto...

El resultado es que en cualquier reunión en la que estás vas mirando el correo en el móvil a ver si recibes un correo con un subject como éste:

"Your application is Ready for Sale"

Mientras tanto tan sólo un "Application Submission Feedback: Your application is requiring unexpected additional time for review. We apologize for the delay, and will update you with further status as soon as we are able.".

El otro día un amigo me comentaba que salían unas 200 apps por día... La verdad que es una cifra impresionante, deben de tener toda una legión de testers probando y jugando. Estoy por enviar un currículum...

M.

No todo es tan malo como lo pintamos en Xcode

0 comentarios
Ya en la carrera (antes de descubrir Java) usamos algunas herramientas/lenguajes orientados al desarrollo de interfaces gráficas (Visual Basic, Delphi) que realmente permitían una construcción muy rápida de pantallas y el control de sus eventos.

Sin embargo llegamos al mundo Java y todo eso cambió. Es verdad que hay una infinita comunidad de programadores, un infinito repositorio de documentación de soluciones o frameworks o ejemplos, una infinito abanico de frameworks o apis o librerías open source para no tener que reinventar la rueda. Pero lo que no hay es una buena herramienta que te permita diseñar e implementar las pantallas de aplicaciones Java (ya sea en Swing o en Web). Muchos han sido los intentos, sin embargo sigue siendo la asignatura pendiente del mundo Java.

En el Xcode eso no pasa, ofrece una herramienta de diseño de las pantallas bastante potente, muy parecida a las que ya ofrecían las soluciones que los javeros rechazábamos como sacrílegas (Visual Basic, Delphi, Power Builder, etc.). sin duda algo que no podía faltar en el Xcode, ya que las aplicaciones de iPhone son sin lugar a dudas un porcentaje muy alto de pantallas. Te permite distribuir componentes en la vista con posicionamiento exacto, permite modificar las propiedades de todos los componentes (tanto su aspecto visual como su asociación con los controladores) y te permite tener tu propia paleta de componentes.

Si bien se agradece una herramienta así, hay que añadir que sería imperdonable que no se incluyera en el Xcode. La paleta de componentes de pantalla en iPhone es bastante reducida, en comparación con otras soluciones, y ni siquera está muy pensada para hacer diseños de formularios (!!!¿¿¿como no puede existir un Combo Box???!!!). Así que tener un editor gráfico de pantallas de iPhone resulta más sencillo que no para una tecnología como la de Java (y que conste que es excusa, también es imperdonable para la comunida Java).

Lo que si tenemos claro es que si queremos seguir haciendo aplicaciones para iPhone tendremos que desarrollar nuestra propia paleta de componentes. Creo que empezaremos por el Combo.

Errores de novato

0 comentarios
Después de unos cuantos días durmiendo poco, por fin hemos conseguido publicar nuestra primera aplicación en el AppStore. Aquí la tenéis: Quiniloo Lite. Es un programa (gratuito) que te muestra el histórico de resultados de fútbol de primera y segunda división de la liga española de fútbol. Y todo sin necesidad de ninguna conexión a Internet.

Lo primero que te pasa cuando recibes el correo de Apple confirmando que tu aplicación está "Ready for sale" es un subidón de ilusión. Es una sensación que probablemente sólo pueda entender la gente a la que le gusta hacer este tipo de cosas (que el resto del mundo llama "frikadas"), la gente que programa por "amor al arte" y que se desvive cuando ve el resultado de lo que ha hecho.

Lo siguiente es ir al Apple Store a buscar tu aplicación: categoría deportes y pestaña "Lo último". En nuestro caso ha sido un chasco porque... ¡aquí no aparece nada!. Entonces vas directamente al botón de buscar para ir al grano: tecleas "Quiniloo" y... click: ¡Búscaaaaaar! Entonces encuentras la aplicación... y piensas: ¿Por qué no aparece en "Lo último"? Woooooooooooookkkkk! ¡Qué tonto he sido!¡Qué error de novato! Resulta que cuando rellenas los datos de la aplicación, has de indicar a partir de qué fecha quieres que esté disponible... ¡qué pregunta! ¡Pues desde ayer mismo! Pues no, hay que tener en cuenta que, en nuestro caso, han tardado unas dos semanas en dar el sí. Y claro, cuando subimos la aplicación era mediados de septiembre y todas las aplicaciones que han salido desde entonces hasta ahora es lo que puedes visualizar en "Lo último".

Total, que hay que tener en cuenta ese gap de tiempo para indicar la "fecha de salida", de forma que cuando la gente vaya a "Lo último" esté tu aplicación en las primeras posiciones.

M.

Round 2, Fight!

0 comentarios
Es que no me podía aguntar sin compartir otra lucha que hemos tenido estos días con Xcode y CVS. Sí, ya sé que parece una trivialidad el configurar una IDE para que trabaje con un repositorio de código, pero tratándose de Apple, creedme que cualquier tema se vuelve oscuro.

Queda muy bonita la documentación que tienen sobre la utilización de Xcode y Subversion, pero se olvidan que existen otros gestores de repositorios, como CVS. Porque en estos días de vorágine tecnológica parece que si no usas subversion no tienes 'glamour'. Pero señores, yo digo, para lo que lo utilizamos, léase commit, update, compare, etc... ¿por qué tengo que utilizar lo último de lo último? ... pues va a ser que no. Así que en mi empeño de configurar Xcode+CVS nos encontramos con el primer problema: si utilizas ssh para conectar con tu repositorio no puedes especificar directamente el puerto en la configuración:



Después de algunas horas preguntándome porqué, y buceando en internet, llego a la conclusión que para que funcione tengo que crear un fichero en mi home en ".ssh/config" con la configuración del puerto para mi host. ¿Qué mierda es esta?

La segunda decepción se me plantea a la hora de subir el proyecto al CVS. Resulta que tienes que ir a la configuración del Xcode (Menú SCM) (hasta aquí bien), seleccionar "Import" (de puta madre), seleccionar tu proyecto... y click!!! Entonces piensas..., y el directorio de build donde se generan los "builds"... ¡no lo quiero importar! Pero claro, ya es demasiado tarde... Encontes empiezas a buscar en Internet y te encuentras que para que no se importe tienes que configurar las preferencias del Xcode para que los builds los haga en un path 'absoluto' fuera de donde tienes el proyecto... Pero vamos a ver: ¿esta gente no conoce el '.cvsignore'?

La tercera decepción es la mejor. Una vez importado piensas... ¡guay, ya tengo mi primer proyecto en el CVS! Entonces vas al proyecto en el Xcode, haces una 'modi' en un fichero y... ¡tachaaaaaan! ... no pasa nada. ¿Ein? ¿Qué estoy haciendo mal? Total, que empiezas a buscar en Internet y te dicen que tranquilo, que borres tu proyecto una vez importado y hagas un 'Checkout' del que hay en el CVS. ¡Sí, sí, señores, borren el proyecto sin miedo!

Y colorín colorado, una vez borrado y 'checkout-ado' este cuento se ha acabado.

Moraleja: ...hubiera estado bien encontrar algo como el 'Share Project' de mi querido Eclipse! ¡Aupa CVS!

M.

Eclipse vs. Xcode

1 comentarios
Una de las primeras preguntas que te viene a la cabeza al introducirte en el mundo iPhone es qué IDE se utiliza para programar. Rápidamente piensas que hay algún plugin para esa magnífica herramienta llamada Eclipse... pero pobre de ti! Lo primero que encuentras es que se utiliza una cosa llamada Xcode. Lo llamo cosa porque no se me ocurre otro calificativo. A continuación piensas, bueno, voy a bajarme la versión para windows... y... wwookkkkkk!!! Segundo error.

Te pones a buscar por Internet y nada. ¡No puede ser! piensas... Te desesperas, y poco a poco te das cuenta que vas a tener que pasar por una "piedra" llamada Apple. ¡Hay que pasar por caja! Pues sí, hay que tener un Macintosh para poder hacer cosas para ese magnífico teléfono. Así que ni corto ni perezoso nos hemos comprado un iMac de 24" y un MacBook de 13.3". La verdad que es una buena máquina (por lo menos la mía, el iMac), tanto en rendimiento como en diseño. Por ahora parece que merece la pena la inversión...

Después de conectarlo a la corriente y varias cosas más, te instalas nada más y nada menos que 2.1Gb de IDE (Xcode). Os imagináis que el Eclipse fueran 2Gb? Ufff! Bueno, seguro que trae muchas cosas! Lo siguiente que te encuentras es el teclado. Mi iMac viene con el teclado mini, uno similar al que traen los portátiles en tamaño. ¡Dios! ¡Rescátame de este infierno! Es la risa, los botones importantes no existen! El control pasa a ser command, el command no hace lo que normalmente... total, que lo primero es adaptarte al teclado y exigencias de Apple. Pero lo mejor es cuando vuelves al trabajo y empiezas a apretar a la tecla de windows pensando que es el command... ¡Basta ya!

Una vez pasas el trago psicológico, empiezas a ver muchos gigas y pocas nueces. Y te das cuenta de lo mucho que quieres a Eclipse, sus plugins, sus combinaciones de teclas, sus opciones, sus vistas, sus prespectivas... Total que si alguna vez os habéis preguntado si hay una herramienta mejor que Eclipse, instalaros el Xcode y enseguida obtendréis la respuesta a vuestras dudas. ¡I Love You, Eclipse!

M.

Tal vez esta vez sí?

0 comentarios
Después de varios intentos de encontrar nuestra salida profesional por cuenta propia, tal vez esta sea la definitiva. Venimos del mundo Java y principalmente de las aplicaciones típicas de gestión. Llevamos demasiado tiempo pensando en que podríamos hacer por nuestra cuenta y hemos topado con iPhone (a mi me hicieron topar).

A partir de ahora intentaremos hacer pequeñas o grandes aplicaciones de iPhone, no sin un duro trabajo de aprender, leer, probar, dedicarle horas, etc. para cambiar de mundo tecnológico.

Quien sabe, tal vez esta sea la definitiva, esperemos que sí.