Curso de creación de shaders AAA en Unity 5

minCurso.png

Aquí os dejo el ultimo curso que he publicado en mi canal de youtube, en este caso os enseño a programar shaders de calidad AAA en el motor gráfico Unity 5!

Enlace al curso gratuito

Anuncios

Prueba mi nuevo juego para Android

Hoy tengo el placer de traeros Trouble In The Forest, um juego para Android que he estado desarrollando este fin de semana, desde la música a los gráficos. A lo largo de esta semana he estado puliendo algunos bugs y preparando el APK para su puesta en producción.

El juego hace uso de la API de Google Play Services, para la implementación de las funciones en la nube.

Espero que os guste y lo disfrutéis, el código fuente esta en mi github y podéis descargar el juego aquí:

Enlace a Google Play

Javascript en el backend: texto al estilo Hacker

texto-hacker

Hoy viendo la serie de Scorpion, he visto las típicas letras al estilo hacker que aparecen de forma secuencial en una consola , y directamente he caído en la cuenta de que nunca había hecho algo por el estilo, así que sin mas preámbulo se me ha ocurrido ponerme manos a la obra, y he decidido hacer esto orientado al backend, usando NodeJS y Javascript.

Me ha llevado unos 40 minutos entre pensar el algoritmo para conseguir esto, escribirlo y escoger las funciones adecuadas para ello, pero al final el resultado a sido un programa que al ser ejecutado es capaz de tomar un archivo de texto del servidor, leer su contenido, e ir escribiéndolo en la consola de forma automática y secuencial con ese autentico estilo hacker que tanto nos gusta en las películas del tema.

código

Como se puede observar que el código utiliza tanto concurrencia, para ir escribiendo las letras de forma asíncrona, como la variante síncrona de la función readFile de NodeJS, y que al ser la versión síncrona del metodo capturamos su posible excepción en un bloque Try-Catch. La función setInterval a diferencia de la anterior si que es asíncrona, y nos serviremos de ello para ir escribiendo las letras, espacios o saltos de linea de forma secuencial , cada vez que pasen 200 milisegúndos su callback será ejecutado escribiendo un nuevo caracter .

Solo queda crear un archivo de texto llamado “archivoDeTexto.txt” y colocarlo en el mismo directorio que el script, rellenarlo con algún texto que queramos (yo he pegado el código del programa dentro del archivo y que brutal), y ejecutar el script desde la consola de comándos mediante “node nombreDelScript.js”. Una vez andando alucinaréis con el resultado, al menos yo lo he hecho.

Además os dejo aquí el link para que lo descarguéis en mi cuenta de GitHub, solo tendríais que ejecutar el archivo escribiendo: “node hacker_console.js”, debeís tener instalado NodeJS para que funcione obviamente.

Descargar proyecto en GitHub

Lo increíble de esto es ver como Node nos permite hacer cosas tan chulas con tan solo unas pocas lineas de código. Pero que os parece si lo hacéis en otro lenguaje o tecnología y compartís con los demás que sois capaces de hacer.

 

¿Conoces Json?

json

Hoy vamos a hablar de una de las herramientas de desarrollo mas sencillas de utilizar pero a la vez de mas utilidad que podemos encontrar a nuestra disposición, y esto es tanto que a día de hoy, el conocimiento de Json se ha convertido en un indispensable para cualquier desarrollador de hoy en día.

Bien, y que es esto de Json, pues imaginemos que para la comunicación de datos entre lenguajes de programación que no tienen nada que ver unas con otros, se ha inventado una especie de “servicio de mensajería” ligera, sencilla, rápida y eficaz. Y esto no se ha inventado con Json, antes esta Xml (y sigue estando), pero al llegar Json se ha puesto literalmente a la cabeza, debido a varios factores, como su simplicidad o por ejemplo el ahorro de escritura de código  y peso que supone, algo que se puede comprobar al comparar dos archivos (uno Xml y otro Json).

¿Que dice wikipedia?

JSON, acrónimo de JavaScript Object Notation, es un formato de texto ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript aunque hoy, debido a su amplia adopción como alternativa a XML, se considera un formato de lenguaje independiente.

¿Y como trabajamos con Json?

Pues dada la ocasión he preparado algunos ejemplos, en los que veremos su simple sintaxis y su implementación en HTML5, Javascript y también veremos como trabajar con Json cuando programamos para Android.

Implementación en HTML5 y Javascript:

La estructura de un objeto Json:

estructura_objetoEjemplos desarrollados con Sublime Text 3.

