jueves, 23 de marzo de 2017

TinyDev - Lenguaje de programación para niños

Estoy orgulloso de anunciar TinyDev, mi lenguaje de programación para niños.

TinyDev ha sido creado con el objetivo de que los niños aprendan a resolver problemas.

Aunque es un lenguaje muy completo, ha sido diseñado para que sea sencillo de utilizar, huyendo de las complicaciones y dificultades de ciertos lenguajes de programación para niños, muy en boga actualmente.

Mediante TinyDev, los niños pueden dibujar gráficos, escribir texto, mover imágenes en la pantalla, emitir sonidos, e interactuar con sus propios programas mediante el teclado y el ratón.

Además, se acompaña de un pequeño IDE (Integrated Development Environment, Entorno de Desarrollo Integrado), mediante el cual los niños pueden crear, editar y ejecutar sus programas, tal y como ocurre con los lenguajes de programación profesionales.

Y... ¡es gratuito!



El IDE de TinyDev ha sido diseñado para parecerse y actuar como los que acompañan a los lenguajes de programación profesionales. Admite los idiomas inglés y español.

Tiene las funciones características de este tipo de entornos, entre ellas:

  • Crear, abrir, guardar e imprimir ficheros de código fuente.
  • Editar el código fuente de los programas.
  • Ejecutar y parar el programa actual.
  • Configurar el IDE.
  • Mostrar ayuda sobre el IDE y el lenguaje de programación.
  • Botones de acceso rápido a las acciones más frecuentes.
  • Panel de selección rápida con todas las palabras clave del lenguaje.
  • Panel de información sobre el código fuente actual.


Con el objetivo de ayudar a los más pequeños en el aprendizaje del lenguaje de programación, han sido desarrollados algunos programas de ejemplo, que muestran las posibilidades de TinyDev.

Entre ellos, están:

  • Chase - un juego en el que dos robots pretenden atraparte.
  • Space - el clásico juego de naves espaciales y asteroides.
  • Memory - un juego de fichas de colores, para ejercitar nuestra memoria.
  • Simulación de una pecera.
  • El clásico juego del tres en raya.
  • Dibujos - camión, edificio, efectos de pantalla...



Los requisitos para instalar y ejecutar TinyDev, son los siguientes:

  • Ordenador con Java 1.8 o superior.
  • Ganas de aprender y pasarlo bien.


Se puede descargar, desde su propia página web:

http://www.floppysoftware.es/tinydev/

¡A disfrutarlo!

viernes, 23 de octubre de 2015

PhoneGap, framework de desarrollo multiplataforma para aplicaciones móviles

En la primera mitad de la ya lejana década de 1980, coexistían multitud de sistemas o plataformas incompatibles entre sí, cada uno con sus peculiaridades, ventajas y restricciones.
 
Esto originaba innumerables quebraderos de cabeza a las compañías de software que, como es lógico, querían que sus productos tuviesen la mayor difusión posible.
 
Ante esta tesitura, no quedaba más opción que desarrollar distintas versiones de los programas, una por sistema, con el elevado coste en tiempo y dinero, que esto supone.
 
En el mejor de los casos, se podía partir de una base de código fuente común, aunque esto no era siempre posible.
 
El resultado a largo plazo, fue la desaparición de casi todos aquellos sistemas, y la supervivencia de unos pocos.
 
Plataformas móviles

Actualmente, se da un fenómeno similar en las plataformas móviles, teniendo como principales exponentes a Android de Google, iOS de Apple y Windows Phone de Microsoft, sin olvidarnos de Firefox OS, BlackBerry, Ubuntu Touch, Tizen y WebOS, entre otros.
 
Aunque las estadísticas hablan de una cuota de mercado del 85% para la plataforma Android, las empresas desarrolladoras de software continúan queriendo que sus productos tengan la mayor difusión posible, por lo que se encuentran ante una situación similar a la descrita.

Desarrollo multiplataforma
 
Afortunadamente, en la actualidad existen una serie de frameworks que posibilitan el desarrollo multiplataforma de aplicaciones para dispositivos móviles.
 
En estos frameworks, en general, desarrollamos el proyecto de software en uno o varios lenguajes, en base a una API común a todas las plataformas, para después desplegar el código sobre varias de ellas.
 
Aunque suene a panacea, no es tal, ya que perdemos cierto control sobre el código que finalmente se ejecutará en cada plataforma, y generalmente dichos frameworks no permiten explotar el 100% del potencial de cada una de ellas. Aunque, en la mayoría de los casos, puede ser una solución satisfactoria para el problema anteriormente comentado.
 
En cuanto a los frameworks disponibles, podríamos establecer dos grupos. Por una parte, estarían los que utilizan tecnología web para el desarrollo de la aplicación (JavaScript, HTML y CSS). Por otra, tendríamos los que utilizan un lenguaje de programación convencional como C#.
 
Entre los que utilizan tecnología web, podríamos citar a Phonegap y CocoonJS, mientras que Titanium y Xamarin pertenecen a la segunda categoría.
 
En esta ocasión, vamos a centrarnos en PhoneGap, aunque también presentaremos una breve comparativa de los frameworks mencionados.
 
PhoneGap
 
Para comenzar, diremos que PhoneGap es un framework que permite el desarrollo multiplataforma de aplicaciones para dispositivos móviles, utilizando tecnología web (JavaScript, HTML5 y CSS3).
 
PhoneGap fue originalmente creado por la empresa Nitobi (adquirida por Adobe Systems), y está íntimamente emparentado con Apache Cordova.
 
Al ser publicado bajo la licencia Apache License, Version 2.0, entra dentro de la categoría de software libre de código abierto, y puede utilizarse para desarrollar software libre, comercial y/o de código abierto.
 
