Postępowałem zgodnie z samouczkiem na Scali i Androidzie ze Scala 2.7.3 wersja ostateczna. Powstała aplikacja na Androida działa, ale nawet najbardziej podstawowa aplikacja potrzebuje kilku minut (!) Na skompresowanie i wymaga skompresowania 900 kb , co jest ogranicznikiem dla aplikacji mobilnych. Ponadto w środowisku IDE co jakiś czas brakuje pamięci. Zakładam, że dex
nie jest stworzony dla dużych bibliotek takich jak scala-library
.
- Więc moje pytanie brzmi: czy ktoś rzeczywiście to zrobił i czy jest na to jakieś lekarstwo?
Możesz teraz używać wtyczki Android dla Gradle do tworzenia aplikacji na Androida w Scali. Zawiera narzędzie ProGuard do przycinania tłuszczu z wynikowego pliku APK, więc wydaje się, że spełnia twoje potrzeby.
https://github.com/jvoegele/gradle-android-plugin/wiki
źródło
Istnieje również wtyczka do konstruktora opartego na Scali sbt : sbt-android-plugin .
źródło
Samouczki i przykłady znajdują się również na stronie „Exploring Android” Stéphane Michelouda: http://lamp.epfl.ch/~michelou/android/
źródło
Zweryfikowałem to szczegółowe rozwiązanie za pomocą Eclipse 3.7, Scala 2.10 i wtyczki AndroidProguardScala v50:
https://stackoverflow.com/a/11084146/1287856
Wszystko dziala. Prosta aplikacja testowa ze skalowaną główną klasą aktywności zajmuje tylko 38 KB. Obsługiwane są projekty bibliotek. Program Proguard jest aktywowany podczas eksportowania projektu.
źródło
Tworzenie aplikacji na Androida dla Scali stale się rozwija. Obecny najlepszy sposób na to wydaje się SBT w połączeniu z wtyczką Android-SDK , która jest utrzymywana * i działa dobrze dla mnie w moim projekcie Scala / Android. Nieco Ostatnim przykładem, który demonstruje użycie tej wtyczki z wspomnianego już Scaloid można znaleźć również .
Pamiętaj, że to pytanie jest typowym przykładem pytania z nieaktualnymi odpowiedziami na temat przepełnienia stosu. Ta odpowiedź prawdopodobnie również stanie się nieaktualna.
* Wydaje się, że w innych projektach opartych na SBT wymienionych w tym wątku odpowiedzi nie napisano dla nich kodu w ciągu ostatnich sześciu miesięcy w momencie pisania. Mogą mieć problemy ze zgodnością z nowszymi wersjami Scali i SBT.
źródło
Jeśli używasz maven, użyj android-scala-test jako szablonu startowego. Działa świetnie dla mnie od razu po wyjęciu z pudełka.
Scaloid to opakowanie API systemu Android napisane w Scali, które pomaga pisać program na Androida w stylu Scala.
źródło
Możesz używać Scali na Androidzie bez SBT, zbudowanego zewnętrznie przez Gradle do tworzenia aplikacji na Androida. https://github.com/yareally/android-scala-intellij-no-sbt-plugin
Gradle to bardziej natywne narzędzie do budowania dla Androida niż SBT.
Istnieje dobry przykład koncepcji rozwiązania Scala po stronie klienta i serwera, a także narzędzie do budowania stopni jako postęp w środowisku roboczym IntelliJ IDEA.
Ogromny postęp, że podstawowe klasy są wspólne dla klienta i serwera.
https://github.com/ghik/akkdroid
Dobry samouczek dla IDEA i wtyczki do Androida: http://fxthomas.github.io/android-plugin/
źródło
Największym problemem związanym ze Scalą na Androida są czasy kompilacji.
Prawdopodobnie z powodu kompilacji stripingu klasy Proguard z wtyczką IDEA13 / Scala na podwójnym czterordzeniowym procesorze E5450 Xeon z 8 GB może zająć dwie minuty lub dłużej.
Po prostu wróciłem do Javy po ukończeniu dużego projektu Scala Android, ponieważ czasy kompilacji były zbyt frustrujące.
źródło