android - instalar - intellij idea scala plugin
IntelliJ Idea 12+Android+Scala hoy en día (5)
Escribí la biblioteca de Scaloid que hace que el desarrollo de Android sea más concisa con Scala.
Para un punto de partida rápido, escribí un proyecto de experto hello-world para Scala + Android.
Uso Intellij como IDE principal, e importa el proyecto con encanto.
Como me lo sugirieron, revisé algunos artículos que describen cómo hacer que IntelliJ Idea y Android y Scala trabajen juntos, pero resultó que todos fueron escritos hace 1 o 2 años. Y probablemente, algo ha cambiado desde ese momento y ahora hay otras soluciones para lograr este objetivo. Concretamente, hay una nueva solución https://github.com/yareally/android-scala-intellij-no-sbt-plugin para la cual no sé si funciona bien o no.
Tengo IntelliJ Idea 12, Android SDK, Scala, SBT y todo lo demás instalado y configurado. Lo único que queda es configurar IntelliJ Idea 12 para que funcione con Scala en lugar de Java para crear aplicaciones de Android.
Por favor no cierres la pregunta. Vi las preguntas anteriores similares a las mías, pero, como dije, estaban desactualizadas.
La pregunta es, ¿cómo lo hago ahora (mayo de 2013) ?
PD: Intenté con Android Development Studio pero incluso no pude lanzarlo debido a muchos errores.
He estado viendo este hilo durante varios meses, finalmente tuve tiempo para hacer las pruebas reales.
Usando IntelliJ 13 con SBT 0.13 y Scala 2.10.3.
El SBT-Android no se ha actualizado durante varios meses. Encontré que las instrucciones no estaban actualizadas y no pude crear un proyecto en funcionamiento.
El android-sdk-plugin funcionó. Solo seguí los sencillos pasos y obtuve "hello world" en mi teléfono. Pero importar el proyecto SBT a IntelliJ no funcionará correctamente, necesitará algunas modificaciones de proyecto manualmente.
También intenté crear un proyecto de Android primero y luego agregar el marco de Scala, pero no funcionó como esperaba.
He pasado por esto hace aproximadamente un mes y me las arreglé para hacer que funcione bastante bien con Gradle.
Aquí está el resultado: https://github.com/ghik/akkdroid
Este es un proyecto simple de cliente-servidor que usa Scala y Akka, con cliente en Android, desarrollado con IntelliJ IDEA. Sé que el cliente-servidor realmente no tiene sentido con Akka, pero es solo un proyecto universitario simple para demostrar que estas tecnologías pueden funcionar juntas.
Tenga en cuenta, sin embargo, que el script de Gradle en este proyecto está destinado solo a generar proyectos de IDEA, sino que debe ampliarse para poder realizar la creación de aplicaciones de Android adecuada.
Solo quería hablar de esto. Usé https://github.com/yareally/android-scala-intellij-no-sbt-plugin , aunque encontré las instrucciones vagas, sin haber usado IntelliJ antes de esto.
Probablemente ya lo hayas resuelto todo y estés contento con SBT, pero para mis propósitos solo quería probar Scala en Android sin todos los extras. Entonces, he aquí algunas cosas pequeñas que tuve que hacer para que funcione el plugin no-sbt:
Terminé incluyendo el scala-compiler.jar (junto con scala-library.jar y scala-reflect.jar) como una biblioteca global:
De esta forma, el compilador tiene acceso a la biblioteca y al código de reflexión, de lo contrario recibía errores. Si no incluye la biblioteca, el IDE se queja de que el compilador necesita una biblioteca asociada y, si no incluye el reflejo, genera un montón de errores en tiempo de compilación que no puede reflejar las definiciones de clase.
Tuve que incluir scala-library.jar como una dependencia de módulo también (que tuvo el efecto secundario de incluirlo también en la sección Bibliotecas):
Antes de hacer todo eso, instalé el plugin de Scala, creé un proyecto de Android y simplemente agregué una faceta de Scala (ignore la configuración de la memoria, estaba bromeando):
Finalmente, tuve que resolver algunos errores de compilación restantes agregando unas pocas líneas "-dontwarn" al archivo proguard txt. Suficientemente simple.
Funciona de maravilla. Todavía no he hecho nada sustancial con eso, pero estoy deseando usar Scala en mi próximo proyecto de Android.
Actualización: Puede leer el tutorial que escribí sobre la nueva versión de SBT-Android (0.7). La mayoría de sus preocupaciones deberían abordarse allí. Si no lo son, entonces ese es un problema.
Actualización 2: Para ser justos, también hay un gran trabajo en progreso: android-sdk-plugin por @pfn en GitHub.
En cuanto a ProGuard y tiempos de compilación:
Yo mismo estoy precargando grandes bibliotecas en mi dispositivo con
sbt-android
. Esto elimina ProGuard por completo, pero requiere root.La última versión de
android-sdk-plugin
cuenta con una nueva caché ProGuard (igual que AndroidProguardScala ), que es bastante dulce y elimina ProGuard en la mayoría de los casos durante el desarrollo.
He estado contribuyendo a SBT-Android durante algunos meses, así que sé mucho mejor que las otras soluciones.
A partir de ahora, el complemento está evolucionando rápidamente, con:
- El soporte total de IntelliJ (gracias a SBTIdea ) llegará muy pronto (de hecho, ya funciona, solo necesito enviar las solicitudes de extracción)
- Precarga automáticamente Scala en un emulador o dispositivo rooteado (solo ejecuta
android:preload-{device, emulator}
, ¡ya no es necesario Proguard para el desarrollo!) - Debe admitir proyectos simples de Gradle listos para usar con un mínimo esfuerzo (La estructura del directorio es muy similar)
- La configuración es mucho más fácil (¡simplemente agrega el complemento y un archivo de proyecto y listo!)
La versión actual no tiene la mayoría de estas sutilezas, pero aparecerán en las próximas semanas. Por supuesto, algo de documentación va a seguir muy pronto, con ejemplos y todo lo que pensaré.
Por cierto, te animo a que te unas al Grupo de Google de Scala en Android y compartas tus ideas. También hay un #sbt-android
en Freenode si te gusta el IRC.