[win8.1]スタート画面のタイルを動的に作成する(実践編)

[win8] スタート画面のタイルを動的に作成する(前哨戦) – Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/3443

なところで、C++/CX(DirectX)を使って、スタート画面のタイルを動的に生成する方法を試していたのですが、8.1 になると、RenderTargetBitmap を使って、もっと簡単にできます。

TileTemplateType
http://msdn.microsoft.com/en-us/library/windows.ui.notifications.tiletemplatetype.aspx

を参照すると、タイルには色々と設定ができるのですが、いわゆる「フルカスタマイズ」という方法は用意されていません。画像の配置とシステムフォントを組み合わせた、Microsoft の推奨の方法に従うパターンになります。8 の頃から見ると、TileTemplateType の種類も増えており、色々とできるような気もするのですが、やっぱり「自由なタイル」というのを作ってみたいわけです。

こんな風に、フォントには「MV Boli」を使い、色も変えてしまいます。XAML としては以下のように Grid 要素内に好きなように画像やテキストを配置していきます。

<Grid Grid.Row="2"
    x:Name="panel"
    HorizontalAlignment="Left" Height="310" Margin="219,132,0,0" 
	VerticalAlignment="Top" Width="310">
    <Image 
        x:Name="imageTile"
        HorizontalAlignment="Left" Height="310" VerticalAlignment="Top" Width="310" 
		Source="Assets/hidamari.png"/>
    <TextBlock 
        x:Name="textTitle"
        HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="Wrap" 
		Text="Hidamari Sketch" VerticalAlignment="Top" FontSize="32" 
		FontFamily="MV Boli" Foreground="#FFE0567C"/>
    <TextBlock 
        x:Name="textNum"
        HorizontalAlignment="Right" Margin="0,248,56,0" TextWrapping="Wrap" 
		Text="{Binding Item.TextNum}" VerticalAlignment="Top" FontSize="32" 
		FontFamily="MV Boli" Width="171" TextAlignment="Right" Foreground="#FFF0E0E4"/>
</Grid>

前回の C++/CX 版の場合は、DirectX を使ってがりがりと書いていかないと駄目だったのですが、8.1 の場合は RenderTargetBitmap クラスを使って、Grid 要素の中身を PNG 形式に保存ができます。

■PNG形式で保存する

保存先はアプリケーションのローカルフォルダにします。こうすることで、タイルに画像を指定することができます。他にも Image 要素の Source にしてすることもできるし、かなり便利です。

/// <summary>
/// ローカルフォルダにタイルを作成
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void ClickMakeTile(object sender, RoutedEventArgs e)
{
    _filename = string.Format("hidamariTile-{0}.png", _model.TextNum);

    RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
    await renderTargetBitmap.RenderAsync(this.panel);
    var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();
    var file = await ApplicationData.Current.LocalFolder.CreateFileAsync(
        this._filename, CreationCollisionOption.ReplaceExisting);

    using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
    {
        var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fileStream);
        encoder.SetPixelData(
            BitmapPixelFormat.Bgra8,
            BitmapAlphaMode.Ignore,
            (uint)renderTargetBitmap.PixelWidth,
            (uint)renderTargetBitmap.PixelHeight,
            DisplayInformation.GetForCurrentView().LogicalDpi,
            DisplayInformation.GetForCurrentView().LogicalDpi,
            pixelBuffer.ToArray());

        await encoder.FlushAsync();
    }
    Debug.WriteLine("パス:{0}", file.Path);
}

ファイル名を hidamariTile-{0}.png のようにしているのは、タイルに指定するときの画像ファイルをユニークにするためです。どうやら、同じファイル名にするとスタート画面は前のタイルを利用するらしく画像がうまく更新されません。これが、TileSquare310x310Image だけの現象なのかは分かりません。ひょっとすると、前回のファイル名と違っていればいいのかも、なので、2つのファイル名を交互に使うというハックでもいいと思います。

■保存したPNGファイルをタイルに設定する

今回、更新するタイルは 310×310 のサイズの大きなタイルにしました。TileTemplateType の enum 値は 8 の時とがらりと変わっているので、8.1 に移行させるときは注意が必要です。まあ enum 値を適当に直すだけですけどね。

/// <summary>
/// 作成したタイルを設定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClickSetTile(object sender, RoutedEventArgs e)
{
    // タイルをアップデート
    var tileTemplate = TileTemplateType.TileSquare310x310Image;
    var doc = TileUpdateManager.GetTemplateContent(tileTemplate);
    var xml = doc.GetXml();
    var images = doc.GetElementsByTagName("image");
    var img = (XmlElement)images.Item(0);
    img.SetAttribute("src", "ms-appdata:///local/" + this._filename);
    // 通知
    var notify = new TileNotification(doc);
    TileUpdateManager.CreateTileUpdaterForApplication().Update(notify);
}

タイルは Xml 形式なので、自前で設定してさほど難しくはありません。適当な関数でくるんでしまえばよいかと。ここでは、XmlDocument を使っていますが、XDocument を使ったほうが楽です。C++/CX のコードが XmlDocument だったので、面倒なのでそのまま引き写しました。

ここの例では、MyModel の TextNum プロパティしか変更していませんが、自分のアプリに合わせて適当なクラスを作ればよいでしょう。あまり汎用的にはせずに、自前のアプリに沿わせるのがベターです。

■実行してみる

「make tile」して画像に保存してから「set tile」すると、スタート画面のタイルが切り替わります。

定期的に変えれば、スタート画面に表示できる時計も作れるし(しかも画像やテキストなどの配置は自由)、サブタイルを利用すれば手持ちの動画ファイルや youtube の画像へのリンクをスタート画面に置くことが可能です。mpg 形式や youtube のプレビュー画面は API を使えば簡単に取得できるので、これは後ほど紹介します。手元の「VS100連発」で使っている方法です…公開はしてなかったかも。これは後で作る予定です。
そんな訳で、8.1 を使って、ちょっと変わったタイルを作って、ストアアプリの目立ち度で差をつけましょう、とかとか。

サンプルコードは、SkyDrive に置いておきます。
http://sdrv.ms/13rcsOk

カテゴリー: C#, WinRT | [win8.1]スタート画面のタイルを動的に作成する(実践編) はコメントを受け付けていません

[win8.1] RenderTargetBitmapクラスで、XAMLをビットマップ形式で保存する

WPFには RenderTargetBitmap クラスがあって、XAMLの要素を指定して画像を保存できたのですが、なぜか Windows 8 ではできませんでした。が、Windows 8.1 になって、これが導入されたのでストアアプリでお絵かきツールが作れますよ。ってのが、今回の変更で一番大きいかと…いや、そういう方もいらっしゃると思います。

