1 - Curso en español Titanium Certified Application Developer (TCAD)
Vamos con la segunda entrega (primera seria :d) de mi colección/apuntes para obtener la certificación TCAD.
Hoy entramos en contacto con la aplicación en sí. Los puntos que trataremos son:
Comenzando a construir aplicaciones Javascript para Titanium.
Haciendo uso de las distintas plataformas y haciendo frente a los retos que suponen.
Técnicas de cross-platform .
Trabajando con Javascript
Es posible que muchos veáis Javascript como un lenguaje para meter en páginas HTML, que hagan acciones a un click de botón, etc. Pero aquí, tal como dije en la entrada anterior de la serie, vamos a verlo como un lenguaje orientado a objetos (POO).
Para ello, debemos tener en cuenta una serie de cosas:
Ser precavidos con el alcance global de las variables.
Ser modulares (hacer mezcla del patrón modular y OO).
Esforzarse lo máximo posible para no repetir código (DRY, Don't Repeat Yourself).
Tenemos que hacernos a la idea de que nuestra aplicación es como una aplicación web. Tiene una interfaz de usuario (UI) elaborada en el lado del cliente, con datos obtenidos tanto de un almacenamiento local (por ejemplo la agenda del propio móvil) y remoto (una base de datos o un servicio web externo). Debemos seguir un diseño orientado a componentes, dirigido por eventos, tal como veremos en un futuro.
El fichero raíz de toda aplicación Titanium será app.js, en el crearemos un contexto (que como norma general será el único que necesitaremos a lo largo de nuestra aplicación y que, de hacerlo así nos facilitará bastante la vida). Esto conlleva que debemos estar muy atentos al nombre de las variables que utilicemos a lo largo de la aplicación para evitar colisiones inoportunas.
También debemos recordar que, al ser una aplicación Javascript, la gran mayoría de fallos aparecerán en tiempo de ejecución pues la compilación es casi nula. Debemos tener mucho cuidado e intentar seguir un desarrollo TDD (Test Driven Development) para minimizar los posibles errores.
Nuestros objetivos a la hora de escribir una aplicación en Javascript son claros:
Facilidad para escribir, mantener y actualizar la aplicación.
Si trabajamos en equipos, muy recomendable usar repositorios. Tener un código versionado es síntoma de profesionalidad, y da seguridad a la hora de desarrollar :).
Rendimiento. Siempre es importante. Piensa en la facilidad que tiene el usuario para instalar aplicaciones. Pues con la misma facilidad la desinstalarán si no da señales de trabajo bien hecho.
Evitar colisiones en los nombres de variables. Repito, muy importante.
Por último, una mala praxis que debemos evitar a toda costa es extender objetos o métodos de objetos Titanium como Ti.API, Ti,UI, ... Podemos afectar inconscientemente a métodos internos o privados que afecten de manera directa sobre el rendimiento, conexión o incluso el correcto funcionamiento de nuestra aplicación.
Así por tanto, como debe resultar nuestra aplicación? Pues una imagen vale mas que mil palabras:
Cross-Platform
En Titanium no debemos tomar esta expresión como "haz algo una vez, ejecuta en cualquier lado". En Titanium el significado varía a "Escríbelo una vez, adapto a cualquier sitio". Ahora muchos podréis pensar que os engañé en su momento, pero hay que entender una serie de aspectos. Tanto iOS como Android tienen sus peculiaridades. Esto hace que en ocasiones haya que adaptar parte de nuestro código para según que sistema operativo ejecute nuestra aplicación. Pero no nos asustemos, porque Titanium nos ofrece la variable Ti.Platform.osname, la cual nos ayudará a diferenciar el código que se tenga que ejecutar bajo sistemas Android o iOS. Ademas, gracias a la modularidad del código que tendremos en nuestra maravillosa aplicación, podemos situar los fragmentos de código específicos para cada sistema en sus carpetas correspondientes (cuando creamos una aplicación para Android e iOS, vemos como se generan dos carpetas con archivos específicos para cada sistema).
Un punto muy importante que nos facilita Titanium es la internacionalización (a partir de ahora usaré su nombre de andar por casa, i18n). Esto nos permite que tengamos una aplicación multilenguaje, en la que no nos tengamos que preocupar en hacer una aplicación para cada idioma de los mercados en los que queramos trabajar. Esto como comprenderás nos da un arma para expandirnos de manera global muy grande.
Su uso es sencillo. En vez de escribir un literal, usaremos L('<nombreVariable>'), y en el .xml que veremos en la carpeta i18n, meteremos ese variable con su valor.
Y bueno, esto ha sido la segunda entrada del curso. Os recomiendo seguir los labs que nos ofrece Titanium e intentéis hacer el proyecto que recomiendan. Con los conocimientos que habéis obtenido hoy, tirando de la API y de los ejemplos que podéis ver en el kitchensink, hoy mismo os podéis crear una aplicación "plana", que no reaccione a nada ni contacte con ningún servicio, pero que tenga forma en vuestros simuladores. No dudéis en plasmar aquí todas vuestras dudas y encantado estaré de resolverlas en lo que esté en mis manos y así podremos compartir distintas experiencias.
0 - Curso en español Titanium Certified Application Developer (TCAD)
Bueno, pues vamos al percal. ¡¡Y quiero empezar por todo lo alto!! Quiero compartir con tod@s la andadura que voy a seguir hasta hacerme Titanium Certified Application Developer, o TCAD para andar por casa.
En esta primera entrada, vamos a ver:
¿Qué es eso de Titanium?
Requisitos.
¿Qué es eso de Titanium?
Vamos a intentar definirlo sin aburrir mucho al público. Creo que no hace falta decir que el desarrollo móvil es lo que pita en estos momentos. No saberlo o no estar casi interesado es una falta de respeto. Y a los hechos me remito:
Podeis ver como el crecimiento no para desde hace 3 años y, aunque sigue estando por debajo de los grandes, es algo que tarde o temprano llegará.
Ahora la pregunta es... iOS o Android? Objective-C o Java? Papá o mamá? Está claro que la facilidad que te da Java no te la dará nunca Objective-C. Pero vas a dar de lado a esa mitad del mundo que adoran (adoramos) a la manzana y a los progresos que nos ha dado el ya difunto Steve Jobs? Yo no, desde luego. Pero aprender Objective-C da mucha pereza y mas cuando te ganas las habichuelas con Java.
¿Y qué opciones tenemos? Podemos aprender los dos lenguajes y cuando hagamos una aplicación, hacerla en Java y luego en Objective-C. Pero también tenemos la suerte de que existan los frameworks!! Los hay de todos los colores, tamaños y variedades: PHP, Ruby, Python, Flex, Java, ... ¿Cual elegir? Ya eso depende de cada uno y de los gustos, pero yo lo tuve claro desde el primer momento: Javascript. Y eso conlleva una cosa: Titanium Appcelerator.
¿Por qué Javascript? Bueno, es un lenguaje con similitud a Java (obvio, no?), es muy flexible (poder hacer a una variable String y en la siguiente linea float, me encanta :d), me lo tengo que comer todos los días en mi trabajo y sobre todo, hay mucha información por internet. Lo único malo que tiene para mí es el DOM (aunque reconozco que es la leche de útil), pero en este caso Titanium no trabaja con DOM !! Game, Set & match para Javascript!!
Luego tenemos el IDE. Cuando lo veáis es como estar en Eclipse o Aptana. No tiene perdida, así que otro punto a favor! Esto se pone muy bien, verdad?
Y finalmente, decir que la comunidad Titanium es bastante grande. En los últimos años ha ido creciendo (creo haber visto un 20% en los últimos 3 años) e incluso hay empresas que empiezan a buscar gente con conocimientos en el framework. Por tanto, estos conocimientos ya no serán una pérdida de tiempo.
Requisitos
Bueno sin mas dilación, vamos a ponernos en harina y vamos a ver que necesitamos:
Ordenador (graciosoooo).
Licencia Titanium (tomaremos el plan gratuito pues, como dicen por aquí, los experimentos con gaseosa). La obtendremos al descargarnos su IDE.
Android SDK.
iOS SDK. *
Conocimientos de Javascript.
Este blog para aprender todas las bondades de Titanium.
Google, que te salvará de más de un apuro.
Pongo el SDK de iOS con asterisco porque a no ser que tengas un equipo Mac en el que desarrollar, tus opciones son nulas. Hombre, siempre puedes buscar en internet como montar una unidad virtual de Mac (pero yo no te lo he dicho, eh? :d ). De cualquier modo, no es algo restrictivo por lo que puedes continuar siguiendo este "manual" si eres de Windows y/o Linux :).
Sobre la configuración del entorno no voy a entrar para no extender mucho la entrada. Solamente te diré que existen infinidad de blogs en la red, tanto en inglés como en español en las que se explica que pasos seguir sea cual sea tu sistema operativo.
Y bueno, queda ya todo dicho. Si tenéis alguna duda, sugerencia o chiste que contar estaré encantado de leerlo y responder si se da el caso. Os veo en el próximo capítulo!.
Creo que esta cita explica de manera más o menos clara cual es el día a día de los programadores. El método del prueba-error, el clean & build, el reinicio de windows... Nos pasamos todo el día haciéndolo, ¿verdad? Y no por ello nos venimos abajo. Tendremos nuestros momentos de bloqueo mental, nuestros brotes psicóticos e incluso nuestros deseos de asesinato. Pero tarde o temprano sacamos adelante esa idea. Así somos. Y nadie nos va a cambiar, porque nos gusta ser así.
Bueno. Creo que como introducción es suficiente. Si te has sentido identificado (al menos en parte) con lo antes dicho, ten por seguro que aquí te sentirás como en casa. Aquí encontraras las aventuras y desventuras de un humilde "currelas" del teclado. Un picador 2.0, que no se mete en zanja pero si en cuartuchos, y que es feliz en su esquina oscura con su 19 pulgadas :)
Nos leemos!! (si, espero poder encontrar algún día algún mensaje. Aunque sea para preguntar como se llega a Madrid)
NullPointer Exception @npexception - Tumblr Blog | Tumgag