Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

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

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/09/24 11:00

 Windows 10に標準で入っている「電卓」アプリのソースコードが公開されています。C++/CXで書かれたUWPアプリです。このソースコードは、UWPアプリのアーキテクチャや、C++/CXとXAMLを使ったUWPアプリの書き方などの勉強になります。カスタマイズした「電卓」を配布することもOKです。今回は、そのソースコードを実際に改造してみましょう。

目次
  • 適用バージョン:Windows 10 version 1803(build 17134)以降

はじめに

 Windows 10に標準で搭載されている「電卓」アプリ。Windows 10ユーザーなら、おそらく一度は使ったことのあるユニバーサルWindowsプラットフォーム(UWP)アプリでしょう。そのソースコードは、オープンソースとして公開されています。

 このオープンソース化された「電卓」アプリのソースコードを読んだり、改造して楽しんだりすることで次のようなノウハウを習得できます。

  • C++/CXとXAMLを使ったUWPアプリの書き方
  • MVVMアーキテクチャ
  • UWPアプリでのユニットテスト
  • フルーエントデザインやAzure PipelinesといったWindows 10の新技術

 前回は、このソースコードの読み方を簡単に紹介しました。ソースコードの取得方法や、ソリューションの構成などについては、この前回の記事をご覧ください。今回は、このソースコードを改造して、「電卓」アプリに機能を追加してみましょう。

サンプルコードの実行例
サンプルコードの実行例:
左:面積「坪」の変換(本稿で解説)
右:日付計算の西暦⇔和暦切替

 上の画像はサンプルコード(GitHub)をビルドして実行した例です。サンプルコードにはこのように2つの機能を追加してありますが、本稿では簡単な「坪」変換だけを解説します。新しくUIも追加する西暦⇔和暦切替については、サンプルコードをご覧ください。オリジナルのソースに対する変更箇所には「bw:」という文字列で始まるコメントを付けてあります。

対象読者

  • UWPアプリを作っている開発者
  • UWPアプリに興味を持っている開発者

必要な環境

 サンプルコード(GitHub)は以下の環境で作成し、動作確認しています。

  • Windows 10 1809
  • Visual Studio 2019 Version 16.2.3
  • UWP用Windows 10 SDK: 10.0.17134.0、10.0.17763.0

 なお、オリジナルのソースをビルドするには、以下の環境があればよいとのことです(9月4日時点のREADMEファイルより)。

  • Windows 10 1803以降
  • 最新のVisual Studio(無償のCommunity Editionで可)
  • 最新のUWP用Windows 10 SDK

「オレオレ証明書」作成方法の仕様変更

 本題に入る前に。Visual Studio 2019 v16.2で入った仕様変更について、説明しておきます。

 UWPアプリにはデジタル署名が必須です。開発時には自己署名証明書(いわゆる「オレオレ証明書」)を使い、公開時に正式なものと差し替えます。これまでは、Visual StudioのUIで「オレオレ証明書」のファイルを簡単に生成できました。それが、Visual Studio 2019 v16.2からはその機能が削られてしまいました。この変更について、Visual Studio 2019のリリースノートには記載が見当たらないようですが、Developer Communityに公式な回答があります。

 新しい手順では、PowerShellで「オレオレ証明書」を作成してコンピューターにインストールし、それをVisual Studio 2019で指定します。


関連リンク

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • biac(ばいあっく)

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

バックナンバー

連載:UWPアプリ開発の最前線

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5