気ままにやっていくプログラミングとかブログ

中学1年生が気ままにプログラムのことを中心に書いていくブログです。

.NET 6のプレビュー版が公開されたらしい

ふとAndroidを見ていると、

どうやら.NET 6のプレビュー版が公開されたらしいことがわかりました。

 

試してみようとも思ったけど、

とりあえずそれは正式なリリースが行われてからということで、

.NET 6の今の所の情報をまとめていきたいと思います。

 


 1. .NET 6をざっくり

 2. 破壊的変更点

 3. .NET MAUI

 4. 感じたこと


 

 1. .NET 6をざっくり

.NET 5の後継。

 

.NET Coreと.NET Frameworkを統合した環境での、

初めてのLTS(長期サポート版)らしい。

 

ついでにXamarinも統合して、

AndroidiOSも対応可能という大盤振る舞い。

 

更に、

.NET初めてとなる「クロスプラットフォーム対応のUIキット」である、

「.NET Multi-platgorm App UI」(MAUIという)が実装されている。

 

これで、

C#でのクロスプラットフォーム開発が進むこと間違いなし。

 

 2.破壊的変更点

公式サイトより

docs.microsoft.com

 

ASP .NET Core

  • null許容型の注釈変更
  • 非推奨のAPIと削除されたAPI
  • BlazorのRequestImageFileAsyncのmaxWithがmaxWidthに(スペルミスらしい)
  • BlazorのWebEventDescriptorのEventArgsTypeプロパティがEventNameに変更
  • Kestrelログメッセージ属性が一部変更
  • HTTPS リダイレクト ミドルウェアが曖昧なHTTPS ポートで例外をスローするように
  • BlazorのRazorEngine型に関連する型が非推奨に

 

.NET Core ライブラリ

  • null許容型の注釈変更
  • Stream型から派生した一部のパラメーター名の変更
  • 標準の数値書式の解析制度アップ

 

Windowsフォーム

  • TableLayoutSettingsプロパティで正しくない値を割り当てたとき例外をスローする
  • ツールヒントテキストの最大文字数が63文字から127文字になった
  • 一部のAPIでnullを当てはめたときに例外をスローするように
  • TreeViewのノードがすでに割り当てられているときに他のものに割り当てようとしたときに例外をスロー

 

 3. .NET MAUI

自分が使いたいからっていう理由でまとめる。

 

参考

github.com

 

利点

 

欠点

  • UWPとかWPFとかと書き方が違う
  • 多分最初の方は情報少ない

 

 4. 感じたこと

.NET Coreがマルチプラットフォーム対応だと言われてましたが、

ようやくGUIまでサポートされました。

 

これによりC#での開発がより楽になりそうです。

 

早くプレビュー版終わって安定版でないかな...

 

では。

Windows10風のCSSを作ってみた

こんにちは。

 

Kitachisukuです。

 

今回はHTMLをWin10風にするCSSを作りました。

 

なのでそれを紹介します。

 


 1.概要

 2.対応してるもの

3.使い方

4.実行例

5.その他


 1.概要

github.com

このCSSを使うと、

HTMLをWindowsのような表示にできます。

 

CSSオンリーなので、

簡単に使うことができます。

 

2.対応してるもの

今のところ、

  • Button
  • TextArea
  • input(text,color,password)

のみです。

 

Chrome,FireFox,Microsoft Edge,Electronで正常、

Internet Explolerでも一応確認しております。

 

3.使い方

git clone https://github.com/Kitachisuku/Win10.CSS

 でレポジトリのクローンを作成して、

そのなかの「win10.css」をあなたのプロジェクトにコピーして、

<link>を使ってCSSと結び付ければ終わりです。

 

これを使うと勝手にボタンとかは見た目が変わります。

 

MSゴシックを使うには、

bodyタグに以下のclassを指定すればいいです。

 

class = "mspfont"...MS Pゴシック

class = "msfont"...MS ゴシック

 

