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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
GtTmy
May 15, 2019
Technology
1.9k
1
Share
Avalonia UI を試す
C#でマルチプラットフォームアプリケーション開発ができるAvaloniaUIを試してみました。お題として、画像ビューアーを作っています。
GtTmy
May 15, 2019
Other Decks in Technology
See All in Technology
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
180
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
420
I ran an automated simulation of fake news spread using OpenClaw.
zzzzico
1
770
JSTQB Expert Levelシラバス「テストマネジメント」日本語版のご紹介
ymty
0
120
AIにより大幅に強化された AWS Transform Customを触ってみる
0air
0
290
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
320
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
260
The essence of decision-making lies in primary data
kaminashi
0
240
Even G2 クイックスタートガイド(日本語版)
vrshinobi1
0
190
機能・非機能の学びを一つに!Agent Skillsで月間レポート作成始めてみた / Unifying Bug & Infra Insights — Building Monthly Quality Reports with Agent Skills
bun913
2
710
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
マルチモーダル非構造データとの闘い
shibuiwilliam
1
160
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Fireside Chat
paigeccino
42
3.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
95
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
320
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Balancing Empowerment & Direction
lara
5
1k
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で開発してた人なら敷居は低い インターネット上の情報量などに不安もあるが、開発は活発
次に作るクロスプラットフォームアプリの選択肢としていかがでしょう?