Saya telah mengikuti tutorial di Scala dan Android dengan Scala 2.7.3 final. Aplikasi Android yang dihasilkan berfungsi tetapi bahkan aplikasi yang paling dasar membutuhkan beberapa menit (!) Untuk dikompilasi dan membutuhkan 900 kb terkompresi, yang merupakan penghenti acara untuk aplikasi seluler. Selain itu, IDE kehabisan memori setiap sekarang dan kemudian. Saya menganggap dex
tidak dibuat untuk perpustakaan besar seperti scala-library
.
- Jadi pertanyaan saya adalah: Adakah yang benar-benar melakukan ini dan apakah ada obat untuk ini?
Anda sekarang dapat menggunakan plugin Android untuk Gradle untuk membuat aplikasi Android di Scala. Ini menggabungkan alat ProGuard untuk memotong lemak dari file APK yang dihasilkan, jadi sepertinya memenuhi kebutuhan Anda.
https://github.com/jvoegele/gradle-android-plugin/wiki
sumber
Ada juga sebuah plugin untuk builder berbasis Scala sbt : sbt-android-plugin .
sumber
Untuk tutorial dan contoh, lihat juga halaman "Menjelajahi Android" Stéphane Micheloud: http://lamp.epfl.ch/~michelou/android/
sumber
Saya memverifikasi solusi terperinci ini dengan Eclipse 3.7, Scala 2.10 dan plug-in AndroidProguardScala v50:
https://stackoverflow.com/a/11084146/1287856
Semuanya bekerja dengan baik. Aplikasi tes sederhana dengan kelas aktivitas utama berskala hanya membutuhkan 38Kb. Proyek perpustakaan didukung. Proguard diaktifkan ketika mengekspor proyek.
sumber
Mengembangkan aplikasi Android untuk Scala terus berkembang. Cara terbaik saat ini untuk melakukannya tampaknya SBT bersama dengan android-SDK-plugin , yang dikelola * dan bekerja dengan baik untuk saya dalam proyek Scala / Android saya. Contoh yang agak baru yang menunjukkan penggunaan plugin ini dengan Scaloid yang telah disebutkan juga dapat ditemukan .
Harap dicatat bahwa pertanyaan ini adalah contoh khas dari sebuah pertanyaan dengan jawaban yang sudah usang pada Stack Overflow. Jawaban ini kemungkinan akan menjadi usang di beberapa titik juga.
* Proyek berbasis SBT lain yang disebutkan dalam utas jawaban ini tampaknya tidak memiliki kode yang ditulis untuk mereka dalam enam bulan terakhir pada saat penulisan. Mereka mungkin memiliki masalah kompatibilitas dengan versi Scala dan SBT yang lebih baru.
sumber
Jika Anda menggunakan pakar, gunakan android-scala-test sebagai templat startup. Ini bekerja sangat baik untuk saya di luar kotak.
Scaloid adalah pembungkus Android API yang ditulis dalam Scala yang membantu Anda menulis program Android dalam gaya Scala.
sumber
Anda dapat menggunakan Scala di Android tanpa SBT, ini dibangun secara eksternal oleh Gradle untuk membuat aplikasi Android. https://github.com/yareally/android-scala-intellij-no-sbt-plugin
Gradle lebih merupakan alat bangunan asli untuk android daripada SBT.
Ada contoh yang baik dari konsep solusi sisi klien dan server Scala, dan alat pembangunan gradle sebagai uang muka untuk meja kerja IntelliJ IDEA.
Kemajuan besar bahwa kelas inti umum untuk klien dan server.
https://github.com/ghik/akkdroid
Tutorial bagus untuk IDEA dan android-plugin: http://fxthomas.github.io/android-plugin/
sumber
Masalah terbesar dengan Scala di Android adalah waktu kompilasi.
Mungkin karena kompilasi stripping kelas Proguard dengan plugin IDEA13 / Scala pada Dual Quad Core (8-CPU) E5450 Xeon dengan 8GB dapat memakan waktu dua menit atau lebih.
Saya hanya pindah kembali ke Jawa setelah menyelesaikan proyek Android Scala yang besar karena waktu kompilasi terlalu membuat frustrasi.
sumber