SlideShare a Scribd company logo
普段こういうの気にしながら、こんな風に作ってます
蜜葉 優
• H.N. :蜜葉 優 [mitsuba yu]
• Expression Blendが好きな人
• 最近はカメラが趣味
• twitter:@mitsuba_tan
• Community:Windows Phone Arch
• blog:http://d.hatena.ne.jp/c-mitsuba
profile
• プログラマにはデザイナっていう人
• デザイナにはプログラマっていう人
• XAMLが好きな人
• C#はよくわかんない。
• ロジックとか興味ないけど
• 見た目は綺麗な方がいい
profile
普段こういうこと気にしながら、こんな風に作ってます。
普段こういうこと気にしながら、こんな風に作ってます。
今日のお題は
できるだけC#を書かずにアプリを
つくりたい
というか、できるだけBindingで
作っていきたい
なんで?
答えはワークフローにあって
設計というより、
普段こんなこと流れで、
こんなこと考えて
アプリ作ってます的な
そんなおはなしです。
• UIのための準備体操
• コールドモックを作ろう
• べたXAMLのすすめ
• d:DataContext
• ConverterとProperty
agenda
UIのための準備体操
• UIがないとアプリがつくれません。
• 過去のMetro UI
• プリミティブな図形
• はっきりした面と色
• 適切なマージンなどなど
• 基本的にはテンプレート通りに作れば問題ない
Microsoft Style UI
• とはいえ、まじめにやるときはいきなりテ
ンプレを使わずにスケッチします。
UIについて
普段こういうこと気にしながら、こんな風に作ってます。
• スケッチを作れば、いまからどんなアプリ
を作っていくかがハッキリ見える。
• この部分はこのコントロールで作れそうと
か、ここはこういう風にGridを切ろうとか
が見えてくる。
UIについて
• いきなりXAMLを書き出すと、Gridの構造
とか実験用Styleとかいっぱいできて、わ
けわからなくなりがち。
• ->XAMLが汚くなる。
• そうならないための準備体操
スケッチ大事
• スケッチが出来たらデザインをします。
• デザインにはPowerPoint Storyboardとか
Psdテンプレートを使います。
デザイン
普段こういうこと気にしながら、こんな風に作ってます。
普段こういうこと気にしながら、こんな風に作ってます。
デザインできた!
開発しよう!
いやそのまえに。
そのデザイン、ちゃんと使いやすい?
いや、実機で動かしたら
なんか違うんだよね
・・・。
コールドモックを作ろう
• デザインのコレジャナイ感を回避する
• 動きそうで動かないでもなんか動いてる
モックアプリ
目標
• Psdで作ったデザインの中に
– ListViewがあれば、ListViewItemの画像を切り出
す。
– タイルグループは、タイルグループで画像にす
る
– 背景とかヘッダーはそのままつかう
作り方
普段こういうこと気にしながら、こんな風に作ってます。
普段こういうこと気にしながら、こんな風に作ってます。
普段こういうこと気にしながら、こんな風に作ってます。
普段こういうこと気にしながら、こんな風に作ってます。
• 安易にプロジェクトを作ってはいけません。
• ここでようやくVisual Studioでモックプロ
ジェクトを作成します。
作り方
• プロジェクトのLayoutRootに背景画像を
Imageコントロールでおきます。
作り方
Grid
• 適当なところにコンテンツ表示用の
ScrollViewerをおきます。
作り方
Grid
ScrollViewer
• StackPanelにしてならべます。
作り方
Grid
ScrollViewer
• ListViewの画像は縦に長いので、同じように
ScrollViewerでスクロールできるようにしま
す。
作り方
Grid
ScrollViewer
普段こういうこと気にしながら、こんな風に作ってます。
ぬるぬるうごくけどつつけない
モックの出来上がり
ベタXAMLのすすめ
• じゃあクラス設計とか始めようとかなるか
もしれないけど。
• 悩む時間がもったいないので、べたべたで
XAMLを書いていきます。
• というか、さらさらとデータ周りが書けるほどC#わからへん。。
べたXAMLのすす
め
• 文字列とかは適当で、これがデザイン
ビューで見えるようにつくります。
まず見える化
• ListViewなど、繰り返しが必要なコ
ントロールは、1つベタで書いて
いきます。
• ベタで書いたやつをコピーして、
ItemsTemplateにします。
• このとき、TextBlockとかは静的な
文字列でOK
まず見える化
• あとはListViewに適当にRectとかダ
ミーオブジェクトをおいていく。
• ItemsTemplateが定義されているか
ら、子要素の数だけItemsTemplate
のコントロールが生成される。
• Rectをおいても四角形は表示されな
い。
まず見える化
ItemsTemplateを作れば、実際はRectでもこんな風に表示される->
d:DataContext
• ここまでできると実データを表示して、ア
プリのレイアウトが崩れないか、綺麗に見
えるか確認したくなる。
• とりあえず表示のためにつくったRect(ダ
ミーオブジェクト)も削除したい。
• やっとBindingの出番ですね。
d:DataContext
• d:DataContextはデザインビューでのみ実行
されるDataContext
• 実際にアプリを実行したときとは違うデザ
イン用のDataContextをデザインビューで表
示できる。
• これがないと画面になにも表示されない。
• (そのためにダミーをおいてた)
d:DataContext
• d:DataContextはデザインビューでのみ実行
されるDataContext
• 実際にアプリを実行したときとは違うデザ
イン用のDataContextをデザインビューで表
示できる。
• これがないと画面になにも表示されない。
• (そのためにダミーをおいてた)
• DataContextを書いてもらおう!
d:DataContext
public partial class ListViewDataContext
{
public ObservableCollection<ListViewItemsProperty> ListViewItemsProperties = new
ObservableCollection<ListViewItemsProperty>();
public ListViewDataContext()
{
ListViewItemsProperties.Add(new ListViewItemsProperty() {
Title = "ほげ1",
ImageUri = new Uri("http://hoge.com/fuga.png")
});
ListViewItemsProperties.Add(new ListViewItemsProperty() {
Title = "ほげ2",
ImageUri = new Uri("http://hoge.com/fuga.png")
});
ListViewItemsProperties.Add(new ListViewItemsProperty() {
Title = "ほげ3",
ImageUri = new Uri("http://hoge.com/fuga.png")
});
}
public ObservableCollection<ListViewItemsProperty>
ListViewItemsProperties
{
get { return this.ListViewItemsProperties; }
}
}
public class ListViewItemsProperty
{
public String Title { get; set; }
public Uri ImageUri { get; set; }
}
}
• <ListView
d:DataContext="{Binding
ListViewItemsProperties,
Source={d:DesignInstance
Type=DataContextのねーむすぺーす,
IsDesignTimeCreatable=True}}”
>
ListViewにおまじないを
ItemTemplateにBinding
<Image Source=“{Binding ImageUri}” >
<TextBlock Text=“{Binding Title}” >
見た目は出来たら動かしたい
ぴってしたら、出たり消えたりし
てほしい!とか…
• 例えば、ToggleButtonがOnの時、Imageを表
示して、Offの時は表示しないとかしたい。
• Image.VisibilityにToggleButton.IsOnを
BooleanToVisibilityConverter挟んでBindingす
ればOK
• ToggleButtonのイベントとかも極力かかな
い!
• プロジェクトがConverterだらけになるのは
仕方が無いかなぁとおもってる。
ToggleButtonとVisibility
まとめ
• みつばてきワークフロー
– スケッチ
– デザイン
– 使いやすさ確認用モックプロジェクト作成
– 実プロジェクト作成
– タイルとかスプラッシュ作る
– とりあえずぜんぶXAMLで見えるようにする
– XAMLに必要なクラス作る
– DataContext作ってデータ取ってくる
– ちょっといいかんじにアニメーションつける
– 完成!
まとめ
• デザインとかXAMLの構造がもやもやした
ままとりあえず書き出さない。
• モックを作って、アプリとしてUI設計がい
いかんじか、インタラクションに問題がな
いか試してみる。
まとめ
• 実はべたXAMLはむだ!
– XAMLerとC#erが1対1でペアプロ出来る環境
であれば省略可能。あるいは全部出来る人
– デザイナとプログラマをセットにするのが一
番効率がいい
• d:DataContextのおまじないはVSからも
Blendからも自動生成できないから覚える
しかない。。
まとめ
• インタラクションはBindingとConverterを
うまく使って、.xaml.csにUI操作のための
コードをかかない!
– デザイン変更するときにxamlみてーcsみてー
xamlなおしてーうごかないーあーここのcsで
なんかやらかしてるーってなる。。
まとめ
実は。
• UIのための準備体操
• コールドモックを作ろう
• べたXAMLのすすめ
• d:DataContext
• ConverterとProperty
agenda
• UIのための準備体操
• コールドモックを作ろう <-SampleDataSetでOK
• べたXAMLのすすめ <-SampleDataSetとDataStoreでOK
• d:DataContext <-SampleDataSetでOK
• ConverterとProperty <-BehaviorでOK
agenda
Windows Blueでは
Behaviorと
DataSetと
SampleData
がないのではよ!
ご清聴ありがとうございましたー
• みつばてきワークフロー
– スケッチ
– デザイン
– 使いやすさ確認用モックプロジェクト作成
– 実プロジェクト作成
– タイルとかスプラッシュ作る
– とりあえずぜんぶXAMLで見えるようにする
– XAMLに必要なクラス作る
– DataContext作ってデータ取ってくる
– ちょっといいかんじにアニメーションつける
– 完成!
まとめ

