かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Xamarin

Azure Mobile AppsをXamarin.Formsからも使ってみよう

過去記事 Azure Mobile AppsでUWPを作ってみよう - かずきのBlog@hatena Azure Mobile AppsでUWPを作ってみよう「手組編」 - かずきのBlog@hatena Azure Mobile AppsでUWPを作ってみよう「同期編」 - かずきのBlog@hatena Azure Mobile AppsでUWPを作ってみ…

Visual Studio Team ServicesでXamarin.FormsのDroidプロジェクトのビルドとapkの作成をしてみよう

プロジェクトの作成 まず、Xamarin.FormsのプロジェクトをVisual Studioで作成します。 作成したらWindows, WinPhone, UWPのプロジェクトを削除します。UWPあるとビルド通らなかったので…。 プロジェクト名は、ここではxfvstsにしました。 VSTS上のプロジェ…

Xamarin AndroidでRelativeLayoutを見てみよう

過去記事 Xamarin.AndroidでHello world - かずきのBlog@hatena Xamarin.Androidで画面遷移してみよう - かずきのBlog@hatena Xamarin AndroidでActivityにライフサイクルを確認してみた - かずきのBlog@hatena Xamarin AndroidでLinearLayoutを見てみよう -…

Xamarin AndroidでLinearLayoutを見てみよう

過去記事 Xamarin.AndroidでHello world - かずきのBlog@hatena Xamarin.Androidで画面遷移してみよう - かずきのBlog@hatena Xamarin AndroidでActivityにライフサイクルを確認してみた - かずきのBlog@hatena LinearLayout 要素を縦と横に並べることができ…

Xamarin AndroidでActivityにライフサイクルを確認してみた

過去記事 Xamarin.AndroidでHello world - かずきのBlog@hatena Xamarin.Androidで画面遷移してみよう - かずきのBlog@hatena Activityのライフサイクル Activityのライフサイクルについて説明します。Activityのライフサイクルで呼び出されるメソッドは以下…

Xamarin.Androidで画面遷移してみよう

過去記事 Xamarin.AndroidでHello world - かずきのBlog@hatena 画面遷移してみよう ここでは、Andoridの画面遷移について説明します。Andoridでは、画面遷移にIntentというものを使います。このIntentは、とても汎用的なメッセージング機構でサービスとよば…

Xamarin.AndroidでHello world

ハローワールドを通じて、簡単なアプリケーションの開発の流れを見てみようと思います。Visual Studioのプロジェクトの新規作成から「Android」→「Blank App(Android)」を選択します。 「HelloWorld」とプロジェクト名をつけてプロジェクトを作成します。…

Xamarin.AndroidからJavaのネイティブライブラリ(jarね)を使おう

お題の通りやってみようと思います。 今回挑戦したのは癖のなさそうな、Apache CommonsのLangです。ここからjarをダウンロードしました。 Lang – Download Apache Commons Lang バージョンは現時点で最新の3.4にしました。 前提知識としてBindings Libraryと…

Visual Studio上のXamarin.FormsでReactiveProperty v3.0を使う方法

Rx 3.0対応しているRP 3.0ですが、まだpreリリースです。何故なら、Xamarin.Androidで参照追加するとコンパイルエラーになるから…! ということで、とりあえず使い方を試行錯誤しながら書いていこうと思います。 まず、プロジェクトを作ります。作ったら以下…

Metro.cs#2 WPFからみるMVVM で WPFから他プラットフォームへの展開というテーマで話してきました #metrocs

doc.co 資料を公開しておきます。今回からSlideShareじゃなくてdocs.comにしてみました。 Modelをしっかり作ろうぜ!っていうことでちょびっと話してきました。 試行錯誤した結果なので、これが正しいかはわからないですが…。まぁ一例ということで。

Xamarin.FormsでListViewのItemTemplate内のボタンにPageにバインドされているVMにあるCommandをバインドする方法

こういうの悩みますよね。例えば以下のようなViewModelがあるとします。こいつのAlertCommandに選択項目を渡したいというケースです。 using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Linq; u…

Xamarin.FormsでInfragistics製コンポーネントのチャートコントロールを使ってみる

InfragisticsさんはXamarin.Forms向けのコントロールも提供しています。今時点だとチャート系コントロールを提供しているみたいなのでちょっと使ってみましょう。 Xamarin.Forms v2.0対応っぽいのでバージョンを2.2とかにあげてしまわないように注意が必要そ…

