言語化し構造化する

日々成し遂げたこと、考えたことの整理

WPFを学んでみようと思った理由

プログラムを始めて早20年、思えば大半をVisual Studio C#でこなしてきた。 今後もその路線を変える気は全くないのだが、UI設計はさすがにWindows Form(Win32)ベースでは厳しく感じてきた。 この10年くらいで、PCを取り巻く環境は主に以下の点で転換があったと個人的には思っている。

  1. タッチ操作に対応したデバイスの増加
  2. 画面の高解像度化
  3. タブレットPCの普及う
  4. UIに対するユーザーからの要求

一昔前はタブレットPCとは使えないものの代表格だったのに、今ではWindow10もそれなりに使いやすいOSになっている。だがOS自体が使いやすくなっても、そこで起動されるアプリケーションはマウスとキーボードを使うことが前提となっている。

もちろんタッチ操作にも欠点がある。例えばKindleのページめくりはハードボタンの方が圧倒的に使いやすい。 PowerPointで資料を作るとか、Excelを使いこなすにはマウスとキーボードが欠かせない。 ただ、マウス・キーボードが当たり前にある環境ではもうすでになくなっているのが現状であることは認識すべきだ。

今でも会社ではデスクトップPC、ノートPCを用いるのが普通なのでPCの環境自体は変わっていない。 そのため会社なおの基幹システムや社内ツールなどは当分深刻な状態にはならず、このままだと思う。 しかし、ユーザーの環境はどんどん変わっている。皆スマホを持ち、直感的なUIのアプリやサイトを利用している。Saasクラウド)形態で提供されるサービスも同様だ。 昔、GUICUI(Dos窓)を併用せざるを得ない時代に、「うぁ、黒い画面時代遅れ」と思ったようなことが既に起きている。

別に私はソフトウェア開発を専門で行っている人間ではないですが、だからこそ一般人の求めているニーズを満たす技術を積極的を取り入れていかねばならないと思うわけです。 (中身で勝負できる人は、多少GUIが悪くても使ってもらえるソフトウェアを作ることができるので)

ということで、今の自分の経験を踏まえてスイッチングコストが最小でかつ将来性も暗くない手段を考えたとき、WPF(Windows Presentation Foundation)を使うという方法に行き着いた。

Visual Studioで既に10年くらい前から提供されている技術で、XMLチックに画面デザインができる仕組みです。(詳細は割愛) 5年くらい前に、使いこなすために1本ソフトウェアを作ってみたことがあるのですがその後、放置してたため完全に忘れています。

参考書があまりないのが悩みだったのですが、良いサイトを見つけたのでこちらの学習用ドキュメントをまずは活用しようと思います。

今計画しているソフトウェアがあります。その中で実現したいGUIがあるので、それを実現することをゴールに頑張ります。