More Related Content

PPTX
UXDD MVVM Store Apps 蜜葉式開発フロー
PDF
新卒研修座学 余暇プログラミング概論
PDF
XamarinStudio勉強会 2014/09/08
PPTX
Xamarinは辛いよ
PPTX
Xamarinとmvvm crossとf#と
PDF
Unity+osc
PDF
Aiming study#6pdf
PDF
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
UXDD MVVM Store Apps 蜜葉式開発フロー
新卒研修座学 余暇プログラミング概論
XamarinStudio勉強会 2014/09/08
Xamarinは辛いよ
Xamarinとmvvm crossとf#と
Unity+osc
Aiming study#6pdf
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92

What's hot (20)

PPTX
Xamarin入門(技術というより心構え編)
PDF
WinMR入門
PPTX
C#でこなすexcel課題
PPTX
JXUGC #9 Xamarin.Forms Mvvm Teachathon
PDF
Xamarin を使うとどんなことができるの?
PDF
プログラマがWebデザインについて考えてみた
PDF
2015 07-04-ruby rails
PDF
2016.10.15アプリ発表会
 
ODP
これからはじめるための JavaScript 開発環境
PPTX
Xamarin Native vs Xamarin Forms
PDF
Multi paradigm design
PDF
2015 12-19-ruby rails
PPTX
Cocoa Binding 童貞だけど解説してみる
PDF
2016 02-09-co-edo lt
PDF
2016 02-25-crawler-study-01
PDF
㉝“知育アプリを作ろう! Kwikで作るデジタル絵本” 勉強会②
PDF
HoloLens FirstImpression v2
PPTX
Cafe Blend 3杯目
PDF
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin入門(技術というより心構え編)
WinMR入門
C#でこなすexcel課題
JXUGC #9 Xamarin.Forms Mvvm Teachathon
Xamarin を使うとどんなことができるの?
プログラマがWebデザインについて考えてみた
2015 07-04-ruby rails
2016.10.15アプリ発表会
 
