SlideShare a Scribd company logo
1 of 72
Windows Phone 8
アプリ開発
02.デザイン
2013.03.07
初音玲
本資料は
Microsoft Virtual Academy
- Building Windows Phone 8 Apps Development Jump Start
- M2: Designing Windows Phone Applications
を日本語訳し再構成したものです。
Agenda
Windows Phone Design Style
アプリのデザイン
XAMLレイアウト入門
スタイルとテーマ
デザイン時データ
データバインディング
リストとLongListSelector
Windows Phone Design Style
The Windows Phone Design Style
いつの間にかメトロから名称変更
見た目と操作感の統一
(日本の)地下鉄で採用されているサイ
ンから発想
•タイポグラフィ
•機能的なミニマムなデザイン
アプリはこのスタイルを踏襲する事
デザイン原則
クラフトマンシップへのプライド
•グリッドを確保する
•すべてを積み重ねる
•文字体裁もアプリの一部
デザイン原則
少ない要素で効果を高める
•修飾よりコンテンツ中心
•コンテンツに活力を
デザイン原則
スピードと躍動感
•躍動感を追求
•モーション
デザイン原則
本物のデジタル性
•インフォグラフィック
デザイン原則
エコシステム
•同じアプリは同じトーンに
アプリのデザイン
まず、紙上でデザインしてみよう
VS2012+Office2013 = StoryBoard
Windows Phoneステイシル&パッド
• http://www.uistencils.com/
12:38
text
text
text
12:38
text
画面遷移をデザイン
12:38
12:38
12:38
12:38 12:38
about
地域の料理
地域
レシピ メモや写真
ここまでできたらVisual Studioで
かっこいいアプリをつくるためには、
コードとデザインを分離
•デザイナーはデザインに集中できる
•プログラマはコードに集中できる
XAMLとWindows Phone SDK
•コードとデザインの分離をサポート
ツールでの作業: Bindingクラス作成
デザイナーがデザインできるように
•XAMLにBindingするクラス
•XAMLで使うConvertor
•XAML間の画面遷移
を実装したVSプロジェクトを作成
ツールでの作業: デザイン
Blendを使ってUXデザイナがUI実装
•Blend for Visual Studio 2012
ツールでの作業: コード作成
UIデザインにコード追加
UIデザインの確認はVSでも可能
デザインスタイルとプログラミング
プログラマは問題解決を念頭に
• スタート地点としては最良
最近はUIの「見た目」も重要
• どんなによいコードで実装しても
使うのが難しかったら使ってもらえない
Windows Phoneアプリを作るうえではUI
に関心を持ちましょう
グラフィックデザイナーの知り合いがい
るなら開発チームに入ってもらうのがい
いでしょう
代表的なテンプレート
Windows Phone アプリ
• 無地のページテンプレート
Windows Phone データバインドアプリ
• Model-ViewModel-Viewのテンプレート
Windows Phone パノラマアプリ
• 異なる画面デザイン間をフリックで移動
する”Pivot”を作るテンプレート
Windows Phone ピポットアプリ
• パン操作で横長の画面を移動す
る”Panorama”を作るテンプレート
XAMLレイアウト入門
Contoso Cookbook詳細レシピページ
レシピの詳細をピボット表示
写真と作り方を1パネル表示
材料リストは別パネル表示
Pivot Pages
<phone:PhoneApplicationPage x:Class="RecipeDetailPage" ... />
<Grid x:Name="LayoutRoot" Background="Transparent">
<phone:Pivot Title=“PIVOT APPLICATION">
<!--Pivot item one-->
<phone:PivotItem Header=“item1">
<Grid> </Grid>
</phone:PivotItem>
<!--Pivot item two-->
<phone:PivotItem Header=“item2">
<Grid> </Grid>
</phone:PivotItem>
</phone:Pivot>
</Grid>
</phone:PhoneApplicationPage>
XAML and Objects
XAML
•XML Application Markup Language
XAML要素=System.Windows.Controls
名前空間のオブジェクト
画面項目の見た目は、XAML要素に対
するレンダリング結果で決まる
XAMLコントロールの配置
Pivotタイトル
Pivotヘッダ
Image
TextBlock
TextBlock
TextBlock
画面要素のプロパティ
各要素の画面上の見え方を定義
•位置
•高さと幅
•フォント色、サイズなど
画面描画時にXAMLによって使用
プログラムでプロパティ値を変更す
ると要素の外見が変化
クラス階層
XAMLクラス階層はかなり複雑
すべての要素の基本クラスは
FrameworkElementクラス
構成要素のXAML定義
<!--Pivot item one-->
<phone:PivotItem Header="recipe">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="240"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image Grid.Row=“0” Stretch="UniformToFill"/>
<ScrollViewer Grid.Row="1">
<TextBlock TextWrapping="Wrap" />
</ScrollViewer>
<StackPanel Grid.Row="2" Orientation="Horizontal">
<TextBlock Text="Prep time: " />
<TextBlock MinWidth="200" />
</StackPanel>
</Grid>
</phone:PivotItem>
グリッド構造
<!--Pivot item one-->
<phone:PivotItem Header="recipe">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="240"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image Grid.Row=“0” Stretch="UniformToFill"/>
<ScrollViewer Grid.Row="1">
<TextBlock TextWrapping="Wrap" />
</ScrollViewer>
<StackPanel Grid.Row="2" Orientation="Horizontal">
<TextBlock Text="Prep time: " />
<TextBlock MinWidth="200" />
</StackPanel>
</Grid>
</phone:PivotItem>
Demo:
Laying out a Page
http://code.msdn.microsoft.com/Windows-Phone-8-JumpStart-a6d1ed23
スタイルとテーマ
構成要素へのスタイル設定
文字色とサイズのプロパティ
•Foregroundプロパティ
•FontSizeプロパティ
プロパティへの直接指定は非推奨
•組込み済スタイルと連携しずらい
•組込み済テーマと連携しずらい
ブラシ、スタイルやテーマを指定
ブラシリソース
Name 型 説明
PhoneAccentBrush SolidColorBrush 関心のある項目を選別する前景色
PhoneForegroundBrush SolidColorBrush 既定の前景色と境界線の色
PhoneBackgroundBrush SolidColorBrush
ページおよびその他のコントロールの既定の背
景色
PhoneContrastBackgroundBrush SolidColorBrush 対照的な要素の背景色
PhoneContrastForegroundBrush SolidColorBrush 対照的な要素の前景色
PhoneDisabledBrush SolidColorBrush 無効化された前景および色
PhoneSubtleBrush SolidColorBrush 薄い前景と境界線
TransparentBrush SolidColorBrush
背景およびタッチ ターゲットに使用される
100% 透明なブラシ
PhoneSemitransparentBrush SolidColorBrush
イメージの背景にコントラストを付けるために
使用される部分的に透明な背景ブラシ
PhoneChromeBrush SolidColorBrush
アプリケーション バーの色に合わせるために
使用されます
TextBoxブラシ
Name 型 説明
PhoneTextBoxBrush SolidColorBrush TextBox コントロール用のブラシ
PhoneTextCaretBrush SolidColorBrush TextBox 内のキャレット用のブラシ
PhoneTextBoxForegroundBrush SolidColorBrush TextBox コントロールの前景用のブラシ
PhoneTextBoxEditBackgroundBrush SolidColorBrush TextBox コントロール編集背景用のブラシ
PhoneTextBoxEditBorderBrush SolidColorBrush TextBox コントロール編集境界用のブラシ
PhoneTextBoxReadOnlyBrush SolidColorBrush
TextBox コントロール読み取り専用状態用の
ブラシ
PhoneTextBoxSelectionForegroundBrush SolidColorBrush TextBox コントロール選択前景用のブラシ
RadioButtonおよびCheckBoxのブラシ
Name 型 説明
PhoneRadioCheckBoxBrush SolidColorBrush RadioButton と CheckBox 用のブラシ
PhoneRadioCheckBoxDisabledBrush SolidColorBrush
無効にされた RadioButton と CheckBox の状
態に使用するブラシ
PhoneRadioCheckBoxCheckBrush SolidColorBrush CheckBox チェック用のブラシ
PhoneRadioCheckBoxCheckDisabledBrush SolidColorBrush 無効にされた CheckBox チェック用のブラシ
PhoneRadioCheckBoxPressedBrush SolidColorBrush
RadioButton と CheckBox の押された状態に
使用するブラシ
PhoneRadioCheckBoxPressedBorderBrush SolidColorBrush
RadioButton と CheckBox の押された状態に
使用するブラシ
組込みスタイルを使う
スタイルで指定されるプロパティ
•FontFamily
•FontSize
•Foreground
•Margin
設定はStyleプロパティ
• {StaticResource PhoneTextSmallStyle}
• {StaticResource PhoneTextNormalStyle}
• {StaticResource PhoneTextSubTitleStyle}
テキストスタイル(その1)
Name 対象: 型 説明
PhoneTextBlockBase TextBlock Style
FontFamily: PhoneFontFamilyNormal
FontSize: PhoneFontSizeNormal
Foreground: PhoneForegroundBrush
Margin: PhoneHorizontalMargin
PhoneTextNormalStyle TextBlock Style BasedOn: PhoneTextBlockBase
PhoneTextSubtleStyle TextBlock Style
BasedOn: PhoneTextBlockBase
Foreground: PhoneSubtleBrush
PhoneTextTitle1Style TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilySemiLight
FontSize: PhoneFontSizeExtraExtraLarge
PhoneTextTitle2Style TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily:PhoneFontFamilySemiLight
FontSize: PhoneFontSizeLarge
PhoneTextTitle3Style TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilySemiLight
FontSize: PhoneFontSizeMedium
PhoneTextSmallStyle TextBlock Style
BasedOn: PhoneTextBlockBase
FontSize: PhoneFontSizeSmall
Foreground: PhoneSubtleBrush
PhoneTextLargeStyle TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilySemiLight
FontSize: PhoneFontSizeLarge
PhoneTextExtraLargeStyle TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilySemiLight
FontSize: PhoneFontSizeExtraLarge
テキストスタイル(その2)
Name 対象: 型 説明
PhoneTextGroupHeaderStyle TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilySemiLight
FontSize: PhoneFontSizeLarge
Foreground: PhoneSubtleBrush
PhoneTextContrastStyle TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilySemiBold
Foreground: PhoneContrastForegroundBrush
PhoneTextAccentStyle TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilySemiBold
Foreground: PhoneAccentBrush
PhoneTextHugeStyle TextBlock Style
BasedOn: PhoneTextBlockBase
FontFamily: PhoneFontFamilyLight
FontSize: PhoneFontSizeHuge
文字色とテーマ
テーマはOS設定で変更
•[設定]-[テーマ]-[Background]
テーマによる制御
テーマはlightとDark
•背景色と文字色は自動変更
•テーマ別の制御用リソースもある
テーマ別表示制御リソース
テーマ別非透明度リソース
Name 型 説明
PhoneDarkThemeVisibility Visibility 黒のテーマでは表示され、白のテーマでは折りたたまれます
PhoneLightThemeVisibility Visibility 白のテーマでは表示され、黒のテーマでは折りたたまれます
Name 型 説明
PhoneDarkThemeOpacity Double 濃いテーマでは 1、薄いテーマでは 0
PhoneLightThemeOpacity Double 黒のテーマでは 0、白のテーマでは 1
VS2012でのスタイル適用
[スタイルの編集]-[リソースの適用]
構成要素の配置
UI要素の配置は重要
12pxまたはその倍数が、Windows
Phone UIのマジックナンバー
•各要素は左から24pxから配置
•コントロール間は最低でも12px開ける
•12pxごとに配置
…6pxや18pxも適切かもしれませんが
配置でよくある失敗
ヘッダ、写真、文章の整
列不足
ページの左マージンが
24pxではない
要素間の空きがない
VSとBlendの配置用グリッド表示
スナップグリッド表示
グリッド線にスナップ
配置用グリッド表示
WP8の新規プロジェクト
•AssertsフォルダにAlignmentGrid.png
デザイン時と実行時に使える重ね合
わせ表示用グリッド画像
MainPage.xamlの最後に定義がある
•コメントアウトされているのでコメン
トをはずして利用
他のページにもコピーして利用可能
配置用グリッドの使用
LayoutRootの先頭に設置
•先頭にすると最背面配置
<Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480"
Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" />
Marginプロパティで余白設定
<phone:PivotItem Header="recipe">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="240"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image x:Name="RecipeImage" Margin="12" Stretch="UniformToFill"/>
<ScrollViewer Grid.Row="1">
<TextBlock x:Name="DirectionsTextBlock" TextWrapping="Wrap" Margin="12,0,0,0" />
</ScrollViewer>
<StackPanel Grid.Row="2" Orientation="Horizontal" Margin="12"
HorizontalAlignment="Left" >
<TextBlock Text="Prep time: " Margin="0" />
<TextBlock x:Name="PrepTimeTextBlock" />
</StackPanel>
</Grid>
</phone:PivotItem>
Demo:
Working with Style and Alignment
http://code.msdn.microsoft.com/wpapps/Windows-Phone-8-JumpStart-ae4731ac
デザイン時データ
デザイン時データの生成
デザイン時データがあるとWYSIWYG
デザインが可能
Blendを使うと、XMLやクラスからサ
ンプルデータを生成可能
クラスからのサンプルデータ生成
Visual Studioでクラスを定義
Blendでデザイン時データ生成
デザイン時データの編集
Blendで単語数を編集
各単語の文字列長を編集
Demo:
Design-Time Data
http://code.msdn.microsoft.com/Windows-Phone-8-JumpStart-ce76f94f
データバインディング
データバインディング
画面にデータを表示する方法として簡単なのは、
UIコントロールのプロパティに値を代入する方
法
• 例) textBox1.Text = "Hello, world";
画面を直接変更するコードは変化に弱く、バグ
が混入しやすいという側面があります
解決策はXAMLデータバインディングの採用
• データバインディングのソース(データ供給元)
となるクラスをViewModelと呼びます
UIコントロールはViewModelクラスのプロパ
ティから表示値を自動的に取得
• プロパティ値が変われば表示も自動更新
• 画面入力はバインディングしたViewModelクラス
のプロパティに自動反映
データバインディングの記述
Publicなプロパティを指定
• ImageコントロールのSourceプロパティと
ViewModelクラスのBackgroudImageプロパ
ティをバインディング
データソースの定義
• データソースはコードで、
FrameworkElementがベースとなっているコ
ントロール、フレーム、ページの
DataContextプロパティに代入
• リストコントロールならItemSource
<Image Stretch="UniformToFill" Source="{Binding BackgroundImage}"/>
データバインディングモデル
Modeプロパティで同期方向を指定可能
• OneTime
• 1度だけ設定、以降の変更は反映されない
• OneWay
• データオブジェクトからの変更は反映
• 画面入力値はオブジェクトに伝搬されない
• TwoWay
• 変更点は双方向で伝搬される
<Image Stretch="UniformToFill" Source="{Binding BackgroundImage, Mode=OneWay} "/>
INotifyPropertyChanged
OneWayやTwoWayバインディング
INotifyPropertyChangedインターフェース
を実装したViewModelが必要
• PropertyChangedイベントでコントロール
に値を反映
WP7.1でのViewModel実装例
文字列でプロパティ名を指定
VB
• NotifyPropertyChanged(“ID”)
• Private Sub NotifyPropertyChanged(propertyName As String)
C#
• NotifyPropertyChanged(“ID”)
• private void NotifyPropertyChanged(String propertyName)
WP8でのViewModel実装例
CallerMemberName属性を使う
VB
• Me.SetProperty()
• Protected Sub SetProperty(<CallerMemberName> Optional
propertyName As String = Nothing) As Boolean
C#
• this.SetProperty()
• protected void SetProperty ([CallerMemberName]
String propertyName = null)
リストをバインディングする
ItemTemplate=“{…}”
ItemsSourace=“{Binding …}”
• ObservableCollectionをバインド
• INotifyPropertyChangedを実装したクラス
の中でのみObservableCollectionを定義可能
Public Property ItemGroups As ObservableCollection(Of RecipeDataGroup)
ObservableCollection
バインディング用コレクション
•要素の追加/削除で
NotifyPropertyChangedを自動発呼
VB
• Public Property Items As
ObservableCollection(Of ItemViewContent)
C#
• Public ObservableCollection<ItemViewContent> Item {get; set;}
Model-ViewModel-View
Model
• ローカルやWebサービスからのデータなどを
公開するクラス
ViewModel
• Viewでデータバインドできる
プロパティやメソッドを持ったクラス
View
• データ表示、ユーザ入力などの機能を備えた
プレゼンテーションクラス
• Viewにはアプリロジックを含まない
• ViewModelとバインド
http://msdn.microsoft.com/ja-jp/library/windowsphone/develop/gg521153.aspx
Demo:
Data Binding
http://code.msdn.microsoft.com/Windows-Phone-8-JumpStart-2ea4d8bc
リストとLongListSelector
LongListSelectorの機能
ListBox拡張版
フラットリスト
ヘッダ付グループリスト
ジャンプリスト
データ仮想化
元々はSilverlight Toolkit
• ROMに含まれるようになって性能向上
• ListBoxの代わりに常用
リストアイテムの描画
ListBoxやLongListSelectorなどリスト系コ
ントロール自体に、データ項目の描画機能
なし
簡単にリスト表示するためには
• コレクションオブジェクトをItemsSourceプ
ロパティとバインディングする
デザイン時データからのリスト生成
MainPage.xamlをBlendで開く
DataウィンドウのコレクションをXAMLデザ
イナにドラッグアンドドロップ
ListBoxが生成されるので手動で
LongListSelectorに変更
リストとテンプレート
リストに表示する内容はカスタマイズ可能
各要素はそれぞれ別テンプレートで指定
LongListSelectorには指定できる要素が多い
• GroupFooterTemplate
• グループ化した後ろに表示する内容を指定
• GroupHeaderTemplate
• グループ化した先頭に表示する内容を指定
• ItemTemplate
• 1レコード分のレイアウトを指定
• JumpListStyle
• JampListが有効な時のレイアウトを指定
• ListFooterTemplate
• リストの終わりに表示する内容を指定
• ListHeaderTemplate
• リストの先頭に表示する内容を指定
データ項目の表示を変えたいときはItemTemplateを変更
BlendでのItemTemplateの変更
リストコントロールを右クリック
[追加テンプレートの編集]メニュー
• テンプレートの中をデザイン
DataTemplateのXAML記述例
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="RecipeDataGroupTemplate">
<Grid Margin="5" >
<Grid.ColumnDefinitions>
<ColumnDefinitionWidth="150"/>
<ColumnDefinitionWidth="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Image Source="{Binding Image}"Width="150" Stretch="UniformToFill" Grid.RowSpan="2"/>
<TextBlockText="{BindingTitle}" Grid.Column="1" Grid.Row="0" Style="{StaticResource …}"/>
<TextBlockText="{Binding Description}" Grid.Column="1" Grid.Row="1" Style="{StaticResource …}" />
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
Demo:
Data Templates and Lists
http://code.msdn.microsoft.com/Windows-Phone-8-JumpStart-ccebd0ea
Summary
デザインで重要な5つの事柄
• 綺麗で、軽く、開放感があり、機敏に
• 分かりやすいタイポグラフィ
• 躍動感あふれるモーション
• コンテンツを変に飾り立てない
• 本物のデジタル性 – インフォグラフィック
UIデザインはXAMLで記述
プロジェクトテンプレートはWindows Phone Design
に準拠
Blendはデザイン時データを表示しながら作業可能
XAMLでデータバインディングするには、データクラ
スのプロパティを指定
リスト要素のデザインはテンプレートで定義

