iOSターゲットの実行ファイルを作成できる、比較的新しい軽量JVM(Avian)があります。Avianを使用したiOSのスカラ
ウェブサイトには多すぎるドキュメントはありません(Googleでの検索はあまりありません)。 Avianを使用して、iOS上で実行される基本的なScalaプログラムを入手する方法に関するステップバイステップのチュートリアルを誰かが知っていたのかどうか疑問に思っていました。
iOSターゲットの実行ファイルを作成できる、比較的新しい軽量JVM(Avian)があります。Avianを使用したiOSのスカラ
ウェブサイトには多すぎるドキュメントはありません(Googleでの検索はあまりありません)。 Avianを使用して、iOS上で実行される基本的なScalaプログラムを入手する方法に関するステップバイステップのチュートリアルを誰かが知っていたのかどうか疑問に思っていました。
コンパイル済みのScalaソースは、完全に標準クラスのファイルです。あなたは大きな変更なしでinstructions(埋め込みを探してください)をウェブサイト上で辿ることができます。ちょうどscala-library.jar
をあなたのコードの依存として扱います。
数日前に完全なコンパイラとAvianで実行される標準ライブラリをブートストラップすることができました。
一部の部品は、エッジの周りにやや粗い場合があります。 g。 one mandatory fixがあります。これはScala(2.10.1)の次のリリースに含まれますが、2.10.0には含まれていません。今すぐプレイしたい場合は、2.10.1がリリースされるまで夜間のビルドを使用する必要があります。
追加の問題が発生した場合は、報告してください。
もう必要ないかもしれませんが、今度はOracle is making JavaFX open-source on iOS and Android!
EDIT:Oracleは、JVMをリリースしないことを発表する記事を更新しました.JavaFX + Avianのように見えます。
その記事も読んでいます: "数年前のJavaOne 2011では、AndroidとiOSデバイスで動作するJavaFXのデモを見せました。これは2つの重要な要素があります。/iOSとAndroid APIを使用するJavaFX(Glass&Prism)のグラフィックスレイヤーこれは私たちがオープンソーシングを行っているもので、それ以上のものではありません。これらのプラットフォームにはJVMを提供していませんし、どのような方法でも完全なソリューションではありません」 iOS上でJava/Scalaを実行するには、まだAvianなどが必要です。 –
@MikeSpadaru:実際は記事の更新です。本当に悪いニュース:-( – Eduardo
iOS(実行されていない)上でJavaバイトコードを実行することは、そのJVMを実行するだけではありません。私の知る限り、iOSのメモリ管理では、実行可能メモリページをユーザモードで書き込み可能にすることはできません。基本的にJITコンパイルは禁止されています。 したがって、特定のJava VMでコンパイルされた(JavaまたはScalaのいずれかの)クラスを実行することができたとしても、このVMがiOSで実行可能にするためにAhead-Of-Timeコンパイルをどのようにサポートしているかを注意深くチェックします。 私は鳥類AOTがデスクトップでうまく動作するのを見てきました。 iOSの場合、プロジェクトはAOTエリアで有望に見えますが、自分で確認する必要があります。
仮想マシン上で実行された場合、そのコードは実行可能メモリには存在しません(AvianはAOTを実際のマシン命令にコンパイルします)。 。 – Eduardo
@Eduardoはい、AOTは書き込み可能な実行可能メモリを持たないことを可能にしているのですが、実行時にJITはバイトコードをネイティブにコンパイルしてメモリのどこかに保存する必要があります。そのメモリはiOS上ではもう実行することができませんそれはiOS上でJITが不可能な技術的な理由ですが、Xamarin.iOSがiOS上で「許可」されていることを知っているので、 – vladimir
JITであっても、Javaバイトコードはマシン命令に変換されず、実行可能なメモリに格納されます。これは、Xamarinによって行われたライセンス処理についてです。これは、仮想マシン自体によって実行されます。 – Eduardo
iOSコンパイラに対するもう1つの代替JVMはRoboVMです。初期段階ではありますが、iOS向けにScalaをコンパイルする方法の例があげられます。
EDITこれは古い回答ですが、その時点で有効ですが、@ JamesMooreが指摘しているように、RoboVMはこれ以上ありません。非常に有望で、近い将来iOSでScalaコードを実行する方法になるかもしれません。Scala Native
これは素晴らしい例です(iOSのRoboVMのScalaアプリ) https://gist.github.com/sebnozzi/5653898 – sventechie
Robovmが死んでいる:https://robovm.com/robovm-winding-down/ –
@ JamesMooreこれを私に思い出させてくれてありがとう。私はそれを反映する答えを更新しました。 – Eduardo
私は最初にいくつかのデモJavaアプリを試してみることをお勧めします。それを実行した後デモスカラアプリを試してみてください。理論的には、スカラコードを実行するための唯一の要件はscala-library.jarです。 – pedrofurla
Scalaに関するいくつかの議論:https://groups.google.com/forum/?fromgroups=#!topic/avian/Hugny4JcnDw – madoki
完全なアプリ(UIを含む)または混合された目的のテンプレート(UI )とJava(バックエンド)? – psychowood