2011-10-08 14 views
31

Ho iniziato ad imparare Scala, e io ... penso di essere innamorato. Ho solo codificato piccoli snippet di test fino ad ora, ma dal momento che attualmente sto lavorando allo sviluppo di Android, quello che voglio veramente è provare a scrivere applicazioni Android in Scala.Scala, Android ed Eclipse

ho trovato articoli e le domande in materia, ma soprattutto riferendosi a versioni precedenti dei tre strumenti (Android SDK/Scala/Eclipse), quindi la domanda generale è:

Is Anybody codifica le applicazioni Android in Scala adesso, con l'ultimo SDK, Scala 2.9 e Eclipse Indigo? Quanto è praticabile?

E, in particolare:

  1. Come va l'interazione/integrazione tra le caratteristiche di Scala e la biblioteca di Android?

  2. Qual è lo stato del plugin Scala per Eclipse? Ho letto tutte le funzionalità che ci si aspetta siano lì, ma mi piacerebbe conoscere storie di prima mano, in particolare sul debugger.

  3. Quanto bene automatizza il processo di costruzione (da scala a java a dalvik, ant, proguard, ecc.)?

Grazie!

+9

+1 per il "Credo di essere innamorata" parte;) – agilesteel

risposta

8

Stiamo usando pesantemente Scala per testare il nostro codice Android - potete leggere una recensione di come lo stiamo facendo here. Utilizziamo Ant o SBT per compilare - c'è un eccellente SBT plugin per lo sviluppo Android.

Detto questo, non sono sicuro che consiglierei Scala per lo sviluppo Android di produzione. In particolare Scala 2.9.x è praticamente inutilizzabile in quanto non esiste un buon modo per far funzionare le librerie su Android. Puoi leggere il numero here.

È un vero peccato, poiché lo sviluppo di Android potrebbe trarre un notevole vantaggio da Scala se potessimo farlo funzionare correttamente.

+2

sto programmando con scala 2.10 con il plugin AndroidProguardScala su Eclipse (vedi sotto). Scala può essere raccomandato per lo sviluppo di Android. –

3

Questo video da ScalaDays 2011 può essere hepful:

Scala on Android: Real-world Experience at Bump Technologies da Michael Galpin

EDIT:

Se davvero si vuole veramente per eseguire codice Scala su Android (e non davvero fare un app, ma per te), quindi ho una soluzione più facile. Dipende se il tuo telefono supporta la procedura. In sintesi i passaggi sono:

  1. installare Ubuntu sul vostro dispositivo (come descritto here). Questo non influenzerà l'installazione di Android.

  2. Avvia Ubuntu, installa JDK, Scala, ecc. Copia i tuoi vasi di Scala ed esegui da lì.

3

ho iniziato a implementare l'applicazione Android (un client twitter) dal libro "Learning Android" con Scala 2.9.0-1 qualche tempo fa.

Secondo me è possibile utilizzarlo.Ho avuto un solo problema con l'elenco dei parametri su AsyncTask (vedi questo link, problema n. 3). Se si desidera verificare il progetto, è possibile trovarlo here.

4

soluzione trovata qui per utilizzare l'ultimo SDK di Android, con Eclipse 3.7.2 e 2.9 Scala:

https://stackoverflow.com/a/11084146/1287856

  1. Gestisce completamente la libreria Android
  2. È possibile effettuare Biblioteca Android fuori scala progetti come al solito
  3. Il processo di compilazione è completamente automatizzato, includendo proguarding ed esportazione del progetto con gli strumenti di Android di Regulard.
+0

Strano ma vero, da un certo giorno non posso lanciare applicazioni Android costruite con 'scala 2.9' (' 2.9.3 RC1', per la precisione) non più, perché ottengo 'NoClassDefFound' in runtime, sebbene le classi corrispondenti siano effettivamente scritte in 'classes.dex'. Ma il più recente 'scala 2.10.0' funziona quasi alla perfezione (al momento ci sono alcune strane incompatibilità con Android, per esempio' "." .format (...) 'metodo generato da bytecode che Android non riesce a capire correttamente anche io –

+0

. Non so perché, sono arleady passato a scala 2.10 –