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
Avalonia UI を試す
Search
GtTmy
May 15, 2019
Technology
1
1.7k
Avalonia UI を試す
C#でマルチプラットフォームアプリケーション開発ができるAvaloniaUIを試してみました。お題として、画像ビューアーを作っています。
GtTmy
May 15, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
38k
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
960
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
160
マルチテナント+マルチプロダクト SaaS への AI Agent の組み込み方
kworkdev
PRO
2
360
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
320
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
190
Tenstorrent 開発者プログラム
tenstorrent_japan
0
310
AI技術トレンド勉強会 #1MCPの基礎と実務での応用
nisei_k
1
220
kotlin-lsp を Emacs で使えるようにしてみた / use kotlin-lsp in Emacs
nabeo
0
160
Agentic DevOps時代の生存戦略
kkamegawa
0
460
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
280
自分を理解するAI時代の準備 〜マイプロフィールMCPの実装〜
edo_m18
0
110
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
Thoughts on Productivity
jonyablonski
69
4.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Facilitating Awesome Meetings
lara
54
6.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Making Projects Easy
brettharned
116
6.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Being A Developer After 40
akosma
90
590k
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で開発してた人なら敷居は低い インターネット上の情報量などに不安もあるが、開発は活発
次に作るクロスプラットフォームアプリの選択肢としていかがでしょう?