BEST WINDOWS 8 APPS

 約1年ほど前に公開したストアアプリ「ひらがな書順習得」と「カタカナ書順習得」がBEST WINDOWS 8 APPSというサイトに掲載されました。





Hiragana Practice for Windows 8 and 8.1
Katakana Practice for Windows 8 and 8.1


 サイトの編集者によるレイティングがあるのですが、「ひらがな書順習得」が10点中7点で、「カタカナ書順習得」が10点中8点でした。点数が違うのは評価した編集者が違うからでしょうか。

RenderTargetBitmap.RenderAsyncメソッドの実行は画面に表示されたUIElementに限る

画面上のオブジェクトを画像に変換にする「あの機能が」が帰って来た! - マイクロソフト エバンジェリストのブログ



 上記のblogで書かれているように、Windows 8.1Windowsストアアプリでは新たに追加されたRenderTargetBitmapクラスを使ってUIElementを画像に変換することができるようになりました。


 しかし、このblogに書かれている「画面上のオブジェクト」という部分が非常に重要です。

            var btn = new Button();
            var rtb = new RenderTargetBitmap();
            await rtb.RenderAsync(btn);



 たとえば上記のようなコードを実行すると、「Value does not fall within the expected range.」というArgumentExceptionが発生します。





これはUIElementを単純にインスタンス化しただけで画面上に表示していないことが原因です。RenderAsyncメソッドを実行するにはUIElementがVisualTreeにきちんと追加されている必要があるようです。ちなみにWindows Phone(Silverlight)のWriteableBitmap ではインスタンス化しただけでも問題なくビットマップを取得できていたため、Windows Phoneアプリからの移植の場合につまずきやすいポイントだと思います。

            var btn = new Button();
            var rtb = new RenderTargetBitmap();
            LayoutRoot.Children.Add(btn);
            await rtb.RenderAsync(btn);



 このようにパネルに追加するコードを1行追加するだけで、正常にUIElementをビットマップ化することができます。画面上に表示されるのが都合が悪い場合は、追加するパネルのOpacityプロパティを0にすれば対応可能です。

Developers Summit 2013 Kansai Action!

 昨年に引き続き、今年も9月20日(金)に神戸でデブサミが開催されます。エバンジェリストという肩書ではなくなりましたが、今年もセッションを担当させていただきます。

Developers Summit 2013 Kansai Action!:C6.NET技術でこれからも食べていくための技術戦略
15:45-16:25


かつてVB(旧来版)が栄えた時代がありました。多くの業務アプリがこのVBという1つのツールと1つの言語で作られました。それから10年以上経った今、単一の言語、単一の技術だけを習得すればよい時代は終わりました。マルチデバイスやサービス志向というITコンシューマ化の流れは、既にビジネスの世界に変化をもたらしつつあります。.NETエンジニアはどのような技術の選択肢を持ち、どのような道を進めばよいのでしょうか。本セッションでは、多岐にわたる.NET技術を整理するとともに、グレープシティの戦略とソリューションもご紹介します。



 どんな感じのセッションなのかをここで少しご紹介します。2か月ほど前にマイクロソフトさんから.NET Technology Guide for Business Applicationsというドキュメントが公開されました。

http://www.microsoft.com/net/nettechnologyguidance



 このドキュメントは今日の多岐にわたる.NET技術をどう理解しどれを選択していくかといった内容がビジネスアプリという観点で書かれているものです。この内容を踏まえ、.NETエンジニアが今後こういったかたちでこういった技術に取り組んでいくとよいのではないかといった提案を、アプリケーションのモダン化を軸にお話しするつもりです。





 ご紹介する技術としては、今のところですが「ポータブルクラスライブラリ」、「Web API」、「シングルページアプリケーション」、「ViewSwitcher」あたりを予定しています(予定は変わる可能性があります)。また、このような流れをグレープシティがどのようにとらえ、どのようなソリューションを提供しているかもご紹介する予定です。


 皆様のご参加お待ちしています。よろしくお願いします。

Windows 8.1 Previewで変わったストアアプリの終了方法

How to close Windows Store Metro Apps in Windows 8.1



 Windows 8でストアアプリを終了させる場合、画面の上端をつかんで下端までドラッグ&ドロップするという方法がありました。Windows 8.1 Previewではこの方法でアプリが終了しなくなっています。実際にこの方法をWindows 8.1 Previewで試してみると、アプリスイッチャーにはアプリが表示されなくなるため終了したように思ってしまいますが、タスクマネージャを確認するとアプリは終了していないことがわかります。


Windows 8でストアアプリを本当に終了させるには、画面の上端をつかんで下端までドラッグし、その状態で2、3秒ほどクリックをしたままの状態とします。そうすると、アプリの画面が反転してアイコンが表示された状態となります。





 この状態になった上でドロップすれば、アプリが完全に終了します。タスクマネージャで確認する際は、終了するまでに10秒くらいはかかるので注意してください。


 より詳しい紹介動画があることを動画アップロード後に知りました。こちらをご覧いただいたほうが理解しやすいと思います。