XAML render to bitmap sample (Windows 8.1)
http://code.msdn.microsoft.com/windowsapps/XAML-render-to-bitmap-dd4f549f

をダウンロードすると、動的に矩形を追加させた後 grid を保存できます。
あれこれと、ごちゃごちゃしたサンプルなので、ばっさりと削ってしまってあらかじめ Canvas に Image やら TextBlock やらを貼り付けておいて、PNG形式で保存するソースが以下です。

private async void Button_Click(object sender, RoutedEventArgs e)
{
    // Render to an image at the current system scale and retrieve pixel contents
    RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
    await renderTargetBitmap.RenderAsync(this.panel);
    var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();

    var savePicker = new FileSavePicker();
    savePicker.DefaultFileExtension = ".png";
    savePicker.FileTypeChoices.Add(".png", new List<string> { ".png" });
    savePicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
    savePicker.SuggestedFileName = "snapshot.png";

    // Prompt the user to select a file
    var saveFile = await savePicker.PickSaveFileAsync();

    // Verify the user selected a file
    if (saveFile == null)
        return;

    // Encode the image to the selected file on disk
    using (var fileStream = await saveFile.OpenAsync(FileAccessMode.ReadWrite))
    {
        var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fileStream);

        encoder.SetPixelData(
            BitmapPixelFormat.Bgra8,
            BitmapAlphaMode.Ignore,
            (uint)renderTargetBitmap.PixelWidth,
            (uint)renderTargetBitmap.PixelHeight,
            DisplayInformation.GetForCurrentView().LogicalDpi,
            DisplayInformation.GetForCurrentView().LogicalDpi,
            pixelBuffer.ToArray());

        await encoder.FlushAsync();
    }
}

サンプルより抜粋…というか、そのままですね。RenderTargetBitmap クラスの RenderAsync メソッドで XAML 要素からレンダリングの画像データを取ってきて、GetPixelsAsync メソッドで byte 配列にします。実に簡単。。必要な namespace は、適宜 VS2013 preview を使って加えてください。

デザイン時に以下のように画像を貼り付けます。Opacity で半透明にしたりとか色々。回転させても大丈夫です。

実行時

そして、Save ボタンを押して保存した結果

バカバカしいほど簡単にできます…つーか、これが Windows 8 で実装されていなかったのが不思議なぐらい。
ちなみに画面の外に出てしまった時はどうなるのか?というと、大丈夫です。きちんと RenderTargetBitmap が対象にしている XAML 配下をきちんとレンダリングしてくれているので、はみ出た分も画像ファイルとして保存されます。
これでストア版のお絵かきツール作成がはかどりますね。

サンプルのダウンロードは以下からどうぞ
PanelToBitmap-v0.1.zip
http://sdrv.ms/1aEOZeu

カテゴリー: C#, WinRT | [win8.1] RenderTargetBitmapクラスで、XAMLをビットマップ形式で保存する はコメントを受け付けていません

Acer w500 に Windows 8.1 preview を入れる

最新のではなくて、ひと昔前の Windows 7 がプリインストールされていたバージョン 日本エイサーサポート|ICONIA TAB W500 に Windows 8.1 preview を入れます。

実は、このタブレットは去年の COD2012 用に買ったもので、Windows 8 プレビューあたりから使っています。今年の3月に Surface RT を買ってからめっきり出番がなくなってしまいましたが、CPU が Intel 製なので、Windows 8 Pro のほうを入れられます。Surface RT のほうは、ダークな使い方をしないとダメなんですが、Acer w500 であれば、Windows 8 Pro で普通にタブレットができるって訳ですね。あと、このタブレットは解像度が少し狭くて、Windows 8 ではスナップができなかったのですが、Windows 8.1 の改変でスナップ…というか画面のハーフ状態ができるようになっています。

結論から言えば、Windows 8 よりも 8.1 で快適に動いています…と言いますか、まだ動画を無縁LANで流すぐらいしか使っていないのと、いくつかスタート画面を開いて操作している感じだけなんでけど、動画とびとびにならないし(Windows 8 正式版では時々もたついていた)、スタート画面のスクロールや、デスクトップのスナップなど全然問題ありません。設定自体はリモートデスクトップが使えるので、本体にキーボードを用意する必要もありません。純粋にタブレットPCとして使うことができます。

image

バッテリーの持ちは、もともと4時間ぐらしか持たないので、同じぐらいかなと。映画1本を流しても途中で途切れないので、これはこれでいいと思います。ただ、外に持って行く場合はバッテリーが必要ですよね。後、重さが1kg近くと重たいので、外にはノートパソコンを持っていたほうがいいみたい。

Acer w500 の場合は、ハードの Win ボタンが左下にあります。このために、デスクトップのスタートボタンと位置がダブる…んですが、別に構いません。タブレットとして使っている場合はほとんどデスクトップを使わない訳で、スタートボタンが有ろうと無かろうと関係ありません。Acer w500 ののハードボタンはちょっと押すのに力がいるので( Surface RT のように接触型のボタンではないし、iPhone のホームボタンよりも力がいる)主に右から出るチャームの Win ボタンを使っていました。あと、音量もチャームから使っています。

実は、Windows 8 の音量操作(Windows 8.1 も同じ)はよく考えられていて、指を添えた位置が現在の音量の位置になっています。なので、指をつけたまま上下にスライドさせることで音量を変えることができます。ええ、何が便利かわかりにくいと思いますが、標準の「ビデオアプリ」の音量は、音量のアイコンを押したときに音量の状態がフライアウトで表示されるので、いちいち指を離さないとダメなんですね。これはマウスの場合は普通に思えるのですが、タブレットの場合は、先の方式のほうが全然便利です。

image

こんな風に、チャームの音量は指を離さずに済みます。

image

ビデオアプリの場合は、「標準的な」フライアウトを使っているので、いちいち指を離さないとダメなんですね。フラットデザイン云々じゃなくて、こういうユーザーインターフェースの気遣いってのが大切ですよ…ってのはさておき、

image

スペック的には、AMD 1.00 GHz、メモリは 2GB しかないので、かなり貧弱な環境です。HDD も 32GB 程度しかなくて、現在の空き容量は 15GB ぐらいしかありません。あ、そうそう。Surface RT と違って MS-Office が入っていないので、割高といえば割高ですが。

image

Windows 8 の発売当初からあった、montezuma というゲーム(元PCゲーム)なんですが、8.1 の場合は普通に遊べる位に動きます。これ、Windows 8 の時はタッチがおかしな動きをしてまともに遊べないし、駒の動きは遅いし…で Acer w500 のグラフィックボードの非力さ?に足を引っ張られていたのですが、Windows 8.1 のドライバー(おそらくGPUまわりの DirectX)が改善されたのかスムースに動いています。ちなみに、Surface RT では問題なく動き、一番スムースなのが初代iPad だったりします。これはかなりチューニングされている模様。

