web-dev-qa-db-ja.com

Scala Androidのプログラミング

Scala and Android withScala 2.7.3finalのチュートリアルに従いました。結果のAndroidアプリは動作しますが、最も基本的なアプリケーションでもコンパイルに数分(!)かかり、必要な900 kb圧縮されています。モバイルアプリケーション向けのショーストッパーです。さらに、IDEは時々メモリを使い果たします。 dexscala-libraryのような大きなライブラリ向けには作成されていないと思います。

  • だから私の質問は次のとおりです。誰かが実際にこれをやったことがありますか?
253
Lemmy

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

126
user75240

GradleのAndroidプラグインを使用して、ScalaでAndroidアプリケーションを作成できるようになりました。 ProGuardツールを組み込んで、生成されたAPKファイルから脂肪を削除するため、ニーズに合っているようです。

https://github.com/jvoegele/gradle-Android-plugin/wiki

43
Jason Voegele

Scalaベースのビルダー用のプラグインもあります sbtsbt-Android-plugin

22
Jan Berkel

チュートリアルと例については、StéphaneMicheloudの「Exploring Android」ページも参照してください。 http://lamp.epfl.ch/~michelou/Android/

19
Lukas Rytz

Eclipse 3.7、Scala 2.10およびプラグインAndroidProguardScala v50を使用して、この詳細なソリューションを検証しました。

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

すべてが正常に動作します。メインアクティビティクラスをスカラー化した単純なテストアプリケーションは、わずか38 KBです。ライブラリプロジェクトがサポートされています。プロジェクトをエクスポートすると、Proguardがアクティブになります。

15
Mikaël Mayer

Android向けのScalaアプリの開発は継続的に進化しています。現在の最良の方法は、SBTに Android-sdk-plugin と組み合わせて表示されます。これは維持され*、Scala/Androidプロジェクトでうまく機能します。既に述べたScaloidでこのプラグインを使用することを示すやや最近の例は、 また見つかりました です。

この質問は、Stack Overflowでの 古い回答のある質問 の典型的な例であることに注意してください。この答えも、ある時点で時代遅れになる可能性があります。

*このアンサースレッドで言及されている他のSBTベースのプロジェクトは、執筆時点で過去6か月間にコードが記述されていないようです。 ScalaおよびSBTの新しいバージョンとの互換性の問題がある可能性があります。

7
DCKing

Mavenを使用する場合は、 Android-scala-test をスタートアップテンプレートとして使用します。すぐに使用できます。

Scaloid は、AndroidプログラムをScalaスタイルで作成するのに役立つScalaで記述されたAndroid AP​​Iラッパーです。

6
pocorall

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/

4
mikowiec

Scala上のAndroidの最大の問題は、コンパイル時間です。

おそらくProguardクラスのストリッピングが、デュアルクアッドコア(8 CPU)E5450 Xeon上のIDEA13/Scalaプラグインでコンパイルされるため、8GBで2分以上かかる場合があります。

コンパイル時間が非常にイライラするため、大きなプロジェクトJava Scalaプロジェクトを完了した後、単にAndroidに戻りました。

2
user2476398