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

しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Surface Dial を UWP で使ってみる

※ これは 2016/11/16 時点の情報です 最新版では動作が異なる可能性がありますのでご注意ください 前回 はとりあえず Surface Dial をいじってみましたが、これをさっそく UWP で使ってみたい! ということで、英語にて公開されている下記 API ドキュメント…

HoloLens 用 HoloToolKit をパッケージ化する

※ これは 2016/08/05 Unity HoloLens Technical Preview ver.5.4.0f3(Windows版) 時点の情報です 最新版では動作が異なる可能性がありますのでご注意ください Unity の視線判定周りをいろいろ試していましたが、MVP の中村さんが紹介されているようにすで…

HoloLens で Colider を利用せずに Unity の注視箇所表示(不具合修正)

※ これは 2016/05/31 Unity HoloLens Technical Preview ver.5.4.0beta14(Windows版) 時点の情報です 最新版では動作が異なる可能性がありますのでご注意ください 前回 は Colider を利用せずに Button への注視を検出しようとしました しかし、どうも衝突…

HoloLens で Colider を利用せずに Unity の Button の注視検出をしてみたい

※ これは 2016/05/31 Unity HoloLens Technical Preview ver.5.4.0beta14(Windows版) 時点の情報です 最新版では動作が異なる可能性がありますのでご注意ください 前回 は Button へのタップ操作を検出できるようになりました ただ、Button への注視に物理…

Unity 5.3.2f1 の UWP で Windows Phone の戻るボタンが効かない?

いつからこうだったのかわかりませんが、Unity で UWP アプリを作ると Windows Phone の戻るボタンがフックされて効かなくなるようです これは審査で不合格になるかもしれないので、Unity の公式ページで報告しておきました

Unity for UWP でアスペクト比を固定したレターボックス表示にする

Unity で UWP アプリを作る場合現状ではいろいろ制限が多いのですが、今回は UWP の方がやりやすい方法を試してみます 上記のように画面解像度に応じて縦横のアスペクト比を固定してレターボックス表示にしたい場合です

スマホアプリの市場分析に便利なサービス「App Annie」

自分のように経験値も才能もないエンジニアが面白いゲームを思いつくにはどうしたらよいか? いくら悩んだところでアイデアは降ってこないので、客観的に市場に受けているアプリを分析してヒントを得るしかないと思い探してみると 無料のアプリストアレポー…

【宣伝】 いち早く UWP 開発スキルが身につくセミナー第二弾が先着 100 名限定で参加者募集中!

本日 11月20日に開催される Windows 10 のアプリケーション(UWP)開発セミナーに惜しくも予定が合わなかった方、定員オーバーで参加できなかった方に朗報です なんと好評につき第二弾が開催されるそうです 1 日で Windows 10 に対応したアプリ開発手法が習…

シンプルタイマーアプリのソースをアップ

少し前に作ったタイマーアプリのソースを GitHub の下記に公開しました matatabi-ux/SimpleTimer · GitHub Prism フレームワークも最新のユニバーサルアプリ対応版に差し替えたのでどこまで Shared Project に共有で配置できるかと試してみたら・・・

Prism MVPVM テンプレート更新

Prism のユニバーサルアプリ対応版がリリースされたので、Prism ベースの MVPVM テンプレートを作りました - しっぽを追いかけて で紹介した MVPVM テンプレートを更新しました zip を解凍したら、中の install.bat を「管理者として実行」で実行すればテン…

ライブタイル用ライブラリ NotificationsExtensions を利用する

http://matatabi-ux.hateblo.jp/entry/2014/08/20/120000 で中断状態の対応を行ったタイマーアプリについて、さらにライブタイルでタイマー時間を表示することにしました

Suspended 中の経過時間を把握する

円弧シェイプを利用した数値の表現 - しっぽを追いかけて で作成したコントロールに少し手を入れて、下記のようなタイマーアプリを作ろうとしたんですが、思わぬところで壁にぶつかりました

