1/22 2:00(日本時間)から、Windows10の新しい発表がありました。 とりあえずいろいろ変更があったっぽいのでアプリ開発者目線でまとめます。 私は英語全然できないので間違った訳があるかもしれません  Introduction Windows10の方向性について言ってました。 発売日? – Last september ユニバーサルアプリがXbox oneにくる OnePlatforn OneStore タッチでスライドすると仮想デスクトップを移動できる More PersonalComputing エクスペリエンスが変わった セキュアで信頼性が高い 自然なインタラクション Voice,pen,gesture,gaze Windows10はWindows8.1,Windows7,WP8.1から無償アップデート(最初の一年のみ) 次週(1月の第4週)に新しいbuild Phoneは2月 3Dモデル ビデオの中で何回か3Dモデルを表示して触ってるシーンがありました。 Windows10からDirectX12はWindows10のサブセットとなるので3DがAPIからあつかいやすくなるんですかね   OnePlatform OneStore これは以前から言われてました。現状、Windows8.1とWindowsPhone8.1ではストアが違うのでいちいち別々にアップロードしなければいけませんが、一回のストア申請でPhoneでもPCでもOKになります。 タッチでスライドすると仮想デスクトップ移動 ビデオでそれっぽい描写がありました。 build9879でタッチして仮想デスクトップ移動できたか覚えてませんがタッチでスライドすると仮想デスクトップ移動できるっぽい gazeについて More Personal Copmupingということで、入力デバイスとしてvoice,pen,gesture,gazeが挙げられていました。 中でもひときわきになるのがgaze。 gazeは日本語で熟視するとかいう意味っぽいですが、これは「視線入力」を表してる?んですかね。 現状視線入力のAPIはないので期待できるところだけどどうも視線入力っていまいちできそうな気がしないので僕の聞き間違いかも 無償アップデート(最初の1年のみ) WIndows7,Windows8.1、WindowsPhone8.1からは最初の1年だけ無償アップデートらしいです。Phoneが無償なのはいいっすね     Windows10のデモ WindowsPhoneのイベントとかでよく出てくるJoeがWindows10のデモをしていました。   デモ スタートメニューと8スタイルのスタート画面 Action Centorが右から Action Centorにイメージとかコントロールとかインタラクティブななにかできる キーボード外すと右下押すとフルスクリーンタッチモード […]

REST API Azure Mobile Servicesでは、Clientライブラリが使えない場合、Http通信で操作できるようにREST APIが用意されています。 データを挿入するには

に向かってjsonコンテンツをPOSTします。   要求ヘッダー REST APIでは必要なヘッダーコンテンツを指定してPOSTすることでMobileServicesにアクセスすることができます。 REST APIのリファレンスのサイトに必要項目が書いてあります。 http://msdn.microsoft.com/ja-jp/library/azure/jj677200.aspx 要求ヘッダー 必須項目 Accept × このヘッダーには、application/json を設定します。 Content-Length ○ 要求本文の長さ。 Content-Type × このヘッダーには、application/json を設定します。 X-ZUMO-APPLICATION 条件 モバイル サービスのアプリケーション キー。テーブル操作へのアクセスに必要な場合は、有効なアプリケーション キーを指定する必要があります。これは既定のテーブル操作のアクセス権です。 X-ZUMO-AUTH 条件 認証されたユーザーのためのサービス生成された認証トークン。テーブル操作へのアクセスが必要な場合は、認証されたユーザーのためのトークンを指定する必要があります。 X-ZUMO-MASTER 条件 サービス マスター キー。テーブル操作へのアクセスに管理者アクセスが必要な場合は、このキーのみを含める必要があります。   X-ZUMO-APPLICATIONですが、モバイルサービスへのデータ挿入をアプリケーションキーを持っている場合のみにしている場合していする必要があります。 すべてのユーザーがデータ挿入可能にしているならば必要ありません。   .Netのサンプル System.Net.HttpClientを利用した場合以下の様なコードでデータを挿入することができます。 テーブル名は「testtable」、モバイルサービス名は「testgarimobile」でjson形式でコンテンツを送信します。

    レコードの挿入操作 http://msdn.microsoft.com/ja-jp/library/azure/jj677200.aspx