Xamarin版PrismでViewとViewModelの紐づけルールを変える

PrismはデフォルトでViews名前空間にあるViewとViewModels名前空間にあるViewModelを紐づける機能を持っています。この機能を有効化するには、PageのXAMLに以下の2行を追加します。 xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" prism:View…

JXUGC 13回で発表してきました #JXUG

「Prism.Formsについて」というタイトルで、発表してきました。 Prism.Formsについて from 一希 大田 www.slideshare.net ライブコーディング失敗しなくてよかった。

Xamarin版PrismのDependencyServiceサポート機能

Prism.Formsは、基本的にUnity(DIコンテナのほう)を使ってます。 こいつを使うとインスタンスの組み立てとかをお任せ出来るので楽ちんなのです! Prism.Formsでは、そんなUnityの機能を拡張して、DependencyServiceから取得するインスタンスを自動でインジェ…

Xamarin版Prismの次のバージョンでの変更点

Xamarin版PrismのPrism.Formsですが、Xamarin Evolve 2016が終わってから更新頻度が上がってます。 次のリリースに向けて動き出してるって感じですね。 ただ、5月7日にPrism.Formsについてセッションをする身としては、次のバージョンがいつ出るのかドキドキ…

Xamarin.Forms + Prism.Formsでダイアログを出す

Prism.Formsでは、IPageDialogServiceというインターフェースが提供されていて、ダイアログの表示もばっちりViewModelで出来るようになっています。 IPageDialogServiceには、DisplayAlertメソッドと、DisplayActionSheetメソッドが定義されています。Displa…

Xamarin.Forms + Prism.FormsでMasterDetailPageを使うには

ytabuchi.hatenablog.com 上記記事をPrism.Formsを使ってやるとどうなるだろうという奴です。 まず、Prism MasterDetailPage (Forms)でRootPageという名前のページを作ります。 続けて、メニュー部を担当するMenuPageをPrism ContentPage (Forms)で作ります…

Xamarin.Forms + Prism.Formsで画面遷移DeepDive

Prism.Formsは、地味にネストした画面遷移みたいなのをサポートしています。 画面遷移のINavigationService#Navigateメソッドに渡すURLに"/HogePage/FugaPage/BarPage?id=10"みたいに/で区切ってページ指定が出来ます。 最初が/だと絶対パスになるっぽくて画…

Xamarin.Forms + Prism.FormsのMVVMの基本的なクラス

変更通知用のINotifyPropertyChangedとコマンド用のICommand実装クラスが提供されています。 INotifyPropertyChangedの実装クラス BindableBaseクラスになります。SetPropertyというメソッドがあって、変更通知プロパティを以下のように定義できるようになっ…

Xamarin.Forms + Prism.FormsでViewModelから画面遷移をする

Prism.Formsのプロジェクトを新規作成します。 Prism ContentPageを1つ追加します。NextPageという名前で作りました。こんな感じで。

Xamarin.Forms + Prism.FormsでVとVMを結びつける

Prism.Formsを使えば簡単にMVVMのViewのBindingContextにViewModelを設定できます。Hello worldでもやったっちゃやりましたが、もう一度改めてやってみようと思います。 VとVMを紐づけるには、ViewModelLocatorというクラスを使用します。ViewModelLocatorク…

Xamarin.Forms + Prism.FormsでViewの登録

Prism.Formsを使ってViewを作成するには、Views名前空間にXAMLの形式で作るのが素直でいい感じです。 Viewは、利用可能にするには、Views名前空間に作成するのに加えてAppクラスのRegisterTypesメソッドでUnityのコンテナに登録する必要があります。この登録…

XamarinでPrismを使ったHello world

