NewsReader テンプレートを使って
作るReaderじゃないストアアプリと
           Tips集

 新しい.NETStyle 2012/11/24
 ~MetroStyleDeveloper #08東京~
  ~.NETラボ勉強会 2012年11月~
       @tanaka_733
自己紹介


 Twitter: @tanaka_733
 Metro style Developer
 Silverlightを囲む会


 趣味                  Blog: 銀の光と碧い空
 Windows Store app   http://techblog.hilif
 Windows Phone app   e-jp.info/
 Kinect
セッションの目的


  Windows Store Appを簡単に開発したい



 テンプレート         すべて一からやるの
 そのままはちょっと      もちょっと…
 別のことやりたい…
モチベーション


テンプレートを使いつつ、
違う目的のアプリを作ってみよう
公開したアプリ: Cloud Foundry Console
  http://apps.microsoft.com/webpdp/ja-
  JP/app/cloud-foundry-console/724b3d55-
  38cb-433e-9607-65e1c42d2ae4




  Cloud Foundry とは

  VM Ware がリードするOSS PaaS構築ソフト
  Azure Web Siteが近い
  cloudfoundry.com から無償で利用可能(β版)
  Node.js, Java, Ruby が使用可能
(余談) .NET サポートもあるよ

  Cloud Foundry本家のほかに、
  ( cloudfoundry.com )
  独自機能を追加したサービスが複数



  Iron Foundry (.NET)
  Uhuru (.NET, on Azureもあり)
  AppFog (PHP)
  Cloudn (NTTcom さん、予定)
デモ


   設定
   アプリ一覧
   アプリ表示
   アプリ起動
   検索
テンプレートによる開発




  http://msdn.microsoft.com/ja-jp/jj556277.aspx

  テンプレートを使った開発そのものは
  READMEや他の方の資料が参考になります

  テンプレートを使ったストアアプリの作成
  http://www.slideshare.net/yasuhikoy/ss-
  15136691
テンプレートのVerUP に対応するには

    テンプレートは時々Updateされる


  バグ修正や       Change logはある
  機能向上がある     コードの差分が
  できるだけ追随    とれない


   テンプレートファイルを取っておいて
  WinMerge などの差分ツールで確認
開発した手順

  APIを叩くところ (通信の処理の確認)


         DataModelの変更


         DataSourceの変更


           Viewの変更
DataModel を変更する


    UIの構造を         表示させたい項目
    定義しよう          持たせる機能


    INotifyPropertyChange の実装は
    Common.BindableBase を使用


   UIからの操作はDataModelではなく、
   コードビハインドに記述されている
データ操作部分(Model)を入れ替える

       AppDataSourceを新規作成
       TokenCommon



                   TokenDataSource
  AppDataSource
                   はログイン情報を
  はCloudFoundryの
                   ローカルストレージに
  APIをたたく
                   管理
async, await で簡単非同期

     通信処理などはほとんど非同期
      async, await で簡単に書ける
非同期処理と例外処理

    通信エラーを通知するために
    こんなコードは書けません
LayoutAwarePageExtensions.cs を使いましょう

          awaitせずにエラーを通知




       より複雑な制御が必要ならRxを
アプリケーションの設定


独自の設定メニューではなく、
設定コントラクトを使いましょう
設定コントラクト


 設定チャームに                カスタムメニューが
 カスタムメニューを              選択された時の
 追加                     処理を追加




 Help, Privacy Policy   Account Setting
 に加えて                   が選択された時は
 Account Setting        AccountSettingPag
 を追加                    e に移動
設定チャームにカスタムメニューを追加


 App.xaml.cs
メニュー選択時の処理

 App.xaml.cs
パスワードの保存方法

  保存方法:           一時的なトークンを
  PasswordVault   ローカルストレージに
  がおすすめ           キャッシュ




  RoamingData によるマシン間の共有は未使用
PasswordVault の使用方法 (保存)


  SerializeHelper.cs
PasswordVault の使用方法 (取得)


  SerializeHelper.cs
未設定時の挙動

   アプリの性質         最初にやること




 ログインできないと        ログイン情報を
 何もできない           入力する




    起動時にログイン情報がなければ
    AccountSettingPageに移動
未設定時の挙動


 App.xaml.cs
従量課金ネットワークへの対応

     背景


   日本では定額が多くなってきましたが、
  外国では従量課金の方が多いところもあります


    従量課金接続の場合は、
    無制限に通信を行わないように設定


   このアプリでは未実装ながら審査は通過
    条件はアプリの性質による可能性も
Viewの見た目を変える
Viewの見た目を変える


App.xaml を編集
ViewのプロパティとStyleのBinding


Status を背景色にBinding
申請時の注意

   テスト用のアカウント情報を記載
   (日本語アプリでも英語併記が無難)




 アカウントを作成できるページへのリンクを明記
英語(および他の言語)での表記に迷ったら

  Microsoft ランゲージポータルがおすすめ
  http://www.microsoft.com/language/ja-
  jp/default.aspx
おまけ:Advent Calendar のお誘い




    WP8: http://atnd.org/events/33802
    Win8 C#: http://atnd.org/events/33803
This pptx’s theme is provided by @ColinEberhardt


http://www.scottlogic.co.uk/blog/colin/2011/12/
a-metro-themed-powerpoint-template/

121117 metro styleapp_templateapp