■問題点

無線LANですが、なぜか 802.11n を認識せずに、802.11g の方につなぎに行きます。Atheros AR9285 802.11b/g/n なので、11n でも大丈夫なはずなのですが、指定のルータが見当たりません。うちの環境では、iPhone 4 のために 11g を残しているのですが、ちょっとこれは困ったかなと。

あと、Windows 8 では回転も認識していたのですが、8.1 preview ではダメなりました。カメラはそのまま動くので、3G センサーのドライバーがおかしいのかも。日本エイサーサポート|ICONIA TAB W500 に、Windows 8 用のドライバーがあるので、後で入れて確認してみましょう。

ちなみに、Windows 8.1 ではストアからダウンロードした時点では、スタート画面には現れません。なので、Windows 8 を使っているときは「???何処にダウンロードしたんだろう???」ってな気分になるのですが、新しく追加されたアプリ一覧のほうにアイコンが追加されています。なので、ここからスタート画面にいちいちピン留めしないという手間が…。これは要改善ですね。

image

アプリ一覧は、こんな風に「インストール日順」に変えておくと便利です。そうするとインストールしたアプリは必ず左上に来ますからね。この例は、Visual Studio 2013 preview のサンプルをばしばしビルド実行(ビルド実行すると自動的にインストール状態になるのです)したので、こんな風になっています。Windows 7 の「すべてのプログラム」の場合は、最近インストールしたアプリはオレンジになる設定があったので、あんなふうなのが欲しい感じ。スタート画面に「最近インストールしたアプリ」のグループに自動的に突っ込む感じでもOKかと。

カテゴリー: windows 8 | 5件のコメント

Visual Studio 2013 Preview の変更点をざっと

Windows 8.1 Preview – Microsoft Windows
http://windows.microsoft.com/ja-jp/windows-8/preview

Visual Studio 2013 Preview | Microsoft Visual Studio
http://www.microsoft.com/visualstudio/jpn/2013-preview

Visual Studio 2013 は Windows 8.1 でしかストアアプリの開発ができないので、両方をそろえる必要がある。第一番にやったのが、「ひと目でわかる~」のC#版のサンプルの起動。シミュレーター自体の起動が、最初ひっかかかるのだが、OS を再起動すればOKな模様。

image

外見上は問題ないので、このまま 2013 にコンバートすればOKかというとそうではないという話。

サンプルプログラムは、Visual Studio 2012 付属の「グリッドアプリケーション」をベースにして、アプリを組み立てることになっている。グリッドアプリケーションは、いくつかのクラスが自動でインストールされていて、スナップ表示やデータバインドが(多少)やりやすくなっている。

image

が、Visual Studio 2013 でグリッドアプリケーションのテンプレートを使うと、Common フォルダ配下がかなり異なっている。

image

MVVM に必須な(というか実装いている)BindableBase.cs ファイルがない。SampleData.json が増えている。ってことは、SampleDataSource クラスの中身が変わってしまっている可能性が高い。

image

SampleDataSourceを見てみると、案の定、単純な POJO クラスになっている。INotifyPropertyChanged インターフェースがないので、MVVM 自体をあきらめてしまているか、それとも別の実装の仕方をするか、というところであろう。なのでグリッドアプリケーションの場合は、個々のアイテムはプロパティの変更通知経由「ではない」ということになる。これは、ちょっと…まあ、グリッド表示自体はデータの変更をする必要がない(初回の読み込みのみ)ので、この実装でもいいのだが、2012 のテンプレートではデータ数やデータの変更を考慮したものになっているものの、2013 のテンプレートは「全く考慮していない」というコードになっている。まあ、いいんだけど。

もうひとつ、変更点が大きいところにスナップ表示がある。前々から 8.1 のスナップはサイズが可変になることが知っていたので、そのところの細かい言及は避けていたのだが、8.1 の XAML テンプレートには VisualStateManager の記述がない。え?そうなると、回転とかスナップはどうなると?と思ってみたが、シミュレーターで動かすと回転もスナップも OK。つまり、VisualStateManager を使わない(間接的に使ってる?)方式に代わっている。

image

まあ、2012 の VisualStateManager の記述は、Storyboard を使っているハック的な記述なので、消えてしまうに越したことはないのだが、独自にスナップとか回転とかに対応する場合はどうんですかね?基本ページを使えばOKですかね?という疑問は残る。動かしてみると、2012 ではグリッドアプリケーションはスナップに対応しているのだが、2013 のテンプレートはスナップに対応してない。

image

image

もともとが VisualStateManager を使って、ListView 形式に直しているので、同じ実装が 2013 のグリッドアプリケーションに求められるところだ…が、どうなるかよくわからない。

ApplicationViewState enumeration (Windows)
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.viewmanagement.applicationviewstate.aspx

この API 自体が 8.1 で消えるようなことが書いてある(本当に消えるかどうかは分からない)ので、なんらかの対処をしてくると思う。たぶん、ぐだぐだなソースが。ちなみに、2012 にあった「状態記録の有効」という疑似的に Storyboard を作ってくれる機能までなくなってしまっているので、別の手段(手動?)が必要となる。

GroupedItemsPage クラスをよく見てみると、

public sealed partial class GroupedItemsPage : Page

ってことになっていて、便利な LayoutAwarePage を継承していない。LayoutAwarePage の中で回転などの制御を行っているので、2013 では自前ってことになる。まあ、中途半端なソースだと思うので、これが正式なのかはわからない。ただし、NavigationHelper という怪しげなクラスを作って、中身が LayoutAwarePage に似ているので、これを使うのだろう。Page クラスを継承して中間クラスを作る LayoutAwarePage  の方式よりも、一見ヘルパークラスのほうが良さげに見えるが、OnNavigatedTo なり OnNavigatedFrom なりで、いちいちヘルパークラスのメソッドを手動で呼び出さなければいけないので、保守性としてダメダメ。Page.OnNavigatedTo 等が protected なので、こういう処理になっているのだが、このダサい方法ならば、どうせテンプレート出力なので中間クラスを作ったほうが保守性は高い。まあ、このあたりもどうなるかわからない。

そんな訳で、結構ごっそりサンプルを書き換えないとダメなんだが、どうしたものか。プレビューの2013では、スナップや対応していない(ListView化されない)、回転は GridView コントロールのリサイズに頼っている状態なので、リサイズや回転に対応していない状態になる。ここが Microsoft のサンプルとして正式にどうなるのか見極めたうえで、サンプルの修正案を考えようかな。