そんな感じです。

 

4.実行例

以下Electronで実行してみた例です。

f:id:Kitachisuku:20210323191429p:plain


Windowsっぽくなってます。

 

5.その他

ライセンスはMIT Licenseです。

 

要するにフリーです。

 

では。

GtkかQtかwxWidgetsか

こんにちは。

Kitachisukuです。

 

皆さんはGUIツールキット何を利用していますか?

 

少し前までは自分はGtk派だったんですが、

とあるややこしい部分があり、

結果的にはwxWidgetsに移行することになりました。

 

今回はGUIツールキットを求めて探す人に参考になればと、

それらをまとめたものを書いていきます。

 

※ちなみにUIデザイナが存在するものだけを載せています

 

広告

 


 1.GTK

2.Qt

3.wxWidgets


 

 1.GTK

www.gtk.org

 

UIデザイナの「Glade」

glade.gnome.org

 

GTKはGimpの開発に使われたGUIツールキットです。

 

「テーマ」というものがあり、

他のGUIツールキットより高いデザインの拡張性を持っており、

基本的に並べていく方式でデザインしていくので、

センスがなくて絶対指定だとうまくできない自分みたいな人たちに優しいGUIツールキットとなっております。

 

また、

もともとはC言語用なのですが、

C++Python、Rustなど、

様々な言語へのバインディングがあります。

 

これの利点は以下です。

  • フリー
  • レイアウトがかんたん
  • 好きなデザインを使うことができる
  • 自分が使っている言語で使える可能性大

 

逆に欠点は以下です。

  • インストールが超★面★倒
  • 依存ライブラリとかが結構ある
  • ライセンスはLGPLなんだけど、依存ライブラリとかの関係でライセンスがよくわからない
  • ネイティブなUIではない

 

自分がやめた理由は「ライセンス」です。

 

2.Qt

www.qt.io

 

GUIデザイナは開発ツールに付属

 

Qtはデザインが美しいGUIツールキットです。

 

QtにはIDEが付属しており、

そのIDEで開発を行うことができます。

 

開発は企業が行ってるので、

サポート的にも安心です。

 

配置は絶対指定...かな?

 

使ったことないのでよくわかりません。

 

C++特化なんですが、

一応Pythonなどへのバインディングが存在します。

 

これの利点は以下です。

  • 美しいデザインが作れる
  • 企業が作ってるという安心感
  • C++人にはいい
  • IDEにUIデザイナが付属(つまりインストールがかんたん)

 

逆に欠点は以下です。

  • 有料版、無料版があり、無料版はライセンスがGPLである ←ココ重要
  • インストールサイズが超デカイ
  • 依存ライブラリ多し
  • ネイティブなUIではない
  • GTKのようにテーマがない

 

ここですよここ。

 

ここさえなければこれ使ってた。

 

これライセンスがGPLなんですよ!!

 

つまりこれで作ったものは全部GPLライセンスで配布しなければいけない、と。

 

やってられるかァァァァァァァァァァッ"。

 

3.wxWidgets

www.wxwidgets.org

 

UIデザイナ

Code::BlocksプラグインのwxSmith

wiki.codeblocks.org

wxFormBuilder など

github.com

 

「こんなのじゃまともにアプリが作れないじゃないか!!!」

 

んなあなたにおすすめ、(広告風)

wxWidgets

 

C++GUIアプリが作れるものです。

 

wxWidgetsは可能な限りそのOSのネイティブのUIを使います。

 

フリーでかつUIビルダーもあってかつ、

ライセンスはLGPLです。

 

さらに依存ライブラリもなし!!!!!!

 

いいやん!!!!!

 

利点

  • ネイティブなUIを使う
  • ライセンスは大丈夫。どんなライセンスでも配布できる。
  • 依存ライブラリなし!!!!

 

いいじゃないですか!!

 

逆に欠点は、

  • GTKのようにテーマがない
  • C++特化

 

このぐらいです。

 

