|
2016年8月26日から27日にかけて、51CTO.com主催のWOT2016モバイルインターネットテクノロジーサミットが北京JWマリオットホテルで開催されました。2012年以来、テクノロジーを重視し、技術者にサービスを提供するという理念を掲げるWOTブランドカンファレンスは、11回のセッションを成功裏に開催してきました。豊富な専門家リソースを蓄積してきただけでなく、幅広いIT専門家やテクノロジー愛好家から高い評価と称賛を得ており、業界における技術共有とネットワーキングの重要なプラットフォームとなっています。 WOT2016モバイルインターネットテクノロジーサミットにおいて、タオバオモバイルプラットフォーム基本プラットフォーム部門責任者の呉志華氏は、 「Weex:JSとWeb機能であらゆるもののインターネットを探る」と題した講演を行いました。講演では、Weexプロジェクトの概要、その特徴と開発経験、そして業界動向を踏まえたアリババのWeex開発の理由と開発手法について説明しました。サミット後、51CTOの記者が呉氏にインタビューを行い、Weexプロジェクトの開発状況とオープンソース化の現状、その中核となる競争力、既存の技術課題、そして今後1~2年の開発目標について詳しく説明しました。 ゲスト紹介 呉志華(アリババ名義:田史)は、アリババのシニアワイヤレステクノロジー専門家であり、タオバオモバイルプラットフォームインフラ部門の責任者です。中国でモバイルの波にいち早く対応してきたベテランの一人です。業界における数々のスーパーアプリの設計と開発に携わってきました。2014年末にアリババに入社し、現在はアリババのモバイルインフラテクノロジープラットフォーム、Weexプロジェクト、そして百川モバイルクラウドの研究開発と構築を担当しています。Archsummit Shenzhen 2015のモバイル部門のプロデューサーとして、またQCon Shanghai 2016のモバイル部門のプロデューサーとしても活躍しました。 Weexプロジェクトの現状 Weexプロジェクトは、「一度書けばどこでも実行できる」という原則に基づき、Webベースのアプローチを用いてネイティブアプリを開発しています。アリババ社内では、このプロジェクトは単なる技術プロジェクトから、複数の部門が共同で開発する技術エコシステムへと進化しました。呉氏のチームは、ツールシステムと基盤となるV8エンジンを含むフロントエンドJSフレームワークであるWeexカーネルを担当しています。Weexカーネルの開発メカニズムは、主流のブラウザと同等であり、これがWeexと競合他社との重要な違いです。競合他社は主流のブラウザの開発経験が不足しているため、カーネルの安定性を保証できない可能性がありますが、Weexはこの分野でUC Browserと強力なパートナーシップを築いています。フロントエンドJS&Webフレームワークに加えて、チームメンバーはUIライブラリも開発しています。具体的には、SUIをベースにしたWeexバージョンのNEXTです。これは軽量フレームワークを備え、一部の企業向けにエンタープライズレベルのソリューションを提供します。また、ゲーム、3D、VR機能などのモバイルインタラクティブ機能にも取り組んでいます。 こうした点を踏まえ、アリババは初期段階で技術的なエコシステムを形成しています。データによると、オープンソースのベータ版リリースを発表した4月21日には、多くの開発者が集まり、2週間以内に5,000人以上の開発者が応募しました。6月30日に正式にオープンソース化された時点で、WeexはすぐにGitHubのトレンドリストでトップになり、最初の1週間はトレンドリストに留まりました。8月26日時点で、スター数は5,500を超えています。さらに、外部からのプルリクエストに関しては、500件のプルリクエストのうち、5分の1が外部からのものでした。開発者やプロジェクトメンバーは、課題セクションで頻繁に技術要件について話し合っており、中には既に自社の業務にWeexを正式に導入してリリースしている人もいます。これらすべてが、Weexのオープンソース開発が初期段階で健全なエコシステムを形成していることを示しています。 開発者が使用する類似ツールと比較したWeexの競争上の優位性 Weexプロジェクトと競合他社との違いについて議論する際に、Wu氏は主に次の5つの点を挙げました。 彼らは、中国のインターネット環境における単一のコードベースで、3 つのプラットフォーム (Android、iOS、H5) にわたって一貫したユーザー エクスペリエンスを確保することを主張し、起業家のコスト削減を支援しています。 第二に、最終的に収束を達成するには、ブラウザのカーネルレベルの真の安定性と開発メカニズムを実現する必要があります。 3つ目は、運用中に高いパフォーマンスと継続的な安定性を確保するためのメカニズムを確立することです。 4つ目に、中国市場において、Weexは柔軟な埋め込み方法をサポートしています。埋め込み先はウェブページ、アプリ、さらにはコアアプリのインターフェースまで多岐にわたります。Weexチームは、中国ではアプリ全体の開発よりもウェブページデザインの優位性を重視することが、開発者のエンジニアリングシステムや新しいフレームワークに大きな影響を与えると確信しており、これがWeexの最大の強みとなっています。 重要な点の一つは、アリババが世界最大の動的モバイルクライアント技術を複雑なビジネスシナリオに適用している企業であるということです。タオバオの主力アプリからグループアプリまで、どちらも徐々にWeexベースになっています。今年、タオバオとTmallの主要なプロモーションイベントは、主にWeexが主催しました。6ヶ月間の実践を経て、継続的な実験とアプリケーションの範囲と複雑さの拡大を経て、Weexプロジェクトチームは大規模で複雑なアプリケーションシナリオにおける一連の技術的課題を特定し、解決しました。競合他社が特定または解決していない多くの問題を発見しました。 アリババの淘宝網における独身の日プロモーションは、モバイルショッピングの習慣の発展に伴い、トラフィックの急増、ネットワークの混雑、そして販売業者からの需要といった課題に直面しています。アリババはどのようにしてユーザーのショッピング体験ニーズをより良く満たせるのでしょうか? 呉教授はダブルイレブンが一大イベントであると述べました。より広い視点で見ると、過去2年間はマルチサイトのアクティブ/アクティブアーキテクチャと複数のデータセンター、特にデータセンター間の切り替え方法に焦点が当てられてきました。例えば、2015年に呉教授はアリババの統合ネットワークアクセス(ACCS)プロジェクトを主導しましたが、これは技術的にはいくつかの側面で構成されていました。第1に、展開レベルでの災害復旧とマルチサイトのアクティブ/アクティブアーキテクチャ。これには、極端な状況を防ぐためのトランザクションベースシステムと非トランザクションベースシステムの災害復旧が含まれていました。第2に、数十億のデバイスをサポートする統合ネットワークアクセスレイヤーと、トラフィックの急増や悪意のあるリクエストを防ぐためのレート制限メカニズム。第3に、クライアントレベルでの柔軟なリクエスト戦略と統合クラウド制御機能により、極端な状況でのクライアントリクエスト頻度と戦略を制御し、優先度の高いリクエストを柔軟に処理しながら処理を優先することができます。 モバイルショッピングの分野では、今年多くの実験を行い、新たなフォーマットを通して、これまでとは異なるインタラクティブなショッピング体験を創出し、人々をより近づけることを目指しています。ユーザーは、ホストが商品を紹介し、顧客と交流する様子を目にすることができます。一方、内部的には、スムーズなショッピング体験を実現するために様々なテクノロジーを活用しています。具体的には、以下のようなテクノロジーが活用されています。 1. ショッピングプロセスのパフォーマンスと安定性を確保します。関連する指標には、起動からホームページのレンダリング完了までの時間の割合、クラッシュ率、ページの読み込み時間、メモリ使用量、フレームレートなどがあります。 2. ネットワーク伝送の 1 秒ルールとリクエストの成功率は継続的に最適化され、信頼性が高くタイムリーなネットワーク伝送を保証します。 3. H5 と Weex が瞬時に開くため、ユーザー エクスペリエンスが向上し、速度が向上します。 4. マルチメディアやライブストリーミング コンテンツのアップグレード、buy+ などの革新的な取り組みにより、ユーザーにユニークなショッピング体験を提供します。 5.*** は、Taobao が頻繁に取り上げるコミュニティとコンテンツの側面を指し、消費者がショッピング中により多様な購入決定を下せるようにします。 チームが直面した主要な技術アップデートと課題 Weex プロジェクトの開発中に遭遇した重要な技術的更新には次のようなものがあります。 1. パフォーマンスの反復と最適化。1年間にわたるパフォーマンスの反復では、起動、最初の画面のレンダリング、スクロール時のフレームレート、メモリ使用量と段階的な改善、ピーク時/平均時/静音時のCPU使用率など、詳細な項目を網羅しました。同時に、ローエンドからミッドレンジ、ハイエンドまで、様々なAndroid/iOSモデルを対象に、複数回にわたるパフォーマンス最適化の反復を実施し、ローエンドのAndroidデバイスでもネイティブに近いエクスペリエンスを実現しました。 2. フロントエンド構文の継続的なイテレーション。インラインイベント、Webpackベースのローダーメカニズム、computedproperties、繰り返し構文拡張などの新しいサポートにより、より豊富な構文糖と機能が追加され、開発者にとってより便利になりました。 3. ページレベルのナビゲーションソリューション。Weex Navigatorコンポーネントは、大規模なオンラインイベント間のナビゲーションをサポートし、TabBarはページ切り替えエクスペリエンスを向上させます。 4. デバッグ ツール Devtool: Chrome Devtools を介して Weex Android/iOS コードを直接デバッグし、要素 (BoxModel/NativeView)、コンソール ログ、ネットワーク、および ScreenCast をサポートします。また、複数のデバイスと複数のアプリの同時デバッグもサポートし、JS コードのブレークポイント デバッグもサポートします。 同時に、ウー氏は重要な技術的ソリューションの 1 つであるページ レベルのナビゲーションについて詳しく説明しました。 最初の選択: 単一ページのマルチビュー ナビゲーションと複数ページのナビゲーションのうち、プロジェクト チームは、大規模なアプリケーション シナリオに適しており、ページ間の結合が減り、全体的な安定性が向上する複数ページのナビゲーションを優先することを選択しました。 技術的ソリューションには以下が含まれます。 1. ナビゲーションコントローラー (1) ナビゲーションバー: スタックスタイルのナビゲーションで、プッシュ/ポップをサポートし、カスタマイズ可能なナビゲーションバースタイルを備えています。 (2)TabBar:Weexコンテナインスタンス(以下、インスタンス)の複数レベルの埋め込みをサポートする埋め込みコンポーネントを導入し、フロントエンドでカスタマイズ可能なTabBarコンポーネントを実現し、インスタンス同士が通信できるようにします。TabBarはカスタマイズ性が高く、複数レベルのタブページに対応するソースファイルが分離されており、オンデマンドで読み込むことができます。 2. アプリケーションのライフサイクル (1)ページの観点から見ると、基本的にinit、ready、viewappear、viewdisappear、destroyといういくつかの重要な時間ノードに分けられます。 (2)アプリケーションの観点からは、フロントエンドとバックエンド関連のフォアグラウンド、バックグラウンド、メモリ関連のmemoryWarningなども組み込まれており、必要な操作を実行するために上記の登録インターフェースをフロントエンドに公開する必要があります。 3. データ通信 (1)メッセージ配信によるメッセージリスニングモードの確立は、分離性が良好で、オブジェクトのコンテキストを気にする必要がなく、多階層ページ間の通信に適しているという利点がある。 (2)インスタンス間のコンテキストの関係を確立する。これは、インスタンスが埋め込まれたシナリオに適している。 Weex プロジェクトの最大の技術的課題は、大規模で複雑なシナリオでパフォーマンスと安定性を確保し、3 つのプラットフォームすべてで一貫したユーザー エクスペリエンスを維持すること、特に Double Eleven ショッピング フェスティバル中の Weex の安定性を維持することです。 これは実際には複雑なシステムエンジニアリングの問題であり、V8/JSCoreエンジンの最適化、ネイティブ層でのパフォーマンスチューニング、上位層JSFrmフレームワークのパフォーマンスとユーザビリティ、そしてCIおよび自動テストメカニズムのサポートが含まれます。プロジェクトチームは、WebKitカーネルに類似したパフォーマンス安定性保証メカニズムを確立し、3つのプラットフォームすべてで一貫したエクスペリエンス(一貫したレンダリングとレイアウト、グラフィカルな自動比較機能の提供)と、プロファイリング、リンティング、メモリリーク検出のためのフロントエンドフレームワーク対応ツールの確保を目指しています。これにより、Weex内に自動化されたプラットフォーム開発保証メカニズムが構築されます。この方法によってのみ、WeexはWebKitと同様に、安定した信頼性の高いバージョンを継続的に提供できます。これはWeexと競合他社の哲学の大きな違いであり、より安定した堅牢なアプローチを可能にします。 今後1~2年間のWeexプロジェクトの開発目標 Weexプロジェクトの開発目標は、内部と外部の2つの側面に分かれています。内部的には、8月から12月までにWeexをアリババのモバイル事業に完全に統合することを基本目標としています。Weexの機能をモバイルデバイスにとどまらず、複数の相互接続されたデバイスにまで拡張することを目指しています。一方、外部的には、Weexが真に信頼でき、広く認知されるクロスプラットフォームのモバイルソリューションとなるかどうかが課題となっています。実装プロセスには、優れた基盤機能とエンジニアリングシステムをフロントエンドからモバイルプラットフォームまで完全に継承し、ソリューション全体を業界にオープンソース化し、開発者と協力して構築し、その普及状況を追跡し、最終的に相互接続されたデバイス向けの信頼できる技術ソリューションとしてWeexを確立することが含まれます。 |