ちなみに「ハブアプリ」ってあるけど、デバッグ実行ができません。XAML の記述が間違っているっぽい。

image

なので、状態としてはベータ版というよりも、アルファ版っぽい動きな感じ。

カテゴリー: windows 8 | Visual Studio 2013 Preview の変更点をざっと はコメントを受け付けていません

Windows 8.1 変更点をざっと

Windows 8.1 Preview – Microsoft Windows
http://windows.microsoft.com/ja-jp/windows-8/preview

Visual Studio 2013 Preview | Microsoft Visual Studio
http://www.microsoft.com/visualstudio/jpn/2013-preview

Visual Studio 2013 は、Windows 8.1 上でしかストアアプリを作れない。この状況は、Windows 8 上でしか Visual Studio 2012 でストアアプリを作れなかったのと同じなので、ランタイム&シミュレーターの動作(事実上の自分自身へのリモートデスクトップ)に関わるものなので仕方がないのかもしれないが、Windows 8.1 マシンに対してのリモートデバッグができれば十分な訳で、今後、毎年発売されるであろう(と以前のMS のアナウンスにはある)Windows 8.2 ?を考えると、ちょっと開発環境の見直しは必要かもしれない。ただし、Azure 上での仮想VMを使った開発も可能になっている(実際、Azure上に今回のプレビュー版がインストールされたものが用意されているとのこと)ことを考えると、プレビューでの開発自体(あるいは本開発も)は仮想上で行うことを考えるのがベターかもしれない。実際、私の場合は VMWare 上で Windows 8.1 を動かしているし、グラフィック操作の多いゲームアプリ開発でなければ、仮想上で十分かもしれない(逆に言えば、ゲーム開発の場合は困ることになりかねない)。

image

復活したかのように見える「スタートボタン」ではあるが、左下にアイコンがあるだけ。このアイコンを押すと Windows 8 と同じようにスタート画面が開かれる。普通にWindowsキーを押した時と同じ動作になる。これはひどい…処置で、Windows 7 のようにスタートボタンを使いたい場合には別途フリーソフトなどをインストールするといいだろう。私は使わないけど。

image image

いくつかの記事で、こんな風なメニュー(左)を出しているものもあるが、これはマウスを右クリックしたときのコンテキストメニュー。Windows 8(右) で既にあったもの。コマンドライン関係が、「コマンドプロンプト」から「Windows PowerShell」に代わってしまっている。いつものコマンドプロンプトを出したい場合は、Win キーから cmd で検索すればok。

が、検索方法の変更があって、Windows 8 ではアプリケーションだけを検索対象にしたりストアを検索したりということができたのだが、8.1 では、「すべての場所」がデフォルトになっている。

image image

これは、いままで「アプリ」に限定するとか「設定」だけを検索するとか、Amazon アプリを検索対象にするとかできたのだが、すべて Bing による検索に置き換わっている。なので、内部的に「検索コントラクト」を使うことができない?仕様になっているのではないか、と想像できる。ちなみに、いちいち Bing に検索しに行くので検索スピードは遅い。

チャームでの検索ができなくなっている証拠に、Windows ストアの右上には「アプリの検索」という入力が増えている。ここで検索をすると、ストア内の検索(アプリ内検索)になる。Windows 8 の場合は、チャームから「ストア」を選択すれば、ストア内の検索になったので、いちいちストアアプリを立ち上げないとダメ、という不便さがある。が、アプリに検索機能があるという直観的な操作(Windows 8 での直観的な悪さ)という意味もある。このあたりは離反する…のだが。

image

では、チャームにある検索の場合はどうなるかというと、アプリ内ではなくて、Bing 検索になってしまっているので「amazon」アプリを探そうとしても他の検索結果(インターネット上のamazonのサイトとか)が検索に引っ掛かって、アプリにたどり着けない…こともないのだが。

image

こんな風に右端に amazon アプリのアイコンが出てくる。

image

この操作/変更がまずいのは、チャームの検索が Windows 8 では、アプリ内検索を優先として行い、特にアプリが起動されたときには検索対象はそのアプリが優先されている、ことに対して、Windows 8.1 は、アプリを立ち上げているにも関わらず、チャームの検索はグローバルな検索(Bing検索)に走ってしまうという「コンテクスト(文脈)」を無視した動きをするため、直観的ではない。

スナップに関しては、ちょっと奇妙な操作が実現されている。慣れなのかもしれないが、スナップ表示のデフォルトは画面の半分ずつで、Windows 8 のように 320px にする場合は、一度マウスで寄せてやらないとけない。スナップになるとフィル(スナップの反対側)になるときと、どのように区別するのかはプログラム的には「区別してない」と思う。多分、画面サイズを判断してレイアウトを動的に変更する必要がある。このあたり、スナップは「320px 固定」が嘘になってしまった時でもある。

image

さて、ハーフの場合にアプリを起動すると、真ん中に起動中のが麺がでてくる右左のどちらかをタッチすればそちらのスナップに起動されるのだが、この状態のときには迷う。かつ、アプリケーションは、この状態の時は「起動中なのか?」という問題がある。たぶん、フラッシュ画面を表示しているだけ(内部的には起動前の状態か?)と思うのだが、フラッシュ画面は動的に作ることができる(特にゲームの場合)ので、この時は不明。更に言うと、片方が 320px の場合もこの選択画面がでる。

Windows 8 の場合、デュアルディスプレイの場合、1つの面にしかストアアプリが表示できなかったが、8.1 の場合は、両方の画面にストアアプリが表示できる。そもそも Windows 8 のときの制限がおかしいので、これが撤廃されたのは良いのだが、そうなると内部的に変なことになっていないのか?が気になるところ。

image

スタート画面の背景は、タスクバーを右クリックしてプロパティを選択して「ナビゲーション」で変更できる。「スタート画面にデスクトップの背景を表示する」ので、デスクトップの背景と同じものなる。たぶん、タイルを移動させたときの背景のスライドみたいなのはできなくなるかなと。

ちなみに、Windows ストアのインターフェースなのだが、左の大きな画像は縦スクロール(マウスのホイールで動く)で、右の小さ目の画像は横スクロールで動く。これは、Microsoft 自身がデザインガイドラインで出していた「違反」の例である…のだが、元ネタが見つからん。要は、縦スクロールと横スクロールの混在は、ユーザーを混乱させるか望ましくない、という記述だったんだよね。

image

ただし、あのガイドライン自体が「人間工学的」ではないので、それらのガイドラインを無視した Windows ストアのアプリは、それはそれで良いかなと。

image

