Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rust製GUIライブラリ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuya Kanai
October 20, 2023
0
380
Rust製GUIライブラリ
Yuya Kanai
October 20, 2023
Tweet
Share
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
440
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
First, design no harm
axbom
PRO
2
1.1k
Building AI with AI
inesmontani
PRO
1
690
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Prompt Engineering for Job Search
mfonobong
0
160
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Making Projects Easy
brettharned
120
6.6k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Faster Mobile Websites
deanohume
310
31k
Transcript
Rust製GUIライブラリ
動機 衝撃の音楽アプリとの出会い2013 Sunvox / Sundog engine (2008 ~) https://warmplace.ru/soft/sunvox/ React
native (2015 ~ ) Flutter (2017 ~ )
挑戦 2017 OpenGL & C++ で試みる + C++ 難しい +
メモリ管理 + 多機能すぎる + ビルド設定・リンカー難しい + パッケージマネージャが無い + Mac / iOSのOpenGL非推奨化
挑戦 2017 OpenGL & C++ で試みる + C++ 難しい +
メモリ管理 + 多機能すぎる + ビルド設定・リンカー難しい + パッケージマネージャが無い + Mac / iOSのOpenGL非推奨化
挑戦 2017 OpenGL & C++ で試みる + C++ 難しい +
メモリ管理 + 多機能すぎる + ビルド設定・リンカー難しい + パッケージマネージャが無い + Mac / iOSのOpenGL非推奨化
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
GUIライブラリ思想 ~デザインをDRYに~ デザイナーが書いたSVGをそのままGitにコミット エンジニアなしで単純な見た目上の更新は出来るようにする
DEMO1: 人生ゲーム 150行 rust + Figma SVG iOS / Android
/ Web / MacOSで動作確認済み
DEMO1: 人生ゲーム 150行 rust + Figma SVG iOS / Android
/ Web / MacOSで動作確認済み
DEMO2: レイアウトエンジン Rust 30行 Figma互換レイアウト
アーキテクチャ Guppies Salvage * Rustは海が テーマの言語なので パッケージ名は 海風 SVG mono-repo
library二つある
Guppies(グッピー) + GPU描画 + 三角形とシェーダーを受け取り描画する + Cross-Platform: iOS / Android
/ web / Mac / windows … Guppies Salvage SVG
Salvage(サルベージ) + SVG描画 + SVGを移動できる + SVGのテキストを更新 Guppies Salvage SVG
Guppies(グッピー): ライブラリ - Winit : イベントループ実行 - Wgpu : GPU描画
- Cargo-mobile : Xcode / Android studio 初期化 winit wgpu cargo-mobile
Salvage(salvage):ライブラリ - Usvg : 一般的なsvgを単純なベジェ曲線や直線のpathのみのSVGに変換 - Lyon : ベジェ曲線等を三角形に変更(tesselation) -
Glam: 行列の演算 (svgの移動は変換行列で管理) <polygon /> <path /> usvg lyon glam
+ PRでdevlogみたいな独り言書くの楽しかった https://github.com/Cactice/salvage-guppies/pull/29 + Rustのおかげで高校時代の夢を叶えられた C++より何倍も進捗を出せた + ゴミライブラリ作るの楽しいな 感想