programacion - Programación Scala para Android
manual android studio avanzado (9)
Ahora puede usar el complemento de Android para Gradle para crear aplicaciones de Android en Scala. Incorpora la herramienta ProGuard para recortar la grasa del archivo APK resultante, por lo que parece satisfacer sus necesidades.
He seguido el tutorial en Scala y Android con Scala 2.7.3 final. La aplicación de Android resultante funciona, pero incluso la aplicación más básica tarda varios minutos (!) En compilarse y necesita 900 kb comprimidos, lo que es un obstáculo para las aplicaciones móviles. Además, el IDE se queda sin memoria de vez en cuando. Supongo que dex
no está hecho para grandes bibliotecas como scala-library
.
- Así que mi pregunta es: ¿Alguien realmente ha hecho esto y existe alguna cura para esto?
El desarrollo de aplicaciones de Android para Scala está en continua evolución. La mejor forma actual de hacerlo es para SBT en conjunto con el android-sdk-plugin , que se mantiene * y me funciona bien en mi proyecto Scala / Android. También se puede encontrar un ejemplo un tanto reciente que demuestra el uso de este complemento con el Scaloid ya mencionado.
Tenga en cuenta que esta pregunta es un ejemplo típico de una pregunta con respuestas desactualizadas en . Es probable que esta respuesta se vuelva obsoleta también en algún momento.
* Los otros proyectos basados en SBT mencionados en este hilo de respuesta no parecen tener un código escrito para ellos en los últimos seis meses en el momento de la escritura. Pueden tener problemas de compatibilidad con las versiones más recientes de Scala y SBT.
El mayor problema con Scala en Android son los tiempos de compilación.
Posiblemente, debido a la eliminación de clase Proguard, las compilaciones con el complemento IDEA13 / Scala en un E5450 Xeon de doble núcleo cuádruple (8 CPU) pueden llevar dos minutos o más.
Simplemente volví a Java después de completar un proyecto de Scala para Android, ya que los tiempos de compilación eran demasiado frustrantes.
He escrito algunas aplicaciones básicas de Android en Scala, nada demasiado épico. Al no ser un programador de Java, se me sugirió que usara un "treehake", un amigo me explicó que esto elimina todas las bibliotecas innecesarias de los archivos jar .
No lo he documentado, pero encontré que alguien más ya tiene:
http://chneukirchen.org/blog/archive/2009/04/programming-for-android-with-scala.html
Proguard no es la única solución, puede encontrar algo que se adapte a su flujo de trabajo o que sea más adecuado para su entorno.
Además, Google acaba de darse cuenta de JACK, que se ocupa de reducir considerablemente los tiempos de construcción y de memoria, consulte https://source.android.com/source/jack.html
Para ver tutoriales y ejemplos, consulte también la página "Explorando Android" de Stéphane Micheloud: http://lamp.epfl.ch/~michelou/android/
Puede usar el Scala en Android sin SBT, que fue construido externamente por Gradle para crear aplicaciones de Android. https://github.com/yareally/android-scala-intellij-no-sbt-plugin
Gradle es una herramienta de construcción más nativa para Android que SBT.
Hay un buen ejemplo del concepto de solución del lado del servidor y del cliente de Scala, y de la herramienta de construcción de gradle como avance para el entorno de trabajo IntelliJ IDEA.
Gran avance de que las clases básicas son comunes para cliente y servidor.
https://github.com/ghik/akkdroid
Buen tutorial para IDEA y el complemento de Android: http://fxthomas.github.io/android-plugin/
Si usa maven, use android-scala-test como plantilla de inicio. Funciona muy bien para mí fuera de la caja.
Scaloid es un contenedor de la API de Android escrito en Scala que te ayuda a escribir tu programa de Android en estilo Scala.
También hay un complemento para el constructor basado en Scala sbt : sbt-android-plugin .
Verifiqué esta solución detallada con Eclipse 3.7, Scala 2.10 y el plug-in AndroidProguardScala v50:
https://.com/a/11084146/1287856
Todo funciona bien. Una aplicación de prueba simple con la clase de actividad principal scalafied solo toma 38Kb. Los proyectos de bibliotecas son compatibles. Proguard se activa al exportar el proyecto.