ただし、カテゴリがなくなってしまったので、いちいちメニューをダサいないといけない。色々なアプリが混在している状態なのと、タブレットの場合はスクロール(スワイプ)するのはそれほど手間ではないし、エモーショナル的に「楽しい演出」であるので、残してほしかったところ。何かを選ぶときに、カタログをぺらぺらとめくって色々なものから選ぶ、作業は楽しいでしょう?目的に即達したい場合と、いろいろと眺めて楽しみたい場合があるので、そのあたりは区別して作らないといけない。そのあたりが忘れ去れてたアプリ設計になってしまっている。

あと、エクスプローラーの変更で重要なのが「ライブラリ」の扱い。

image

いままで、ライブラリという疑似フォルダの中に、「ドキュメント」やら「ピクチャ」やらがあったのだが、8.1 の場合は、「PC」の下に配置されている。「PC」自体が、「コンピューター」だったのでこの変更は、Windows 7 からのユーザーや、あらゆる初心者本に影響が出てくる。電話でお客さんに対応する時、OS が Windows XP なのか Windows 7 なのか、Windows 8 なのか、Windows 8.1 なのかを確認しないと「マイコンピューター」なのか「コンピューター」なのか「PC」なのかが判断できない。できれば「コンピューター」に戻してほしいところなのだが…。チャームの設定画面では、Windows 8 の頃から「PC設定の変更」になっているので、既に用語の混乱が起きている。

ひとまず Windows 8.1 はこんな感じ。利用者からすれば、初めて買った PC に Windows 8.1 が入っている分には問題は少ないかと。検索のところが Bing 検索なのでちょっと遅い(設定で、Bing 検索をしに行かない設定もできる)のが難点なのと、ストアからインストールしたときにスタート画面に出てこない(アプリ一覧に出てくる)ので、いちいち「スタートにピン止め」をしないとダメなのが難点かな。

ちなみに、私のスタート画面(Windows 8)をセマンティックズームすると、これぐらいのアイコンが配置されている。ごちゃごちゃして不便かと思いきや、大抵のアプリは「アプリ検索」で起動してしまうのでスタート画面でマウスを使うことはない。また、よく使うアイコンを左に、テスト用デバッグ用が右に配置されるので、タブレットでスクロールさせたときも問題はない。

image

なので、Windows 8.1 のようにあらかじめ整理されたスタート画面はあまり必要ないと言える。まあ、このタイル表示は Windows Phone からの影響が強いので、見た目を強く意識するしたものだと思うのだが。

カテゴリー: windows 8 | Windows 8.1 変更点をざっと はコメントを受け付けていません

Windows8とスーパーフラット

以下、ネタです。信用しないようにw

Windows 8 や iOS 7 で採用されたフラットデザイン(元メトロデザイン、モダンスタイル)は、シンプルかつ二次元的、薄っぺらい表層のみの消費行動の価値の創出としてあらわれた「スーパーフラット」に スーパーフラット – Wikipedia に源流をもつのは周知の事実である…かどうかわからないのでここに言及しておこう。

 image

スーパーフラットは、2000年に村上隆氏が開いた展覧会に端を発する。日本のアニメーションのパクリを海外に広めて、海外から不当に高い評価を受け、二次創作のフィギュアを粗製乱造してはあれこれと億円単位の落札に至るという実にうらやましい…もとへ、けしからん出来あいのフラットデザインなのだが、その下流に、Windows 8 と iOS 7 がいるということは、実はかなり考え直さねばッ!!! というところに私は至っている。ええ、嫌村上流もあれこれということで、ジョブズも彼の毒牙に?と思わざるを得ないのである。

しかし、現実としてスーパーフラットは Windows 8 のデザイン、そして iOS 7 のデザインに採用されている。実は、その前から Google の色合いがスーパーフラットの薄っぺらな配色に近くなり、青味を加えるとか色彩をちっとばかしずらすのに数十万ドル使うとか、そんなことは google を使っている素人にはどうでもいい(というか、私は google のトップぺーずは全く使わずに検索窓だけ使うから google のロゴなんてどうでもいいし、ましてや google+ なんて登録しただけ全然つかっていないし、規約が変わってしまったら個人情報云々が流れてしまう facebook は google とは違うのであれなのだが、スマートフォンのホームページに facebook が流れているって一体どうなん?いつでも眺めているの?君はいつ仕事をするの?それってスマートフォンジャンキーじゃないの?と思ったり、いやいや、その前に「スマホ」ってなんですか?「オナホ」と間違えたらどうするの?とたまに考えてみたりする訳ですが、そんなことは今回のフラットデザインには全く関係なく…もないけど、話を元に戻して)、ロゴの微妙な違いは確かに CI としては有効なのかもしれないが、流動性あるところあるいは双方向性のネットワーク(まさしく、インターネッツ民)のところでは、聞く耳持たんッ!!! 戦略でいけば、まあ、自己中なデザインをしてもそれはそれでよくて、まあ、そこにスーパーフラットの旗手たるところがある。ええ、評価してますッ!!!

さて、調べに対しては未調査部分が多く、単純な思い付きなのだが、スーパーフラットのさらに源流は、

SLIM G

協和ハーモネット(元協和電線産業?)の SUPER FLAT G ではないか?と考えている。あの丸い有線LANケーブルをフラットにしたことによって「自社開発の超薄型でソフトなLANケーブルです。しかもカテゴリー6準拠のハイスペック。薄いから狭い隙間の配線やカーペットの下、壁麺の配線等に最適です」という訳で、私は愛用してたり愛用してなかったりするわけですが、このLANケーブルの配線は会社の取り回しの場合は太くてもいいんですが、持ち運びだったり、家で配線する場合には本棚の裏に配線させたりするのに薄い方がいいんですね。なので、ここで SUPER FLAT G の出番ですよッ!!! ごはんですよッ!!! ってな訳で、ごはんは進みませんが、LAN ケーブルの中には電子が進む進む。その速さや光速の3倍に至る…訳はなく、ええ、Windows 7 よりも Windows 8 はファイル転送のプロトコルが軽くなったらしく、LAN ケーブルを早くて太くすれば伝送量も2倍3倍に跳ね上がります。音質も上がって、クリアな音質としっとりとした音のねっとりさは東京電力が一番ですね、ってな具合なのですよ。そんな感じで、フラットデザインのもとは「スーパーフラット」にあり、その傍らには SUPER FLAT G があるのではなか?と妄想するわけですが…ごめん、協和ハーモネットさん。

参考画像としてスーパーフラットを探すと、なぜかもやしもんが引っ掛かるのですが、まあ、これを参考資料として貼り付けておきます。ええ、ネタとはいえ、あれを貼り付けるのは私の良心が無くなるので。

