Scala and Android withScala 2.7.3finalのチュートリアルに従いました。結果のAndroidアプリは動作しますが、最も基本的なアプリケーションでもコンパイルに数分(!)かかり、必要な900 kb圧縮されています。モバイルアプリケーション向けのショーストッパーです。さらに、IDEは時々メモリを使い果たします。 dex
はscala-library
のような大きなライブラリ向けには作成されていないと思います。
Scalaでいくつかの基本的なAndroidアプリケーションを作成しましたが、それほど壮大なものはありません。 Javaプログラマーではないので、「ツリーシェイク」を使用することを勧められましたが、友人から、jarファイル。
私はそれを文書化していませんが、他の誰かがすでに持っていることがわかりました:
http://chneukirchen.org/blog/archive/2009/04/programming-for-Android-with-scala.html
Proguardだけがソリューションではありません。ワークフローに適したもの、または環境により適したものを見つけることができます。
さらに、GoogleはJACKを実現しました。これは、ビルド時間とメモリ時間の大幅な削減に対応しています https://source.Android.com/source/jack.html
GradleのAndroidプラグインを使用して、ScalaでAndroidアプリケーションを作成できるようになりました。 ProGuardツールを組み込んで、生成されたAPKファイルから脂肪を削除するため、ニーズに合っているようです。
Scalaベースのビルダー用のプラグインもあります sbt : sbt-Android-plugin 。
チュートリアルと例については、StéphaneMicheloudの「Exploring Android」ページも参照してください。 http://lamp.epfl.ch/~michelou/Android/
Eclipse 3.7、Scala 2.10およびプラグインAndroidProguardScala v50を使用して、この詳細なソリューションを検証しました。
https://stackoverflow.com/a/11084146/1287856
すべてが正常に動作します。メインアクティビティクラスをスカラー化した単純なテストアプリケーションは、わずか38 KBです。ライブラリプロジェクトがサポートされています。プロジェクトをエクスポートすると、Proguardがアクティブになります。
Android向けのScalaアプリの開発は継続的に進化しています。現在の最良の方法は、SBTに Android-sdk-plugin と組み合わせて表示されます。これは維持され*、Scala/Androidプロジェクトでうまく機能します。既に述べたScaloidでこのプラグインを使用することを示すやや最近の例は、 また見つかりました です。
この質問は、Stack Overflowでの 古い回答のある質問 の典型的な例であることに注意してください。この答えも、ある時点で時代遅れになる可能性があります。
*このアンサースレッドで言及されている他のSBTベースのプロジェクトは、執筆時点で過去6か月間にコードが記述されていないようです。 ScalaおよびSBTの新しいバージョンとの互換性の問題がある可能性があります。
Mavenを使用する場合は、 Android-scala-test をスタートアップテンプレートとして使用します。すぐに使用できます。
Scaloid は、AndroidプログラムをScalaスタイルで作成するのに役立つScalaで記述されたAndroid APIラッパーです。
SBTを使用せずにScalaでAndroidを使用できます。Gradleによって外部で構築され、Androidアプリケーションを作成します。 https://github.com/yareally/Android-scala-intellij-no-sbt-plugin
Gradleは、SBTよりもAndroid向けのネイティブな構築ツールです。
Scalaクライアントおよびサーバー側のソリューションコンセプトの良い例と、IntelliJ IDEAワークベンチの進歩としてのgradle構築ツールがあります。
コアクラスがクライアントとサーバーに共通しているという大きな進歩。
https://github.com/ghik/akkdroid
IDEAおよびAndroidプラグインの良いチュートリアル: http://fxthomas.github.io/Android-plugin/
Scala上のAndroidの最大の問題は、コンパイル時間です。
おそらくProguardクラスのストリッピングが、デュアルクアッドコア(8 CPU)E5450 Xeon上のIDEA13/Scalaプラグインでコンパイルされるため、8GBで2分以上かかる場合があります。
コンパイル時間が非常にイライラするため、大きなプロジェクトJava Scalaプロジェクトを完了した後、単にAndroidに戻りました。