PrismってXamarinにも対応してるんですよね(Previewですけど)ということで、Hello worldしながら、基本的な手順をやっていこうと思います。 プロジェクトの新規作成 まず、プロジェクトの新規作成を行います。Cross-Platform/Blank App (Xamarin.Forms Por…

認証ProxyがあるとXamarin.Forms開発が出来ないっぽい?

stackoverflow.com ビルドするとこんなエラーが出ます。 Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip and put it to the C:\Users\<username>\AppData\Local\Xamarin\Android.Support.Design\23.1.1</username>…

libaot-mscorlib.dll.so not foundとかいわれてVisual Studio 2015からVisual Studio Emulator for Androidへデプロイできない

以下のを参考になおしましょう。 stackoverflow.com Go to the properties of the Android project, hit tab “Android options”, and unselect “Use Fast Deployment”. プロジェクトのプロパティを開く Android optionsを開く Use Fast Deploymentのチェック…

XamarinのAndroidアプリでReactivePropertyを使う 2016年版

随分昔に書いてますね。 blog.okazuki.jp 最近は事情も変わったので改めて書いてみようと思います。 ReactivePropertyは? Reactive ExtensionsをベースにしたMVVMの支援ライブラリです。 blog.okazuki.jp Xamarinでも使えるの? Xamarin.AndroidとXamarin.i…

Xamarin.AndroidでReactivePropertyを楽に使うためのReactiveProperty.XamarinAndroidのサンプルをコードレシピに公開しました。

A simple master detail application with ReactiveProperty. in C# for Visual Studio 2013 A simple master detail application with ReactiveProperty. in C# for Visual Studio 2013 これくらいでいけるなら、個人的には許容範囲かもってお思えるものが…

Xamarin.AndroidでReactivePropertyを使いやすくするライブラリを試作してみた

とりあえず。 以下のようなVMがあったとして using Codeplex.Reactive; using System; using System.Reactive.Linq; namespace App15 { public class MainPageViewModel { public ReactiveProperty<string> Input { get; private set; } public ReactiveProperty<string> Out</string></string>…

Xamarin.FormsでMVVM Light ToolkitとReactivePropertyを使ってみた

Prism.Mvvmのほうが好みなんですが、こいつがSilverlight for Windows Phone 8をサポートしないので、SL for WP8もサポートしてる(すごいよね…)MVVM Light Toolkitを試してみました。 ViewModelLocatorの作成 SimpleIoCというDIコンテナがついてるけど、個…

Xamarin.Androidでテーマを変更する

assemblyにApplicationAttributeをつけて、Themeプロパティを設定するらしい。 Lolipopのマテリアルの白にしたいなら、こんな感じ。 [assembly: Application(Icon = "@drawable/bird", Theme = "@android:style/Theme.Material.Light")] ここらへんのテーマ…

Xamarin.FormsのNavigationPageのアイコンの変え方(Android)

以前に、こんな記事を書きました。 Xamarin.FormsのNavigationPageのアイコンの変え方が知りたい - かずきのBlog@hatena Xamarin.FormsのNavigationPageのアイコンの変え方が知りたい - かずきのBlog@hatena この記事では、アイコンの表示位置がおかしくなる…

Xamarin.FormsのNavigationPageのアイコンの変え方が知りたい

続き書きました Xamarin.FormsのNavigationPageのアイコンの変え方(Android) - かずきのBlog@hatena Xamarin.FormsのNavigationPageのアイコンの変え方(Android) - かずきのBlog@hatena 本文 デフォルトのXamarinのアイコンじゃなくて独自アイコンにしよ…

Xamarin.Formsにインテリセンスがきた!!

ソファーでうたたねしてて目覚めたらこんな記事が! 【速報】Visual Studio でも Xamarin.Forms の XAML で IntelliSence が使えるように!(3rd Party の拡張機能ですが) - Xamarin 日本語情報 【速報】Visual Studio でも Xamarin.Forms の XAML で Intelli…

Xamarin.FormsでPrism.MvvmとReactivePropertyを使ったサンプル

ということで、コードレシピにアップしました。疲れた疲れた。 Xamarin.FormsでPrism.MvvmとReactivePropertyを使ったサンプル in C# for Visual Studio 2013 Xamarin.FormsでPrism.MvvmとReactivePropertyを使ったサンプル in C# for Visual Studio 2013

Xamarin.FormsでPrism.Mvvmを使う

Prism.Mvvmは非常にシンプルなMVVMをサポートするライブラリです。Xamarin.Formsでも使わない手はない!ということで使ってみました。 環境設定 Windows Phoneのプロジェクトを消します。日本で出てないし、Prism.Mvvmサポートしてないプラットフォームなの…

コレクション初期化子に渡すオブジェクトをデリゲートを使って組み立てたい

よくわからないタイトルになってしまいましたが、Xamarin.Forms使おうとして出てきた問題です。 Xamarin.Formsは、現時点ではXAMLのデザイナとか提供されてないので、長い目で見るとXAMLで書いておいたほうがいいのは確かなんですが、勉強するためにインテリ…

Xamarin AndroidでIListやObservableCollectionをListViewに表示する

先日以下のような記事を書きました。 Xamarin.Android + ReactivePropertyでListViewを使う - かずきのBlog@hatena Xamarin.Android + ReactivePropertyでListViewを使う - かずきのBlog@hatena 別にReactivePropertyのコレクションじゃなくて普通のコレクシ…

Xamarin.Android + ReactivePropertyでListViewを使う

特にReactivePropertyでサポートはしてないので自前でやるっきゃないです!ということでこういうクラスを書いてみました。 ReadOnlyReactiveCollection型をIListAdapterに変換するコードです。 public static class ReadOnlyCollectionExtensions { /// <summary> ///</summary>…

Xamarin.AndroidでDialogFragmentを使う

時代はダイアログもフラグメント…ということでやってみました。簡単なアラートダイアログを出して、押したボタンに応じてトーストを表示してます。 using Android.App; using Android.Content; using Android.OS; using Android.Widget; namespace DialogFra…

Xamarin.AndroidでFragment使ってみた

時代はFragmentらしいので、使ってみました。MainActivityはFragmentをホストするためのFrameLayoutを置いてるだけのシンプル構造。 Main.axml

Xamarin.Androidで通知を出す

Notificationを出す最小限のコードは以下の通り。BlankAppを作った時のOnCreateあたりの処理を以下のコードに変えたら動きます。 protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resour…

Xamarin.AndroidでContentProviderを実装する

SQLiteの使い方がわかったら次はContentProviderですよね。 ということで、SQLの部分はさくっと実装。 using Android.Content; using Android.Database.Sqlite; namespace ContentProviderSample { public class PeopleDatabase : SQLiteOpenHelper { privat…

Xamarin.AndroidでSQLiteを使う

XamarinというかAndroidでSQLiteを使う時は、SQLiteOpenHelperというクラスを継承して使います。 こいつのコンストラクタは、コンテキスト、データベース名、カーソルファクトリ、データベースのバージョンという4つの引数を渡すのが一般的です。カーソルフ…

Xamarin.Androidで、とりあえずアプリのデータが消えないようにする方法

最近はそうでもないのかもしれませんが、Androidに限らずモバイル向けアプリってメモリ節約のために裏側にまわるといつ落ちてもおかしくない状況になるものですよね。 そんな状態に対応する方法として、Androidは、ActivityのOnSaveInstanceStateメソッドを…

Xamarin.Androidでデバッグログを出す方法

Log.Debugを使います。例えば新規作成したひな形のボタンクリックのイベントハンドラを以下のように書き換えて button.Click += (_, __) => { button.Text = string.Format(this.GetString(Resource.String.ClickMessage), count++); Log.Debug("App6", "{0}…

Xamarin.AndroidでHello worldというかひな形プログラムを見てみる

長らくReactivePropertyの検証用にしか使ってなかったXamarinですが、Genymotionを入れて現実的な速さでAndroidのエミュレータが動くようになったので、ちょいと試してみようと思います。 Xamarinを入れるとVisual StudioでAndroidのプロジェクトが作れます…

XamarinのAndroidアプリでReactivePropertyを使う

最近書いてるReactivePropertyですが、Xamarinにも対応しています。なので、簡単にカウントアップするサンプル(ひな形で生成されるやつ)を作ってみようと思います。 Xamarinのバージョン 使用しているXamarinのバージョンは5.0(build784)です。XamarinのVi…

BaseAdapterの継承したクラスの作り方がよくわからない

public class MyAdapter : BaseAdapter<string> { private List<string> l = new List<string>(); private Context context; public MyAdapter(Context context) { this.context = context; } public override string this[int position] { get { return this.l[position]; } } publi</string></string></string>…

Xamarinに感じてること

ここ1年くらいDLして使えるようになってたのですが、なかなか使ってませんでした。理由としては以下のような感じです。 iOSアプリの開発にはMacが必要…。 Androidアプリの開発は、エミュレータが遅すぎて使いものにならないので実機がほぼ必須 早いエミュレ…