SlideShare a Scribd company logo
2015.04.11 #4 JXUG Conference with dotNetConf 2015
ビヘイビア・コンテキストメニュー・リストビュースクロールなど、Ver1.3以降に追加された新機能
の使用方法について
Xamarin.Formsで作成する翻訳機能付き
Twitterクライアント
自己紹介
 識別子 SIN/札幌ワークス
 Twitter @furuya02
 スタッフ CLR/H
 ブログ SIN@SAPPOROWORKSの覚書
 Microsoft MVP for Visual C# (2013/1~)
 フリーソフト BlackJumboDog
 BuildInsider Xamarin逆引きTips
Version1.3(1.4)
Xamarin 1.3以降アップデート
年末の1.3は、大きな変更だった・・・
App Lifecycle OnStart,OnSleep,OnResume (1.3)
Properties Dictionary (1.3)
ModalPushed,ModalPopped (1.4)
Styles (1.3)
Behaviors (1.3)
Triggers (1.3)
Font (1.3)
ListView context actions (1.3)
pull to refresh (1.4)
headers and footers (1.4)
row separator (1.4)
Scroll (1.3)
iOS 64bit support (1.3)
ScrollView offset (1.4)
OpenGLRenderer (1.4)
Xamarin 1.3以降アップデート
Xamarin.Formsに関するものをいくつか試してみました
App Lifecycle OnStart,OnSleep,OnResume (1.3)
Properties Dictionary (1.3)
ModalPushed,ModalPopped (1.4)
Styles (1.3)
Behaviors (1.3)
Triggers (1.3)
Font (1.3)
ListView context actions (1.3)
pull to refresh (1.4)
headers and footers (1.4)
row separator (1.4)
Scroll (1.3)
iOS 64bit support (1.3)
ScrollView offset (1.4)
サンプルアプリ
サンプルアプリ
本翻訳機能付きTwitter
コンテキストアクションから
翻訳表示に切替え
プルリフレッシュで更新
サンプルアプリ
本翻訳機能付きTwitter
オプションメニュー
トリガーによるUI拡張
サンプルアプリ
本翻訳機能付きTwitter
検索メニュー
ビヘイビアによるUI拡張
サンプルアプリ
本翻訳機能付きTwitter
スタイルによる整形
サンプルアプリ
本翻訳機能付きTwitter
ListViewのヘッダ
ライフサイクル・プロパティーズディクショナリー
セッションデータ保存
Tweetデータ/オプション設定/検索文字etc.
サンプルコード
参考になるものが少しでもあれば幸いです
https://github.com/furuya02/TranslationTwitter
利用のためには、Twitterと翻訳サービス利用のためのアクセスキーが必要です。
class Translator{
const string ClientId = "{ClientId}";
const string ClientSecret = "{ClientSecret}";
class Twitter{
const string ApiKey = "{ApiKey}";
const string ApiSecret = "{ApiSecret}";
const string AccessToke = "{AccessToke}";
const string AccessTokeSecret = "{AccessTokeSecret}";
テンプレートでは、V1.3.1.6296
2015年4月9日現在、最新のstableは1.4.1.6349
v1.4となっているものは、インストールしないと動作しません。
PM> Get-Package
Id Version Description/Release Notes
-- ------- -------------------------
CoreTweet 0.4.0 …
Microsoft.Bcl 1.1.10 …
Microsoft.Bcl.Build 1.0.14 …
Microsoft.Net.Http 2.2.29 …
Newtonsoft.Json 6.0.8 …
Wptoolkit 4.2013.08.16 …
Xamarin.Android.Support.v4 21.0.3.0 …
Xamarin.Forms 1.4.1.6349 …
サンプルプログラムは、Xamarni.Forms Version1.4.1.6349で作成されてい
ます
PM> Get-Package
Id Version Description/Release Notes
-- ------- -------------------------
CoreTweet 0.4.0 …
Microsoft.Bcl 1.1.10 …
Microsoft.Bcl.Build 1.0.14 …
Microsoft.Net.Http 2.2.29 …
Newtonsoft.Json 6.0.8 …
Wptoolkit 4.2013.08.16 …
Xamarin.Android.Support.v4 21.0.3.0 …
Xamarin.Forms 1.4.1.6349 …
デモ
ライフサイクル
App Lifecycle
アプリ起動時 OnStart()
OnStart()
App Lifecycle
バックグランドへ移行した時 OnSleep()
OnSleep()
App Lifecycle
バックグランドからの復帰時 OnResume()
OnResume()
App Lifecycle
アプリ終了時は、特になし
App Lifecycle
セッションデータの保存・読込みの適切なタイミング
OnStart(){ Read() }
App Lifecycle
セッションデータの保存・読込みの適切なタイミング
OnSleep(){ Save() }
App Lifecycle
セッションデータの保存・読込みの適切なタイミング
OnSleep(){ Save() }
Properties Dictionary
Application.Currentは、何処からでも使用できて超便利
//保存
Application.Current.Properties ["key"] = value;
//読込み
var value = Application.Current.Properties ["key"] as T;
Properties Dictionary
1件1件のデータは、Tweetクラスで表現されている
//1つのTweetを表現するクラス
class Item{
public string Name { get; set; } //表示名
public string Text { get; set; } //メッセージ
public string ScreenName { get; set; } //アカウント名
public string CreatedAt { get; set; } //作成日時
public string Icon { get; set; } //アイコン
public long Id { get; set; } //Id
public string TranslatedText { get; set; } //翻訳済みテキスト
public bool IsTranslated { get; set; }
}
Properties Dictionary
Application.Current.Propertiesで、シリアライズする
var p = Application.Current.Properties;
//保存 MyPage.Save() [App.cs]
foreach(var a in _items){
p["items_" + i++] = a;
//読み込み MyPage.Read() [App.cs]
_items.Add(p["items_" + i++] as Item);
Properties Dictionary
ごみは、Clearで削除する
var p = Application.Current.Properties;
//初期化 MyPage.Save() [App.cs]
p.Clear();
Properties Dictionary
保存したのは、検索文字列・オプション・Tweetデータなど
//App.OnSleep() [App.cs]
protected override void OnSleep() {
((MyPage)MainPage).Save();
}
//MyPage.Save() [App.cs]
public void Save() {
var p = Application.Current.Properties;
p["ListViewMax"] = _option.ListViewMax;
p["Separator"] = _option.Separator;
p["Count"] = _listViewHeader.Count;
・・・
【参考】 WindowsPhoneXamarin でセッションデータを保存・復元したい
【Windows Phone 8.0 編】
http://matatabi-ux.hateblo.jp/entry/2015/03/23/120000
App.OnSleep() [App.cs]
MyPage.Save() [App.cs]
セパレータ
セパレータ(ListView)
Ver1.4以降、プロパティが増えました
セパレータ(ListView)
Android
セパレータ(ListView)
iOS
セパレータ(ListView)
WindowsPhoneには、セパレータを表示するオプションがない・・・
セパレータ(ListView)
気が付かないレベル
Option.Option() [Option.cs]
ヘッダ・フッタ
ヘッダ・フッタ(ListView)
Ver1.4以降、プロパティが増えました
ヘッダ・フッタ(ListView)
Headerプロパティ(データコンテキスト)
var listView = new ListView() {
ItemsSource = Enumerable.Range(0, 100).Select(n => "Item" + n),
};
listView.Header = "TEST“;
①Headerプロパティに
セットする
ヘッダ・フッタ(ListView)
Headerプロパティ(データコンテキスト)
class Parson {
public String Name { get; set; }
public int Age { get; set; }
}
・・・
listView.Header =
new Parson{Name="Taro",Age=20}; ②コンテキストの
ToString()で処理されて
いる
ヘッダ・フッタ(ListView)
HeaderTemplateプロパティ(データテンプレート)
listView.Header = new Parson{Name="Taro",Age=20};
listView.HeaderTemplate = new DataTemplate(typeof(HeaderTemplate));
public class HeaderTemplate : ContentView{
public HeaderTemplate() {
var label = new Label();
label.SetBinding(Label.TextProperty, "Name");
Content = label;
}
}
③データテンプレートを
指定する
ヘッダ・フッタ(ListView)
HeaderTemplateプロパティ(データテンプレート)
listView.Header = new Parson{Name="Taro",Age=20};
listView.HeaderTemplate = new DataTemplate(typeof(HeaderTemplate));
public class HeaderTemplate : ContentView{
public HeaderTemplate() {
var label = new Label();
label.SetBinding(Label.TextProperty, "Name");
Content = label;
}
}
※データテンプレートは
ContentViewを継承する
ヘッダ・フッタ(ListView)
データテンプレートによる整形(ContentView/ViewCell)を継承
listView.Header
listView.HeaderTemplate
class HeaderTemplate : ContentView
listView.ItemsSource
listView.ItemTemplate
class ItemTemplate: ViewCell
MainView. MainView() [MainView.cs]
ListViewHeader() [ListViewHeader.cs]
プル・リフレッシュ
プル・リフレッシュ(ListView)
追加されたイベント・プロパティなどは次のとおり
event EventHandler Refreshing;
bool IsPullToRefreshEnabled;
bool IsRefreshing;
ICommand RefreshCommand;
public void BeginRefresh ();
public void EndRefresh ();
プル・リフレッシュ(ListView)
プルリフレッシュの機能ON
event EventHandler Refreshing;
bool IsPullToRefreshEnabled;
bool IsRefreshing;
ICommand RefreshCommand;
public void BeginRefresh ();
public void EndRefresh ();
①trueにすると有効になる
プル・リフレッシュ(ListView)
グルグルの間はtrue
event EventHandler Refreshing;
bool IsPullToRefreshEnabled;
bool IsRefreshing;
ICommand RefreshCommand;
public void BeginRefresh ();
public void EndRefresh ();
②引っ張るとtrueになる
プル・リフレッシュ(ListView)
更新等の処理を仕込む
event EventHandler Refreshing;
bool IsPullToRefreshEnabled;
bool IsRefreshing;
ICommand RefreshCommand;
public void BeginRefresh ();
public void EndRefresh ();
③処理を記述する
プル・リフレッシュ(ListView)
止めないと、永遠にクルクル
event EventHandler Refreshing;
bool IsPullToRefreshEnabled;
bool IsRefreshing;
ICommand RefreshCommand;
public void BeginRefresh ();
public void EndRefresh ();
④クルクルを止める
プル・リフレッシュ(ListView)
リストの最下行は処理できない・・・
IsPullToRefreshEnabled = true;
Refreshing += (s, a) =>{
//ここで更新処理
IsRefreshing = false;
};
MainView.MainView() [MainView.cs]
コンテキストアクション
コンテキストアクション(ListView)
外観は、プラットフォームごとかなり違います
コンテキストアクション(ListView)
セルのテンプレートに仕込む
var listView = new ListView() {
ItemsSource = Enumerable.Range(0, 100).Select(n => "Item" + n),
ItemTemplate = new DataTemplate(() => new MyCell())
};
①まずは、テンプレートが必要
コンテキストアクション(ListView)
実体はMenuItemで、ContextActionsに追加するだけ
internal class MyCell : ViewCell {
public MyCell() {
・・・
var deleteAction = new MenuItem {
Text = "Delete",
Command = new Command(処理)
IsDestructive = true, //背景赤色
};
ContextActions.Add(deleteAction);
②MenuItemを生成
③ContextActionsプロパティに追
加する
コンテキストアクション(ListView)
翻訳の処理をブッこみました
MyCell.MyCell() [MainView.cs]
コンテキストアクション(ListView)
見た目はやっぱり大きく違う・・・
MyCell.MyCell() [MainView.cs]
ビヘイビア
ビヘイビア
サブクラス化せず、UIコントロールに機能を追加
public class MyBehavior : Behavior<Entry> {
・・・
}
var entry = new Entry{
・・・
Behaviors = { new MyBehavior() }
};
①Behaviorを継承したクラス
を作成
②UIコントロールの
Behaviorsプロパティに追加
ビヘイビア
機能の追加と削除
public class MyBehavior : Behavior<Entry> {
protected override void OnAttachedTo(Entry bindable) {
bindable.TextChanged += CheckEmail;
}
protected override void OnDetachingFrom(Entry bindable) {
bindable.TextChanged -= CheckEmail;
}
・・・
}
④OnDetachingFromで破棄
③OnAttachedToでハンドラ
の追加
ビヘイビア
記号など入力を拒否(テキスト色を赤色にして、OKボタンを非表示にした)
SearchBehavior. OnAttachedTo() [SearchBehavior.cs]
SearchBehavior. OnDetachingFrom() [SearchBehavior.cs]
SearchView.SearchView() [SearchView.cs]
トリガー
トリガー
イベントやプロパティの変化に応じ、UIの外観変更をXAMLだけで実装
プロパティ値の変化
プロパティトリガー(Property Trigger)
別コントロールのプロパティ値の変化
データトリガー(Data Trigger)
イベント
イベントトリガー(Event Trigger)
複数トリガーの複合状態
マルチトリガー(Multi Trigger)
トリガー
プロパティトリガー
<Entry>
<Entry.Triggers>
<Trigger TargetType="Entry" Property="IsFocused" Value="True">
<Setter Property="BackgroundColor" Value="Aqua" />
</Trigger>
</Entry.Triggers>
</Entry>
①Trigger
IsFocusedプロパティがTrueの時
②Setter
BackgroundColorプロパティ
がAquaとなる
トリガー
データトリガー
<Entry x:Name="entry" Text=""/>
<Button Text="OK">
<Button.Triggers>
<DataTrigger TargetType="Button"
Binding="{Binding Source={x:Reference entry},
Path=Text.Length}" Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Button.Triggers>
</Button>
①Trigger
EntryのText.Lengthが0の時
②Setter
IsEnableがFalseとなる
トリガー
フォーカスが入ると水色、数値以外だとテキストを赤色にしてOKを非表示
[OptionView.xaml]
プロパティトリガー
フォーカスが入ると水色
イベントトリガー
数値以外の時、テキスト赤色
データトリガー
Entryのテキスト色が赤の時、Disable
スタイル
スタイル
プロパティ指定をリソースとしてまとめて行う
<ContentView ・・・>
<ContentView.Resources>
<ResourceDictionary>
<Style TargetType="Button">
<Setter Property="BorderColor" Value="White"/>
<Setter Property="BorderWidth" Value="1"/>
<Setter Property="TextColor" Value="White"/>
<Setter Property="BorderRadius" Value="5"/>
</Style>
</ResourceDictionary>
</ContentView.Resources>
<StackLayout>
<Button Text="OK">
<Button Text="キャンセル"/>
</StackLayout>
リソースとしてスタイルを定義す
る
TargetType=Button
全てのButtonに適用
される
[OptionView.xaml]
Twitter
CoreTweet
バージョンによってはPCLで使用できません
PM> Install-Package CoreTweet
依存関係 'Newtonsoft.Json (≥ 4.5.11)' の解決を試みています。
'Newtonsoft.Json 4.5.11' をインストールしています。
'Newtonsoft.Json 4.5.11' が正常にインストールされました。
'CoreTweet 0.4.0' をインストールしています。
'CoreTweet 0.4.0' が正常にインストールされました。
'Newtonsoft.Json 4.5.11' を Project に追加しています。
'Newtonsoft.Json 4.5.11' が Project に正常に追加されました。
'CoreTweet 0.4.0' を Project に追加しています。
'CoreTweet 0.4.0' が Project に正常に追加されました。
Newtonsoft.Jsonは、依存関係から
自動的にインストールされます。
【参考】 CoreTweet/CoreTweet - クイック チュートリアル
https://github.com/CoreTweet/CoreTweet/wiki/クイック-チュートリアル
開発者ページ
https://apps.twitter.com/
Application Settings
Consumer Key (API Key)
Consumer Secret (API Secret)
Your Access Token
Access Token
Access Token Secret
翻訳
Microsoft Translator
1 ヶ月あたり200万文字まで無料で利用可能です
http://api.microsofttranslator.com/v2/Http.svc/Translate?text="文字列”
Microsoft Translator
利用の手順は3ステップ(ClientId及びClientSecretを取得する)
1) Live ID 取得
2) サブスクリプション登録
3) アプリケーション登録
クライアントID(ClientId)
顧客の秘密(ClientSecret)
【参考】 SIN@SAPPOROWORKSの覚書 - Xamarin.Forms 機械翻訳
http://furuya02.hatenablog.com/entry/2015/03/02/042823
HttpClient
System.Net.HttpはWindowsPhoneで利用できない
PM> Install-Package Microsoft.Net.Http
依存関係 'Microsoft.Bcl (≥ 1.1.10)' の解決を試みています。
依存関係 'Microsoft.Bcl.Build (≥ 1.0.14)' の解決を試みています。
'Microsoft.Bcl.Build 1.0.14' をインストールしています。
'Microsoft.Bcl.Build 1.0.14' が正常にインストールされました。
'Microsoft.Bcl 1.1.10' をインストールしています。
'Microsoft.Bcl 1.1.10' が正常にインストールされました。
'Microsoft.Net.Http 2.2.29' をインストールしています。
'Microsoft.Net.Http 2.2.29' が正常にインストールされました。
'Microsoft.Bcl.Build 1.0.14' を Project に追加しています。
'Microsoft.Bcl.Build 1.0.14' が Project に正常に追加されました。
'Microsoft.Bcl 1.1.10' を Project に追加しています。
'Microsoft.Bcl 1.1.10' が Project に正常に追加されました。
'Microsoft.Net.Http 2.2.29' を Project に追加しています。
'Microsoft.Net.Http 2.2.29' が Project に正常に追加されました。
【参考】 SIN@SAPPOROWORKSの覚書
- Xamarin.Forms HttpClientで超シンプルにダウンロードする
http://furuya02.hatenablog.com/entry/2014/10/05/053525
ご清聴ありがとうございました
札幌ワークス
http://www.sapporoworks.ne.jp/spw

More Related Content

What's hot

第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要Yoshito Tabuchi
 
Xamarin × Visual Studio Updates
Xamarin × Visual Studio UpdatesXamarin × Visual Studio Updates
Xamarin × Visual Studio Updates友太 渡辺
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発友太 渡辺
 
Windows storeアプリ brekky
Windows storeアプリ brekkyWindows storeアプリ brekky
Windows storeアプリ brekkySatoshi Sekine
 
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン一希 大田
 
Xamarin.formsとカスタムコントロールの話
Xamarin.formsとカスタムコントロールの話Xamarin.formsとカスタムコントロールの話
Xamarin.formsとカスタムコントロールの話Masuda Tomoaki
 
Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要Yoshito Tabuchi
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarinYoshito Tabuchi
 
#VSUG LT #JXUG の紹介
#VSUG LT #JXUG の紹介#VSUG LT #JXUG の紹介
#VSUG LT #JXUG の紹介Yoshito Tabuchi
 
Xamarinでもクラウドで監視したい!
Xamarinでもクラウドで監視したい!Xamarinでもクラウドで監視したい!
Xamarinでもクラウドで監視したい!ayasehiro
 
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」Yoshito Tabuchi
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcToshiaki Maki
 

What's hot (15)

第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要
 
Xamarin × Visual Studio Updates
Xamarin × Visual Studio UpdatesXamarin × Visual Studio Updates
Xamarin × Visual Studio Updates
 
Xamarin 基礎講座
Xamarin 基礎講座Xamarin 基礎講座
Xamarin 基礎講座
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
 
Xamarin.Forms概要
Xamarin.Forms概要Xamarin.Forms概要
Xamarin.Forms概要
 
Windows storeアプリ brekky
Windows storeアプリ brekkyWindows storeアプリ brekky
Windows storeアプリ brekky
 
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
 
Xamarin.formsとカスタムコントロールの話
Xamarin.formsとカスタムコントロールの話Xamarin.formsとカスタムコントロールの話
Xamarin.formsとカスタムコントロールの話
 
Service Workerとの戦い ~ 実装編 ~ #scripty03
Service Workerとの戦い ~ 実装編 ~ #scripty03Service Workerとの戦い ~ 実装編 ~ #scripty03
Service Workerとの戦い ~ 実装編 ~ #scripty03
 
Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarin
 
#VSUG LT #JXUG の紹介
#VSUG LT #JXUG の紹介#VSUG LT #JXUG の紹介
#VSUG LT #JXUG の紹介
 
Xamarinでもクラウドで監視したい!
Xamarinでもクラウドで監視したい!Xamarinでもクラウドで監視したい!
Xamarinでもクラウドで監視したい!
 
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
 

Similar to Xamarin.formsで作成する翻訳機能付きtwitterクライアント

「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)Fujio Kojima
 
OSC2011 Androidハンズオン
OSC2011 AndroidハンズオンOSC2011 Androidハンズオン
OSC2011 AndroidハンズオンKatsumi Honda
 
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa Stotty jp
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdkKazuki Nakajima
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Takashi EGAWA
 
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版Fumiya Sakai
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 
ネットワーク第6回
ネットワーク第6回ネットワーク第6回
ネットワーク第6回Yukiko Kato
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
 
Flutter のリアクティブ戦略 set state 〜 redux まで
Flutter のリアクティブ戦略 set state 〜 redux までFlutter のリアクティブ戦略 set state 〜 redux まで
Flutter のリアクティブ戦略 set state 〜 redux までcch-robo
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium MobileNaoya Ito
 
Spring BootでHello Worldのその先へ
Spring BootでHello Worldのその先へSpring BootでHello Worldのその先へ
Spring BootでHello Worldのその先へMasatoshi Fujino
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
Android test tutorial
Android test tutorialAndroid test tutorial
Android test tutorialKazuaki Ueda
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
[PS11]ネットワーク第5回
[PS11]ネットワーク第5回[PS11]ネットワーク第5回
[PS11]ネットワーク第5回Yukiko Kato
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Hajime Fujimoto
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発Kazuki Nakajima
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用stomita
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発Katsumi Honda
 

Similar to Xamarin.formsで作成する翻訳機能付きtwitterクライアント (20)

「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
 
OSC2011 Androidハンズオン
OSC2011 AndroidハンズオンOSC2011 Androidハンズオン
OSC2011 Androidハンズオン
 
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa S
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
 
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
ネットワーク第6回
ネットワーク第6回ネットワーク第6回
ネットワーク第6回
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 
Flutter のリアクティブ戦略 set state 〜 redux まで
Flutter のリアクティブ戦略 set state 〜 redux までFlutter のリアクティブ戦略 set state 〜 redux まで
Flutter のリアクティブ戦略 set state 〜 redux まで
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
Spring BootでHello Worldのその先へ
Spring BootでHello Worldのその先へSpring BootでHello Worldのその先へ
Spring BootでHello Worldのその先へ
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
Android test tutorial
Android test tutorialAndroid test tutorial
Android test tutorial
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
[PS11]ネットワーク第5回
[PS11]ネットワーク第5回[PS11]ネットワーク第5回
[PS11]ネットワーク第5回
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発
 

More from Shinichi Hirauchi

Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜Shinichi Hirauchi
 
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法Shinichi Hirauchi
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよShinichi Hirauchi
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門Shinichi Hirauchi
 
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜Shinichi Hirauchi
 
Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料Shinichi Hirauchi
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~Shinichi Hirauchi
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方Shinichi Hirauchi
 
C#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community campC#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community campShinichi Hirauchi
 
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんかFacebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんかShinichi Hirauchi
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクト簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクトShinichi Hirauchi
 
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとしてBlack jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとしてShinichi Hirauchi
 
初めてのFacebookアプリの開発
初めてのFacebookアプリの開発初めてのFacebookアプリの開発
初めてのFacebookアプリの開発Shinichi Hirauchi
 
Facebookの偽アカウント
Facebookの偽アカウントFacebookの偽アカウント
Facebookの偽アカウントShinichi Hirauchi
 
テストコードの定型化
テストコードの定型化テストコードの定型化
テストコードの定型化Shinichi Hirauchi
 
HTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみましたHTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみましたShinichi Hirauchi
 
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)Shinichi Hirauchi
 