これからはじめるための JavaScript 開発環境
Xamarin Native vs Xamarin Forms
Multi paradigm design
2015 12-19-ruby rails
Cocoa Binding 童貞だけど解説してみる
2016 02-09-co-edo lt
2016 02-25-crawler-study-01
㉝“知育アプリを作ろう! Kwikで作るデジタル絵本” 勉強会②
HoloLens FirstImpression v2
Cafe Blend 3杯目
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Ad

Similar to 普段こういうこと気にしながら、こんな風に作ってます。 (20)

PPTX
Visual studio 2013 Overview
PPTX
Windows ストア アプリの上手な作り方
PDF
WPFことはじめ
PPTX
121117 metro styleapp_templateapp
PDF
XAMLとC#の関係
PPTX
Blendの便利機能振り返り
PPT
Oitec
PDF
ストアアプリのXamlを解説
PDF
Wankuma0402
PPTX
メトロスタイルアプリ開発 最初の一歩
PDF
【第3回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
PPTX
Xamarin.Forms.WPF を試してみた
PDF
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
PDF
FxugWP7
PPTX
20191209 JXUGC #26 平日エディション 発表資料. 「Xamarin.Formsの標準UIで どこまでできるナウなUI」
PDF
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
PDF
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
PDF
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
PDF
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
PPTX
Silverlightの今
Visual studio 2013 Overview
Windows ストア アプリの上手な作り方
WPFことはじめ
121117 metro styleapp_templateapp
XAMLとC#の関係
Blendの便利機能振り返り
Oitec
ストアアプリのXamlを解説
Wankuma0402
メトロスタイルアプリ開発 最初の一歩
【第3回】デザイナーがコードから読み解く、Androidアプリのデザインの幅を広げるコツとTips
Xamarin.Forms.WPF を試してみた
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
FxugWP7
20191209 JXUGC #26 平日エディション 発表資料. 「Xamarin.Formsの標準UIで どこまでできるナウなUI」
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
Silverlightの今
Ad