Albert Shum 氏 MS製品開発とデザイン–「Windows Phone」タイルUIデザイナーの取り組み – CNET Japan が村上隆氏を教祖と仰ぎ、壺を買ったり買わなかったり都議選で20パーセントもの議席を得たりするのは「共産党ッ!!!」なわけで、あれ?まあ、人口的に言えばそれなりに宗派だったり宗教だったりは手前勝手な訳で、それはキリスト教も仏教もイスラム教も同じ。単純に多い少ないの問題ですから。真実とは別なんですよ?と手かざしをしていみたり…ってのは危ない話なので、WEB デザイナのロクロ廻しに話を戻そう。Windows Phone の UI デザインがフラットになってしまったのは、二次元のエヴァンゲリオンだとか二次元の嫁だとか、ひも理論だとかひもな人生だかがある訳で…ええと、ちなみに「俺の嫁」ってのは、高橋留美子が漫画の中で諸星あたりに言わせたのは最初だと思うのだが、どうなんだろう?ってのを考えてみたりして、そんなこんなで、スーパーフラットは薄っぺらの象徴である。そう言われてみれば、Windows Phone のつるつる感はスーパーフラットである。日本の携帯電話がボタンがあって電源ボタンがあってiモードボタンがあって、なんでこんなボタンがあるの?ってな感じなのだが、ハードとしてのボタンがあることと、スーパーフラットな外観である「スマホッ!!!」は、それはそれは、Windows ボタンすらフラットになっている Surface に至っては、押してるのか押してないのかはその「ぶるぶる」しかない訳である。「スマホッ!!!」あるいは「タブレット」(時には、スレートPC って呼ばれていたよ、なに?スレートPCって?)にすれば、キーボードが有る無しにかかわらず、ひたすら薄く薄くなるのが自然の摂理らしい。実は「スマホッ!!!」を、人間工学的な手で持つ、かつ電話をする、「スマホッ!!!」を指で操作するという感覚を元にするとあまり薄くある必要はないわけで、これは「スマホッ!!!」自体が電池の関係からアツくなってしまったのをその反動から薄くしているのではないか?と勘繰ってしまうのだが、いやいや、そんなことを考えずにひたすら薄っぺらくしてしまうのが、スーパーそに子ッ!!! じゃなかった、スーパーフラットな訳である。

そうなると、バウハウス的な言及やら印刷時のタイポグラフィ(輪転機の制約やインクの関係とか)やディスプレイ上のタイポグラフィ(ディスプレイが四角のドットで構成されているということ、あるいは三角形に配置されているということ)とか、エモーショナルなところと人間工学的なところと安全工学的なところが全く考慮されていない、似非工学的なお題目を延々と繰り返すのは、まあ、さすがに「スーパーフラット」が源流ならば致し方がないといったところである。

なので、猫も杓子もフラットデザインなので、ここは皆さま諦めて失望して幻滅して点滅して点灯して額が前進している方に見習って、ひとつスーパーフラットな人生と「スマホッ!!!」を認めていこうではないか、という猫と杓子の話なのである。

カテゴリー: 雑談 | 2件のコメント

メトロスタイルとバウハウス

前回の記事 再びメトロあるいは、アールデコと Windows8 と iOS7 – Moonmile Solutions Blog で「バウハウス系統では?」というコメントを貰ったので、急遽チェック。「iOS 7」における、デザイン哲学のせめぎ合い « WIRED.jp と友人の話によれば、現在のWEBデザイナ(広義の意味ではプロダクトデザイナー?)にとって、デザイン学校では「バウハウス」の存在を学ぶのだそうで、なるほどその「系統」となれば、「フラットデザインと呼ばれるもの」は別な意味を持っている。

ちなみに、三井秀樹著「美の構成学」をざっと読んだ限りでは、バウハウスの発祥が、個々人の職人的な装飾の作り込み(アールデコやそれ以前に代表される美術的観点や個としての職人の腕に頼る装飾)から、大量生産や「プロダクト」という制作工程を前提とした、製品として作りやすいデザイン(おそらく「品質のばらつき」が少ない製品デザイン)を進めるうえで、何等かの基準でありそれを実現させるための思想なり教育なりを実現する発端となる。おそらく、ドイツ特有の「マイスター制度」から草案された、プロダクトデザイン以前と以後の境目になるのでは?と思っている。このあたりは、明日あたりに「バウハウスの本」が届くのでそれを読んでから。

で、その実際の発端はさておき、どうやらプロダクトデザインについてなんやかんややろうという象徴としての「バウハウス」という呼称があり、先の WIRED にある「スティーブ・ジョブズは、自分がもっとも強い影響を受けたもののひとつとしてバウハウスを見なしていた。」の下りはそれなのかな、と思うのだが、元ネタは何処にあるのかは知らない。どこかで「WEBデザインの本来の姿を取り戻す」という文も見たのだが、「本来のデザイン」自体が何なのか(本来は何をベースにしたかったが偽って何をつくっていたのか)の言及がなかったので、これもよくわからない。が、それらを別にしても、「バウハウス」という固有名詞は、iOS 7 のフラットデザインと、Windows 8 のメトロデザイン(と呼ばれていたもの)の源流であることは確からしい。

ちなみに、メトロスタイルの源流がバウハウス(Bauhaus)にあることの言及は、Ken Azuma : //build/ 参加日記 メトロスタイルデザイン にあって(infragisticsは NetAdvantage などの画面コンポーネントを作っている会社…がインドにある。デザインは別かも)、「モダンスタイル」という言葉が使われている。実際、「メトロデザイン」がやばくなった後には「モダンデザイン」あるいは「モダンスタイル」という用語が(英語では)使われているので、それはそれでOKかと。ただ「モダン」という用語自体が、日本ではあまりモダンに聞こえないので広告戦略として日本では広めていない。

さて、バウハウスを源流としたときに、その思想を取り入れるのか、それとも表層的なものだけを真似するのか、ということになるのだが「商業主義的」に考えれば、表層だけでOK。ただし、他人の言う(MicrosoftやAppleも含めて)、フラットデザインの原則や効用やら、人間工学やら最新のデザインやらという言葉は、すべて「広告的な意味あいを持つもの」として聞き流しておく必要がある。ってのが一番の前提。その上で、バウハウスやグリッドシステム、タイポグラフィを取り入れるとOKだし、実際バウハウスが発生したときの前後を学んでおくことは、有用ではないか?と思った次第。

ちょっと、現象学と認知学に話を移すと、

image

http://www.subblue.com/blog/2011/3/5/fractal_lab