More from Shinichi Hirauchi (20)

Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜Amazon connect について 〜各種AWSのサービスとの連携〜
Amazon connect について 〜各種AWSのサービスとの連携〜
 
Alexa SDK Alexa Salon
Alexa SDK Alexa SalonAlexa SDK Alexa Salon
Alexa SDK Alexa Salon
 
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
 
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
 
Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料Developers.IO 2016 F-1 セッション資料
Developers.IO 2016 F-1 セッション資料
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~簡易電話交換機の作成~廃品利用による低予算プロジェクト~
簡易電話交換機の作成~廃品利用による低予算プロジェクト~
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方
 
C#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community campC#で作成するfacebookアプリ mvp community camp
C#で作成するfacebookアプリ mvp community camp
 
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんかFacebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
 
簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクト簡易電話交換機の作成~廃品利用による低予算プロジェクト
簡易電話交換機の作成~廃品利用による低予算プロジェクト
 
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとしてBlack jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
 
初めてのFacebookアプリの開発
初めてのFacebookアプリの開発初めてのFacebookアプリの開発
初めてのFacebookアプリの開発
 
Facebookの偽アカウント
Facebookの偽アカウントFacebookの偽アカウント
Facebookの偽アカウント
 
テストコードの定型化
テストコードの定型化テストコードの定型化
テストコードの定型化
 
HTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみましたHTMLを1行も書かずにwebアプリを作ってみました
HTMLを1行も書かずにwebアプリを作ってみました
 
ReSharperでLinq変換
ReSharperでLinq変換ReSharperでLinq変換
ReSharperでLinq変換
 
マウスでタッチ操作
マウスでタッチ操作マウスでタッチ操作
マウスでタッチ操作
 
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
 

Recently uploaded

人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例Kurata Takeshi
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料Toru Miyahara
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介miyp
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料Toru Miyahara
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上mizukami4
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題についてMasatsugu Matsushita
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubK Kinzal
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Toru Miyahara
 

Recently uploaded (8)

人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 

Xamarin.formsで作成する翻訳機能付きtwitterクライアント