Makepad コア概念
レイアウト、ウィジェット、イベント、スタイリングを含むMakepad UI開発の基本的な構成要素。
クイックナビゲーション
| トピック | 説明 |
|---|---|
| レイアウトシステム | フロー、サイズ、間隔、配置 |
| ウィジェット | 一般的なウィジェット、カスタムウィジェット作成 |
| イベント | イベント処理、ヒットテスト、アクション |
| スタイリング | フォント、テキストスタイル、SVGアイコン |
概要
Makepadは次を使用するRustベースのクロスプラットフォームUIフレームワークです:
- 宣言的UIレイアウトのための
live_design!マクロ #[derive(Live, Widget)]によるウィジェット合成- 型付きActionsを使用したイベント駆動アーキテクチャ
- GPUアクセラレーテッドレンダリング
プロジェクト構造
my_app/
├── src/
│ ├── app.rs # メインアプリエントリ、イベントルーティング
│ ├── lib.rs # モジュール宣言、live_register
│ ├── home/ # 機能モジュール
│ │ ├── mod.rs
│ │ └── home_screen.rs
│ └── shared/ # 再利用可能なウィジェット
│ ├── mod.rs
│ ├── styles.rs # テーマ、色
│ └── widgets.rs
└── resources/ # 画像、フォント
live_design! マクロ
Makepad UI定義のコア:
live_design! {
use link::theme::*;
use link::shaders::*;
use link::widgets::*;
App = {{App}} {
ui: <Root> {
main_window = <Window> {
body = <View> {
flow: Down,
spacing: 10,
padding: 20,
my_button = <Button> {
text: "クリック"
draw_bg: { color: #4A90D9 }
}
<Label> { text: "こんにちは Makepad" }
}
}
}
}
}
DSL 構文リファレンス
| 構文 | 目的 | 例 |
|---|---|---|
<Widget> | ウィジェットのインスタンス化 | <Button> { text: "OK" } |
name = <Widget> | 名前付き参照 | my_btn = <Button> {} |
{{StructName}} | Rust構造体へのリンク | App = {{App}} {} |
flow: Down/Right | レイアウト方向 | flow: Down |
width/height | サイズ | width: Fill, height: Fit |
padding/margin | 間隔 | padding: {left: 10, top: 5} |
サイズ値
| 値 | 意味 |
|---|---|
Fill | 利用可能なスペースを埋める |
Fit | コンテンツに合わせる |
Fixed(100.0) | ピクセル単位の固定サイズ |
All | 全方向に埋める |
イベント処理
fn handle_event(&mut self, cx: &mut Cx, event: &Event, scope: &mut Scope) {
match event.hits(cx, self.view.area()) {
Hit::FingerDown(_fe) => {
// クリックを処理
}
_ => {}
}
}
リソース
- Makepad drawソース
- Robrix - 実用例
コメント
まだコメントがありません。最初のコメントを投稿してください!
関連ツール
Makepad 入門ガイド
makepad.nl
Makepad開発のエントリーポイント。プロジェクトのセットアップ、構造、Rustを使用したクロスプラットフォームUIアプリケーション構築のための利用可能なスキルを学びます。
Makepad コンポーネントギャラリー
makepad.nl
すべてのMakepad組み込みウィジェットの使用例付きクイックリファレンス。ボタン、入力、スライダー、チェックボックス、ドロップダウン、ラベル、アイコン、仮想リストをカバー。
Makepad デプロイメント
makepad.nl
デスクトップ(Linux、Windows、macOS)、モバイル(Android、iOS)、Web(Wasm)プラットフォームでMakepadアプリケーションを配布用にパッケージ化。完全なビルドとデプロイガイド。
関連インサイト
AI アシスタントをチャットボックスに押し込むな:Clawdbot は戦場を間違えた
Clawdbot は便利だが、Slack や Discord に入れて操作するのは最初から間違った設計だ。チャットツールはタスク操作のためのものではなく、AI もおしゃべりのためではない。
ローコードプラットフォームの黄昏:なぜClaude Agent SDKがDifyを歴史にするのか
大規模言語モデルの第一原理から、なぜClaude Agent SDKがDifyを置き換えるのかを深く分析。自然言語でプロセスを記述することが人間の原始的な行動パターンにより合致している理由、そしてなぜこれがAI時代の必然的な選択なのかを探る。

Anthropic Subagent: マルチエージェント時代のアーキテクチャ革命
Anthropicのマルチエージェントアーキテクチャ設計を徹底解説。Subagentによるコンテキストウィンドウ制限の突破、90%のパフォーマンス向上、Claude Codeでの実際の応用について学びます。