ハイブリッドアプリ開発はどのように行うことができますか?

ソフトウェアがSaasやクラウドで提供されることが増えるにつれ、ハイブリッドアプリ開発の割合が増え、大手企業もハイブリッドアプリ開発に注力しつつあります。最近いくつかの記事で目にしたのですが、ハイブリッド アプリの開発には、コンピュータの父の理論であるフォン ノイマン構造を利用して脳の穴を開くこともできるそうです。

この記事では、それを簡単に紹介しましょう。

フロントサイエンスの普及: どのアプリをアプリマーケットに投入できるか?

Apple が商品を店頭に並べるとき、多くの人が誤解しているのですが、ネイティブ開発アプリでないと (たとえ少しの機能があっても) 店頭に並べることはできないと考えています。

そうではない。Apple が受け取ったソフトウェアは、Web アプリ、ハイブリッド アプリ、またはネイティブ アプリを区別しません。

1. Web アプリ:アプリの Web ビューはリモート Web サイトを開きます。Web アプリの最大の欠点は、読み込みリソースがリモートにあり、毎回リロードされるため、速度が低下することです (一般に Web サイト パッケージ化された APP として知られています)。

2.ハイブリッド アプリ:アプリの Web ビューは、リモート データを読み取ることなく、ローカルの H5、js、css、および画像リソースを開きます。ロードされるリソースの削減により、一般にハイブリッド開発アプリとして知られるアプリの起動が大幅に高速化されます。

3.ネイティブ アプリ:論理フレームワークと画像リソースがローカルにあり、データが読み取られることはほとんどないアプリケーション マーケットのレビューに提出する場合、すべてパッケージ化されローカルにロードされるため、アプリケーション マーケットのレビュー後に変更できるビジネス プロセスは多くありません。アプリは棚上げされるため、ネイティブ アプリは市場の需要に柔軟に対応できません。これが、大手メーカーを含む多くのアプリがハイブリッド アプリ開発に切り替える必要がある重要な要因の 1 つです。

ハイブリッドアプリ開発方法-1: WebViewでWebページを読み込む

WebView は、モバイル アプリケーションに Web コンテンツを埋め込むコンポーネントであり、ハイブリッド アプリ開発の実装に使用されます。ハイブリッド開発では、ネイティブ アプリ コード (通常は Java (Android) や Swift/Objective-C (iOS) などの言語で記述されています) と Web テクノロジ (HTML、CSS、JavaScript など) を組み合わせて、ネイティブの機能を同時に活用します。アプリやウェブコンテンツ。

WebView の動作原理は大まかに次のとおりです。

1. Web コンテンツの埋め込み:これは最も基本的なコンポーネントです。開発者は、WebView コンポーネントを使用して、指定した Web ページ (ローカルまたはリモート) を表示するビューを作成できます。

2. HTML、CSS、JavaScript をロードして、よりインタラクティブで動的なインターフェイスを作成し、アプリケーションのユーザー エクスペリエンスを向上させます。

3.通信ブリッジを作成し、ネイティブ関数を呼び出す: JavaScript コードは、カメラ、位置情報、ストレージなどへのアクセスなど、ネイティブ インターフェイスを呼び出すことでデバイスのネイティブ関数を使用できます。ネイティブ コードは、WebView で使用するためにこれらの関数を JavaScript スクリプトに公開できます。

4.パフォーマンスとセキュリティ: WebView は Web コンテンツを埋め込むことができますが、完全なネイティブ アプリケーションよりも安全性がはるかに劣ります。また、WebView は基本的にアプリケーションのサンドボックス環境で動作し、アプリケーションの他の部分から分離されているため、ある程度のセキュリティが保証されます。

この種のアプリは、インターネット 2.0 段階の初期、Web ページが普及していたとき、かつてはその技術層が開発者に好まれていましたが、アプリケーション市場のレビューメカニズムの改善と進歩により、この種のアプリの開発後は、アプリは完成しても何度も審査を経なければならず、審査は本棚に載せるだけ、あるいは通らないこともあります。

