SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

作って学ぶ! 新人研修/Windowsストアアプリで電子カタログを作ろう

Windowsストアアプリってなんだろう

作って学ぶ!新人研修/Windowsストアアプリで電子カタログを作ろう(1)

Windowsストアアプリの開発言語

 Windowsストアアプリの最大の特徴は、JavaScript、C#、Visual Basic、C++など、使い慣れた言語で作成できることです。Windowsストアアプリの開発では次の方法があります。

JavaScriptとHTMLを使う

 JavaScriptは、Webシステムの開発で多く使われているスクリプト言語です。実行速度は遅いですが、文法が分かりやすく初心者にも理解しやすい言語です。また、JavaScriptはオブジェクト指向型の言語で、グラフィカルなユーザインターフェースをもつWebシステム/ゲームアプリ/高度なサーバ型のWebアプリケーションなどにも幅広く使われており、注目度の高い言語です。

 Windowsストアアプリでは、このJavaScriptを使ってアプリの処理部分をプログラミングして、画面デザインをHTMLで記述することができます。Windowsストアアプリではいかに使いやすいUIを作るかが重要になってきますが、ホームページなどを作成したことがある人がそのままHTMLやCSSで画面を作成できるのも特徴です。

C#/Visual Basic/C++とXAMLを使う

 C言語をはじめC#/Visual Basic/C++など、これまでのアプリケーションで多く使われていた言語を使ってWindowsストアアプリを作ることもできます。汎用性と自由度の高い言語なので、どのようなアプリケーションでも作成することができます。また、コンパイル型の言語なので実行速度が早く、複雑な処理や特殊な機能が必要な場合は、これらの言語を使用しないと顧客の要件を満たせない場合もあります。ただし、言語を習得するのが難しく初心者には敷居が高くなっています。画面はXAML(ザムル)を使って記述します。XAMLはマイクロソフトが開発したマークアップ言語です。

Windowsストアアプリ開発言語の比較
項目 JavaScriptとHTMLの場合 C#/Visual Basic/C++とXAMLの場合
画面の開発言語 HTML+CSS XAML
処理部分の開発言語 JavaScript C#/Visual Basic/C++
初心者の学習のしやすさ
開発の自由度の高さ

従来のデスクトップアプリとの違い

 ここで、少しアプリケーション開発とはどのようなものかを考えてみます。

 初めてアプリケーション開発をするエンジニアには、「アプリのすべての機能を、プログラマがプログラム言語を使って作る」ものだと勘違いをしている人が多くいます。

 しかしながら、アプリケーションを作る際は、1からすべての処理をプログラミングするわけではなく、すでに完成している部品をうまく組み合わせてアプリケーションを作る場合がほとんどです。

 具体的な例で説明します。私は、毎朝お弁当を作っていますが、おにぎりに使うお米を、稲から栽培しているわけではありません。すでに精米されたお米を焚いておにぎりを作っています。おかずは、スーパーで売っているウインナーを炒めたり、卵を焼いたりしたものをお弁当箱のなかに詰めています。早起きがつらいときは、冷凍食品のおかずを使うことありますし、前日の夕飯のおかずをそのまま詰めることもあります。

 アプリケーションもこれと同じような作り方をします。つまり、

  • プログラムを作るのに必要な命令はすでにあるので、それを使う
  • 完成した部品があれば、それを使う
  • すでに過去に作ったことがある部品があれば、それを使う

という作業をうまく組み合わせて、さまざまな機能をもつアプリケーションを効率よく作ります。

 ここでいう、部品はアプリケーション開発の世界では「API」と呼ばれています。

 Windows 8は、Windowsストアアプリと従来のデスクトップアプリの2種類があります。この2つの一番大きな違いは、実行環境が異なる点です。従来のデスクトップアプリは、「.NET Framework」や「Win32」と呼ばれている環境で動作しますが、Windowsストアアプリは「WinRT」という環境で動作します。WinRTはWindowsストアアプリを作ったり動かしたりするために必要な部品などの集まりのことです。

Windows 8の実行環境
Windows 8の実行環境

 この実行環境が違うと、アプリケーションで使える「部品」が異なります。

 例えば、従来のデスクトップアプリケーションで使われている実行環境はネイティブであるため、デバイスやネットワークなどの詳細部分についても、アプリケーションで自由にプログラミングすることができます。また、これまでさまざまなアプリを開発するうえで必要な処理(データベースとの連携など)がすでに部品として用意されています。それに対して、WinRT上で動くWindowsストアアプリは、従来のデスクトップアプリほど開発の自由度は高くありません。しかしながら、従来のデスクトップアプリがあまり得意でなかった、ユーザにとって操作性の高いアプリケーションを作る工夫がなされています。

 従って、Windowsストアアプリに向いている/向いていないアプリをまとめると、次のようになります。

向いているアプリ
  • 写真や動画・地図など、さまざまな情報を効果的に“見せる”ためのアプリ
  • タブレットなどで“持ち運ぶ“ためのアプリ
  • データ入力が少ないアプリ
向いていないアプリ
  • 短時間に大量のデータ入力が必要なアプリ
  • 既存のデータベースに接続するような大規模なアプリ
  • ネットワークやデバイス操作に固有の要件があるアプリ

 このようなことから、今後Windowsで利用されているすべてのアプリケーションがWindowsストアアプリに置き換わるには少し時間がかかると考えられます。企業システムの場合では、タブレットをつかって顧客に説明したりする電子カタログアプリや、社内で情報共有のために使うメールやグループウエアなどは、Windowsストアアプリに向いていると考えられます。Windowsで動作するアプリ開発を行うときは、それぞれの技術や特徴を知ったうえで、どの実行環境や開発言語を選ぶかを熟考することが大事です。

 また、今日の企業システムの多くは、Windowsを採用しています。そのためWindowsプラットフォームで動作するWindowsストアアプリは、業務システムとの親和性が高く、これまで企業システム開発で培ってきた多くのノウハウが生かせるという利点があります。

次のページ
Windowsストアアプリの作り方

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

作って学ぶ! 新人研修/Windowsストアアプリで電子カタログを作ろう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト 阿佐 志保(アサ シホ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7155 2013/05/30 14:00

イベント

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

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

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

メールバックナンバー