例えば、フラクタルアートは文句なく美しいと感じる(感じる人が多いということで…)ことができるのは、アプリオリに「美しい」と感じるものがフラクタルで表現される「生物一般の惹かれるもの」であり、生物の根源にある式であるからに過ぎない。なので、因果関係が逆で「フラクタルが美しい」のではなく、「美しいのがフラクタルである」と言い換えることができる。では、必要十分条件として、フラクタルであればすべからく美しいのかどうか?は否であり、フラクタルを根底に持てば「美しくみられる確率が高くなる」という現象が発生するだけである。これは黄金比にも言えることで、黄金比にすればすべからく美しく見えるのかと言えば、そうは言えない。ただし、ある条件をクリアすることはできる。しかし、注意しておかなければいけないのは、フラクタルでないものがすべからく「美しくない」かというとそうではない。なぜならば「美しい」という現象(そう感じるという現象)自体が曖昧さを含み、同じものであっても時と場所が異なれば、それは「美しく」感じない場合もあるし、美しく感じない人もいる。なので、フラクタルという式自体には曖昧さがないものの、純粋なフラクタルの式を現象として「見せる」ことができるものに曖昧さがあり、更にそれを判断するための「美しさ」に対して曖昧さが含まれるゆえに、どちらも必要十分条件になりえない。ゆえに、「フラクタルアートは美しく感じることが多い」という言及にとどめておくのが望ましい。

これは、フラットデザインにも言えることで、フラットデザインにすればすべから使いやすく、すべからくWEBデザインの最先端(あるいは、メトロスタイルの最先端、iOS 7 アプリの最先端)になるかどうかは、必要十分条件ではない。勿論、フラットデザインという式が存在しないので(Windows 8 と iOS 7 という表層があるだけである)「フラットデザイン」自体の定義も曖昧なままである。しかし、曖昧でもOK。実際問題としては、フラットデザインは選択肢であって、時から離れた自由な存在ではないこと。もっと具体的に言えば「流行り」です。

それを踏まえたうえで、バウハウスという当時のプロダクトデザインの流行りと、それに対する各人の努力(偉そう…)に敬意を評し、過去から学ぶことによって舗装された高速道路を突っ走ることを感謝しつつ(羽生棋士曰く)、バウハウスとタイポグラフィの再入門ってことで。タイポグラフィは高校の頃にちょっと突き詰めたことがあるので知っているのですが、当時は紙への印刷が主流だったわけで、昨今のコンピューターディスプレイ表示では大きく異なるわけで、さらにタッチパネルを主流としたタブレットPC(iPhone, iPad なども含む)におけるタイポグラフィはまた異なるわけで。

そうそう、バウハウスの発端としては、当時は制作をする職人の違い(あるいは工程)に依存しない製品の品質を求める、という前提があるがゆえの「セリフなしの活字」だったり、平面構成や部品の標準化、部品自体の装飾の削除だったりするので、それを踏まえていないグリッドシステムの推奨やアイコンの作成、クロームへの言及は、ちょっと的はずれなのでは?と思ったり思わなかったり。いやいや、ただし、ポストモダン、ポスト構造主義としての「フラットデザイン」を追及するのは十分ありかと思います、ってことでちょっと「バウハウス」の本の到着待ちまで。

カテゴリー: 雑談 | 1件のコメント

再びメトロあるいは、アールデコと Windows8 と iOS7

ぼちぼちとmetro stryleについて書き綴ろうと思っていたら、WWDC 2013でiOS7の発表があったのでそれに絡めて…と言いますか、iOS7で噂されていた「フラットデザイン」が気になって、Windows 8 のように「影なしのアイコンデザイン」かつ「グリッドシステムに固執したユーザーインターフェース」だったらどうしようか、と心配していたところなのです。本来のフラットデザイン、グリッドシステム、メトロ(地下鉄の標識)のデザインについては、そろそろ Metro Design について考えてみよう – Moonmile Solutions Blog あたりで書き綴っているので、それはさておき。いや、「意匠問題」のところと「コンテンツ主導」のところは関係がありますが、ざっと、1時間ほどで書き下してみたいと思います。

iOS 7 Release Date

Apple iPhone 4S

いわゆるホームページ(だっけ?)を眺めると、アイコンがフラットになっているように見えますが、もともとiOS 5,6 のアイコンはデフォルトでグラスよりが掛けられているのと、背景に影がつくようになっているので、iOS 7の処理がそれを外しているだけです。XCode 5 で作れるコントロールも、(おそらくは)XCode 4と同等のもの(下位互換)は用意されるでしょうから、OS が担う標準コントロールの処理が変わった、というところです。なので、いままでのアプリをそのまま iOS 7 に載せれば、「フラットデザイン風」になる可能性は高いかと。そういう意味では、Windows 8 のデザインの追随だったり、既に Android に見られるようなインターフェースがあったり、jQuery UI で作れるような Web サイトのデザインだったりの、寄せ集めな雰囲気は否めません。なので、先駆者としての Mac デザイン?はさておき、ユーザーのニーズに応えました、ってところでしょうか。Microsoft であれ Apple であれ資本主義を元にする会社であるので、本来のデザインの先進さやユーザビリティよりも発売後の一般受けが優先するのでしょう。もちろん、卵と鶏の関係になるので、どちらが先という訳ではないのですが、この「フラットデザイン」に関しては(それが、本来のフラットデザインではないにせよ)、Microsoft よりも Apple のほうが一歩リードしたままのように見えます。

■デザインの歴史は繰り返し、アールデコへ

Windows 8 のメトロデザインが発表された頃から感じていたのが「アールデコ」の匂いです。美術史を紐解けば、アールヌーヴォーの後のアールデコ、アールヌーヴォーがミューシャが代表する(とはいえ、ミューシャ自身はアールヌーヴォーの後期)「ごてごてとした装飾」の時代から一転、機能的なデザインのアールデコへと移ります。流線型を代表とする「機能美」のデザイン感覚ですね。

現在において「デザイン」という用語や用法は、美術的/芸術的な視点よりも、機能美のような「そぎ落とす」という意味で使われることがあります。あるいは、ユーザーが何かを使うときに「それが何であるか」を主張するための装飾を付け加えることを意味しています。前者は、ソフトウェアの設計であったり(ユーザーインターフェースではない機能設計とか)部品の生産効率のためのデザインという形で使われ、後者はノーマンなどの言うユーザビリティのデザインを示しています。他にも、アニメのロボットのデザインのような「架空ではあるが、それらしいデザインを組み込む」というスタイルや、デコレーションされた携帯のような「過剰的な装飾」である「過剰」な部分(≒自己主張?)をしたデザインという言い方もあります。

アールヌーヴォーの椅子の足には、いわゆる「装飾過剰」な猫の足が使われます。マッキントッシュはどちらかと言えば、アールデコの機能美の世界ですね。「スタイリッシュな」という形容詞が使われます。この椅子に関していえば、どちらが、優れているという訳ではありません、どちらもその時代の「ニーズ」にあわせた、あるいは、その時代のニーズに合ったものが残った、あるいはニーズを創り出した椅子になり、歴史的に言えば、どちらも「優れて」います。

