辛宝Otto

辛宝Otto 的玄酒清谈

北漂前端程序员儿 / 探索新事物 / Web Worker 主播之一/内向话痨
xiaoyuzhou
email

速通-ドーナツとuni-app x

image.png

これは私が偶然見つけた記事「腾讯和 DCloud 最近放大招抢地盘,Donut 和 uni-app x 你选谁?」です。少し興味深いと感じました。将来のポッドキャストでは、DCloud の保哥をゲストとして招待する可能性があります。ここで紹介します。

ほとんどは私の感想で、一部は原文です。原文の一部には注釈があります。

原文では、現在、クロスプラットフォームのためのコード共有が経済的で効果的な選択肢です。現在のソリューションには、React Native、Flutter、uni-app、taro などがあります。現在、中国では uni-app が小プログラムの開発に優れた利点を持っています。腾讯はマルチプラットフォームフレームワークDonutを開発し、uni-app はuni-app xを開発しました。

私はこれらが新しいものだと思っていましたが、そうではないことに気づきましたので、ここで紹介します。

Dount#

これは腾讯が開発したものです。

ざっと見ると、WeChat の小プログラムをアプリに変換することができます。これは理解しやすいと思います。つまり、API のマッピングを行い、WeChat の小プログラムで可能な機能をアプリにも提供します。開発者は、まずプラットフォーム上で関連する権限を開設し、WeChat の小プログラム開発ツールには、ローカルでのコンパイルとインストールパッケージの生成を許可する機能が追加されます。これにより、ローカルでのデバッグが可能になります。全体的には非常に簡単です。

image.png

いくつかの言及に値するポイント:

  • WeChat との統合が非常に良好で、WeChat ログイン、携帯電話ログイン、Apple ログインなどを呼び出すことができます。ドキュメントを見る限り、パラメータを調整するだけで実現できます。
  • Dount は開発者スペースに特に重点を置いており、公式アカウントの開発者バインディングに似ています。
  • サイズを削減するために、特定のプラットフォームの機能を SDK として分割しています。たとえば、ws、Bluetooth、lbs モジュールなどです。
  • 小プログラムのプライバシーポリシーにも言及されています。
  • CICD ビルドはクラウドビルドをサポートしており、ビルド回数を消費します。
  • メッセージプッシュも組み込まれており、Tencent Cloud Push を使用しています。
  • lbs 広告なども使用されており、実際には非常に多くの機能があります。
  • まだソースコードでネイティブ SDK をどのように導入するかはわかりません。

最近の更新頻度を確認してみましょう。

  • モバイルアプリアシスタントは、おおよそ 1〜2 か月ごとにリリースされています。
  • iOS の場合、小さなバージョンで、1.1.2 までの時間はわかりません。
  • Android の場合、1.1.0 までの時間はわかりません。

以上です。オープンソースとは関係ありません。

image.png

uni-app x#

一つのコードで、iOS では Swift にコンパイルされ、Android では Kotlin にコンパイルされ、純粋なネイティブアプリであり、JS エンジンや Web ビューを使用していません。

ソースコードはオープンソースです。https://gitcode.net/dcloud/hello-uni-app-x

全体的には uts + uvue

  • uts 言語 - uni type script。js/kotlin/swift にコンパイルされます
  • ts に似ていますが、いくつかの制約があり、クロスプラットフォームのためにすべてが行われており、js や js エンジンの概念はありません。これは一種の言語です。
  • uvue は html+css の代わりであり、フレームワークであり、uts に基づいて vue の構文をサポートしています。
  • 最終的には純粋なネイティブであり、さまざまな中間レイヤーの通信オーバーヘッドはありません。

やはり技術に近いですね。コードを見ると、vue2 のオプション構文のようです。

  • uvue は現在 setup をサポートしていません。
  • uvue はフレックスレイアウトのみをサポートしています。
  • コンテナ、テキスト、画像、リッチテキスト、入力関連、音声 / ビデオなど、いくつかのコンポーネントを提供しています。
  • いくつかの機能はまだ開発中であり、主にいくつかのコンポーネントの機能です。
  • 現時点では、Android のみ実装されており、iOS の Swift はまだ開発中です。
  • 追加の自動化テストにも言及されています。
  • 履歴の互換性移行にも言及されています。

考察#

一つの記事から、異なる技術的なアプローチを見つけました:

  • 既存のプロジェクトをアプリに変換する
  • 新しいプロジェクトで uts をネイティブ言語に変換する

どちらも良いアイデアです。

Dount#

しかし、腾讯のクラウド開発は変更が頻繁であり、問題が発生した場合、公式の解決策を待つしかありません。小プログラムのフォーラムを見ると、心が冷たくなります。

uni-app x#

uts については、開発の作業量は非常に大きいと思います。一つ一つの機能をどれだけの人的リソースを投入して実現するかです。

現在オープンソース化されているのは uni-app-x だけですが、データの調査を簡単に行いました。

現在、約半年間の投入で、Git のコミットは 6 月初めから始まり、21 人のメールアドレスが関与しています。会社のメールアドレスと個人のメールアドレスが 1 人に対応する場合も含まれている可能性があります。総コミット数は 600 回以上ですが、これは単なるデータであり、何を意味するわけではありません。

image.png

上の図は、10 回以上のコミットを持つ記録です。21 人のメンバーがいます(git shortlog -sneによる)が、開発ブランチは少し先行しており、差異はほとんどありません。

これはコードの統計です。uts を ts に分類し、uvue を vuejs コンポーネントに分類しています。

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Text                             1              0              0           2598
JavaScript                      67            261            231           2272
JSON                            15              6              0           1535
Vuejs Component                  9             43             44            670
CSS                              3             51             17            226
HTML                             2              3              4            111
Markdown                         4             21              0             51
SCSS                             1             14             25             37
TypeScript                       1              3             23             16
INI                              1              1              0              8
XML                              1              4              0              5
-------------------------------------------------------------------------------
SUM:                           105            407            344           7529
-------------------------------------------------------------------------------

最初の txt は無視します。

作業の大変さを見るために、git log --pretty=format:"%ad" --date=short | uniq -cを使用してみましょう。

展望#

全体的には非常に感銘を受けました。腾讯はプラットフォームの力を大いに発揮しており、互換性のために多くの人材を投入しています。uni-app も同様で、私はコミット数についても調べましたが、簡単ではありませんでした。これはまだオープンソースで公開されているものであり、まだ公開されていないものもあるはずです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。