読者です 読者をやめる 読者になる 読者になる

世界のやまさ

SEKAI NO YAMASA

Developer Camp <Windows 8>Windows ストアアプリ開発コンプリート 仙台 に行きました

.NET 勉強会

Developer Camp <Windows 8>Windows ストアアプリ開発コンプリート 仙台 に行ってきました。

Windows ストアアプリ開発ってどんなもんだろうと思ったのがきっかけです。

全体的な感想として講義は大変わかりやすく、資料も充実していてよかった。Windows ストアアプリすげーっていうより、Azure すげーって思ったw

Windows Azure Mobile Services でテーブルをちょこちょこっていじったけど、Entity Framework と同じ感じでテーブルを呼び出せ、クラウドの非同期な DB の更新が await todoTable.UpdateAsync(item) のたった1行で済んじまうのですよ。

しかも適切にサービスを設定してれば、あの面倒なアプリへのプッシュ通知も勝手にやってくれる。ちょー便利。プッシュ通知は iOS も対応していて、近日 Android も対応。

これで無料って便利すぎて鼻血でるレベル。

デザイン面とかはストアアプリだけでなく、Android や iOS にも応用が利くので、今後追跡調査していきたい。 (たしか去年のABCでAndroidのデザインはMSのサイトを参考にしてボタン幅を決めた方が良いと聞きました。)

以下に自分のまとめを記載しておきます。

今回の資料

テキストはネットに公開されているものと同じです。動画はまだ準備中ですが収録は終わってて編集中だそうです。

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

  • 全画面表示
  • タッチ操作
  • ストアからの入手

    • MS の審査必要
  • 通常の.NET Framework は使えない。WIN RTを使う。

  • 一つのアカウントで5つのデバイスまでインストールできる

    • インスタントストアで管理
  • 企業内配布(サイドローディング)

    • 審査不要
    • 証明書を含める
    • グループポリシーの変更(ドメインが前提)
    • PowerShellでインストール

アプリパッケージの構成要素

  • アプリマニフェスト
    • xml
    • ストアで表示される情報。権限とかカテゴリ対象年齢
    • Visual Studio で簡単に編集可能
  • ブロックマップ
    • すべてのファイルの。ハッシュ。改ざん防止

Windows ストア

  • 透明性のある承認プロセス
    • 審査の詳細がみれる。ブラックボックスではない。
    • 審査の前に Windows App Cert Kit で事前チェックを推奨。
  • 開発の収益を最大に
    • 30%は手数料だが、売上金額により手数料を減額。

UX

  • クロム(Windows の枠とかソートのタイトル項目)を排除する
  • コンテンツ優先
  • コンテンツの間に十分な余白を取る

    • 余白は基準があり決められている。
      • 左上から数ミリ、コンテンツの間は数ミリ
      • MSサイトにデザイン指標のドキュメント600ページぐらいがある
      • 大変なのでテンプレートを使うと良い
    • 違反すると審査通らない可能性が高い (ユーザー数多ければ例外も。。。)
  • フォントのサイズも決まっている

  • タッチ優先の設計

    • ヒートターゲット参照
    • 視覚フィードバックをする(色を変える、指に追従する)
    • ON,OFFのスライダーの方向は縦か横で統一させる
  • 複数のビューを考慮して設計する

    • 1024*768(最少)
    • 1366*768(ワイド画面)
    • スナップビュー(ワイド画面以上サポート)
      • シミュレーターで利用可能
    • 縦長モード
  • セマンティックズーム

    • XAML で定義可能
  • 画像の自動スケール変換機能

    • SVG か 3サイズのアセット(100%, 140%, 180%)
    • アセットファイルは次の3つ用意する。scale-1[048]0の命名規則が必須
      • Logo.scale-100.png Logo.scale-140.png Logo.scale-180.png
  • 適切なコントラクトの使用

    • コントラクトとは、windows や 他アプリとの連携。他アプリとの契約をしてというイメージ。 wsdl の コントラクトと同じイメージかな? 例えば検索と共有のこと
  • タイル

    • スタートメニューに表示されるアプリのアイコン
    • 正方形とワイドの2種類
    • ライブ タイルといわれる動的な表示が可能
    • 通知はローカルとクラウドを選べる
  • 通知

    • ライブタイルだけではなくトースト(上からでるポップアップのようなもの)も選べる
    • トーストはむやみやたらに使わない
    • Windows 通知サービス (WNS)を利用。何百万のユーザーに拡張可能。無料!
    • 通知サービスから受け取るのはアプリ直接ではなく、OSのサービスで受け取ってからアプリに通知する。
  • ローミング

    • 各デバイス間での設定等の共有が可能
  • アプリバー 下部はコマンド用で統一 上部はナビゲーション用で統一(戻る等)

アプリのプロセスライフサイクル

  • 実行中、一時停止、終了の3つ
  • 違うアプリが起動されると一時停止状態になる
  • メールを動かしている時にブラウザを立ち上げた時
    • メール:一時停止
    • ブラウザ:起動中
  • その次にニュースを見てメモリが足りなくなったら
    • メール:終了
    • ブラウザ:一時停止
    • ニュース:起動中
  • 一時停止はメモリに保存されているので特に気にしなくてよい
  • 終了はOSが勝手に行うので途中状態をOnSuspendingで受け取ってストレージに保存する必要がある
    • 5秒以内に保存を行えるようにする

DB操作

  • 直接RDBにつなぐことはできない(ADO.NETのような)
  • web service が必須。
  • Windows Azure Mobile Services を使えば数秒でデプロイ可能

Windows Azure Mobile Services

  • マルチテナントで10まで無料
  • 1GB SQL DB が使用可能だが、米国東部・西部の DC を選ぶ必要がある。
    • 他の DC を選ぶと料金が発生する。

プッシュ通知

  • Windows Azure Mobile Services で可能だが・・・
  • Windows 8 開発者アカウントも必要で年間4800円有料。