スワイプで数値の増減ができる UI

円弧シェイプを利用した数値の表現 - しっぽを追いかけて では Button で増減させていましたが、タッチ操作しやすくさせるためスワイプで増減できるようにしてみます!

円弧シェイプを利用した数値の表現

意外と用意されていない始点と終点角度を指定できる円弧 - しっぽを追いかけて で作った円弧シェイプを使って数字と円弧を合わせて表示するチャート?を作ってみました

意外と用意されていない始点と終点角度を指定できる円弧

WPF を含め XAML には XY 座標系で始点終点を指定して描く円弧の Path はありますが、始点終点を角度で指定する円弧がありません・・・ ないものは・・・作ってみました!

さらに UI の仮想化(2)

UI に表示されるデータの仮想化(2) - しっぽを追いかけて では段階的な仮想化を行いましたが、まだまだ UX を向上させるためにできることがあります! それは ISupportIncrementalLoading の段階的なデータ読み込みに時間がかかる場合、スクロールに時間…

UI に表示されるデータの仮想化(2)

UI に表示されるデータの仮想化(1) - しっぽを追いかけて では表示用にコピーされるデータを絞り込む仮想化をご紹介しましたが、データの仮想化には他にも方法があります それが段階的な仮想化と呼ばれるもので下記のようなイメージになります

UI に表示されるデータの仮想化(1)

ピクセル単位で仮想化するパネル ItemsWrapGrid & ItemsStackPanel - しっぽを追いかけて では UI の仮想化についてご紹介しましたが、UI 以前にそもそもアイテムのデータ量が多い場合は表示が遅れたり、メモリを大量に消費してしまうといった問題が起こりま…

ピクセル単位で仮想化するパネル ItemsWrapGrid & ItemsStackPanel

Windows ランタイムアプリの特定のパネルには、画面に表示されている領域だけ UI 項目を生成したり使いまわしたりして、使用メモリの削減やスクロール動作を高速化する「仮想化」という仕組みが用意されています

プロパティ構成を PCL プロジェクトに外出ししたコード自動生成

機械的な作業になりがちな Model や ViewModel のコーディングの改善策として T4 テンプレートを利用したコード自動生成の方法があります Model からマルチバイト文字をエスケープして Json 文字列にシリアライズする - しっぽを追いかけて で紹介しているよ…

GridView の 表示領域をすき間なく詰めるには

GridView を下記のようにシンプルに記述した場合 <GridView Grid.RowSpan="2" ItemsSource="{Binding Source={StaticResource itemsViewSource}}" Padding="116,186,116,0"> <GridView.ItemsPanel> <ItemsPanelTemplate> <ItemsWrapGrid ItemHeight="250" ItemWidth="300" /> </ItemsPanelTemplate> </GridView.ItemsPanel> </gridview>

Windows ストアアプリの操作用ショートカットキーの実装場所

複数画面のある Windows ストアアプリのプロジェクトテンプレートを作成すると、[Alt+←] や [Alt+→] のショートカットキーでブラウザの戻る・進むのような画面遷移を行うことができます

コンテンツ ViewModel をラッピングする ItemContainerViewModel のすすめ

通常 GridView などに写真のタイルを表示する場合、ItemsSource には ObservableCollection などのように表示するコンテンツ情報を持つ ViewModel をコレクションに入れてバインドすることが多いと思います こうする代わりに PhotoViewModel を下記のような …

ベータ版 Prism for Windows Runtime を試してみたい

ユニバーサル Windows アプリ用 Prism フレームワーク! - しっぽを追いかけて で紹介した Prism ベータ版でさっそくユニバーサル Windows アプリの動作を試してみました

MenuFlyout をラジオボタンっぽい強制単一選択にする

