|
Didi Chuxingは先日、クロスプラットフォームソリューション「Chameleon(CML)」をGitHubでオープンソース化しました。「Chameleon」という名称は、カメレオンのように様々な環境に適応する能力を意味しており、使いやすさ、迅速な開発、そして高いパフォーマンスを特徴とする包括的なクロスプラットフォームソリューションを提供します。以下のセクションでは、Chameleonプロジェクトの開発背景とパフォーマンス特性について詳しく説明します。 背景開発チームは、HTML5の柔軟性とアプリ内でのネイティブに近いパフォーマンスの両立を目指しました。メインアプリ、スタンドアロンアプリ、WeChatミニプログラム、Alipayミニプログラム、Baiduミニプログラム、Androidベンダーアライアンスクイックアプリなど、エントリーポイントが拡大する中で、単一機能の実装を複数のプラットフォームで繰り返す必要があり、開発コストと保守コストが飛躍的に増加しました。単一のコードベースで複数のエントリーポイントを構築できるソリューションが緊急に求められていました。約20ヶ月にわたる改良を経て、DidiのクロスプラットフォームソリューションであるChameleonがついにリリースされました。Chameleonは、単一のコードベースで複数のプラットフォームで実行できるようにすることに真に重点を置いたソリューションです。 デザインコンセプトソフトウェアアーキテクチャ設計における最も基本的な概念は「分割」と「統合」です。分割とは「分割して征服する」という意味で、複雑な問題を単一の問題に分解して解決することを指します。例えば、バックエンド業務システムの「マイクロサービス」設計などがこれに該当します。一方、「統合」とは、同一の業務要件を抽象化して一つのグループに統合し、高効率・高品質という目標を達成することを指します。例えば、バックエンド業務システムの「ミドルプラットフォームサービス」設計などがこれに該当します。 Chameleonは後者のカテゴリに属します。統一された言語フレームワークと統一されたポリモーフィックプロトコルを定義することで、マルチターミナル(複数の独立したサービスに対応)のビジネスから、自己完結的で継続性が高く、保守性の高い「フロントエンドミドルウェアサービス」を抽出します。 クロスプラットフォームターゲット環境によって大きく異なりますが、MVVMのコアコンセプトは変わりません。Chameleonは、異なる環境間でMVVMを統一することを目指しています。 学習パノラマWebプログラミングに携わったことがある人なら誰でも、WebプログラミングではHTML + CSS + JSの組み合わせが使用されることをご存知でしょう。同様に、ChameleonではCML + CMSS + JSが使用されます。 ページのロジック層はJavaScript構文を用いて処理されます。このプロジェクトは、一般的なウェブページプログラミングと比較して、完全なライフサイクルと、監視、計算、双方向データバインディングなどの優れた機能を備えた標準的なMVVMフレームワークを定義することを目指しています。これにより、開発速度を迅速に向上させ、メンテナンスコストを削減できます。 CML(カメレオンマークアップ言語)は、ウェブページの構造を記述するために使用されます。HTMLには、テキスト用の `<span>` やボタン用の `<button>` など、セマンティックタグの標準セットがあることはご存知でしょう。CMLにも、コンポーネントとして定義される標準的なタグセットがあります。CMLは、ユーザーに一連のコンポーネントを提供します。CMLは、条件付きレンダリング、リストレンダリング、データバインディングなどのテンプレート構文もサポートしています。さらに、CMLはVueのような構文をサポートしているため、より迅速に開発を開始できます。 CMSS(カメレオンスタイルシート)は、CMLページの構造を記述するために使用されるスタイル言語です。CSSのほとんどの機能を備えており、Less Stylusなどの様々なCSSプリプロセッサ言語もサポートしています。 上記のプログラミング言語の紹介から、Web プログラミングの知識があれば誰でもすぐに Chameleon 開発を始めることができることがわかります。 豊富なコンポーネントCMLを使用してWebページを作成する場合、Chameleonは開発者が使用できる豊富なコンポーネントセットを提供します。組み込みコンポーネントには、ボタン、スイッチ、ラジオボタン、チェックボックスなどがあり、拡張コンポーネントにはc-picker、c-dialog、c-loadingなどがあり、開発作業でよく使用されるコンポーネントを網羅しています。 詳細については以下をご覧ください。 https://cmljs.org/doc/component/component.html 豊富なAPI開発者の効率的な開発を促進するために、chameleon は、ネットワーク リクエスト、データ ストレージ、地理位置情報、システム情報、アニメーションなどのメソッドを含む、npm パッケージ chameleon-api として公開された豊富な API ライブラリを提供します。 詳細については以下をご覧ください。 https://cmljs.org/doc/api/api.html カスタマイズ可能なAPIとコンポーネント強力なポリモーフィックプロトコルを基盤としており、フレームワークのアップデートに大きく依存することなく、あらゆるAPIとコンポーネントを自由に拡張できます。様々なプラットフォームのオリジナルプロジェクトには既に多数のコンポーネントが蓄積されており、クロスプラットフォームプロジェクトに直接インポートすることも可能です。 インテリジェントな仕様検証コードスタイルチェック:スタイル要件を満たさないコードが見つかった場合、エディターはインテリジェントな提案を表示し、各プラットフォームでコードを一つずつデバッグする必要がなくなります。同時に、コマンドラインの起動ウィンドウにコード内のエラー箇所も表示されます。 詳細については以下をご覧ください。 https://cmljs.org/doc/framework/linter.html プログレッシブクロスプラットフォームすでにミニプログラムを開発しているけれど、大きな変更はしたくない、CMLを使いたいと考えている方は多いのではないでしょうか?もちろん可能です。CMLの使い方は2つあります。 高度なフロントエンド開発経験Chameleonは単なるクロスプラットフォームソリューションではありません。優れたフロントエンドバンドルツールWebpackをベースとし、業界で長年蓄積されてきた最も有用なエンジニアリング設計を統合し、フロントエンドの基本的な開発スキャフォールディングコマンドツールを提供することで、フロントエンド開発者が開発、統合テスト、テスト、そしてデプロイメントまでの全プロセスを通じてビジネス開発を効率的に完了できるよう支援します。
その後の計画インストール、使用方法、よくある質問については、次のリンクをご覧ください。
|