つまり結論として、

wxWidgetsはいいぞ、ということです。

 

では。

 

Chromebookの可能性について

こんにちは。

Kitachisukuです。

 

結構前に、

うちの学校にChromebookが支給されて、

今までは「ただのWebを見る専用の機械」とか思ってたんですが、

意外と使える!ということがわかり、

今回はWindowsMacbookなどと比較してみて見ようと思います。

 

広告


ASUS エイスース C223NA-GJ0018 ノートパソコン Chromebook (クロームブック) C223NA グレー [11.6型 /intel Celeron /eMMC:32GB /メモリ:4GB /2020年6月モデル][11.6インチ 新品]

ASUS エイスース Chromebook クロームブックノートパソコン C434TA-AI0095 シルバー [14.0型 /eMMC:32GB /メモリ:4GB][ノートパソコン 14インチ 新品 C434TAAI0095]

 


 1.Chromebookとは

2.いいところは?

3.LinuxAndroidのアプリが動く?

4.Macbookと比べると?

5.まとめ


 

 1.Chromebookとは

ChromebookとはGoogleが作成したChrome OSを搭載したコンピューターのことです。

 

Androidと同じくGoogleアカウントとの連携で、

Googleのサービスを最大限に使用することができます。

 

例えばGoogleスプレッドシートなどのGoogleオフィスや、

教育用のClassroomなど、

様々なWebアプリを使うことができます。

 

2.いいところは?

まず1番は値段です。

 

安いやつで2万〜3万で買えちゃいます。

 

次に安全性です。

 

大抵のウイルスはWindowsをターゲットとしているため、

大抵のウイルスも大丈夫ですし、

基本的にWebアプリを動かすことが目的なので、

ウイルス自体が動くこともないと思います。

 

そして持ち運びやすさです。

 

ノートPCがあるのでかんたんに持ち運べます。

 

更にとても大きいのが、

まだbetaではありますが、

LinuxAndroidのアプリが動かせるというところです。

 

これについては↓で解説します。

 

3.LinuxAndroidのアプリが動く?

ChromebookではLinuxAndroidのアプリが動いちゃいます。

 

これ、

何がいいのかというと、

  • Androidのゲームを大画面でプレイできる
  • Androidの業務用ソフト(Officeなど)を動かせる
  • Play Storeからインストールするので今までに買ったアプリも動かせる

などがAndroidのアプリが動かせるという利点と、

というLinuxのアプリが動かせるという利点があります。

 

まだ多少動かないところもあるようですが、

まあそれはぼちぼち解決していくでしょう。

 

4.Macbookと比べると?

  Chromebook Macbook
値段(安いもの)  2万~3万 8万~10万
できること  Linux&Android&Webアプリの動作 すべてのMacアプリケーション&Webあぷりの動作+iPhoneアプリも動くようになるらしい
CPU 色々 Intel or M1
クラウドとの連携 めっちゃできる できる
オフライン できる めっちゃできる

 

当たり前ですがChromebookはWeb重視、

Macはデスクトップアプリ重視です。

 

5.まとめ

Chromebookは安い、色々できる、

セキュリティいいPCです。

 

本音言うとラズパイよりこっちのが良かったな...

 

では。

作ったアプリを配布する/売る場所

こんにちは。

Kitachisukuです。

 

今自分はHTMLのエディターを作ってるんですが、(始めたばっかりです)

それを売ってみたいなあ、と思い、

今回は暇なときに調べた方法をまとめていく感じです。

 

広告

 

 


 1.モバイル向けアプリ

2.PC向けアプリ

3.ウェブで公開

4.まとめ


 

 1.モバイル向けアプリ

今回はAndroidiPhoneで考えてみます。

 

3の方法も使えなくはないんですが、

まあ普通に考えてダウンロードは限りなく0になるでしょう。

 

あとiPhoneはできませんし。

 

あともう一つ気をつけてほしいのが、

このどちらも18歳未満はアプリをストアに出せないということです。

