将来を見据えたWindows 10アプリ開発――クロスプラットフォーム対応はどうする?:Windows 10時代のアプリ開発に乗り遅れないために(3)
将来的に社内システムをPCだけでなく、スマートフォンやタブレットにも最適化して、生産性を高めようと考えるならば、Windows OS以外の環境も視野に入れるのは必然だ。その場合、クロスプラットフォーム対応の開発環境が大きなポイントとなる。
本稿では過去2回(第1回、第2回)にわたって、旧Windowsと旧Internet Explorerのサポート期限を目安に、Windowsシステム上で構築された過去のアプリケーション資産をいかに新環境へ移行させていくのかを考えてきた。
今回はもう少し将来を見据えて、Windowsを含む複数のプラットフォームが混在するビジネス環境において、どのようにアプリケーション開発を進めていけばいいのかを検討してみる。
Windows以外のプラットフォームをターゲットにする必要性
デスクトップやノートなど、いわゆるPCのみの環境をアプリケーション開発対象とした場合、現状では基本的にWindows 10をターゲットにしていれば問題ない。Net Market Shareの2015年9月時点でのデータによれば、デスクトップOSにおける世界シェアはWindows 7が6割弱と圧倒的で、次いでWindows XP、Windows 8.1、そしてWindows 10と続く。
Net Market Shareのデータは必ずしも実態を反映したものではないため、あくまで参考値と捉えてほしいが、それでもグラフ中に現れているWindows OSのシェアを合計すると88.69%と全体の約9割を占めている。
最近ではiPhoneブームに押されてMac OS Xのシェアが微増しているが、それでも1割には満たない。Win32やUWP(Universal Windows Platform)アプリといった、いわゆるWindowsネイティブアプリの数々はOS Xではそのまま動作しないが、ParallelsやVMwareなど仮想マシンを活用することである程度は動作可能になる。
また、以前にも触れたように、IE6やIE8などIE依存の企業Webアプリケーションが存在していた場合、将来的にこうした環境はサポートされない可能性があり、Microsoftでも「Edge」などの最新のWeb技術を使ったWebブラウザへの乗り換えを推奨している。
そのため、今後4~5年をかけて企業のイントラネットを中心としたIE依存のシステムは順次HTML5+JavaScriptなどを活用した環境へと乗り換えを模索していかなければならない。HTMLだけでできることが限られていた以前に比べ、HTML5時代ではネイティブアプリに匹敵する機能やパフォーマンスを備えており、かつ異なるWebブラウザ間での互換性がより重視されるようになっている。
こうしたHTML5時代のWebブラウザでは、極端な話を言えばEdgeを利用する必要はなく、動作検証の確認さえ取れればChromeやFirefoxといったMicrosoft以外のブラウザを全社展開しても問題ない。OS Xの標準ブラウザはSafariだが、同様に業界標準を重視したブラウザであり、基本的に他のブラウザとも互換性を維持している。OS XにChromeやFirefoxを導入して利用することも可能であり、企業のWebアプリケーションに関して、ボーダーレスの時代が到来しつつある。
一方で、スマートフォンやタブレットなど、いわゆるモバイルOSのシェアとなると話が変わってくる。Microsoftは「Windows 10 Mobile」を搭載したスマートフォンや(2in1)タブレット、PCにおいて、共通して動作可能な「UWPアプリ」という仕組みを用意した。
これにより、共通動作が可能なアプリさえ一度用意してしまえば、以後はどういったスクリーンサイズやユーザーインタフェースを持つデバイスであっても問題なく動作し、ターゲットごとにアプリを別個用意する必要がない、というメリットがある。
しかし、下記のように、特にスマートフォン市場におけるWindows(Windows Phone)のシェアは極小だ。
例によってシェアの数字は参考程度としてほしいが、スマートフォンならびに、2in1ではない中型以下のタブレットを基準にすれば、そのシェアの大部分はiOSとAndroidが握っている。市場ではiPhone(ならびにiPad)が5割近いシェアを獲得しており、残りをAndroid搭載のデバイスが占めている状況だ。
日本ではWindows Phone 8.1搭載スマートフォンがリリースされなかったという背景もあり、Windows 10時代の到来によって、ようやく6社のメーカーがWindows 10 Mobile端末の日本市場投入を表明したばかりで、黎明(れいめい)期にある。当初は大手携帯キャリア経由で販売されないことから、しばらくはシェアの低空飛行が続くと予想される。
近年において、仕事に使うコンピュータの環境は多様化が進んでおり、出先や自宅でも企業システムにアクセスするケースがある。その場合、スマートフォンやタブレット、そしてノートPCは有力な作業デバイス候補となるだろう。
またBYOD(Bring Your Own Device)といった言葉もあるが、個人が所有する普段使い慣れたデバイスをそのまま業務に利用するケースもある。となると、会社から支給される業務デバイスがWindowsであっても、自宅やプライベートではMacやiPhone、あるいはAndroid端末を利用しているケースもあるだろう。
もし、将来的に社内システムをこうした環境に適応させて生産性を向上させようと考えるならば、Windows以外の環境も視野に入れるのは必然だ。
デバイスを横断したシステム構築はクロスプラットフォーム開発で
ここで問題となるのは、以前であればWindows、さらに言えばWindowsの特定バージョンに依存しても問題なかったシステム開発が、Windowsだけではない多様なプラットフォームを同時にターゲットにしなければならない点だ。
デスクトップ/ノートPC、タブレット、スマートフォンでは操作方法の流儀も、スクリーンサイズも、想定する利用環境も大きく異なるため、OSの違いだけでなく「フォームファクタ」という、機器の形状や利用スタイルの違いも考慮に入れなければいけない。
それぞれのプラットフォームのアプリ開発に合わせて異なる開発環境やテスト環境を用意し、さらにプラットフォームごとに異なる開発言語やAPIをマスターとして……となると、そのコストや負荷は膨大なものとなる。そこで、各種ツールのほか、共通して利用できる開発環境に注目すべきだろう。
(1)「Windows Bridge」を活用する
Microsoftでは、既存のアプリケーション資産をUWPアプリとして活用するための仕組みとして「Windows Bridge」というツールを提供している。
Windows Bridgeは4種類あり、それぞれ次のような状況だ。
他プラットフォームからの移植を促すUWPアプリ開発プロジェクト | ||
---|---|---|
名称 | 旧名 | 提供時期 |
Windows Bridge for iOS | Project Islandwood | プレビュー版をオープンソースで公開、2015年秋頃に正式提供 |
Windows Bridge for Android | Project Astoria | 招待制で限定プレビューを行っていたが、計画が遅れている状況 |
Windows Bridge for Classic Windows apps | Project Centennial | 2016年以降にテスト開始 |
Windows Bridge for Web apps | Project Westminster | 提供済み |
前回も紹介したように、「Windows Bridge for Classic Windows apps」は既存のWin32や.NETアプリケーションをUWPアプリに変換する仕組みだが、提供時期は2016年以降順次となっており、当面は利用できない。
一方で「Windows Bridge for iOS」は、iOS向けに開発されたアプリをWindows 10上で利用するための仕組みで、必要最小限の変更のみで元となるアプリをそのままUWPアプリとして利用できるようになる。
iOSとAndroidの間でアプリの共通化はできないが、Windows 10であれば、デスクトップであってもスマートフォンであっても、iOSアプリがそのまま利用できるため、少なくとも開発工数の削減は可能だろう。
なお、AndroidアプリをWindows 10に移植するための「Windows Bridge for Android」は、当初より計画が遅れている状況だ。
(2)Webアプリケーション開発を模索する
複数のプラットフォームが混在する環境において、IE依存のような仕組みを排除した先に見えるのは、業界標準のHTML技術を使ったアプリケーション開発だ。
前述のように、Windowsを含むAndroidやiOSデバイスから共通してアクセス可能なWebアプリケーション開発を志向した場合、HTML5+JavaScriptという組み合わせは必須の仕組みとなる。画面のレイアウトが崩れることがあったりと、若干の検証は必要だが、基本的にどのプラットフォームからでも閲覧できて互換性が維持される。
また、ASP.NETのような仕組みを使っても、出力されるWebページはプラットフォーム間で互換性があるため、問題なく共通環境として利用できる。
(3)Web技術をアプリ開発に応用する
Web技術が共通仕様になるのなら、そのまま各デバイス上で動作するネイティブアプリ開発そのものもWeb技術で記載してしまえばいいのでは……という発想で生まれたのが「PhoneGap」や「Titanium」といったクロスプラットフォーム開発環境だ。
記述言語としてはJavaScriptをベースにしており、Webのプログラミング技術をそのままモバイルアプリ開発に応用できる。さらに、ここで記述されたソースコードは各プラットフォーム向けの実行形式に変換された形でアプリとして出力できるため、必要最小限の手間で複数のプラットフォームを同時にカバーできる点が特徴だ。
以前のこうしたWebプログラミングでは、ネイティブアプリからのみ利用可能だった各プラットフォーム固有の機能(カメラや各種センサーなど)に直接アクセスする手段を持たなかったが、こうした部分をツールが提供するAPIを通して吸収することで、Webアプリでも実装可能にしたのが、クロスプラットフォーム開発環境の特徴でもある。
現在、前述のPhoneGapはAdobe Systemsに買収された後、Apache 2.0 Licenseでオープンソース化(OSS)され、「Apache Cordova」として利用可能になっている。かつて、こうしたクロスプラットフォーム開発環境はプラットフォームの優位性を揺るがすとして、これらツールを使って作成されたアプリはAppleからApp Store上への登録を拒否されるということがあった。
しかし現在、OS X+XcodeとPhoneGapを組み合わせ、ライセンス上の必要事項を満たしたせば登録が可能になっている。もちろん、スマートフォン以外にもWindows用のデスクトップアプリ開発にも応用できるため、プラットフォームを横断しての開発に有望だ。これは、前回も紹介した「Windows Bridge for Web apps」の発想に近い。
(4).NET技術をクロスプラットフォーム開発に応用する
「.NET」は、クロスプラットフォーム開発におけるHTML5+JavaScript以外のもう1つの選択肢となる。このMicrosoft由来の技術として最近同社がプッシュしているクロスプラットフォーム開発環境が「Xamarin」だ。
Xamarinは2011年に設立された企業だが、その主力製品である同名のXamarinは、10年以上も前から続いてきた.NET技術のWindows以外へのプラットフォーム移植を目的とした「Mono」プロジェクトがベースとなっている。
MonoはもともとNovellの技術者であったミゲル・デ・イカザ氏を中心に開発されていたが、後にAttachmateによってNovellが買収されると大量の技術者解雇でMonoプロジェクトの分散が危惧されたこともあり、Monoプロジェクト関連の技術者が権利を買い取る形でXamarinを設立し、Mono関連のリソースを集約した経緯がある。
.NETをベースにしているだけでなく、Visual Studio上でAndroidやiOSアプリの記述も可能なため(iOSアプリ開発には検証のためにMacが必要)、Windowsアプリケーション開発者が次のステップを踏むうえでハードルが低い点が大きな特徴だ。
クロスプラットフォームを視野に入れたアプリ開発を
今やMicrosoft自身が「モバイルファースト」を強調する時代でありながら、同社自身はモバイルにおいて鍵となるプラットフォームを握っておらず、どうしても開発環境が分散してしまうという問題があった。
しかし、共通言語であるWeb技術の発展拡大や、信頼できるクロスプラットフォーム開発環境の出現は、こうした問題を少しずつ解決しつつある。
特に膨大な数がいるWindowsアプリケーション開発者が将来を見据えた場合、どうしてもクロスプラットフォームは視野に入れなければいけない状況だ。まずは目の前にあるWindows 10時代のプラットフォームへの対応を進めつつ、次のステップを考えてみることをおすすめしたい。
関連記事
Windows 10時代のアプリ開発に乗り遅れないために(2)2020年に向けたアプリ移行は2ステップで計画を――「Visual Studio 2015」が強力支援
開発者やシステム管理者にとって悩みの種がソフトウェアの「サポート期間」だ。2020年のWindows 7サポート終了に向けて、まずはIE対応アプリケーションの対策を行い、将来的な投資の一環として既存デスクトップアプリケーション資産の移行を順次進めていきたい。Windows 10時代のアプリ開発に乗り遅れないために:今から備えるWindows Vista/7サポート終了――アプリ移行の鍵は「Visual Studio 2015」
Windows Vistaは2017年4月、Windows 7は2020年1月にサポートが終了する。まだ先の話と思うかもしれないが、旧世代アプリケーションの移行がスムーズに進むとは限らない。今からWindows 10世代の環境を見据えた移行ロードマップを立てておけば安心だろう。「Visual Studio 2015」で新世代アプリ開発を始めよう(3):「Visual Studio 2015」で旧世代のWebアプリケーションを新環境へ移行しよう
Windows 10では新世代の標準ブラウザであるMicrosoft Edgeの利用が推奨されているが、レガシーサポートとしてInternet Explorer 11も備えており、既存のWebアプリケーションを継続利用できるよう配慮されている。「Visual Studio 2015」は、既存アプリケーションを新環境に対応させる動作テストの効率化に有用だ。「Visual Studio 2015」で新世代アプリ開発を始めよう(2):Windows 10の開発環境「Visual Studio 2015」はどのエディションを選べばいい?
Windows 10とともに登場した新しい開発ツール「Visual Studio 2015」は、製品構成が大きく変わっている。各エディションの概要をはじめ、開発規模や目的に合わせた選択ポイントを整理しよう。「Visual Studio 2015」で新世代アプリ開発を始めよう:脱プラットフォーム依存! 「Windows 10」でアプリ実行環境と開発環境はこんなに変わる
「Windows 10」では、アプリの実行環境と開発環境が大きく変わり、1つのアプリでより幅広いユーザー層へリーチできるようになる。そのポイントを整理してお届けする。これから買うならUltimateかPremiumを選ぶべし!:Visual Studio 2015発売前の今だからおすすめする「MSDN最新購入ガイド」
Build 2015で発表があったように、Visual Studio Codeのプレビュー版提供など、オープンソース化がさらに進むMicrosoft。開発者にとっては必要なツールとサービスの提供が進み、ますます今後への期待も高まっている。視覚的VR技術から動作を行うVR技術へ:進化するVirtual Realityの世界と入力装置としての「Leap Motion」
Oculus Riftから再び火がついたVirtual Realityの世界。さまざまなVRデバイスの登場により、視覚的VRから動作を行うVRへ新たな進化を見せています。WindowsユーザーのUnity開発をサポート:Unityの開発をさらに効率化! 「Visual Studio Tools for Unity」を利用する
Unityを編集する際には、規定では付属のMono Developを使います。しかしWindowsアプリケーションの開発者であればVisual Studioを使いたいところ。今回はそれをかなえる無償ツール「Visual Studio Tools for Unity」を紹介します。2つのデバイスで新しい世界を体感:「Leap Motion」が「Oculus Rift」の“目”になる! 新体験を生み出すVRアプリケーション開発
「Oculus Rift」をかぶると、目の前に仮想空間が広がり、よりコンテンツに入り込んだ体験ができます。これに入力装置としての「Leap Motion」を組み合わせることで、リアリティある仮想空間を作ることが可能です。雰囲気をプログラミングなしに体験:プログラムを書かずに試せる! 「Leap Motion」+「Unity」のアプリケーション開発
「Leap Motion」でアプリケーションを開発するには、いくつかの方法があります。ここではその中から「Unity」というゲームエンジンを使ってアプリケーションを開発する方法について紹介します。VRコンテンツをLeap Motion×Oculus Rift×Unityで始めよう!:進化した「Leap Motion」と「Oculus Rift」で広がるVR(Virtual Reality)の活用シーン
Leap Motionは米Leap Motionが開発・販売している、手や指の検出に特化したセンサーです。日本ではBBソフトサービスが提供をしています。2012年の発売以降、モーションセンサー市場の広がりに伴い、商業利用も増えてきました。新年度に向けて準備する項目をチェック!:いちばん賢い買い方はコレだ! 次期「Visual Studio」に備えよう
2015年中の発売が予定されている「Visual Studio 2015」。一方、役目を終えようとしているTechNetやVisual Studio Express――新年度はどう備えるべきか。2人のプロフェッショナルが語り合う:高橋忍(Microsoft)×轟啓介(Adobe)対談――進化するアプリ開発現場でデベロッパーとデザイナーの関係はどうあるべきか?
スマホやタブレットの普及により、業務アプリ開発の環境も変わりつつあるが、それに対応できる体制は整っているだろうか。この対談では日本マイクロソフトの高橋忍氏、アドビシステムズの轟啓介氏が、デベロッパーとデザイナー、それぞれの視点から、今後のアプリ開発における問題と解決策、そして理想について語り合う。コストを抑え、チャンスはモノに:iPhoneもAndroidも!! マルチプラットフォーム対応の開発ツールを導入しよう
iPhone、Android、そしてWindowsのデスクトップなど、複数のプラットフォームにアプリを用意するため、それぞれの開発言語やツールを学ぶのは大変です。そこで、1つの言語、1つのツールで複数のプラットフォーム向けに開発が行える方法を紹介します。Visual Studioで何ができる?:これから開発を始めるなら必見! より使いやすくなった「Visual Studio」
「Visual Studio」は高機能な総合開発環境(IDE)。特にCommunityエディションは有償であるProfessional相当の機能を備えながら、無償で利用できるのが特徴です。無償でできること、できないことを解説します。盲点!? 1年契約で買うと高くつく:「MSDNサブスクリプション」を契約する上で押さえておきたい3つのこと
実はもったいない1年契約! コスパの良いライセンス購入でAzureの無償利用特典もある「MSDNサブスクリプション」を使おう。オンラインで見積書がすぐ取れる!:「モバイルファースト」を実現したい全ての方へ――開発者向けプロショップ“Developer Tools Store”が目指したこと
ソフトウェア開発の主流はPCからスマートデバイスへ――「モバイルファースト」時代のニーズに応える開発者向けプロショップ「Developer Tools Store powered by LICENSE ONLINE」がオープンした。これまでのオンラインストアと何が違うのだろうか?
関連リンク
提供:BBソフトサービス株式会社
アイティメディア営業企画/制作:ITmedia PC USER 編集部/掲載内容有効期限:2015年12月14日
Copyright © ITmedia, Inc. All Rights Reserved.