56 votes

IntelliJ Idea 12 + Android + Scala aujourd'hui

Comme on me l'a suggéré, j'ai parcouru quelques articles décrivant comment faire fonctionner ensemble IntelliJ Idea et Android et Scala, mais il s'est avéré qu'ils ont tous été écrits il y a 1 ou 2 ans. Et probablement, quelque chose a changé depuis ce temps et maintenant il y a d'autres solutions pour atteindre ce but. Concrètement, il existe une nouvelle solution https://github.com/yareally/Android-scala-intellij-no-sbt-plugin pour laquelle je ne sais pas si elle fonctionne bien ou pas.

J'ai IntelliJ Idea 12, Android SDK, Scala, SBT et tous les autres éléments installés et configurés. La seule chose qui reste à faire est de configurer IntelliJ Idea 12 pour qu'il fonctionne avec Scala au lieu de Java pour créer des applications Android.

S'il vous plaît, ne fermez pas la question. J'ai vu les questions précédentes similaires à la mienne, mais, comme je l'ai dit, elles étaient dépassées.

La question est, comment faire maintenant (mai 2013) ?

P.S. J'ai essayé Android Development Studio mais je n'ai même pas pu le lancer à cause de nombreuses erreurs.

21voto

F.X. Points 2043

Mise à jour : Vous pouvez lire le tutoriel J'ai écrit sur la nouvelle version à venir de SBT-Android (0.7). La plupart de vos préoccupations devraient y être traitées. Si ce n'est pas le cas, c'est un problème.


Mise à jour 2 : Par souci d'équité, il y a aussi un grand travail en cours : Android-sdk-plugin par @pfn sur GitHub.

En ce qui concerne ProGuard et les temps de construction :

  • Je le suis, moi-même, préchargement de grandes bibliothèques sur mon appareil avec sbt-android . Cela élimine complètement ProGuard, mais nécessite Root.

  • android-sdk-plugin La dernière version du site dispose d'un nouveau cache ProGuard (identique à celui du site de la Commission européenne). AndroidProguardScala ), ce qui est plutôt agréable et élimine ProGuard dans la plupart des cas pendant le développement.


J'ai contribué à SBT-Android depuis quelques mois maintenant, donc je le connais beaucoup mieux que les autres solutions.

À l'heure actuelle, le plugin évolue rapidement, avec :

  • Support complet d'IntelliJ (grâce à SBTIdea ) à venir très prochainement (En fait, cela fonctionne déjà, il faut juste que j'envoie les demandes de pull).
  • Précharger automatiquement Scala sur un émulateur ou un appareil enraciné (Il suffit d'exécuter android:preload-{device, emulator} (plus besoin de Proguard pour le développement).
  • Devrait prendre en charge des projets Gradle simples et prêts à l'emploi avec un minimum d'efforts. (La structure du répertoire est très similaire)
  • La configuration est beaucoup plus facile (Il suffit d'ajouter le plugin et un fichier de projet et le tour est joué)

La version actuelle ne dispose pas de la plupart de ces fonctionnalités, mais elles seront disponibles dans les semaines à venir. Une documentation va bien sûr suivre très vite, avec des exemples et tout ce à quoi je pense.

Je vous encourage à rejoindre le Scala sur Android Google Group et partagez vos réflexions, d'ailleurs. Il y a aussi un #sbt-android sur Freenode si vous êtes sur IRC.

8voto

drhr Points 621

Je voulais juste intervenir à ce sujet. J'ai utilisé https://github.com/yareally/Android-scala-intellij-no-sbt-plugin Je n'avais jamais utilisé IntelliJ auparavant, mais j'ai trouvé les instructions vagues.

Vous avez probablement déjà tout réglé et êtes satisfait de SBT, mais pour ma part, je voulais simplement tester Scala sur Android sans toutes les cloches et les sifflets supplémentaires. Donc, voici quelques petites choses que j'ai dû faire pour que le truc no-sbt-plugin fonctionne :

J'ai fini par inclure le fichier scala-compiler.jar (ainsi que scala-library.jar et scala-reflect.jar) en tant que bibliothèque globale : enter image description here

De cette façon, le compilateur a accès à la bibliothèque et au code de réflexion, sinon j'obtenais des erreurs. Si vous n'incluez pas la bibliothèque, l'IDE se plaint que le compilateur a besoin d'une bibliothèque associée, et si vous n'incluez pas reflect, il émet un tas d'erreurs au moment de la compilation, indiquant qu'il ne peut pas trouver les définitions de classe reflect.

J'ai dû inclure scala-library.jar en tant que dépendance du module (ce qui a eu pour effet secondaire de l'inclure également dans la section Bibliothèques) : enter image description here

Avant de faire tout cela, j'avais installé le plugin Scala, créé un projet Android, et simplement ajouté une facette Scala (ignorez les paramètres de mémoire, je m'amusais) : enter image description here

Enfin, j'ai dû résoudre quelques erreurs de compilation restantes en ajoutant quelques lignes "-dontwarn" au fichier txt de proguard. C'est assez simple.

Fonctionne comme un charme. Je n'ai encore rien fait de substantiel avec, mais je suis impatient d'utiliser Scala sur mon prochain projet Android.

5voto

pocorall Points 342

J'ai écrit le Scaloïde qui rend le développement d'Android plus concis avec Scala.

Pour un point de départ rapide, j'ai écrit un bonjour-monde projet maven pour Scala+Android.

J'utilise Intellij comme IDE principal, et il importe le projet avec un charme.

3voto

ghik Points 5705

Je suis passé par là il y a environ un mois et j'ai réussi à le faire fonctionner assez bien en utilisant Gradle.

Voici le résultat : https://github.com/ghik/akkdroid

Il s'agit d'un projet client-serveur simple utilisant Scala et Akka, avec un côté client sur Android, développé avec IntelliJ IDEA. Je sais que le client-serveur n'a pas vraiment de sens avec Akka, mais c'est juste un simple projet universitaire pour prouver que ces technologies peuvent fonctionner ensemble.

Notez cependant que gradle script dans ce projet n'est destiné qu'à générer un projet IDEA, il doit être étendu pour être capable d'effectuer une construction correcte d'une application Android.

3voto

Madwyn Points 93

J'ai suivi ce fil de discussion pendant plusieurs mois, j'ai enfin eu le temps de faire les vrais tests.

Utilisation d'IntelliJ 13 avec SBT 0.13 et Scala 2.10.3.

  1. Le site SBT-Android n'a pas été mis à jour depuis plusieurs mois. J'ai trouvé que les instructions étaient dépassées et je n'ai pas réussi à créer un projet fonctionnel.

  2. Le site Android-sdk-plugin travaillé. J'ai suivi les étapes simples et j'ai réussi à faire fonctionner "hello world" sur mon téléphone. Mais l'importation du projet SBT dans IntelliJ ne fonctionnera pas correctement, il faudra modifier le projet manuellement.

  3. J'ai également essayé de créer d'abord un projet Android puis d'ajouter le framework Scala, mais cela n'a pas fonctionné comme je l'espérais.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X