La última versión liberada es la 5.2.0 de 23 de septiembre de 2015.
 
Actualmente podemos desarrollar con PhoneGap para las plataformas móviles iOS, Android, Windows Phone, Blackberry, Ubuntu Touch y Firefox OS, aunque en algunas de ellas hay ciertas restricciones.
 
Un aspecto importante, es que las aplicaciones generadas con PhoneGap no son nativas sino híbridas, y el renderizado es realizado mediante vistas web, en lugar de utilizar la interfaz gráfica nativa de las plataformas destino.
 
Esto, que en principio parece ser una desventaja es, por contra, su mayor virtud, ya que permite compartir el 100% del desarrollo (interfaz de usuario y código) entre las diferentes plataformas, lo que puede suponer un ahorro considerable en tiempo e inversión económica, ya que no precisamos desarrollar tantas versiones de nuestra aplicación, como plataformas queramos abarcar.
 
Como ya se ha comentado, para desarrollar, utilizaremos los lenguajes HTML5 y CSS3 para el renderizado, mientras que para la lógica de la aplicación, utilizaremos JavaScript. PhoneGap no permite utilizar otros lenguajes como PHP, Java, .NET, ASP o JSF.
 
Es, por tanto, una herramienta muy interesante para los programadores web, así como para aplicaciones que dispongan también de versión web.

La API que proporciona PhoneGap, consiste en una serie de plugins que permiten tener acceso a los diferentes elementos del dispositivo (cámara, micrófono, almacenamiento, contactos, etc.). Además, se puede extender la funcionalidad de PhoneGap mediante plugins nativos, a llamar desde nuestro código JavaScript.
 
Una aplicación desarrollada con PhoneGap, por lo general, será más lenta que otra nativa con funcionalidad similar, y puede que no se ajuste al look and feel característico de la plataforma en la que se ejecute.
 
Es por esto que, en el pasado, algunas aplicaciones desarrolladas con PhoneGap eran rechazadas por Apple, al considerar que eran demasiado lentas, o su interfaz no se ajustaba a sus estándares. A partir de la versión 0.8, parece ser que ya no existen dichos problemas, pues Apple considera que no violan las condiciones y términos de la App Store.
 
Para comenzar a trabajar con PhoneGap, necesitamos instalar PhoneGap Desktop y / o PhoneGap CLI. Mientras que la primera es una aplicación de escritorio, la segunda se trata de una aplicación de línea de comandos, con algunas funcionalidades extra. Aunque la documentación oficial indica que ambas aplicaciones están disponibles únicamente en plataformas Mac y Windows, es posible instalar la versión CLI en Linux.
 
 
Un punto que merece especial atención, es que PhoneGap no es un IDE o entorno de desarrollo al estilo de Eclipse, NetBeans o Visual Studio, por lo que para la escritura del código utilizaremos un editor de texto de nuestra preferencia.
 
Podemos realizar pruebas con nuestro dispositivo móvil mediante PhoneGap Developer App, una aplicación disponible en versiones para iOS, Android y Windows Phone.
 
Adobe Systems ofrece además PhoneGap Build, un servicio en la nube, que permite automatizar el proceso de compilación y empaquetado de las aplicaciones PhoneGap. Aunque es un servicio de pago, existe un plan gratuito con prestaciones reducidas.

PhoneGap vs los demás
 
Una vez vistas las características de PhoneGap, sus ventajas e inconvenientes, veamos algunas de las coincidencias y diferencias que tiene respecto a otros frameworks multiplataforma para dispositivos móviles.
 
Por una parte, tenemos a CocoonJS de la empresa Ludei, muy similar a PhoneGap, dado que ambos frameworks generan aplicaciones híbridas, y utilizan los mismos lenguajes para el desarrollo: JavaScript, HTML5 y CSS3. Eso sí, a diferencia de PhoneGap, CocoonJS no es gratuito y tiene una licencia propietaria.
 
En el otro extremo, tenemos a Titanium de Appcelerator y Xamarin Platform de Xamarin, pues ambas generan aplicaciones nativas. Titanium utiliza JavaScript como lenguaje de desarrollo, mientras que Xamarin utiliza C# y .NET.
Las dos disponen de versiones gratuitas, aunque con menos prestaciones que las versiones completas, que son de pago.
 
Con Xamarin podemos tener una base común de código para todas las plataformas de alrededor de un 75%, mientras que con Titanium dicha cifra estaría en torno al 60-90%.

En cuanto al desarrollo de la interfaz de usuario, en Titanium es específico para cada plataforma, no pudiendo ser compartido, mientras que Xamarin ofrece el producto Xamarin.Forms, que permite compartir hasta un 90% del código de la interfaz, escrita en C# o XAML.
 
Tabla comparativa de frameworks multiplataforma para aplicaciones móviles
 
Conclusión
 
A modo de conclusión, podríamos decir que PhoneGap es una herramienta muy interesante para programadores web, pues ya conocen la tecnología a utilizar, y no sufrirán de largas curvas de aprendizaje.
 
No menos importante, es el hecho de que el 100% del código e interfaz desarrollados, serán comunes a todas las plataformas destino, lo cual puede suponer un ahorro considerable en tiempo e inversión económica, algo que puede ser crucial para pequeñas empresas de desarrollo.

 
Más información: PhoneGapPhoneGap Spain.

 
Fuentes consultadas:

miércoles, 21 de octubre de 2015

Bienvenida al blog

Os doy la bienvenida a mi nuevo blog.

La temática principal será el desarrollo de aplicaciones para Android en el lenguaje de programación Java, aunque quién sabe qué nos deparará el futuro...

Espero que os sea útil la información que encontréis aquí.

Saludos.