最初の速度メーターを作る
速度と単位を示すメーターを作成します。 main()、Text、VStack が完全なスクリプトでどのように使用されるかを学び、外観をプレビューしてダッシュボードに保存します。
{ value: 42.3, unit: "km/h" }1. 新規作成して速度を選ぶ
ダッシュボードで その他(…)→ カスタムメーター を開き、新しいメーターを追加 を選択します。新しいメーターにはすでに基本速度入力が付属しています。
- エディターの上部にある名前をクリックし、メーター設定 に移動し、「My Speed」という名前を付けます。
- 入力の割り当て の横にある歯車をクリックして パラメータ設定 を開きます。速度入力を確認してください: 識別子は
speed、タイプは 基本データ、ソースは 速度 です。見つからない場合は、パラメータを追加 を使用して新しいものを作成します。 - 完了 をクリックして設定に戻って保存し、編集領域に戻ります。
スクリプトは $data.current.speed を介して速度を読み取ります。ここで、フィールド名は入力識別子から取得されます。エディターは、定義どおりに型ヒントを提供します。この例では、OBD バインディングは必要ありません。
2. コード全体を貼り付ける
編集領域の元のコンテンツ全体を以下の完全なコードに置き換えます。別の main() でラップしないでください。この例には、エントリ関数が 1 つだけあります。
現時点ではコードを同じにしておきます。描画する必要があるたびに現在の速度を読み取り、値と単位を上下に配置します。読み取り値が欠落している場合は、水平線が表示されます。次のセクションでは、実行順に説明します。
function main() {
const speed = $data.current.speed;
return (
<VStack spacing={8}>
<Text fontSize={64} color={$env.foreground}>
{speed?.value == null ? '—' : Math.round(speed.value)}
</Text>
<Text fontSize={16} color={$env.accent}>
{speed?.unit ?? $env.speedUnit}
</Text>
</VStack>
);
}
コードと表示のつながり
まずデータを見て、次に画像を見てください。今回は speed が { value: 42.3, unit: "km/h" } であるとします。
const speed = $data.current.speedこの測定値を取得します。ここで、speedは数値そのものではなく、数値と単位を含むオブジェクトです。speed?.value == nullは欠測値をチェックします。オブジェクトが存在しない場合、または値が空の場合は、'—'が選択されます。値が0の場合、この分岐は選択されません。Math.round(speed.value)は42.3を42に丸め、それを最初のTextに与えて表示します。丸めはこのメーターの表示にのみ影響し、元の測定値は変更されません。- 2 番目の
Textにはspeed.unitが表示されます。現在単位がない場合、?? $env.speedUnitは現在の表示環境の速度単位を使用します。 VStackは 2 つのテキストを上下に配置し、spacing={8}はテキスト間の間隔を制御します。
$env.foreground と $env.accent は、現在のテーマのテキストとアクセントの色を提供します。これらの色は、テーマが変更されると更新されます。
欠測値を判断するために speed?.value || '—' を使用しないでください。JavaScript は有効なゼロを false 値として扱い、駐車時に水平線が正しく表示されなくなります。
3. プレビューで見た目を確認
エディターの下部にある プレビュー をクリックします。上の行には大きな速度の数値が表示され、下の行には小さな単位が表示されます。プレビューの数値は車両発進を必要としないシミュレーション値であり、その時点で携帯電話で計測した速度と必ずしも一致しません。
次に、3 つの小さな変更を加えて、そのたびにプレビューします。
| 改訂 | 確認すべき変更点 |
|---|---|
fontSize={64} が 48 に変更されました |
主な数値は小さくなります。 |
spacing={8} が 16 に変更されました |
数字と単位がさらに離れています。 |
メイン番号の色が $env.accent に変更されました |
主要な数字にアクセントカラーを使用します。 |
さまざまなサイズと明るいテーマと暗いテーマを確認してください。コンテンツが特定のサイズで切り取られる場合は、まずフォント サイズまたは間隔を小さくしてから観察します。レイアウトの問題を隠すために大量の x/y オフセットを使用しないでください。
エラーが発生した場合は元の状態に戻し、ログの行番号を基に確認してください。プレビューすると、右上隅は ログ になります。プレビューを閉じて編集状態に戻ると、右上隅が 保存 に戻ります。プレビューが成功したということは、この一連のシミュレーション入力を表示できることを意味するだけであり、実際のデータは次のステップで確認する必要があります。
4. 保存してダッシュボードに追加
プレビューを閉じ、保存 をクリックし、エディタを終了して、機器ライブラリで「My Speed」を見つけます。 その他(…)→ ダッシュボードを編集 を再度開き、+ をクリックして追加し、最後に 完了 をクリックします。
この時点で、カードが実際の速度を読み取るように変わります。検証のためにそれと内蔵速度メーターを同じページに置くことができます。同じ基本速度フィールドを使用する場合、値は対応している必要があります。小数保持方法が異なるため、表示が若干異なる場合があります。
| 実際の表示 | 次のステップ |
|---|---|
0 と速度単位 |
ゼロ速度が達成されており、不足しているテスト ロジックを修正する必要はありません。 |
— |
設定に戻って速度が選択されていることを確認し、測位許可と現在の信号を確認します。 |
| ライブラリにはメーターがありますが、ページにはありません。 | 「ダッシュボードの編集 → 追加」ステップはまだ完了していません。 |
| 番号が付いているのはプレビューのみです | プレビューはシミュレートされた入力のものです。実際のデータ ソースの確認に進みます。 |
この時点で、最初の機器が完成します。次の記事では、「速度の取得」を「独自の OBD パラメータの取得」に置き換えます。レイアウトと表示コードは引き続き使用できます。