Streamとは テキストファイルのデータを読み込むとき、WindowsRuntimeではこのようなコードでデータを読み込むことができます。

FileIOのReadTextAsyncの1つのメソッドでファイルのすべてを読み込むことができるので非常に便利です。 しかし、このテキストファイルが非常に巨大だった場合どうなるでしょうか。   ReadTextAsyncは非同期メソッドですがいつまでも非同期読み込み処理が終わらず、巨大なデータのすべてが必要でない場合余計なデータまで読み込むためアプリのレスポンスが悪くなります。 ファイルの読み込みもそうですが、動画のネットワークデータ転送などの場合、すべてのデータを転送しないと動画を再生できないようなアプリケーションは非常に非効率的です。動画を現在転送できているデータ分だけ再生できるようにすべきです。   そのような問題を解決するために、WindowsRuntimeではStreamという概念を用意しています。(.Netでもあります) Streamとはデータが流れてくる川のようなもので、データを徐々に読み取ったりデータの一部だけ切り取って読み取ることができたりします。     先ほども書いたように、ファイルの読み取りやネットワークデータ転送などのI/Oですべてのデータを転送しきってからじゃないと読み取れないのは非効率なのでStreamのインターフェースはさまざまな入出力で用意されています。   WindowsRuntimeのStream WindowsRuntimeで用意されているStreamは以下の4つがあります。 IInputStream IOutputStream IRandomAccessStream InMemoryRandomAccessStream IInputStreamはストリームからメモリへの読み込みStreamを提供し、 IOutputStreamはメモリからストリームへの書き込みStreamを提供します。 IRandomAccessStreamは以下の継承関係の図のように、IInputStreamとIOutputStreamを継承、つまり読み込みと書き込みを提供します。 InMemoryRandomAccessStreamはメモリ内からメモリ内へのストリームに限定したStreamを提供します。         IInputStreamの実装を見てみます。   ReadAsyncメソッドのみを提供しています。 つまり、「何バイトを読み込む」ことしかできません。ReadAsyncを呼び出すたびにその数のバイトずつStreamから読み込むことができるので逐次的な読み込みを提供します。   IOutputStreamの実装を見てみます。 WriteAsyncとFlushAsyncの2つのメソッドを提供します。 WriteAsyncはそのバッファのデータ分だけStreamに逐次的に書き込みを行います。 FlushAsyncメソッドは少し特殊なメソッドでほとんど使用することがありません。 Windowsはストリームからデータを書き込むときに内部バッファにデータをキャッシュします。内部バッファがいっぱいになったときか、一定時間内部バッファにアクセスがなかった場合、内部バッファのデータを書き込みます。 つまり内部バッファがデータを保持しているときにシステムがダウンするとファイルにデータが書き込まれないわけです。 そこで重要なデータの場合、FlushAsyncメソッドを使用することで内部バッファのデータをファイルに即座に書き込みます。   しかし本当に重要なデータ以外でFlushAsyncメソッドを頻繁に使用するとアプリのパフォーマンスが低下してしまうためほとんどのアプリでFlushAsyncを使用する必要はありません。   IRandomAccessStreamの実装を見てみます。 IInputStreamとIOutputStreamはデータの逐次的な書き込みか読み込みを提供します。しかし「データのここからここまでを書き込みたい」とか、「データの最後何バイトだけ読み込みたい」みたいなことを実現することができません。   その機能を提供するのがIRandomAcccessStreamです。 IRandomAccessStreamはSeekメソッドを提供し、ストリームの好きな位置まで移動することができ、好きな位置からデータを読み込み、書き込みすることができます。まさにランダムアクセスが可能なわけです。     ストリームのサンプル ではストリームによるファイル読み込みと書き込みの簡単なサンプルを見てみましょう。

“ABCDEFG”7文字のデータ、つまりASCIIエンコードで7バイトのデータをファイルに書き込みます。 […]