More from c-mitsuba (20)

PDF
Beginning of HoloMagicians
PDF
Build 2021 Topics & Unofficial Talks for Windows Development
PDF
Avalonia for MacApps
PDF
PDF
nameless ある沼にDeepDiveした人のポートフォリオ
PDF
Emotional space
PDF
Designer’s Design Talk Azure / Windows Development 2人のMVPの場合 -
PDF
うるしまカップ パネルディスカッション
PDF
Designer’s Design Talk - Azure / Windows Development 2人のMVPの場合 -
PPTX
30min serverless-x tuber
PDF
HoloLensで航空管制
PDF
Introducing micro:bit and demo
PDF
micro:bitさわってみた。
PDF
HoloLens Demo
PDF
楽しく生きるために 何を選択して、どうしてきたか。
PDF
Dotnetlab: Introducing Fluent Design System and Mixed Reality
PPTX
to tanzanite
PDF
Introduction Xamarin forms mac
PDF
Tried to touch Xamarin Forms for MacOS
PDF
Introducing Fluent Design
Beginning of HoloMagicians
Build 2021 Topics & Unofficial Talks for Windows Development
Avalonia for MacApps
nameless ある沼にDeepDiveした人のポートフォリオ
Emotional space
Designer’s Design Talk Azure / Windows Development 2人のMVPの場合 -
うるしまカップ パネルディスカッション
Designer’s Design Talk - Azure / Windows Development 2人のMVPの場合 -
30min serverless-x tuber
HoloLensで航空管制
Introducing micro:bit and demo
micro:bitさわってみた。
HoloLens Demo
楽しく生きるために 何を選択して、どうしてきたか。
Dotnetlab: Introducing Fluent Design System and Mixed Reality
to tanzanite
Introduction Xamarin forms mac
Tried to touch Xamarin Forms for MacOS
Introducing Fluent Design

普段こういうこと気にしながら、こんな風に作ってます。