49

こんにちは、私は iPhone の開発を検討していますが、Objective-C は私の好みの言語ではありません。現時点で確認できる限り、現時点では iPhone で Ruby を使用して Cocoa Touch と通信することはできません。

だから私の質問は、私は間違っていますか?iPhone で Ruby を使用して Cocoa Touch アプリケーションを開発できますか? また、iPhone 上の Ruby の将来はどのようなものになるのでしょうか?

4

17 に答える 17

75

RubyMotionでできるようになりました

于 2012-05-04T07:25:07.180 に答える
49

iPhone OS では、mprotect() を使用してメモリの書き込み可能なセクションを実行可能としてマークしようとすると失敗します。これにより、実行時に libffi を使用して Objective-C メソッド ハンドラーを作成する RubyCocoa (およびおそらく MacRuby) のようなブリッジが壊れます。常にそうであるとは限らないため、これは設計によるものだと思います。

最終的に、これはテクノロジーというよりもプラットフォームの政治の問題ですが、これに対する技術的な回避策が存在します。実行時にカスタム メソッド ハンドラーを生成する代わりに、必要に応じて割り当てられる再構成可能なハンドラーのプールをプリコンパイルして、基本的にブリッジ プロセスを完全にデータ駆動型にします。私の知る限り、これは RubyCocoa や MacRuby ではまだ行われていません。

考慮すべきもう 1 つの重要な点は、コンパイルされた Ruby および RubyCocoa ランタイムは、コンパイルされた Objective-C アプリよりもかなり大きくなる可能性があるということです。これらのライブラリが iPhone で利用可能であれば、これは問題にはなりませんが、現時点では、RubyCocoa が動作していたとしても、配布するアプリには使用したくないかもしれません。

于 2008-11-09T00:04:55.220 に答える
22

いいえ、あなたは正しいです。現在、そしておそらく当面の間、Ruby は、少なくとも AppStore アプリケーションの選択肢にはなりません。Jailbroken 電話でこれを実行できない理由はありませんが、Apple は公式開発のために Objective C にかなり慣れています。

于 2008-10-20T19:54:08.507 に答える
12

あなたは多くの異なる言語を知っているプログラマーとしてより良いです-Objective-Cを良い学習の機会と考えてください。

他の言語で学んだことで、全体的に優れたプログラマーになり、すでに知っている他の言語への新しい洞察が得られることがよくあります。

于 2008-10-21T09:06:29.077 に答える
8

rhomobileは iPhone で Ruby コードを実行するためのオプションですが、基本的には Web アプリ開発です。Web サーバーは iPhone でローカルに実行され、Ruby コードは標準のクライアント側 Web テクノロジ (html/css/javascript) にレンダリングされます。

http://rhomobile.com/

于 2009-01-24T00:24:15.870 に答える
7

実際、ルビー ココアのブリッジはまったくぎこちなくありません。IB などのアウトレットの接続に至るまで、物事は非常にスムーズに機能します。結果のコードは実に美しいものです。

iPhone の開発に関しては、AppStore の公式アプリケーションが必要な場合、残念ながら運が悪いです。Apple は、iPhone は Obj-C/Cocoa Touch であると規定しており、SDK ライセンスには、アプリを拒否する理由の 1 つは言語インタープリター/JIT コンパイラーがあることであるという条項があるため、Ruby インタープリターを追加することはできませんでした。あなたのアプリで自分で。

話題から外れますが、面白いことに、これが Adob​​e が iPhone 用の Flash に煙を吹きかけている理由です。Apple のライセンスにより、SWF プレーヤーを AppStore に入れたくても、入手できませんでした。

于 2008-10-20T20:11:25.397 に答える
4

ええと、Rhodes(Rhomobile)では、iPhoneや他のすべてのスマートフォンでネイティブアプリを実行できます。はい、WebUIViewコントロールを介してレンダリングを行うことを活用しています。ただし、すべてのデバイス機能と同期されたローカルデータを許可します。

于 2009-09-15T19:14:13.590 に答える
4

3.1.3 でジェイルブレイクされた iPod Touch 1G に Cydia の ruby​​ パッケージをインストールしました。

画像

うまくいくようです。

ココアタッチについては、まったく別の話だと思います。

于 2010-07-28T19:10:24.097 に答える
4

Shinycocosをご覧になることをお勧めします。iPhone 用の Objective-C ゲーム プログラミング フレームワークであるcocos2d-iphoneの子プロジェクトです。

まだ試していませんが、git READMEから、 Ruby 1.9.1 がアプリにバンドルされていると推測されます。

于 2009-11-01T03:35:05.733 に答える
2

http://www.appcelerator.com/products/titanium-mobile/「Web テクノロジーで構築されたネイティブの iPhone および Android アプリ」をご覧ください。

いいですね。;-)

于 2010-01-07T12:58:29.947 に答える
2

いいえ、Ruby で iOS ネイティブ アプリを作成することはできません。Mac と iOS のネイティブ アプリには 2 つのオプションしかありません。

Objective CSwift プログラミング言語

チュートリアル:-

Objective C に関する Apple の公式チュートリアル

Swift プログラミング言語に関する Apple の公式チュートリアル

Ruby に慣れていて、Ruby だけで iOS アプリを作成したい場合。Ruby Motionは、クロスプラットフォームのオプションになる可能性がありますが、無料ではありません。

クロスプラットフォーム

于 2015-07-16T14:11:57.537 に答える
1

iPhoneアプリを作成するためにObjective-Cを使用する必要はありません。QuickConnectiPhone(http://sourceforge.net/projects/quickconnect/ )を使用する場合は、JavaScript、CSS、およびHTMLで完全に記述でき、Webアプリではなくインストール可能なアプリケーションを使用できます。

あなたがルビーを知っているなら、あなたはおそらくすでにJavaScriptを使っているでしょう。

インストール、実行、その他のアイデアについては、tetontech.wordpress.comにアクセスしてください。

于 2008-10-24T04:21:13.393 に答える
1

現時点では機能しないと思いますが、最終的には MacRuby を使用して iPhone アプリを作成できるようになると思います。Appleはそれに多くの労力を費やしています

通常のココア アプリの作成方法を説明している ADC 記事へのリンクを次に示します。

于 2008-10-20T21:19:52.887 に答える
0

現在、真実ではありません。Appleはポリシーを変更し、ShinyCocosを見てください。これは、Cocos2D-iphoneゲームフレームワークのルビーバインディングです。

https://github.com/funkaster/shinycocos

于 2011-11-09T20:49:28.830 に答える
0

試してみるとよいオープンソースのRuby-Cocoa ブリッジがあります。しかし、Ruby と ObjC の間にはインピーダンスのミスマッチがあり、それが少し使いにくいと思います。

于 2008-10-20T20:06:23.863 に答える
0

Ruby Cocoa ブリッジはおそらく機能しません。動的言語のブリッジのほとんどは、実行可能なサンクを (手動または libffi を使用して) 生成する必要があります。より制限されたブリッジ (より静的な言語の場合) では、このような問題は発生しない可能性があります。

どちらの場合でも、橋渡しをするためには、Cocoa Touch アプリの書き方を学ぶよりも、Objective C ランタイムに慣れる必要があるでしょう。

于 2008-10-28T10:19:37.563 に答える
-1

考えられる解決策の 1 つは、ruby-vm を含む rice ライブラリ (google it) などのアプリケーション ラッピングを作成することです。Ruby に公開できる C++ ラッパーを作成して、Ruby を使用した iPhone 開発環境を作成できると思います。かなり手間がかかるかもしれませんが(^^)

于 2009-11-13T17:25:53.550 に答える