Como podéis ver, hay una simple estructura HTML5, que contiene un contenedor “div”y un script Javascript con una referencia al div “contenedor”. Bien pues ese “var objeto”  que veis es la declaración del objeto Json, tan sencillo como eso, y en el codigo html que metemos en la etiqueta del contenedor un poco mas abajo, estamos realizando la llamada a las parejas {“clave”:”valor”} que tenemos dentro de nuestro objeto Json.

Salida del ejemplo anterior:

estructura_objeto_out

Trabajo con números:

numeros_json

Ejemplo mas simple y sencillo aún, esta vez vemos como trabajar con tipos de dato numéricos. En este caso se puede observar que el objeto Json, solo tiene un atributo.

Salida en el navegador:

numeros_json_out.PNG

Strings en Json:

strings_json

Este ejemplo a mi parecer no necesita de mucha explicación.

Salida de la ejecución del código en el navegador:

strings_json_out

Trabajo con arrays en Json:

array_json.PNG

Se puede observar que aquí ya se complica un poco la cosa, pero nada del otro mundo, quizás la estructura de declaración del array en Json sea algo distinta a lo que acostumbramos a ver en diferentes lenguajes de programación (obviando que Json no es uno de ellos). Cabe decir que los objetos son completamente flexibles en cuanto a términos de anidación se refiere, con lo que podríamos por ejemplo meter varios objetos dentro de otros, aunque útil en muchos casos, también podría tender a romper esa “sencillez” de legibilidad que Json de forma natural nos proporciona.

Salida del navegador:

array_json_out

Desde luego estos ejemplos son a modo didáctico,  y esta no es la forma habitual de trabajar con Json en un entorno profesional, todo ha sido a modo local, en el día a día se trabajaría con archivos “.json” albergados en un servidor,  e importaríamos desde una Url en nuestro código Javascript dentro de nuestro html o trabajaríamos con Jquery o Ajax para parsear los datos de los archivos Json, ya que estos son, digamos”codificados” y enviados a través de la red hasta su destino en forma de simples cadenas de texto, de unos cuantos caracteres, y luego una vez recibidos son decodificados, así que os invito a investigar y profundizar en como trabajar con Json de este modo. Aunque en el siguiente ejemplo, en Android veremos como hacer esto, aunque de modo local, si que veremos el proceso de codificado y decodificado de los objetos Json.

Implementación en Android:

Preparando la interfaz gráfica.

Xml

Creamos con Xml una sencilla interfaz de usuario, la cual consta únicamente de un TextView con un Id para identificarlo desde nuestra clase Java.

Creando la clase java y los imports de la misma:

imports

Creamos nuestra activity e importamos las clases JSONException y JSONObject de la cual nos serviremos para crear, trabajar y parsear nuestros objetos Json de forma nativa dentro de Android.

onCreate

en el método onCreate identificamos nuestro TextView y creamos una instancia de la clase JSONObject, ya solo queda meter los atributos dentro esta instancia la cual será nuestro objeto Json,  hay que hacer esto dentro de una estructura “try-catch” ya que podria lanzar una excepción.

codificar

A continuación he creado un método “codificar” que devuelve un String a partir de nuestro objeto Json. Y es justamente lo que mencionaba en los ejemplos de Javascript, ahora nuestro objeto esta contenido dentro de una cadena de caracteres.

decodificar

Ahora podemos ver como he creado un método “decodificar” que hace justo lo que su nombre describe, recibe un String que contiene un objeto Json codificado y devuelve otro String, pero esta vez ya decodificado.

La ejecución del código daría esta salida:

android_out

Como podéis ver es bastante simple el uso de Json, pero aún más es útil, a día de hoy Json ya esta integrado de forma nativa en prácticamente todos los lenguajes  de programación, los cuales, al igual que hemos visto en android, incluyen sus propias clases para trabajar con él. Además muchos sistemas modernos como por ejemplo el backend Firebase o la base de datos no relacional MongoDB también se basan en Json para trabajar, por lo tanto podemos estar seguros de que es una apuesta garantizada el estudiarlo.

Con esto despido el articulo de hoy, espero que os haya sido de utilidad y que os haya gustado.

 

 

 

 

Globalizar una app para Android

globalizacion

Globalización de idiomas y Strings dinámicas

Hoy veremos como globalizar una app al programar en Android Estudio 2.0, con lo que haremos posible tener una misma versión de nuestra app para un numero indefinido de países. Y no solo eso, si no que por el camino aprenderemos ha crear y manejar Strings dinámicas.

3, 2, 1…  !DENTRO VIDEO!: