SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UWPアプリ開発の最前線

Windows電卓の中はどうなっているのだろう?(前編)
~オープンソースのコードを見てみよう

UWPアプリ開発の最前線 第13回

  • X ポスト
  • このエントリーをはてなブックマークに追加

MVVMパターン

 電卓アプリを起動するコードがこのように複雑なのは、MVVMパターンを採用しているからです。新機能を追加するときも、View/View Model/Modelのそれぞれにコードを追加しなければならないので作業が面倒です。なぜこのような構造にするのでしょう?

 MVVMパターンのようなUIとロジックを疎結合にする構造には、いろいろなメリットが言われています。その中でも筆者が気に入っているのは、UIの一部(MVVMならView Model)も自動化されたユニットテストの対象にできることです。電卓アプリでもCalculatorUnitTestsプロジェクトには、例えばView ModelのDateCalculatorViewModelをテストするDateCalculatorUnitTestsなどがあって、View Modelのかなりの部分をユニットテストできるようにしています。アプリの各部の仕様をユニットテストで「固定していく」(壊されないように押さえ込んでいく)という作り方は、大規模で複雑なアプリになるほど有効になってきます。

 とはいうものの、MVVMパターンのコードを書くのは面倒なものです。そんなときはMVVMパターンを使ったフレームワークを使ってみましょう。C#であれば、以前に紹介した「Windows Template Studio」(次の画像)を使うと、後からUIの追加なども簡単にできて便利です。

Windows Template Studioウィザード
Windows Template Studioウィザード:先頭の「Code Behind」以外は4つともMVVMパターン

まとめ

 オープンソース化されたWindowsの電卓アプリのコードを、今回は簡単に紹介しました。C++/CXで書かれているのでC#やVBで開発している人にとっては取っ付きにくいかもしれませんが、とても参考になるものです。自分が欲しい機能などを追加してみると、もっと理解が深まると思います。次回は、簡単な機能を追加してみる予定です。

UWPアプリに興味が湧いてきた人へ

 Windowsデスクトップ用アプリの開発はWindows Formsなら経験があるけど、ちょっとUWPアプリ開発も気になってきたという方へ。ぴったりの電子書籍を書きました!

UWP アプリ開発 101 第2版: Windows Forms 開発者のための C# / XAML による UWP アプリ開発入門』 (BluewaterSoft 2017/7/1)
Kindle版UWPアプリ版があります。
・どちらも無料で最初の方を読めるので、とりあえず試し読みをしてみてください。

 また、Microsoft公式のチュートリアルやたくさんのサンプルコードなどもあります。UWPアプリの開発環境を整えてUWPアプリのプロジェクトを作れるようになったら、これらのドキュメントやサンプルも参考にしてみてください。

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
UWPアプリ開発の最前線連載記事一覧

もっと読む

この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11538 2019/07/26 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング