[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SHOEISHA iD

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

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

デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説

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

 本連載では、デスクトップアプリを開発しながら、「Rust」と「Tauri 2.0」について学んでいきます。連載第1回は、まずデスクトップアプリの開発に必要なRustと、Tauri 2.0の基本情報と、環境整備の仕方について解説します。

はじめに

 本連載では次の図のようなお絵描きのデスクトップアプリを作りますが、よくあるPhotoshop風ではなく、Illustrator風のベジェ曲線のお絵描きアプリです。最初だけ1回クリック、それ以降はクリック&ドラッグ、クリック&ドラッグ・・・を繰り返すことで、1本に繋がった曲線が一筆書きで描けます。

お絵描きアプリ「bezier」
お絵描きアプリ「bezier」

 完成したお絵描きアプリは、こちらで公開しています。Webブラウザ版では作成したデータを保存できませんが、デスクトップアプリ版ではRust側からデータの読み書きをサポートしています。

 このお絵描きアプリは「HTML5+CSS+JavaScript」で構成されたWebページでできています。さらに、Tauri 2.0を使って、Webページをデスクトップアプリとして構築しています。Tauri 2.0は、Webページをインターフェースとして使い、それをRustでコーディングしてデスクトップアプリとして構築します。

連載の流れ

 この連載は、以下のように進んで行きます。

連載の進行
回数 内容
第1回 「Rust」「Tauri 2.0」の基礎知識と環境整備
第2回 Rustの基本文法
第3回 「HTML5+CSS+JavaScript」の知っておくべき文法
第4回 黒色のベジェ曲線を一筆書きで描く方法
第5回 アンドゥとリドゥの実装
第6回 メニュー機能、ファイルの読み込み処理の実装
第7回 メニュー機能で保存メニューの実装

 では、Rustの基本情報から学んでいきましょう。

「Rust」の基本情報

 「Rust」は、WindowsでもmacOSでもLinuxでもクロスプラットフォームに対応した高速でスマートなプログラミング言語です。「Rust(ラスト)」とは、錆という意味でロゴマークもそこからデザインされたのでしょう。

「Rust」のロゴ
「Rust」のロゴ

Rustのメモリの管理の仕方、「所有権」とは?

 Rustはメモリの管理の仕方がスマートな、とても優れたプログラミング言語です。

 「所有権」という独特な概念でメモリを管理して、ビルド時にメモリリークが起こる可能性を排除するので、極めてメモリリークが起こりにくくなっています。例えば、次の図のように「スコープ」内だけ変数にメモリを所有する権利を与えて「スコープ」を抜けるときには、「所有権」を持つ変数のメモリを解放します。

「Rust」の「所有権」の仕組み
「Rust」の「所有権」の仕組み

Rustの追加機能、「クレート」とは?

 他にも、Rustで書かれた「クレート」という追加機能で機能を拡張できるため、車輪の再発明をしなくても済みます。クレートはPythonでいうパッケージや、モジュールに当たる拡張機能のことです。さらにPythonと違ってインタプリタ言語ではなくコンパイル言語なので、処理が高速です。

「Tauri 2.0」の基本情報

 「Tauri 2.0」はちょうどElectronのRust版です。

 Electronとは、WebページをChromium(以前のGoogle ChromeのHTMLレンダリングエンジン)と、JavaScriptで作られたNode.jsでデスクトップアプリを構築する技術です。次の図のように、コードエディタ「Visual Studio Code」もElectronで開発されていますが、今後はElectronよりさらに優れたTauri 2.0がメジャーになっていくと思われます。

「Visual Studio Code」のUI
「Visual Studio Code」のUI

 Tauri 2.0もRustと同様に、Windowsや、macOS、Linuxにもクロスプラットフォームに対応したフレームワークであり、さらにスマートフォンのiOSや、iPadOS、Androidアプリも作れます。本連載ではパソコン向けのデスクトップアプリ開発だけを解説します。

Tauri 2.0の仕組み

 Tauri 2.0は、「HTML5+CSS+JavaScript」のWebページをデスクトップアプリとして作れるRustのクレートで、Tauriバージョン1系とは互換性がありません。

 Tauri 1.0で作ったプロジェクトは、Tauri 2.0でプロジェクトを作り直して移植する必要があります。本連載では移植ではなく、最初からTauri 2.0のプロジェクトから作り始めます。

 簡単にTauri 2.0を説明すると、次の図のような仕組みになっています。

「Tauri 2.0」の仕組み
「Tauri 2.0」の仕組み

Tauri 2.0の役割とは?

 Tauri 2.0は、次の図のようにソフトウェア設計モデルでいうMVCに似ています。

「Tauri 2.0」のソフトウェア設計モデルは「MVC」に近い
「Tauri 2.0」のソフトウェア設計モデルは「MVC」に近い

 MVCは、ModelやView、Controllerで構成された設計モデルです。ViewがUIなどの見た目を扱い、Modelが中身の処理を行い、Controllerがユーザーからの指示を受けて、ViewとModelを繋ぎます。

 まさにTauri 2.0は、ViewがフロントエンドのWebページである「HTML5+CSS+JavaScript」のUIに当たり、ModelがバックエンドのRustに当たり、Controllerがフロントエンドとバックエンドを繋ぐブリッジ(JavaScriptとRustで渡す橋)に当たります。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
「Rust」の環境整備

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

この記事の著者

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

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

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

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/20539 2024/12/11 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング