今回はまもなく発売される Windows 10 と、そのアプリ開発がどのように変わるのかを紹介したいと思います。

Windows 10 について

次のWindowsのメジャーバージョンはWindows 10です。

今まではWindows 8がメジャーバージョンの最新版でしたが、次は9ではなくて10です。なぜ次がWindows9ではないのかという質問に対し、記者会見では「seven ate nine (7が9を食べちゃった)」という冗談で返していました。

実際には7, 8とは大きくことなり、連番としての9を使うのが躊躇われたので飛躍の意味も込めて10にしたと語っています。

Windows 10の発売日やエディションについては以下のようになっています。

  • 発売日: 2015 年 7 月 29 日
  • エディション
    • Home
    • Mobile
    • Pro
    • Enterprize
    • Educatioin
    • Mobile Enterprize
    • IoT Core

Windows 10はWindowsの最後のバージョンだと発表されています。アップデートを繰り返し、名前が変わるような大きなバージョンアップはしないとのことです。

また、Windows 7, 8, 8.1ユーザーに期間限定でWindows 10 へのアップグレードが無料で提供されます。すでに予約が開始されており、以下の画像の様にWindowsのタスクバーにWindowsのマークのアイコンが表示されています。このアイコンをクリックすることで手続きを開始することができます。

アップデートの予約アイコン

Windows10アプリ

8 / 8.1のときとのユニバーサルアプリの違い

Windows 8 / 8.1時代のユニバーサルアプリといえば、コードを各プラットフォーム向けのプロジェクト間で共有することができるものでした。 あくまでも全プラットフォーム共有のアプリを作成するわけではなく、アプリのバイナリは各アプリごとに存在し、それらをストアで紐付けることにより、エンドユーザからはユニバーサルなアプリとして見えるというものです。

以下の画像はWindows8.1向けで作成したユニバーサルアプリのプロジェクト作成で自動で生成されたものです。 .Windows、.WindowsPhone、.Sharedという3つのプロジェクトが生成されています。 この.Sharedプロジェクトに、共有したいコードを置いておくことで、各プロジェクト間でコードの共有をすることができます。

win8 ユニバーサルアプリのプロジェクト

これに対して、Windows 10におけるユニバーサルアプリは単一のプロジェクトでアプリを作成することができ、作成されるアプリのバイナリは1つです。そしてこのアプリがPC、スマートフォン、XBOX等で動作することになります。

Visual Sutdio 2015 RCで作成したWindows 10のユニバーサルアプリのプロジェクトの中身は以下の画像のとおり1プロジェクトになっているのがわかります。

Win10 ユニバーサルアプリのプロジェクト

8 / 8.1のWindowsストアアプリとの違い

ここでは8 / 8.1時代のストアアプリとの違いの中でも大きな変更2点についてご紹介したいと思います。

  • Windows 10ではアプリのウインドウサイズを自由にリサイズと配置ができるようになっています。以前のWindows 8 / 8.1時代のストアアプリは自由にサイズを変更できず、アプリを重ねることすらできませんでした。このおかげで今まで違和感のあったデスクトップアプリとの併用が違和感なくおこなえるようになっています。

    10アプリの自由なリサイズ

  • Windows10ではチャームがなくなっており、以下のようにアクションセンターと呼ばれるものがかわりに表示される。そのため、以前チャームにあった設定等を呼ぶにはアプリ内にボタン等を設置する必要があります。

    通知センター

Android/iOSアプリ等をWindows 10アプリに変換

Windows10では様々なアプリを「プラットフォーム ブリッジ」という仕組みを使うことでWindows10アプリに変換することができます。

Windows 10では4つのアプリのブリッジが用意されています。

  • Web
  • Win32/.NET
  • Android
  • iOS

ただし、これらのサービスが提供されるのは夏以降となっており、いつから利用できるのかはまだ確定していません。

Web – Project WestMinster

CordovaとオープンソースであるmanifoldJSを使って、Webアプリをネイティブアプリ化することができます。 WebアプリからWindows 10, Android, iOSアプリ等を作成することができます。

Win32/.NET – Project Centennial

Windows8以降のストアに登録する携帯のアプリであるWindows Store Appではなく、従来のDesktopアプリと呼ばれていたようなアプリをストアに登録できるように変換してくれます。

Android – Project Astria

apkを変換してWindows 10 アプリを作成することができます。そのためソースコードは必要ありません。

また、変換の際にGoogle Mapが使われていればBing Mapに、Google Playの課金サービスが使われていればWindows Store の課金サービスに変換したりと自動でサービスの変換も行われます。

iOS – Project Islandwood

Android(Project Astria)と違い、iOSではXCodeのプロジェクトをVisual Studioで読み込めるようになります。そのままVisual Studioでコンパイルすることにより、Windows10アプリの作成を行うことが出来ます。

おわりに

Windows 10では 8 / 8.1時代に使いづらかったストアアプリの全画面表示のとりやめや、スタートメニューが7時代に近づいたりと、8 / 8.1で違和感のあった部分を修正してきている印象です。ユニバーサルアプリの新たな形態やAndroid・iOSアプリ等のWindows 10アプリ化等興味深い機能やサービスも多いので、ぜひ触れてみてはいかがでしょうか。