Windowsフォーム、Windows 8のシェア、タッチ対応

 以下の図は去年の12月のVSUG DAYのセッション資料の1ページです。





 減ってきてはいるものの、依然としてWindowsフォームが強いことが分かります。


 そして、これはWindows 7も同じです。Windows 8Windows Vistaのシェアを抜き、確実にその数を増やしつつあるものの現時点ではまだWindows 7Windows XPが主流です。


Windows 8の世界OS市場シェアが5.6%で初のVista超え──Net Applications調べ - ITmedia NEWS


 しかし、たとえ一部であってもタッチ可能なWindows 8バイスが入ってきてしまうと、アプリケーション側はタッチによって操作されてしまうことを拒むことはできません。1年ほど前にグレープシティで公開したホワイトペーパーでは以下のように記載しています。

デスクトップアプリケーションのタッチ対応
デスクトップアプリケーションのタッチ対応を考える前に、まずデスクトップアプリケーションがタッチに対応する必要があるのかという点を確認しておくべきでしょう。タッチ操作向けのアプリケーションはMetroスタイルアプリケーションが適しているため、本来であればデスクトップアプリケーションがタッチに対応する必要はありません。しかしながら、これまで述べてきたようにタッチ可能なWindows PCは要不要に関わらず、身近に存在するようになります。そうなったとき、タッチ操作を意識していないデスクトップアプリケーションもタッチされてしまうという事態が発生します。それをアプリケーション側から拒むことはできません。
それ故に、既存資産であるデスクトップアプリケーションを最低限のタッチ操作に対応させたいという需要は、一定数存在するようになると予想しています。



 このような状況への一つのソリューションとして、今回グレープシティから、いつもの業務アプリケーションをそのままタッチ対応アプリにリメイクするという製品を発表しました。






 MultiTouch for Windows Formsは、Visual Studioツールボックスから、コンポーネントをフォーム上へドラッグ&ドロップするだけで、タッチ操作によるフォームの拡大機能を追加する製品です。


 Windows 8がインストールされているタッチ可能なデバイスをお持ちの方は、以下にClickOnceによるデモがありますので、是非実際にタッチ操作を行って試してみてください。


デモアプリケーション


関連ページ
アプリケーション開発支援ツール/コンポーネント/ライブラリ | Developer Tools - グレープシティ株式会社
アプリケーション開発支援ツール/コンポーネント/ライブラリ | Developer Tools - グレープシティ株式会社
TouchToolkit for WinForms | ComponentOne - グレープシティ株式会社

Windows 8.1 Previewにおける8つのデスクトップ派ユーザー向け機能

  1. スタートボタン(デフォルトで表示、むしろ非表示にできない)
  2. 起動時にデスクトップを表示
  3. 左上にマウスを持っていってもアプリスイッチャーを表示しない(これによって左上で連続クリックしてアプリを切り替えることができなくなる)
  4. 完全にアプリスイッチャーを無効にする(Alt + Tabはデスクトップアプリのみを切替)
  5. 右上にマウスを持っていってもチャームを表示しない(ウィンドウの×ボタン押すときに邪魔にならない)
  6. スタートボタン押したときにアプリビューを表示する
  7. アプリビューのカテゴリによるソートでデスクトップアプリを先頭に表示する
  8. スタートボタンを右クリックしてシャットダウンができる



 上記の機能のほとんどは下の図の[タスクバーとナビゲーションのプロパティ]ダイアログの[ナビゲーション]タブから設定できます。





 ただし、4番目の「完全にアプリスイッチャーを無効にする」というというのはMetroな画面のほうの「PC設定」から設定します(この機能は結構強力だと思う)。[PCとデバイス]-[コーナーとエッジ]にある「アプリを切り替えて使う」をオフにします。





 これをオフに設定すると3番目の設定であるタスクバーとナビゲーションのプロパティ]ダイアログの「左上隅をクリックしたときに、最近使ったアプリを切り替える」のチェックボックスは無効化されます。


 細かい動きは言葉で説明するのは難しいので、Preview版をインストールされている方は是非試してみてください。

一つの画面に3つ以上ストアプリを表示する条件




 blogの投稿がほとんどなくてすみません。これまではきちんとした記事っぽくblogを書こうと努めていたのですが、あまりblogに時間をとれませんので、今後はもっとライトに、ある意味blogっぽく書いていこうと思います。


 Windows 8.1になり、スナップ状態といった動作は関係がなくなり、普通にストアプリを複数表示することができるようになったのは多くの方がご存知かと思います。もし、知らなかったという方は以下の動画をご覧ください。





 では、一つの画面にはいくつまで同時にストアプリを表示することができるのでしょうか。それは画面の横方向の画素数(一般的には解像度と呼ばれているもの)に依存します。ドキュメントとして記載があったわけではないのですが、どうも500ピクセル単位で表示できるアプリが増えるようです。つまり、1000ピクセル以上1500ピクセル未満の解像度では2つ、1500ピクセル以上2000ピクセル未満では3つ、2000ピクセル以上では4つです。実環境がないのでシミュレータで試しただけなのですが、2560ピクセルの環境で5つは表示できないことから、最高で4つまでのなのかもしれません。誰かKIRAとかIGZO持っている方がいましたら、試して教えてください。