SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

フロントエンジニアのためのTauri 2.0ではじめるRustプログラミング

HTML5+CSS+JavaScriptでWebアプリのプロトタイプを完成させよう!

フロントエンジニアのための「Tauri 2.0」ではじめるRustプログラミング 第4回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載では、デスクトップアプリを開発しながら、「Rust」と「Tauri 2.0」について学んでいきます。連載第4回は、HTML5+CSS+JavaScriptだけでプログラミングして、ベジェ曲線を使ったお絵描きだけのデスクトップアプリを作る解説をします。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 前回はWebページを作るのに使うHTML5+CSS+JavaScriptの文法を解説しました。今回から、お絵描きアプリを作り始めます。Rustでデスクトップアプリは作りますが、まだバックエンドのRustのコードは書き換えません。フロントエンドのWebページだけ作ります。

 まずHTML5とCSSだけでWebページの見た目を作り、JavaScriptをプログラミングして<canvas>タグに点やベジェ曲線を描きます。もう今回だけで一筆書きのお絵描きアプリのプロトタイプは完成します。シンプルにすればとても簡単にお絵描きアプリなんて作れてしまうんですね。

Webページの作成

 シンプルなWebページを作るなら、htmlファイルとcssファイルだけで事足ります。まずはHTML5+CSSだけでWebページを作ってみましょう。

Webページだけ作ってみる
Webページだけ作ってみる

HTMLの記述

 第1回の要領でTauri 2.0プロジェクト「bezier」を次のコマンドで新規作成し、カレントディレクトリにします。次のサンプルコードのように「src」→「index.html」ファイルを書き換えます。

Tauri 2.0プロジェクトの新規作成
$ cargo create-tauri-app bezier
サンプルコード「src」→「index.html」
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="styles.css" />
    <title>Bezier</title>
    <script type="module" src="./main.js" defer></script>
  </head>

  <body>
    <div><canvas width="760" height="500"></canvas></div>
    <div>クリック&ドラッグ・・・を繰り返す。マウスホイールでアンドゥやリドゥ。<a href="#" id="sample">Sample</a>を見る。</div>
  </body>
</html>

サンプルコードの解説

 <script type="module" src="./main.js" defer></script>のtype="module"で「ESモジュール」にJavaScriptを使います。ESモジュールとは、JavaScriptの新世代の記法みたいなものです。

 <div>タグで囲んだ2D図形を描画する<canvas>タグと、説明を書いた<div>タグを配置します。

CSSの記述

 次のサンプルコードのように装飾を施すスタイルシートを「src」→「styles.css」ファイルで実装します。第3回のCSSの文法の時に丸々1ページ使って解説しましたが、その時の方がコード量が多いですね。

 念のために今回も解説しますが、次のコマンドを実行したらTauri 2.0プロジェクトをデバッグビルド&実行できます。

Tauri 2.0プロジェクトのデバッグビルド&実行
$ cargo-tauri dev
サンプルコード「src」→「styles.css」
html,
body {
  margin: 0;
  padding: 0;
  font-family:"メイリオ","Hiragino Kaku Gothic Pro";
  background-color: #ccc;
}
canvas {
  background-color: #fff;
}

サンプルコードの解説

 <html>タグと<body>タグの余白を無くし、フォントを"メイリオ"(Windows向け)か、なければ"Hiragino Kaku Gothic Pro"(macOS向け)にし、背景色をライトグレーにします。

 <canvas>タグの背景色を白色にします。

コラム「挿絵について」

 挿絵のダジャレは、できるだけこの連載の内容にマッチしたものを考えようとはしているのですが、なかなか内容にピッタリなダジャレは思いつきません。気持ちは若いつもりでもおやじギャグを思いつくのはやっぱり若くない証拠ですね……。

 挿絵はMetasequoiaとBlenderでモデリングして、模様のテクスチャにFireworksで2DCGを描き、Blenderでポーズをとってレンダリングしています。モデリングとは、3Dのオブジェクトを作成したり編集したりする作業のことで、レンダリングとは3Dデータをもとに3D計算して3DCGを描くことです。

次のページ
1個の矩形や1本のベジェ曲線を描く

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
フロントエンジニアのためのTauri 2.0ではじめるRustプログラミング連載記事一覧

もっと読む

この記事の著者

大西 武(オオニシ タケシ)

 1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書などを30冊以上商業出版する作家。ドコモでグランプリなどコンテストに20回以上入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」がTVで約10回出題。プロフィールサイト:https://profile.vixar.jp

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/20767 2025/02/12 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング