SHOEISHA iD

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

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

UWPアプリ開発の最前線

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

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

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

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

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

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

次のページ
MainPageクラス

関連リンク

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング