私はAppcelerator Hyperloopを使い始めました。 0日目からJSのネイティブAPIにアクセスすることは素晴らしいようですが、プラットフォームのアーキテクチャーとパフォーマンスについて、いくつか質問があります。Appcelerator HyperloopとPlain Titaniumモジュール
現在(AFAIK)Titaniumアプリケーションには、メインのUIスレッド(ネイティブUIコントローラを実行するスレッド)とJSスレッド(JSロジックを実行するスレッド)があります。 JSからNativeへの各呼び出しは、 "Bridge"(これはアプリの広範な操作です)を通過します。
また、Titanium APIはすべてのネイティブAPIと抄録を可能な限りカバーしていません。しかし、新しいAPIが導入されると、Appceleratorがそれらをプラットフォームに実装するのに時間がかかる可能性があります。
Titaniumに関する私の大好きなことの1つは、Titaniumで扱われないネイティブAPIを使用できるようにすること(iOSとJava用のobjective-cを使用して)を拡張する機能であり、 JSのためにあまりにも重いことをする必要がある場合に備えて。そして、前述のように、各プラットフォームで100%ネイティブに開発されています。今
は、Appceleratorのは、私は簡単なテストアプリをやったハイパーループを導入し、ハイパーループがネイティブコードにちょうど通常のJSコードに変換されていないことを見たこと:var UILabel = require('hyperloop/uikit/uilabel');
var label = new UILabel();
label.text = "HELLO WORLD!";
$.index.add(label);
、それについて別の事あなたが持っているということですメインスレッドで実行します。
だから我々は、基本的には、いくつかのことは限りハイパーループ・アーキテクチャが行くように、ここで心に来た:
- 我々はまだ橋がありますか?ハイパーループが "特別な"ハイパーループを必要とするJSなら、まだブリッジを持っているだけでなく、ブリッジとして機能するだけでなく、何らかのリフレクション(拡張オペレーションでもあります)を行う必要がありますか?
- これまではJSが独自のスレッドで実行されていました。つまり、1つのメインスレッドで実行すると、より多くのUIブロック操作の潜在的なソースになるようです。
- 旧式のモジュールは本当にネイティブで(ブリッジコールは含まれていませんでした)、ハイパーループ対応のアプリケーションとそれらのアプリケーションとの比較はどのようになっていますか?
にはまだ内部の作業を説明ハイパーループについて多くのドキュメントや記事はありません - 誰もが何らかの答えを持っている場合、それにアプリケーションをしようとしていることは非常に役に立つことができそう。ストレートなご質問に答える
ありがとうございました。 実際に私が得るオブジェクトは 'KrollCallback'と' HyperloopClass'です。 アーキテクチャについてさらに説明し、メインスレッドで実行することが何を意味するのでしょうか? 古いモジュールでは、画像とテキストを含むTableViewを作成するとします.TiViewを使ってTableViewをラップすることについて言えば、そのビューの子オブジェクト(ImageView $ Label)まではネイティブですあなたがそれらを結びつけるすべての出来事がありますように。あなたがJSに戻ったものだけが橋を渡ります - それで、反射を行うよりもパフォーマンスが良いのですか? – developer82
ねえ、そこに!コメントは600文字しかないので、私は自分の答えを出しました。 –
@ HansKnoechelハイパーループモジュールを作成することは可能ですか?私はあなたの提案された仕様を見て、どのように進歩/計画がこれのためにあるのだろうと思っています。明らかに、カスタムハイパーループビジネスロジックを毎回作成するだけではなく、プラグアンドプレイモジュールが必要です。 –