これは私が偶然見つけた記事「腾讯和 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 の小プログラム開発ツールには、ローカルでのコンパイルとインストールパッケージの生成を許可する機能が追加されます。これにより、ローカルでのデバッグが可能になります。全体的には非常に簡単です。
いくつかの言及に値するポイント:
- WeChat との統合が非常に良好で、WeChat ログイン、携帯電話ログイン、Apple ログインなどを呼び出すことができます。ドキュメントを見る限り、パラメータを調整するだけで実現できます。
- Dount は開発者スペースに特に重点を置いており、公式アカウントの開発者バインディングに似ています。
- サイズを削減するために、特定のプラットフォームの機能を SDK として分割しています。たとえば、ws、Bluetooth、lbs モジュールなどです。
- 小プログラムのプライバシーポリシーにも言及されています。
- CICD ビルドはクラウドビルドをサポートしており、ビルド回数を消費します。
- メッセージプッシュも組み込まれており、Tencent Cloud Push を使用しています。
- lbs 広告なども使用されており、実際には非常に多くの機能があります。
- まだソースコードでネイティブ SDK をどのように導入するかはわかりません。
最近の更新頻度を確認してみましょう。
- モバイルアプリアシスタントは、おおよそ 1〜2 か月ごとにリリースされています。
- iOS の場合、小さなバージョンで、1.1.2 までの時間はわかりません。
- Android の場合、1.1.0 までの時間はわかりません。
以上です。オープンソースとは関係ありません。
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 回以上ですが、これは単なるデータであり、何を意味するわけではありません。
上の図は、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 も同様で、私はコミット数についても調べましたが、簡単ではありませんでした。これはまだオープンソースで公開されているものであり、まだ公開されていないものもあるはずです。