頑張れ、くじけるな未成年!自分もだけど!

 Android向けのアプリをリリースできるストアです。

 

Play Consoleに登録するとアプリを公開することができるようになります。(審査はあります)

 

登録料は$25で、

一回きりです。

 

儲けのうち30%がGoogleの取り分です。

 

iPhone/iPad/Macintosh向けのアプリをリリースすることができるストアです。

 

Apple Developerに登録するとアプリを公開することができるようになります。(審査はあります)

 

登録料は$99が年間、

Entrerpriseは$299が年間です。

 

前暦年の儲けが$100万未満の企業は15%、

それ以外は30%がAppleの取り分です。

 

総評

 

スマホは閉じられたプラットフォームなので、

配布できるところが限られています。

 

登録料も必要ですし、

儲けの一部も持ってかれます。

 

あと未成年の参加は無理ですし。

 

結構制約はありますがやはりスマホアプリの配布はこれらです。

 

2.PC向けアプリ

Windows/XBox/Windows Phoneなど向けのアプリを配布できます。

 

exeではなくUWPという形式で配布しなければならないんですが、

DACもありますし、

既存のアプリを配布するのもできます。

 

登録料は個人は$19、企業は$99です。

 

MSの取り分は15%です。

同上。

 

総評

 

なんかめっちゃMSいいですね。

 

取り分も比較的少ないですし。

 

普通に方法として考えてもいいと思います。

 

あと多分学生も登録可能です。

 

どのくらいの年齢かは知らないんですがね...

 

あとLinuxはよくわかりませんでした。

 

GNUプロジェクトに入れてもらうことはできるっぽいし、

aptやrpmに公開もできるんだろうけど、

わかりませんでした。

 

3.ウェブで公開

ウェブのストアは考えないでおきます。

 

で方法なんですが、

Stripeというものを使って販売システムを作るのがいいっぽいです。

 

 提携カードの種類も多くて、

Stripe側の取り分は3.6%です。

 

自分で全部やるので大変ですが、

あまり制約設けないですみます。

 

あとLinux向けアプリはやっぱこれしかないです。

 

欠点

  • ウェブ上に公開するので、レンタルサーバー代、ドメイン代がかかります。
  • 全部自分で管理する必要があります。
  • ストアよりはダウンロード数が多くない(と思う)
  • 宣伝が必須

 

4.まとめ

モバイルはGoogle Play/App Store!

PCはMicrosoft Store/App Store!

自分で全部やるんだったらStripe!

Gtk-rs小ネタ集

こんにちは。

Kitachisukuです。

 

1週間時間が空いたのは気にしないでください()

 

で今回は、

Gtk-rs関連のことが自分が調べてるときに嫌というほど出てこなかったので、

誰かの助けになればと、

今回出てこなさそうなことを書いていきます。

 

広告

 


 1.UIをかんたんに作る(Glade)

2.終了処理

3.ボタンクリック

4.タイトルバーのカスタム


 

 1.UIをかんたんに作る(Glade)

Gtkではxmlファイルを使ってかんたんにGUIを作れます。

 

その機能を利用します。

 

・やり方

このサイトもしくはターミナルからGladeをインストールする。

 

インストールして起動したら、

f:id:Kitachisuku:20210302184935p:plain

左上の「開く」の隣りにあるファイルのボタンを押して、

f:id:Kitachisuku:20210302185402p:plain

真ん中にウィジットをドラッグ&ドロップしていけばいいです。

 

「トップレベル」にはWindowなど、

「コンテナー」にはBoxなど、

「Control」にはボタンなどが、

「Display」にはラベルなどが、

その右の矢印には、

OpenGL機能などを持つウィジットがあります。

 

保存には「保存」を押せばいいです。

 

Rustで使う方法は、

こんな感じです。

 let ui = include_str!("ui.glade");    //  この例では「ui.glade」というファイルを読み込んでいる