MenuFlyout の内部に下記のように ToggleMenuFlyoutItem を配置すると選択式のメニューとして表示できます <AppBarButton Label="ネコのえさ"> <AppBarButton.Icon> <PathIcon HorizontalAlignment="Center" VerticalAlignment="Center" Data="M0,16.0044549486488L30.0405913920894,16.0044549486488 ~ 中略 ~ " /> </AppBarButton.Icon> <AppBarButton.Flyout> </appbarbutton.flyout></appbarbutton>

Xamarin や Windows Phone でも利用できる Unity DI コンテナプレリリース版

先日見つけた Prism for Windows Runtime ベータのユニバーサルアプリ対応版を見ていたら、Unity のプレリリース版で対応プラットフォームが増えていました!

デフォルトのデザインテーマ定義ファイル

Visual Studio のプロパティパネルからシステムリソースを開くとデフォルトのスタイルを選ぶことができます デフォルトのデザインの色や設定を確認するために、こういった方法で探すこともできるのですが大量にあるスタイルを1つずつ確認していくことになる…

リスト項目のデザインを交互に切り替える

Windows ランタイムアプリにはリスト項目の背景色を交互に切り替えるオプションはありませんが、ItemTemplateSelector を利用すればそういったことは実現できます

テンプレートセレクタは強力なデザイン実装手法

XAML を使った UI 構築の実装手法には便利な仕組みがたくさんありますが、自分が最も好きな仕組みは DataTemplateSelector などのテンプレートセレクタです! え?つい最近こんなネタを見たって?ネタがかぶっただけきっと気のせいです!! なんでテンプレー…

3 列未満になるウィンドウ幅の場合はタイルの大きさを小さく表示する GridView

前回の ウィンドウ幅に応じて列数が変化する GridView - しっぽを追いかけて をさらに拡張して、3 列未満になるウィンドウ幅の場合はタイルの大きさを小さく表示する GridView を作ってみようと思います 前回の GridView では幅が狭くなったときもタイルが同…

ウィンドウ幅に応じて列数が変化する GridView

普通はクロススライド(タイルをスクロール方向に交差する下にドラッグさせる)で項目を選択するため原則水平スクロールにするんですが、どうしても!GridView を縦スクロールしたい・・・という場合どうしたらよいか その場合はウィンドウ幅に応じて列数を…

本棚風 GridView をつくる

前回の レスポンシブな大理石風背景を表示する - しっぽを追いかけて をさらに拡張して本棚風にタイルを表示させてみたいと思います 完成イメージはこんな感じ

レスポンシブな大理石風背景を表示する

こんな感じの背景を表示させる場合、一枚画像で表示すると解像度が変化したときに柄が崩れたり、グラデが汚くなったりするのであまりよくありません これをレスポンシブに解像度に合わせてきれいに表示されるようにしたいと思います

Windows アプリで表示した 2 画面の表示ウィンドウを交換する

前回書き忘れましたが、ProjectionManager を利用するとタスクバーのプレビューウィンドウも2つになります ここで ProjectionManager.SwapDisplaysForViewsAsync というメソッドを使ってみます

Windows アプリで 2 画面表示する

エバンジェリストの荒井さんから UX ガイドラインが更新されたとのお知らせがあったので、改めて UX ガイドラインを見直してみたところ、見慣れない機能が・・・! プロジェクション マネージャーのガイドライン (Windows) これはなんだ?!ということで動か…

UP by Jawbone のライフログを Windows アプリで取得する(1)

ちまたでじわじわと流行り始めている腕輪型アクティビティログデバイス「UP by Jawbone」のログを Windows アプリで取得できないか調べてみようと思います! 【日本正規代理店品】UP by Jawbone ライフログ リストバンド ミディアム オニキス ALP-UPM-OX出版…

Windows アプリ or Windows Phone 8.1 アプリ = Windows ランタイムアプリ

MSDN を眺めていたら「Windows ランタイムアプリ」なる呼び方が記載されてました これって以前は「Windows ストアアプリ」って記載されてませんでしたっけ?

