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
事業課題から技術的負債に向き合う
sansantech
PRO
1
340
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
160
Screen Lens - 今見てる画面を翻訳する
komagata
0
260
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
800
enechainの内製セルフサービスプラットフォーム
hiyosi
0
160
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
170
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
120
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
500
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
4
1.2k
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
120
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
210
20260912_スクラムにジェネラリストは必要か
ryugen04
0
380
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
530
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Writing Fast Ruby
sferik
630
63k
Rails Girls Zürich Keynote
gr2m
96
14k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
For a Future-Friendly Web
brad_frost
183
10k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
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で開発してた人なら敷居は低い インターネット上の情報量などに不安もあるが、開発は活発
次に作るクロスプラットフォームアプリの選択肢としていかがでしょう?