アールヌーヴォー自体、それ以前の写実主義からポスターへの移り変わりなど前史があるわけで、前史があるがゆえのその反動的なデザインの仕方と言えます。なので、時代的には揺り返しが来るし、昨今ミュシャ展がずっと開かれている(商業的に一般ユーザーに受け入れられやすい。あるいは版権的にやりやすい?)のもあり、そういう大衆の流れがあります(本来は、大衆/分衆という仮想を動かすわけですが)。

ディスプレイの解像度とCPUのパワーが有り余ってきて、3Dのアイコンが過剰になってきたり、場合によっては3Dアイコン自体がリアルタイムの3Dレンダリングで動いたり(ということはなかったのですが)という未来もあったわけですが、「装飾」が「過剰」であると判断した Windows 8 のデザインチームが「メトロスタイル」を打ち出したと同様に、Apple のデザイン部門は、市場のニーズにあわせて「フラットデザイン」?に舵を切った、と言えます。なので、どちらが UI 的に優れているのか(3Dデザインとフラットデザイン)というのは「商業主義」の範疇の議論でしかありません。

■フラットすぎるWindows8と3D寄りのiOS7

私が Windows 8のデザインで解せないのは「フラットすぎるアイコン」と「青紫の利用」です。タブレットを主体とする(元は Window Phone だし)Windows 8 は、マウスポインタをかざしてアクションをする「だけ」ではダメなので、なんらかの「視覚的な」アクションがないと、それはボタンと分かりません。まあ、所詮「道具」ですから、慣れればなんということはないのですが(実際、私はスタート画面のアイコンは押さずに、すべてキーボード入力の検索になっています。Surface RTでは、自作アイコンを作って、それと分かりやすく区別化しています)、

 

鈴木英人か、わたせせいぞうのデザインですか?と思ったのは私だけ…ではないハズ…って80年代ポップスのデザインですね。覚えていますか?

装飾を切り詰めてコンテンツに集中するためのデザインかつデザインセンスとされていますが、かなりあやしいところがあります。

image

iOS6 の次には、長岡秀星が突き詰める「スーパーリアリズム」(当時は、エアーブラシで多焦点画像を描いていた)と思いきや、まあ、ちょっと3D感を残したフラットデザインな訳で、意味合いてきには Winodws XP の頃に流行ったフラットボタンコントロールの発想に似ています。ボタンが出っ張っているのではなくて、ちょっと凹みぎみのボタンですね。ちょうど iPhone のホームボタンに似ています。

あと気になるのは「青紫」という色なのですが、12色環の「赤紫」と「青紫」を使ったということことなのでしょうか?iOS 7では、iTunesが赤紫色になっています。紫自体が不安色なので、ちょっと気になるところです。

 

■機能については

Apple、「iOS 7」を発表――2013年秋にリリース – ITmedia Mobile を参照ってことで。iOS 7 的には XCode 5 を入れて試してみないといけない。今度はネットワーク廻りもきっちりと抑えていきたいので。

カテゴリー: 雑談 | 5件のコメント

Windowsストアアプリ開発入門 Visual C# 2012編が出来ました

苦節半年…ってことで、ようやく出来がりました。ひと目でわかるシリーズのWindows ストアアプリ版です。諸々の状況をかんがみて、C#版を先に出して、1か月後に同じ内容でVisual Basic版が出る予定です(ただいま校正中)。

image

日経BP書店|商品詳細 - ひと目でわかるWindowsストアアプリ開発入門 Visual C# 2012編
Amazon.co.jp: ひと目でわかるWindowsストアアプリ開発入門 Visual C# 2012編: 増田 智明: 本

Amazonでは、まだ予約受付中になっていますが。日経BP書店では既に買えるようです。今回は、DRMフリーの電子書籍版(PDF形式)も発売しますので、Surface RTに入れて(あるいはiPadに入れて)閲覧することも可能です。

目次をざざっとみるとわかるのですが、先発の本と内容がだぶらないようにしてあります。主にファイル回りを中心に細かく作っていきます。デザインの話とか画像を扱うところとかは、先発の本にお任せしておいて、フォロー(というかWindows 8+XAMLで変更された部分ってかなり多いので)というか、あまり網羅せずに解説をしています。そのあたりは、従来の「ひと目シリーズ」と同じで、ひとつのアプリを作っていくという形式で。

image

サンプルコードは、日経BPさんのページからダウンロードできるようになります(現在予約中なので、まだダウンロードできない模様)。

書籍で作成する「ひと目アルバム」は、Windowsストアからダウンロードが可能です。
http://apps.microsoft.com/windows/ja-JP/app/57d39fc9-7623-406f-9cc7-3c0b4171f33e
 
プロジェクトテンプレートの「グリッドアプリケーション」を使って、アイテムの追加や削除までサポートします。マイピクチャーやSkyDriveから画像の取り込み、メールアプリへの相互共有(共有コントラクト)までできるので、自作ツールの一歩としてはかなりのところまで踏み込めるかと。

image

な訳で、VB版の校正/原稿に戻ります…ぶくぶくぶく。

そうそう、6月の.NETラボ勉強会 では、この本のネタ元のお話と書籍を2冊持って行きますので、お楽しみに。COD 2012JP で詳しく話せなかったファイル廻りの詳細など。

カテゴリー: 書籍, WinRT | Windowsストアアプリ開発入門 Visual C# 2012編が出来ました はコメントを受け付けていません

COD2013JP の発表資料

Community Open Day 2013 の資料、数日前に準備しようと思っていたものの(デモプログラム自体は随分前に準備…というか、それ用に考えていたのですが)、プレゼン資料が出来上がったのは、前日に orz

去年は、Acer w500 に Windows 8 Pro を入れて、デバッグログのデモンストレーション(らしきもの)をやりましたので、今回は「自前で作るアプリ」というのをテーマに(勝手に自分でテーマ)、サンデープログラミング的に Surface RT を使おうッ!!! という話です。Windows 8 ストアアプリ/Surface RTは初心者だけど、Surface RT自体は上級者的に使い倒したいッ!!! ってことで、50分の中に4つのデモを入れています。

  • ホームグループを利用して、Surface RTで動画を流す。
  • 仮想環境を利用して、Surface RTで Kindle を動かす。
  • Surface RT で Jail Break してしまう。
  • 私家版アプリを作って、自分だけで楽しむ。

ってな具合です。詳細は明日(5/11) cod.ms の東京会場で。

資料はこちら サンデープログラミング SurfaceRT

カテゴリー: 勉強会 | COD2013JP の発表資料 はコメントを受け付けていません