Translate

2013年3月15日金曜日

なぜmgwtなの?

MGWTプロジェクトページに

Why mgwt?
http://code.google.com/p/mgwt/wiki/Why

というページが有った。

いかん、こっちを先に読まないと..
ということで訳してみた。
#参照する場合はat your own riskでお願いします



-------
HTML5対ネイティブモバイルアプリ

モバイル機器のためにネイティブアプリを書く時や(特定の範囲内でデプロイされる)Webアプリを書く時に議論されてつづけています。
もしパッケージ化されモバイルデバイスへデプロイされるWebアプリがphonegapなどを使うのであれば、ネイティブアプリが実現できることができるようになります。

ひとつの基本的な決定

もし少しでもパフォーマンスを上げる必要があったり、デバイスの最新APIが必要な場合は、ネイティブアプリが進むべき道にみえるでしょう。しかし、もし複数のデバイスで多くのユーザへ低コストで届けたいのであれば、HTML5を選択するでしょう。しかしHTML5アプリを構築する場合いくつかの考慮すべき点がいくつかあります:

パフォーマンス

実際、パフォーマンスはモバイル携帯において重要です。もしアプリをJavaScriptで記述したのであれば、より効率的なJavaScritを記述しなくてはなりません。さもなくば動作が遅くなり、デバイスのバッテリを消耗させてしまいます。皆さんご存知のように、GWTコンパイラは非常に効果的なアプリを生産するよい手段です。

理論的にはGWTコンパイラのようなJavaScriptアプリを自分で最適化することは可能です。しかしそれはとても大変でエラーを起こしやすい仕事です。ですから、モバイル開発にGWTを使用して、Googleに書き換えさせてJava環境のすべてのツール導入することで偉大な業績の利益をえるのはいかがでしょうか。

アプリが効果的な実行を実現するために、mgwtはいくつかの大変クールなことを行います:


  • CSSで出来ることはすべてCSSで行います、例えばJavaScriptで記述するよりも、アニメーションをWebKitエンジンへ以上することでより高速に処理します
  • 遅延バインディングの多用により必要なコードのみ含むアプリを実現します。ダウンロード時間が早くして評価速度を向上させるために、最小のコードサイズを保証します。
  • 一般的に、電話は遅くかつ高レイテンシなネットワーク接続です。劇的な速度向上のために多くの小さなファイルを要求する必要はありません。mgwtはCssResourcesを使用し、すべて1つのファイルに詰め込みます(もしJavaScriptファイルが巨大になった場合は、もちろんgwtにより分割ポイントを管理します)。
  • キャッシュを使用します。ローカルコピーが古い場合だけスクリプトをダウンロードすることを実現します。このため既に訪問済みのページだったり、キャッシュ内にカレントアプリを持っているのであれば、再度ダウンロードしようとせず即座にアプリを開始します。

MGWTは既知のGWTベストプラクティスを使用しています

mgwtは全体を最初から構築しません。GoogleはGWTという偉大な仕事を成し遂げました。sそして決してmgwtを使うことで頂点に立つことではありません。このためmgwtは同様のコンセプトを持つGWTプロバイダやアニメーションをハンドルするGWTへの追加機能を使います。アニメーションをハンドルするカスタムActivityManagerを提供することで、mgwtはGWTの提供するMVPフレームワークを拡張します。すべてのmgwtウィジェットは編集フレームワーク同様UiBinderフレームワークを使って動作します。このため、みなさんご存知のとおりテスト可能なGWTアプリケーションはmgwtと一緒に動作します。


mgwtイベントモデル

mgwtは、カスタムDOM実装により、タッチイベントサポートとアニメーションイベントをGWTに追加します。マウス入力は一本指での接触として扱われます、このためマウスとタッチ両方ハンドルするコードを書かないで下さい
------

GWTが必要で、ほかのモバイル系追加機能も積極活用するよ
というアーキテクチャのざくっとしたコンセプト的な文章だった。

ただmgwtウェブサイトトップに張ってあった動画

mgwt & gwt-phonegap talk at dutch GTUG 1st May 2012 
http://www.youtube.com/watch?feature=player_embedded&v=0V0CdhMFiao

よりはぜんぜん総花的。
こっちの動画のほうがもうすこしくわしいアーキテクチャ説明をしている。


ただ油断してたら、
本文さいごにしれっとマウスイベントとタッチイベント共用不可
という重要な情報がしれっと書いてあった...


あぶないあぶない。

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...