CodeZine(コードジン)

特集ページ一覧

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

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

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

目次

ソースコードを覗いてみよう:起動時のコード

 プロジェクトの構成が掴めてきたら、コードを読んでいきましょう。好きなところから読んでいけばいいのですが、ここでは起動時に実行されるコードを紹介します。

Appクラス

 UWPアプリでは、起動時にAppクラスCalculatorプロジェクト)のOnLaunchedメソッドかOnActivatedメソッドが最初に呼び出されます(詳しくは「Handle app activation」を参照してください)。

  • OnLaunchedメソッド:スタートメニューのタイルをクリックしたときなど、通常に起動されたときに呼び出される
  • OnActivatedメソッド:プロトコルアクティベーションなど、他のアプリから起動されたときに呼び出される。
    なお、プロトコルアクティベーションとは、アプリが定めたプロトコルを使ってアプリを起動すること。電卓アプリの場合は、「calculator:」というプロトコル。[ファイル名を指定して実行]で「calculator:」と入力すると、電卓アプリが起動します。

 電卓アプリでは、OnLaunchedメソッドもOnActivatedメソッドも、その中でOnAppLaunchメソッドを呼び出しています(次の画像、行番号227)。起動時の主な処理は、この共通に呼び出されるOnAppLaunchメソッドの中に書かれています。

起動時に呼び出されるOnLaunchedメソッドと、その呼び出し階層
起動時に呼び出されるOnLaunchedメソッドと、その呼び出し階層(App.xaml.cpp

 ちなみに、上の画像の下半分にあるように、[呼び出し階層]ペインがメソッドをたどるときに便利なことがあります。この[呼び出し階層]ペインは、コードエディタでメソッド名にカーソルを置いて、右クリックで[呼び出し階層の表示]を選ぶと表示されます。

 OnAppLaunchメソッドは、C#/VBでUWPアプリを書いている人でもぎょっとするかもしれません。複雑になっている主な理由は、マルチウインドウ対応のためです。マルチウインドウの機能は、Microsoftのドキュメントでは「複数のビュー(multiple views)」と呼んでいます。詳しくは「アプリの複数のビューの表示」をご覧ください。

 普通に起動した場合、OnAppLaunchメソッドではMainPageクラスを表示します。次の画像は、MainPageクラスを表示しているコードの部分です。画面を切り替えるには、このようにNavigateメソッドを使います(下の画像の行番号294)。

OnAppLaunchメソッドでMainPageクラスを表示している部分
OnAppLaunchメソッドでMainPageクラスを表示している部分(App.xaml.cpp

関連リンク

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

バックナンバー

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

もっと読む

著者プロフィール

  • biac(ばいあっく)

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

あなたにオススメ

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