let builder = Gtk::Builder.from_string(ui);    //  上で作成した変数「ui」を読み込んでいる

let window: Gtk::Window = builder.get_object("mainwindow").unwrap();    //  この例では「mainwindow」という名前のWindowを取り出している。戻り値はObjectなので、明示的に「これはWindowだ」と表す必要がある。

 

あとはこれで取り出したウィジットを煮るなり焼くなり好きにする感じです。

 

2.終了処理

windowに対して使います。

window.connect_delete_event(|_, _| {

    gtk::main_quit();

    Inhibit(false)

});

 

これで終了処理が作れます。

 

3.ボタンクリック

buttonに対して使います。

button.connect_clicked(move |_| {

    // ここに好きなコードを書いてください

});

 

4.タイトルバーのカスタム

Gladeを使います。

f:id:Kitachisuku:20210302192132p:plain

まずWindowをドロップして、

そのWindowに、

「コンテナー」野中のGtkHeaderBarをドラッグアンドドロップします。

 

仮にも「コンテナー」の仲間ですので、

ボタンなどを配置することも可能です。

 

以上。

ほぼC#なネイティブ言語「Vala」の紹介

こんにちは。

Kitachisukuです。

 

今回は最近見つけた言語Valaについて気になったので、

そのVala言語についてまとめていきます。

 

広告


新品 ノートパソコン office2019 付き Windows10 Pro オフィス搭載 15.6インチ Wi-Fi WEBカメラ【到着後レビューでプレゼント!】 【平日15時、土日祝12時まで即日発送!】※即日発送の締切時間は注文ではなく決済確認が取れたタイミング

 


 1.Valaとは?

2.利点と欠点

3.インストール

4.チュートリアルを動かす

5.感想


 

 1.Valaとは?

ValaはGNOMEが作った静的型付け言語です。

 

この言語はGObjectという、

C言語で無理やりオブジェクト指向を使ってやろうと考え出されたものを利用し、

コンパイル時にC言語のソースを作って、

それをgccコンパイルするという方法でコンパイルされます。

 

GObjectはまともに使おうとすると大変ですからね...

 

構文はC#によく似ていて、

書きやすいです。

 

2.利点と欠点

利点

 

欠点

  • 知名度が低いので情報が少ない
  • C++のライブラリは使えない など

 

3.インストール

基本的には公式サイトに従ってればいけます。

翻訳(自己流)

Valaにはこれらが必要だよ!

これらも使うかもしれないから入れといてね

  • C標準ライブラリ(標準はglibc)
  • GLib2

Valaコンパイラはこうやってインストールするよ!

Windows

MSYS2でこのコマンドを実行するよ!

pacman -S mingw-w64-x86_64-gcc

pacman -S mingw-w64-x86_64-pkg-config

pacman -S mingw-w64-x86_64-vala

 

Macintosh

brew install vala

 

BSD

cd /usr/ports/lang/vala/ && make install clean

pkg install vala

 

Linux

Fedora

sudo dnf install vala

 

CentOS

sudo yum install vala

 

Debian

sudo apt install valac

 

Ubuntu(最新のものが使えない場合)

sudo add-apt-repository ppa:vala-team

sudo apt-get install software-properties-common

sudo apt-get update

sudo apt-get install valac

 

 大体公式サイトのまんまです。

 

 4.チュートリアルを動かす

チュートリアルは結構短いです。

 

C#を結構やってきた自分からすると、

using System;とかがないのがいいです。

 

適当にファイル作成して、

 $ nano my_first_program.vala

 

適当に打ち込んで、

void main() {
    print( "My first Vala program!\n" );
}

 

適当にコンパイルしたら、

 $ valac my_first_program.vala

 $ ./my_first_program

 My first Vala Program!

 

動いた。

 

5.感想

C#風でかけるValaはいい。

 

マルチプラットフォームGUIを作ることも可能なので近いうちにやってみたい。

 

では。

 

あと諸事情で数日間出せません。