その結果、Java クラスロードを使用したハイブリッド アプリ開発がアプリ開発の主流になりました。

ハイブリッドアプリ開発手法-2:Java classload クラスロードの仕組み

Java のクラス ロード メカニズムを使用してネットワーク ストリームからバイトコードを読み取り、クラスをロードすることは、多くの場合、リモート クラス ロードと呼ばれます。このテクノロジーは、特定の場合、特にアプリケーションの機能やモジュールを動的に更新する必要がある場合に、ハイブリッド アプリ開発を実現するために使用できます。その根拠は次のとおりです。

  1. バイトコードの生成と送信:ハイブリッド アプリ開発では、一部の Java クラスのバイトコードをバイナリ形式にコンパイルし、ネットワーク経由でモバイル アプリケーションに送信できます。これらのバイトコードは、導入または既存の機能を更新するいくつかの新しい機能またはモジュールを表します。

  2. カスタム クラス ローダー:アプリケーションでは、ネットワーク ストリームからバイトコードを読み取り、対応するクラスをロードするカスタム クラス ローダーを実装する必要があります。Java のクラス ロード メカニズムを使用すると、ClassLoader クラスを拡張してカスタム クラス ローダーを作成できます。これにより、クラスをロードするデフォルトの動作をオーバーライドできます。

  3. クラス読み込みプロセス:アプリケーション コードで特定のクラスを使用する必要がある場合、最初にカスタム クラス ローダーを通じてそのクラスを検索し、読み込みます。クラスがロードされていない場合、クラス ローダーはネットワーク ストリームから対応するバイトコードを読み取り、それを Class オブジェクトに変換します。ロードされたクラスは、通常の方法でロードされたクラスと同じようにインスタンス化してアプリケーションで使用できます。

  4. セキュリティと分離に関する考慮事項:リモート クラスの読み込みには、セキュリティと分離の問題が伴います。悪意のあるコードの挿入を防ぐために、信頼できるバイトコードのみが読み込まれるようにする必要があります。さらに、クラスの競合やメモリ リークなどの問題を回避するためにも注意する必要があります。

  5. 動的な更新とモジュール化:リモート クラスの読み込みにより、アプリケーションを再公開せずにリモート バイトコードを更新することで、新機能の導入、バグの修正、または既存の機能の変更が可能になります。これは、ユーザーのリクエストに迅速に応答する必要がある場合や、A/B テストを実行する必要がある場合に便利です。

ハイブリッド アプリ開発方法 3: フォン ノイマン構造を参照すると、ネットワーク上で送信されるパケットはデータまたはコードのいずれかになります

フォン・ノイマン構造を参照すると、ハイブリッド アプリ開発のためにコードとデータをクラウドに保存することで、「クラウド ハイブリッド アプリケーション」と同様のアーキテクチャを実現できます。このアーキテクチャの基本原理は、アプリケーションのコア ロジックとデータをクラウド サーバーに保存し、モバイル デバイス上のアプリケーションは主にインターフェイスの表示、ユーザー インタラクション、およびクラウドとの通信を担当します。

