Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Avalonia UI を試す
Search
GtTmy
May 15, 2019
Technology
1.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Avalonia UI を試す
C#でマルチプラットフォームアプリケーション開発ができるAvaloniaUIを試してみました。お題として、画像ビューアーを作っています。
GtTmy
May 15, 2019
Other Decks in Technology
See All in Technology
なぜJMBC(Japan MCP Business Community)? MCPってどう活用できるの?
cdataj
0
100
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
520
2026-09-09 【sigma_ucj#1】Sigma を IaC 管理したい! / IaC for Sigma
civitaspo
0
120
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
220
GoCon2026 - Open Source, Open World
sanposhiho
4
3.4k
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
660
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
210
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
110
ASTを使って影響範囲を特定する
nealle
0
180
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
190
事業課題から技術的負債に向き合う
sansantech
PRO
1
220
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
280
Featured
See All Featured
Crafting Experiences
bethany
1
320
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Technical Leadership for Architectural Decision Making
baasie
3
560
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Music & Morning Musume
bryan
47
7.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
KATA
mclloyd
PRO
35
15k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
A Soul's Torment
seathinner
7
3.6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Transcript
C#で マルチプラットフォームGUI アプリ開発 GtTmy (https://github.com/GtTmy)
マルチプラットフォームのGUIアプリ... だけじゃない!!!
AvaloniaUI http://avaloniaui.net/ .Net Framework, .Net Core, Monoで動作するGUIフレームワーク
.Net Framework ... Windows専用 .Net Core ... Windows/Mac/Linux対応 Mono ... .Net Framework のサブセット、Windows、Mac、Linux対応 WPF(.Net Frameworkで一般的なGUIフレームワーク)に近いAPI 今回は.Net Coreを用いて、本当にマルチプラットフォームか確認します 画像ビューアーを作ってみます 本発表を行っているツールが成果物です!!
環境 開発環境 Windows 10 Home Visual Studio
2019 Community Edition .Net Core 2.1 検証環境 Ubuntu 18.04 LTS on VirtualBox .Net Core 2.2
手順1 Visual studio拡張のインストール 公式を参照 -> http://avaloniaui.net/docs/quickstart/create-new-project
手順2 プロジェクト作成 • プロジェクトテンプレートから 「Avalonia Application」 を選択
手順3 各種ライブラリを追加 とりあえずWPF(従来のWindowsアプリ開発)でのアプリ開発で 定番の下記2ライブラリを入れてみる Prism ... MVVMアプリケーション開発支援
ReactiveProperty ... リアクティブプログラミング支援 問題なくビルドできた!
手順4 GUIを組み立てる • 一般的な WPFアプリ 開発と同じ
手順5 ロジックを書く 普通のC#アプリ開発と同様 特定のフォルダ内の画像を全列挙する Windowsのエクスプローラーの名前順と同じ順番で画像を読み込むために、自然順ソートを行う ライブラリ(NaturalSort.Extension) を利用
余談ですが、エクスプローラーのファイルの並びを自分で再現しようとすると超面倒です
手順6 Windowsでビルド & 実行
None
手順6 Ubuntuで実行 ソースコードを丸ごと移動 プロジェクトファイルのあるディレクトリで "dotnet run –framework=netcoreapp2.1" を実行
None
手順7 フォント周りが怪しいので。。。 フォントを直接指定
None
メリットは? 1.C#で書ける 2.従来のWPFアプリ開発とほぼ同じ 3. ランタイムがPCにインストールされていれば、それ以外のバイナリサイ ズは小さい 今回のデモアプリは109KB! 4. 既存の.Net資産が流用しやすい
.Net Frameworkを対象としたコードは若干の変更が必要だが、軽微
デメリットは? 1.V1まで到達してない ただし、開発は活発 2. Electron、Javaの方が先行事例が多い 3. 大規模アプリ開発の事例は...? 一応IDEを作ってる人たちがいます -> https://github.com/VitalElement/AvalonStudio
まとめ C#でもマルチプラットフォーム開発できます 画像ビューアーを作ってみた https://github.com/GtTmy/AvaloniaPictureViewer WPFで開発してた人なら敷居は低い インターネット上の情報量などに不安もあるが、開発は活発
次に作るクロスプラットフォームアプリの選択肢としていかがでしょう?