[セミナーフォローアップ] 11/28 TFセミナー 企業利用者のための、Windows Phone アプリ開発 ~業務アプリケーションの配信と管理を実装する Part 1: 企業向けアプリケーション展開、考え方と実装例

スライド1 本日のセッションは、企業向けにWindows Phone アプリケーションを展開するための考え方と実装例について話をしました。
スライド2 セッション構成です。
スライド3 一般論としての確認です。
スライド4 企業向けアプリケーションは、一般のアプリケーションと異なり、公開範囲やセキュリティ要件が異なります。
スライド5 Web アプリケーションあるいは専用アプリケーションとしての展開が考えられます。それぞれ、セキュリティの実装が必要ですが、セキュリティについては、Part 2のセッションに委ねました。
スライド6 Windows Phoneのアプリケーションは、Marketplaceを通じて配布します。
スライド7 Windows Phoneのアプリケーションは、App Hubというサイトを通じて、申請され、審査が行われます。
スライド8 App Hubのアカウントは年間登録料 9,800円でご利用いただけます。 学生の方には、DreamSparkをご提供しています。
スライド9 Windows phone のアプリケーションは、.xap ファイルという zip 形式のファイルにまとめられます。中には、アセンブリファイル (.dll)や画像ファイルなどが含まれています。 App Hubに申請されたファイルはテストされて、問題なければ Windows Phone Marketplace に公開されます。
スライド10 現時点のWindows Phone Marketplaceは、3種類の方法でアプリケーションを公開できます。
スライド11 公開までの流れを確認しましょう。 ベーター公開は、審査対象外なので、制約はありませんが、あくまでもテスト用途のみにご利用いただけます。
スライド12 Windows Phone Marketplaceは、現時点では、企業向けの配布機能を有していません。 このため、企業向けでも App Hubへ登録し、審査を通して、Windows Phone Markeplace を通じて配布が必要です。この時に、プライベート配布を利用することで、アプリケーションが一般には公開されないように制御できます。
スライド13 開発者登録済みのデバイスは、開発者が10個までアプリケーションを直接インストールできます。しかし、企業向けのアプリケーションにこの機能を利用するのは推奨されません。理由として、開発者登録されたデバイスには自由にアプリケーションがインストールできるため、不用意にアプリケーションが展開されるリスクがあります。
スライド14 ならば、一時的に開発者登録したデバイスにアプリケーションをインストールして、開発者登録を解除する方法を試みる方もいるかもしれませんが、これはうまく動作しません。開発者登録を解除すると、開発者がインストールしたアプリケーションの起動ができなくなります。
スライド15 それでは、Windows Phone Markeplaceの制約を理解して、アプリケーション配布を考えましょう。
スライド16 アプリケーションを非公開として Marketplace に登録してください。テストのメモをきちんと書くことをお勧めします。
スライド17 Markeplace で管理されているアプリケーションには、一意のURLが割り振られます。公開、非公開に依らず、 URL を知っているユーザーはアプリケーションをインストールできます。
スライド18 ディープリンクをどう知らせるか、これがアプリケーション配布のポイントです。
スライド19 それでは実装例を確認しましょう。
スライド20 SharePoint 2010を利用し、リストにディープリンクとタイトルを登録する方法が利用できます。セッションでは紹介しませんでしたが、これはOffice 365でも利用できます。
スライド21 社内ドメインに参加している SharePoint に対して Windows Phone の Internet Explorer Mobile から接続します。ドメインの認証を求められ、正しいユーザーであれば、モバイルに最適化された形で SharePoint が表示されます。ディープリンクを開くと、Windows Phone Marketplace に接続します。 SharePointのアクセス制御で公開範囲を変えられます。 SharePointではなく、通常のWebサイトでも<a>タグを使って実装できます。
スライド22 さらにUXを向上させるために、インストールのための、アプリケーションを作りましょう。 いくつか制約条件をつけて実装してみます。 ・サーバーとクライアントは疎結合、WCFは利用しません
スライド23 JSON文字列でデータを転送します。セッションデモはサーバー側でASP.NETを利用していますが、他の処理系でも構いません。 セッションでは、アプリケーションがどのように実装されているかをソースコードを解説しました。 ポイント: ・Json.net の利用、NuGetのPackage Managerを利用してインストール ・サーバー側で、.NETのListから JSONへのシリアル化 ・クライアントからサーバーへのGET要求をWebClientで実装、非同期通信 ・クライアント側で、JSONから.NETのListへの逆シリアル化 ・Expression Blendの「クラスからのサンプルデータ」機能を利用した画面作成、ListBoxのテンプレート作成 ・ListBoxのダブルタップイベントでインストール画面への遷移、MarketplaceDetailTaskの利用 ・Tilt Effect を利用してコントロールの振る舞いを変更
スライド24 一番のポイントは、MarketplaceDetailTaskの利用。
スライド25 最後に、Webアプリケーションを展開する上で、Internet Explorer Mobileについて紹介しました。
スライド26 一般にWebアプリケーションは、Webブラウザーがあれば良い、という話ですが、現実は、利用するマークアップやスタイル、スクリプト、プラグインなどに依存します。
スライド27 Windows Phone 7.5のIE Mobileは、Internet Explorer 9のTridentエンジンを利用し、ハードウェアアクセラレーションを使ったレンダリング、高速なJavaScript実行に対応しています。
スライド28 PC版との大きな違いとして、ブラウザープラグインをサポートしていない点が挙げられます。Adobe FlashやMicrosoft Silverlightのブラウザープラグインは動作しません。
スライド29 HTML 5の注目が高まっていますが、IE MobileのHTML 5の機能を試す方法として、Internet Explorer Test Driveがあります。 https://ietestdrive.com/mobile W3C Geolocation の機能により、現在位置をJavaScriptから取得できるというデモ、HTML5でビジネスチャートを表示するデモを行いました。
スライド30 サーバーの運用管理者の方は、ユーザーエージェント文字列の違いを知っておくと良いでしょう。 IE Mobileは2種類のレンダリングモードがあります。 ※ WebBrowser コントロールを利用している場合、既定では、モバイルサイト優先のユーザーエージェントとなります。
スライド31 viewport指定なし Viewport の指定がないと、横幅1,024ピクセル
スライド32 Viewport指定あり Viewport を device-widthに指定すると、320ピクセル (既定値)
スライド33 CSS3 メディアクエリーの利用も検討しましょう。        このサイトをHTML5 対応のPCブラウザーで開き、ブラウザーのウィンドウの大きさを変更して、効果を確かめました。        
スライド34 メディアクエリーの利用方法は、希望の解像度とスタイルの組み合わせを宣言することです。
スライド35 IE Mobileでは、LocalStorage、SessionStorageを利用できます。
スライド36 キーと値のペアで管理しますが、文字列で格納されます。
スライド37 文字列以外のデータに利用する場合は、変換処理を行いましょう。
スライド38 本セッションでは、Windows Phone Marketplaceの制約を理解し、非公開としてMarketplaceにアプリケーションを登録し、インストールを支援する方法について解説しました。 Webアプリケーションを利用される場合は、IE Mobileの仕様にご注意ください。
スライド39

Windows Phone  デベロッパー センター https://msdn.microsoft.com/ja-jp/windowsphone/default.aspx

Web Development for Windows Phone https://msdn.microsoft.com/en-us/library/ff462082(v=VS.92).aspx

Windows Phone Marketplace https://msdn.microsoft.com/en-us/library/hh202939(v=VS.92).aspx

開発者向け情報番組 「UX-TV」 https://www.ustream.tv/channel/ux-tv

スライド40 ありがとうございました。