その根拠は次のとおりです。

  1. フロントエンドとバックエンドの分離:このアーキテクチャでは、モバイル デバイス上のアプリケーションは主にフロントエンドとして機能し、ユーザー インターフェイスの表示、ユーザー入力への応答、クラウドとの通信を担当します。アプリケーションのコア ロジックとデータ ストレージはクラウド サーバー上に配置され、バックエンドの役割として機能します。

  2. クラウド ロジックとデータ:アプリケーションのコア ロジック、ビジネス処理、データ ストレージはすべてクラウドで実行されます。これには、アプリケーションのビジネス ロジック、データベース、ファイル ストレージなどが含まれます。モバイル デバイス上のアプリケーションはクラウド サーバーと通信して、必要なデータを取得し、必要な操作を実行します。

  3. モバイル インターフェイス:モバイル デバイス上のアプリケーションは主に、ユーザー インターフェイスの表示、ユーザー入力の受信、クラウドへの受け渡しを担当します。モバイル アプリケーションは、ローカル テクノロジ (ネイティブ UI コンポーネントやローカル WebView など) を使用してユーザー インターフェイスを構築し、同時にネットワーク リクエストを通じてクラウド サーバーへのリクエストを開始できます。

  4. クラウド通信:モバイル デバイスはネットワーク接続を通じてクラウド サーバーと通信します。これは、HTTP プロトコル、WebSocket などを通じて実行できます。モバイル アプリケーションはクラウドにリクエストを送信し、クラウドはリクエストに従ってロジックを実行し、対応するデータまたは結果を返します。

  5. 動的な更新とメンテナンス:このアーキテクチャでは、アプリケーションのコア ロジックとデータがクラウドに保存されるため、ユーザーがアプリケーションを手動で更新することなく、アプリケーションの機能を動的に更新したり、バグを修正したり、新機能を導入したりすることができます。これにより、ユーザーのニーズや市場の変化に迅速に対応できるようになります。

WeChat、Alipay、Baidu、Meituan などの最新のスーパーアプリの構築テクノロジーも同様の概念です。小さなプログラム + App Shell です。

従来のネイティブ アプリケーション開発テクノロジと比較して、アプレット テクノロジには、軽量、迅速な開発、クロスプラットフォーム、インストール不要、そしてよりユーザーフレンドリーという利点があります。ミニプログラムは、ユーザーがダウンロードしてインストールすることなく使用できると同時に、開発コストが比較的低く、開発速度が速く、保守や更新が容易です。アプレット テクノロジはクロスプラットフォーム操作もサポートしており、複数のモバイル デバイスで同時に実行できるため、アプリケーションの適用範囲が大幅に拡大され、企業や開発者により大きな商業的価値がもたらされます。市場でよく知られている小規模プログラム コンテナ テクノロジー製品には、WeChat、Alipay、Baidu、Douyin 小規模プログラムなどが含まれます。これらはすべて、大規模なソーシャル プラットフォームの小規模プログラムのエコロジーを改善するテクノロジー ベースに基づいています。 、民営化展開のためにサードパーティを提供できます: FinClip 、mPaaS およびその他の製品がありますFinClipが独自に開発した小型プログラムコンテナ技術により、企業のアプリに小型プログラムを高速に実行する機能を持たせることができ、そのSDKをアプリ以外の機能デバイス端末(Linux、Windows、MacOSなど)に組み込むことも可能であることが分かりましたKirin

モバイル インターネットの活発な発展に伴い、従来のネイティブ アプリケーションと Web アプリケーションが徐々に融合しており、フォン ノイマン構造はこれに強固な理論的基盤を提供します。アプリケーションのコアロジックとデータをクラウドに保存することにより、アプリケーションの分離が実現され、開発者にとってより便利なメンテナンスおよび更新方法がもたらされるだけでなく、ユーザーにはより軽量なエクスペリエンスが提供されます。スモール プログラム テクノロジはこの傾向をさらに促進し、その低い敷居と迅速な開発特性により、開発者は機能豊富なアプリケーションをより柔軟に構築できます。

ただし、クラウド ハイブリッド アプリケーションの開発にはいくつかの課題もあります。ネットワーク接続の安定性、セキュリティ、ユーザーのプライバシーなどの問題は、慎重に検討して解決する必要があります。同時に、アプリケーションのパフォーマンスとユーザー エクスペリエンスを継続的に向上させるために、テクノロジーの開発もユーザーのニーズと密接に統合される必要があります。クラウド ストレージ、アプレット テクノロジ、その他の要素の統合が、モバイル アプリケーション開発の新しいトレンドをリードしています。将来的には、モバイル アプリケーションの開発をよりインテリジェントで便利にし、ユーザーの期待に沿ったものにするためのさらなる革新と画期的な進歩が期待されます。開発者とユーザーの両方がこの変化の波から恩恵を受けることになります。

おすすめ

転載: blog.csdn.net/speedoooo/article/details/132410305