More Related Content

Similar to Windows Phone 8 アプリ開発 02.デザイン

テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門Satoshi Watanabe
 
空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリAkira Hatsune
 
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...de:code 2017
 
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Daizen Ikehara
 
モバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousan
モバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousanモバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousan
モバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousanAndrey Chernov
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話SORACOM,INC
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Yoshito Tabuchi
 
2016.10.15アプリ発表会
2016.10.15アプリ発表会2016.10.15アプリ発表会
2016.10.15アプリ発表会b a
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~拓将 平林
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程Hidetoshi Mori
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
マークアップ講座 02 CSS
マークアップ講座 02 CSSマークアップ講座 02 CSS
マークアップ講座 02 CSSeiji sekiya
 
Why-is-ImplementationPattterns-important-so-much
Why-is-ImplementationPattterns-important-so-muchWhy-is-ImplementationPattterns-important-so-much
Why-is-ImplementationPattterns-important-so-muchKoji SHIMADA
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはKatsutoshi Makino
 
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~de:code 2017
 
Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Nobuaki Aoki
 
Web area-phone-home
Web area-phone-homeWeb area-phone-home
Web area-phone-homekmiyako
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Monaca
 

Similar to Windows Phone 8 アプリ開発 02.デザイン (20)

テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
 
空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...
[BA09] 生産性/利便性を追求した最先端の業務アプリケーションとは!? ~Dynamics 365/Office 365 とチャットアプリケーションと...
 
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
 
モバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousan
モバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousanモバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousan
モバイルアプリパフォーマンス向上の道を踏み出す前に知っておきたいコト!@andousan
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
 
2016.10.15アプリ発表会
2016.10.15アプリ発表会2016.10.15アプリ発表会
2016.10.15アプリ発表会
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
マークアップ講座 02 CSS
マークアップ講座 02 CSSマークアップ講座 02 CSS
マークアップ講座 02 CSS
 
Why-is-ImplementationPattterns-important-so-much
Why-is-ImplementationPattterns-important-so-muchWhy-is-ImplementationPattterns-important-so-much
Why-is-ImplementationPattterns-important-so-much
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
 
Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発
 
Web area-phone-home
Web area-phone-homeWeb area-phone-home
Web area-phone-home
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 

Windows Phone 8 アプリ開発 02.デザイン