Prism を MVPVM 化する(3)画面遷移処理を ViewModel から Presenter に移す

Prism を MVPVM 化する(2)の続きです! ViewModel から画面遷移処理部分をけずったので、Presenter にこの処理を追加します Prism では INavigationService というインタフェースを実装した FrameNavigationService クラスが画面遷移を制御しますが、こち…

Prism を MVPVM 化する(2)View から対応する Presenter を取得できるようにする

はじめに前回の記事ですが、ObservableCollection のために Microsoft.BCL.Build.Tasks.dll を利用しているというところ・・・不要でした; ビルドターゲットを .NETFramework 4.5 にすればそれだけで利用できていました 気を取り直して Prism を MVPVM 化す…

Prism を MVPVM 化する(1)ViewModel と Model を Portable Class Library プロジェクトに配置する

ユニバーサル Windows アプリが発表され、Xamarin も普及し始めていることから今後は WinRT アプリに限らず C# で iOS、Android や IoT などマルチデバイス、クロスプラットフォームの対応ができるようになりそうです アプリを中心としたビジネス的な戦略と…

いつでも呼び出せるビジーインジケータを作る

ストアアプリには ProgressRing というインジケータ表示に便利なコントロールがあります ただし、このコントロールはアニメーション表示を行うだけなので、インジケータ表示中にユーザー操作をブロックする機能は持っていません というわけでどこでも呼び出…

UnitTest のメソッドをデータだけ変更して流用する

コードによる自動テストを作成する場合、テストコードのロジックは共通であっても入力データが異なることがあります

ダブルクリック/タップで拡大する ScrollViewer をつくる

ScrollViewr の内部に画像を表示すれば、ピンチアウトのジェスチャによって 上記のような感じで拡大表示が行えます

OneDrive に画像をアップロードすると 2048 × 2048 px 以下になる件

Live SDK を利用すれば以下のように簡単に OneDrive にファイルをアップロードできるんですが・・・ var authClient = new LiveAuthClient(); var login = await authClient.LoginAsync(new List<string>() { "wl.skydrive", "wl.skydrive_update" }); if (LiveConne</string>…

Live SDK をオフラインで利用すると NullReferenceException 発生!

Live SDK を Nuget でインストールしてオフライン中にデータ転送してみたら・・・ なぜ Null 例外?!・・・しかも try-catch で回避できない;

Live SDK で OneDrive のファイルをバックグラウンドデータ転送した場合の動作

Live SDK の OneDrive API には通常のアップロード/ダウンロードの他に Windows ストアアプリのバックグラウンドデータ転送を利用した BackgroundDownloadAsync と BackgroundUploadAsync というメソッドがあります バックグラウンドデータ転送はアプリが中…

共有ターゲットページのお作法は難しい

VisualStudio 2013 で「共有ターゲット コントラクト」の項目を追加するとお手軽に共有を受ける側のページコードが生成できます 受けたデータを加工して処理するように少しコードを加えて下記のようなコードを書いた場合・・・ /// <summary> /// 他のアプリケーショ</summary>…

アプリ中断すると NavigatedFrom が起きるけど再開で NavigateTo は起きないらしい

イベントハンドラは登録しっぱなしにすると解放されなくなってメモリリークの原因となるため、下記のように不要になったタイミングで解除するようなことも多いと思います public MainPage() { this.InitializeComponent(); Window.Current.SizeChanged += th…

続・Windows ストアアプリで画面遷移前のスクロール位置を記憶するための Behavior を作る

以前の記事でスクロール位置を記憶するための Behavior を作りました Windows ストアアプリで画面遷移前のスクロール位置を記憶するための Behavior を作る - しっぽを追いかけて この実装の場合、スクロール位置のオフセットを記憶するのですが、ItemsPanel…

Bing Maps コントロールの地図をキャプチャする

Bing Maps コントロールを利用すると Wndows ストアアプリでも簡単に地図を表示することができます