参考ブログ:H5エントリ電話アプリの開発:コンセプトペーパー、H5エントリ電話アプリの開発:技術の記事
アプリは、携帯電話には、次の3種類に分かれています
- ネイティブアプリケーション(ネイティブアプリケーションと呼ばれるネイティブアプリケーション、)
- Webアプリケーション(Webアプリケーション、Webアプリケーションと呼ばれます)
- 混合のアプリケーション(ハイブリッドアプリケーション、ハイブリッドアプリと称します)
ネイティブアプリケーション
あなたは、アプリケーションの市場をダウンロードする必要があります
利点
- パフォーマンスの向上と経験
- あなたは、システムの潜在的を十分に発揮することができ、などGPS、カメラ、マイク、加速度計、プッシュ通知など、すべてのシステムのハードウェアとソフトウェアのAPIを使用することができます
問題があります
- 大規模なチームの形成
- アプリの基礎となるオペレーティングシステムを使用してネイティブ言語、重いコンパイル言語の開発であり、デバッグコストが比較的高く、長時間
- ネイティブアプリケーションはダウンロードして使用するインストール限り、アップグレード版として、あなたは再ダウンロードしてインストールしなければならない必要があります。ユーザーが頻繁に消極更新されたバージョン、メーカーは古いバージョンの前に長い時間のための長期的なサポートを持っていることを余儀なくされています
Webアプリケーション
Webアプリケーションは、つまり、例えば、ブラウザでメールを送受信、ブラウザを使用する必要があり、Webアプリケーションの利用を行うためのWebベースのアプリケーションを使用しています
利点
- あなたはダウンロードする必要があり、インストールし、ブラウザを使用することができます開いて、常に最新バージョンを使用していません
- 開発者は、Webアプリケーションのデバッグが容易に、それはリリースすることができるようになりますアプリケーションストアの承認を必要としない、より速く書くために
問題があります
- ブラウザが提供するAPI(すなわち、ウェブAPIは)非常に(現在はカメラ、GPS、バッテリー、いくつかの)制限され、ハードウェアシステムのほとんどは、Webページを介してアクセスすることができない、あなたは、ハードディスクに直接ファイルを読み取ることができないので、Webアプリケーションを利用することはできませんハードウェア・プラットフォーム
- ネイティブアプリケーションよりも、Webブラウザのレンダリング性能は、高いパフォーマンス要件のページには適していません
プログレッシブWebアプリケーション(プログレッシブWebアプリケーション)、PWA
Chromeチームは、次のような問題Webアプリケーションを解決するための新技術を開発しました
- 最初の画面の携帯電話から直接アクセスすることはできません
- 容量携帯電話のステータスバーとロック画面の欠如のプッシュ通知
- (ネットワークでも使用することができますオフになっていること)オフラインアクセスをサポートしていません。
PWAサイトをオフラインで使用するために、携帯電話にキャッシュするだけでなく、携帯電話の画面生成アイコンで最初の、ちょうど入るようにクリックすることができ、プッシュ通知機能があり、また、ブラウザのアドレスバーやステータスバーで、ネイティブアプリで非常に経験があります。しかし現在まで、理想的ではない、それだけで探索技術的な性質だった十分なサクセスストーリーの欠如を、PWAは、最初の画面のアイコンを生成するためにアクセスするウェブサイトをブラウザを必要とし、現在のiOSシステムをサポートしています
ハイブリッドアプリケーションハイブリッドのApp
組み合わせでのネイティブアプリケーションとWebアプリケーション。そのシェルは、ネイティブアプリですが、ウェブページ内に置きます。混合アプリケーションはブラウザ内で非表示として、ユーザが実際に隠されたブラウザレンダリングページで見て理解することができます。小さなマイクロチャネル・プログラムアプリケーションを混合属し
一般的に(つまり、WebViewの制御)システムが提供するWebレンダリングコントロールを使用して、ブラウザ内に隠され、「コンテナ」と呼ばれるハイブリッドアプリのネイティブシェルは、あなたも彼自身のブラウザカーネルを構築したことができます。
構造的には、アプリケーションは、上から下に3層に混入しました:
- HTML5ウェブ層
- ウェブエンジン層(ブラウザの本質的に単離されたインスタンス)
- コンテナ層
API橋
またJSbridge、JSbridgeコールネイティブAPIにより、ウェブ層として知られています。通常のWebページからの混合異なる内部のAppは、システムが外部容器内の秘密の嘘は、ウェブ基盤となる内線通話を可能に仲介レベルのAPIとして機能し、APIブリッジを提供し、すべての基本的なAPIを呼び出すことができます。いわゆるAPI橋は、コンテナと双方が通信するためのブリッジを構築するためのウェブとの間の基本的なインタフェースです。コンテナたら、基盤となるシステムのAPIを呼び出すための要求に応じて、Webページを要求することで、その後、ウェブページへの結果を返します。API橋JavaScript言語は、多くの場合、便利なページのコールを提供し、その後JSbridge(例えばマイクロ手紙JS-SDKなど)と呼ばれます
テクノロジー・スタック
- PhoneGapの
- コルドバ
- イオン
ハイブリッドアプリケーション利点
- クロスプラットフォーム:Web技術を使用して、複数のプラットフォームをサポートすることができ、ページ追記にクロスプラットフォームの開発者です。これは、混合アプリケーションは唯一のチームの十分な、低開発コストを必要とし
- 柔軟性:柔軟性のミックスのAppは、複数の機能を統合することは容易です。一方では、混合アプリケーションを簡単に外部H5ページをロードし、プラグインのAppを達成するためのアーキテクチャは、他の一方で、Webページを簡単に外部のWebサービスを呼び出すことができます
- 開発を促進:シンプルなコントロールネイティブ州よりもはるかに多く、デバッグ、およびWebページを構築します。アップデートページも簡単に、ちょうどそれに、サーバー上のコンテナの更新トリガーを新しいバージョンをリリースしています
問題の混合のApp
中間層のWebエンジンの存在に起因して、パフォーマンスは非常にだけでなく、良いなどのネイティブアプリとして、不足している、とWebViewのはフル機能のブラウザではないため、Webアプリケーションのいくつかよりも遅くなることがありますので、
クロスプラットフォームのアプリケーション・テクノロジー・スタック
クロスプラットフォーム技術スタックは、同時に複数のモバイルプラットフォームをサポートするための技術の使用を意味します。それは、あるWeb技術を使用していないハイブリッド技術スタックとは異なり、そのページがHTML5のページではなく、UI層、その後、各プラットフォームのネイティブアプリケーションにコンパイルを書くために、独自の構文を使用しています。多かれ少なかれ、各主要技術プラットフォームのいくつかを理解するために使用する技術スタックの関係なく、どのような、ので、最終的に、ネイティブアプリケーションにコンパイルするため、技術スタックとクロスプラットフォームテクノロジー・スタックの基盤ハイブリッド、ネイティブのテクノロジ・スタックです。
テクノロジー・スタック
- ネイティブの反応:JavaScipt言語を使用してページを作成します
- Xamarin:使用C#言語のページ
- フラッター:ダート用のページを書きます
その後、HTML言語のページ、およびWebViewの制御負荷のページを使用して、技術スタックを混合以上、これだけ追記型ページには、複数のプラットフォームをサポートすることができるようになります。クロスプラットフォーム技術スタックは、マルチプラットフォームのサポートを行うことができますが、原則は完全に異なっています。クロスプラットフォームテクノロジー・スタックのフレームワーク、Web技術、コンパイル時間を使用せずに、ページを記述するために、独自の構文を使用して、その後、ネイティブコントロールに変換、またはネイティブアプリケーションに独自の根底にあるコントロールを使用しています。これは完全にWebページのパフォーマンスの低下の問題を解決します。
ネイティブ原理を反応させます
リアクトがネイティブでもJavaScript言語を使用することを注意し、Webページのような書き込みに見えるが、実際にすべてのコントロールは、再び自分自身、コンパイル時のネイティブコントロールを対応する翻訳されたものを定義しています。たとえば、ネイティブテキストレンダリングコントロールを反応させるためにアンドロイドのTextViewコントロールに変換するUIView、とiOSのコントロールに変換<テキスト>、あります
のネイティブな問題を反応させます
非常に美しいが、ネイティブのアイデアを反応するが、さまざまな問題の出現の実際の開発。主な質問は、UIの抽象化層は、iOSとAndroidのネイティブページを翻訳され、まったく同じ操作を行い、差異特に複雑なページ、スタイルや機能があります。ネイティブアプリケーションのコンパイルの2つのプラットフォームしばしば正常で、他の奇妙な病気のすべての種類が存在します。あなたが同じことを行うと、ネイティブコントロールの機能を十分に発揮するために、ネイティブiOSとAndroidの経験を反応して、あなたが精通している必要がありますしたい場合は、開発者が高すぎる必要とする、ネイティブ、iOS版、Androidの3つのプラットフォームを反応します。