Programando en Scala para Android / parte I

Scala es un lenguaje de Programación Funcional orientado a Objectos con tipos propios. Difiere de java en su sintaxis, es mas elegante, y tiene la particularidad de poder crear singletons solo con reemplazar la definición Class por Object como en este ejemplo.

En el caso de Android, es interesante ver que otros lenguajes puedan generar aplicaciones como en nuestro ejemplo anterior usando un simple javascript con la ayuda del plugin phonegap o con la ayuda de python, o hasta proyectos escritos en Clojure.

Scala puede contribuir a generar menos lineas de código para su proyecto, por ejemplo es interesante ver el caso de este listener que llama a un Activity desde un botón:

btnOK = findViewById(R.id.ok).asInstanceOf[Button]

/* set listeners */
setListener

private def setListener = {
   btnOK.setOnClickListener(new View.OnClickListener() {
     override def onClick(v:View) {
     val url = "http://myurl/"
     val browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
     startActivity(browserIntent)
     finish();
   }
 })
 }

Esto nos permite evitar muchas líneas redundantes que estamos obligados a usar por el estilo de programación del  lenguaje Java.

Hay que saber que existen varias alternativas para usar Scala en Android. Vas a encontrar muchos tutoriales con distintas metodologías. En general se recomienda usar un Simple Build Tool,  Proguard y por supuesto Ant para poder ejecutar tu proyecto desde un IDE como Eclipse.

Con los últimos cambios de Ant que nos trae las más recientes versiones del SDK de Android se recomienda ahora usar este plugin Ant-Android-Scala  pero también se puede usar un SBT propio que lo vamos a ver en la segunda parte de este post. Su nombre es sbt android plugin y es especialemente para Scala, tambien existe otro proyecto conocido como gradle que me parece ser una muy buena alternativa.

Pero si queremos usar Eclipse porque es la mejor opción para tener la console de depuracion de los threads, debemos usar entonces Ant y configurar bien Proguard.

La idea con Proguard es lograr convertir las clases de nuestro proyecto en Scala en .dex files, convertiendo java bytes code en Dalvik bytes code. Proguard le inyecta las librerías de Scala que van a ser compiladas para generar un APK optimizado para la Virtual Machine de Dalvik de Android. Si no queremos compilar estas Librerías cada vez, entonces se puede bajar desde aqui el APK con las librerías y pre instalarlas directamente en tu dispositivo Android.

a continuacion en la parte II

 

 

papachan

papachan

Consultor IT y desarollador Java de aplicaciones Móviles sobre la plataforma Android, actualmente reside en Bogota Colombia. Con una experiencia en desarrollo internet de +10 años, se ha involucrado como desarollador senior en varias empresas de desarrollos y servicios en Internet. Ahora es desarrollador Android en Tappsi.co
papachan
papachan

About papachan

Consultor IT y desarollador Java de aplicaciones Móviles sobre la plataforma Android, actualmente reside en Bogota Colombia. Con una experiencia en desarrollo internet de +10 años, se ha involucrado como desarollador senior en varias empresas de desarrollos y servicios en Internet. Ahora es desarrollador Android en Tappsi.co
This entry was posted in Android. Bookmark the permalink.

Una Respuesta a “Programando en Scala para Android / parte I”

  1. […] vimos cómo compilar con el SDK de Android desde otro lenguaje que no sea Java, por ejemplo desde Scala. Ahora con  Kivy, que es a la vez un framework y un toolkit como PythonQT o como el GTK+ toolkit […]

Deja un comentario

  • Facebook AndroidCol