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

nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Visual Studio and Development Technologies。なお掲載内容は個人の見解であり、所属する企業を代表するものではありません。

技術書典2 & 超技術書典でXamarin本出します

すでにご存じの方もいらっしゃると思いますが、つぎの技術同人誌イベントにてXamarin本を出典します! techbookfest.org techbookfest.org (Xamarin.Mac)初心者向けの記事からディープな記事まで、一部メンバーが入れ込み過ぎて、えのさんも呆れるほど書き…

【Xamarin】Blue Monkeyプロジェクト Architecture Overview コメント入り掲載

先日Infragisticsさんのイベント「Infragistics Day 2017 Spring」にて、現在進行形で進めているOSSプロジェクトBlue Monkeyの件でお話しさせていただいてきました。 jp.infragistics.com またその時のスライドも掲載させていただいていますが、何分スライド…

XamarinがVisual Studio 2015と2017で共存可能になったぽい?

タイトルのまんまですが、そうっぽいかも? 少なくとも基本的な機能は共存できています。 細かい部分で問題があるかもしれませんが、とりあえず第一報まで。

PrismでViewModelがバインドされないときの調査方法

私も良くやるので、もっとも有効な調査方法をさらっと書いておきます。

【解決済】引数渡しなし&マルチスレッドで、呼び出し元とオブジェクトを共有するいい方法

2017.02.19 追記: 本件は、以下のアドバイスで解決することができます。 @nuits_jp ThreadLocal でダメなら AsyncLocal でどうじゃ? と思った— あえとす 2017-beta.2 (@aetos382) 2017年2月18日 AsyncLocalなんて追加されていたんですね。全く知りませんで…

Prismで、いつの間にかAutowireViewModelが不要になってた話

色々いじってて、おかしいおかしいと思ったらPrism for Xamarin.Forms 6.2.0のリリースノートの記述にこんな内容が ViewModelLocator.AuowireViewModel is now done automatically. This is now an opt-out feature https://github.com/PrismLibrary/Prism/w…

Xamarin.FormsのPage遷移の詳細に迫る

なんかちょっと久しぶりに書いている気がします。 みなさん、いかがお過ごしでしょうか。私は諸々忙しくて辛いです。 今回はXamarin.Formsの画面遷移、正確には画面遷移スタックについて掘り下げてみたいと思います。 ここまで理解しておく必要があるケース…

IoC コンテナ パフォーマンスバトル on Xamarin in 2017

少し前に、PC上でのIoCコンテナのパフォーマンス調査を行いました。 www.nuits.jp 今回はXamarin上で調査しましたので、その情報を共有したいと思います。 それでまずは結果から見てみましょう。 まずはUnityの性能を100%としたときの評価グラフです。 具体…

Prism for Xamarin.Forms 6.3.0アップデートの注意事項

ちょっとTLで話題になっていたのでせっかくだから文章でまとめようかと思いエントリーにしてみました。 6.3.0の正式版リリース時にも注意が必要な事項 6.3.0-pre独自の注意事項(リリースまでにはおそらく改修されるだろう内容) についてまとめてみましたの…

IoC Battle in 2017

さて、今年もやってまいりました! DIコンテナの頂上決戦、IoC Battle in 2017!! さて、今回も最強の挑戦者たちが(ry 冗談です(´・ω・`) ちょっとUnity死亡説があった為、IoCコンテナの情報を整理していたらこんな記事を見つけました。 IoC Battle in …

PrismにPull Request送ってみた

先日、以下のようなエントリーを書きました。 www.nuits.jp で、Twitterでその関連で話をしていたら、Braian氏からレスが付きました。 @nuits_jp @aetos382 looks like I need to create templates for other containers :)— Brian Lagunas (@brianlagunas) …

ゲームじゃないUnityの開発が停止している疑惑について

ゲームじゃない方のUnity、DIコンテナで多分もっとも著名な実装の一つであるUnityの開発がどうやら停止しているくさい?という事を知ってちょっと衝撃を受けています。

Xamarin.Forms.GoogleMaps用のBinding拡張ライブラリをリリースしました

唐突ですがみなさん、Xamarin.Forms.GoogleMaps使っていますか? github.com 私は使っているというか、使おうとしてちょっと疑問があって質問して見たら、なんだかこんな流れでBinding拡張ライブラリの作成を請け負うことになりました。 今は Data Binding …

Xamarin.Androidでリソースファイルを読み込む

ちょっと走り書きのメモです。 Xamarin.Androidで自作のリソースファイルを埋め込んで利用する方法を紹介します。

Prism for Xamarin.Forms Navigationイベント詳細 NavigationPage編

どうも、いまだかつてXamarinでアプリを一本も完成させたことのない初心者です。 本エントリーは[学生さん・初心者さん大歓迎!]Xamarin Advent Calendar 2016の12日目のエントリーとして投稿しました。 前日はbetatさんのグッとくる Xamarin Studio のショ…

MSDN付属のXamarin Studioライセンスの有効化方法

なんだか、Xamarin StudioでライセンスがExpireされまくっているようで少し調べてみました。 なお、私は「そういうもんだ」と思っていて、Communityのまま使っていた(ライセンスはEnterprise持ってます)ので、有効だった人がこの方法で復活できるかどうか…

XamarinにおいてAndroid実行時にブレークポイントが効かなくなった時の対処方法

私自身はあまりなったことないのですが、Twitter見てたら困っていた人がいたので対処方法をまとめて見ました。 元ネタは自分の体験とフォーラムの情報です。 forums.xamarin.com

【Xamarin.Forms】ListViewで行選択時に処理を実行する、たった一つの冴えたやり方?

疑問形にすると(ry しかも別に一つじゃないんですけどごめんなさい。 少し前に、かずきさんも類似の記事をアップされていました。 blog.okazuki.jp やりたい事はほとんど同じです。 なにせ、BlueMonkeyプロジェクトで、どう実装するかSlackで話していてで…

私がXamarinを選びたい理由

よくよく考えたら、私1個もXamarinアプリを完成させたことないので、初心者だと思います。 てことで本エントリーは[初心者さん・学生さん大歓迎!] Xamarin その2 Advent Calendar 2016 - Qiitaの12月13日分になります。 明日はmuak_xさんです。よろしくお…

Xamarin.FormsでOnSleep・OnResumeをViewModelでハンドルする

またもteratailネタですが、せっかくサンプル作ったのでこっちにも残していきます。 ちなみに、Prism for Xamarin.Formsの6.3で同様(同じ?)機能が盛り込まれる予定です。 したがって、それ以降はそちらをご利用頂いた方が良いと思います。 また、クロスプ…

Prism for Xamarin.Formsの画面遷移 10のベストプラクティス

本エントリーは Xamarin Advent Calendar 2016 (その1)5日目のエントリーです。 さてこれまで何度かPrismを利用する場合の画面遷移について記述してきました。 Prism for Xamarin.Forms入門 ViewModel Firstで画面遷移する - nuits.jp blog 【Prism for Xa…

【Prism for Xamarin.Forms】Type Safe Navigation潔癖症パターン

ちょっと前に、Prism for Xamarin.FormsにおけるViewModel Firstによる画面遷移をご紹介しました。 www.nuits.jp ただこの例には二つの気になる点(悪い点というわけでもない)がありました。 ViewModelが別のViewModelにクラスの参照のみであるが発生してい…

【完全無料】Azure SQL Databaseを設定する

本エントリーは連載「Xamarin公式サンプルをAzure連携して使う」のAzure SQL Databaseの初期設定回です。 連載の目次は以下にありますので良かったらご覧ください。 Xamarin公式サンプルをAzure連携して使う はじめに&目次 SQL Databaseは単独で作成しよう…

【完全無料】Azure Mobile Appsを設定する

本エントリーは連載「Xamarin公式サンプルをAzure連携して使う」のAzure Mobile Appsの初期設定回です。 連載の目次は以下にありますので良かったらご覧ください。 Xamarin公式サンプルをAzure連携して使う はじめに&目次 今回は普通にAzure Mobile Appsを…

【完全無料】Xamarin公式サンプルをAzure連携して遊ぼう はじめに&目次

ちょっと前にちょまどさんが公式から提供された新しいサンプルアプリを紹介されていました。 Xamarin の雛形アプリを Xamarin 本家が配布を始めたみたい!ーKickstart Your Project with Our New Bootstrapped Mobile Apps https://t.co/iP2ESHkXkTー pic.tw…

Xamarin for VS 4.2.1.62とAzure SDK 2.9.6でMac Agentに繋がらない問題の対策方法

上述のバージョンの組み合わせで Couldn't retrieve SSH Fingerprint. Please ensure the Max is reachable and Remote Login is enabled と表示されてMac Agentに繋がらない不具合が発生しています。 というわけで、Xamarin for VS 4.2.1.64の緊急パッチが…

Xamarin.FormsのNavigationPageで戻るボタンのイベントを取得する

またteratailネタなんですが、調べたり考えたりするのに面白いネタだと思い、週末少しいろいろやってみた結果を残しておこうかと思います。 https://teratail.com/questions/55706 質問者さんのポイントはいくつかあって iOSだとNavigationPageの戻るボタン…

Xamarin.FormsでSQLiteのDBを埋め込んでアプリを配布する

teratailで3日かけて問答して回答し、サンプルコードまで書いたのでせっかくだからこっちでも共有しようかと。 teratail.com 例えば、アプリケーションで利用する大量のマスターデータを配布時にアプリケーションに添付して配布したい、みたいな時に使えます…

Visual StudioとXamarin StudioでUnit Testするのにハマった話

2016/11/04に行ったPrism.FormsとMoqのハンズオンでUnit Test関係でいろいろハマったので、今更ですが今後の為にメモ書きを。 jxug.connpass.com 前日?資料はもう完璧と思っていたら、こんなつぶやきが聞こえてきました。 VS のテストプロジェクトは XS だ…

Prism for Xamarin.Forms入門 ViewModel Firstで画面遷移する

「JXUGC #18 フォローアップハンズオン Prism & Moqをさわってみよう!」で、PrismでのViewModel Firstの実装方法を紹介するといったな? あれは嘘だ。 って事もないんですけど、調べてみたらコレジャナイ感がありました。 (でもよく考えて一周回って、これ…

Prism and Moqハンズオンのドキュメントを大幅に加筆修正しました

先日、dotsさんにてPrism for Xamarin.FormsとMoqのハンズオンを実施しました。 eventdots.jp 正直、詰め込み過ぎたのと、まさかのVisual Studioの標準機能だけではユニットテストが動かない問題などがあり、ぶっちゃけ凹みました。 そもそも、カンファレン…

PrismでViewとViewModelのアセンブリを分けたい場合

なんらかの理由で、ViewとViewModelのアセンブリを分割したいことがあるかと思います。 ViewModelからViewをうっかり呼ばせたくない ViewModelをきちっと分離して複数のViewから再利用したい なんだかカバレッジでViewModelを綺麗に100%にしたいなあ 趣味 な…

Prism and Moq 体験ハンズオンの資料をオープンソースにしたよ~

先日の「JXUGC #18 Xamarin.Forms & Prism & Azure Mobile Apps を使いこなそう」にてPrismとMoqのお話をしてきました。 eventdots.jp 非常にうれしいことにハンズオン開催してほしいというご要望を何名かの方から頂き、実際にハンズオンを開催することと…

【Xamarin】速報!Xamarin.Forms(XAML) Previewer for Visual Studioついに現る!

2016.10.10 23:08追記 Stableの最新にも含まれており動作することを確認しました。 現状AlphaよりもStableのほうがRevisionが高い状態となっており、Previewerの最新がどれかは不明です。 またStableに含まれていますが、以下のリンク先の通りあくまでPrevie…

JXUGC #18 Why Prism for Xamarin.Forms フォローエントリー

先日、JXUGのカンファレンスにて表題の発表をさせていただきました。 eventdots.jp いや〜、疲れましたけど終わったら楽しかったです。 初めてのライブコーディングで、本当に開始前は手が震えていましたけど終わったらいい思い出です。 開始直前に田渕さん…

Prism for Xamarin.Forms入門 DependencyServiceとPlatformInitializerどちらを使うべきか?Brianに聞いてみた

以前、以下のエントリーでPrismではDependencyServiceをインジェクションする仕組みがある旨、説明しました。 www.nuits.jp しかし、実のところプラットフォームごとにインジェクションするクラスを切り替える方法は、PlatformInitializerを利用する方法もあ…

Prism for Xamarin.Forms入門 CaseStudy:デバイス形状やプラットフォームでViewを切り替える

Xamarin.Formsでは通常、Viewまで1コードで書けるのが利点ですがケースによっては個別に調整したいケースもあるかと思います。 通常、そういった場合は CustumRendererやEffectsの出番です。 しかしケースによってはページデザインをまるっと置き換えたいと…

Visual Studio拡張にpackagesフォルダを削除するUIを追加しました

ご要望をいただき、Visual Studioでプロジェクトのbin・objフォルダを削除する拡張機能をアップデートして、packagesフォルダを削除する機能を追加しました。 なお、すでにインストールされている方で、アップデートができない方がいらっしゃるかもしれませ…

Prism for Xamarin.Forms入門 IConfirmNavigationAsync

以前、NavigationServiceの解説回にてIConfirmNavigationの説明をしました。 Prism for Xamarin.Forms入門 NavigationService Deep Dive - nuits.jp blog IConfirmNavigationは端的に言うと、画面遷移時に条件によって遷移を抑止することができる機能です。 …

Xamarin for Visual Studio 4.2.0.695におけるプロジェクト作成直後の警告について

なんか何名か困ってる方を見かけたのでまとめておきます。

Prism for Xamarin.Forms入門 画面遷移をViewModelに通知するBehaviorを作ってみた

さて一つ前の記事で、PrismのINavigationAwareを代替するのに、PageクラスのAppearingイベントとDisappearingイベントが利用できる。 というお話をしました。 www.nuits.jp 今回はそれを簡便に実現するための方法を紹介したいと思います。 以前、イベントに…

Prism for Xamarin.Forms入門 PushAsync・PopAsyncをViewModelに通知するNavigationPageを作ってみた

さて下記のエントリーで、PrismのINavigationAwareを代替するのに、制限付きではあるもののNavigationPageクラスのイベントを利用できるという紹介をさせていただきました。 www.nuits.jp 今回は実際の実装を見てみたいと思います。 まぁ大したものではない…

Prism for Xamarin.Forms入門 NavigationService 0x.戻るボタン問題:INavigationAware

これまで何度かNavigationServiceについて取り扱った記事を書いてきました。 特に以下のエントリーでは、INavigationAwareとIConfirmNavigationについて記載しました。 www.nuits.jp しかしコメント欄でも話題になっているように、現時点では幾つか期待した…

【Xamarin.Forms】Prism & ReactivePropertyでMVVM開発 解説回

ここ何回か、なんちゃって書籍ビューアを題材にした、Xamarin.Formsアプリを紹介してきました。 github.com 今回は、そのコードの解説を試みたいと思います。 今回紹介するコードは、以下の要素が含まれています。 Xamarin.Forms Prism for Xamarin.Forms Re…

【Xamarin】Prism & ReactiveProperty & MVVMでMoqを使ったUnitTestサンプル

先日、なんちゃって書籍ビューアのコードを紹介しました。 www.nuits.jp そのソースを少し手直しして、ついでにコードによる単体テストも追加してみました。 良かったら参考にしていただけると幸いです。 github.com ちなみにテスト対象はViewを除く、ViewMo…

【Xamarin】MasterDetailPage&MVVMパターンでMasterとDetailの状態を同期するサンプルを作った

今回はPrismは使っていますが、Prism成分は控え目です。 書籍ビューア的なアプリで、ドロワーに目次があり、目次を選択したら該当ページへ飛ぶし、ページをめくっていると開いているページの状態にドロワーの中の目次の選択状態もちゃんと同期されるアプリを…

Prism for Xamarin.Forms入門 Command

さて、今回はCommand編です。 WPFやXamarin.Formsを利用されている方にとっては既に当たり前の機能かもしれません。 Commandって何よ?って方は、以前に概略をまとめたエントリーがありますので、まずはこちらからご覧ください。 www.nuits.jp さてPrismにも…

Prism for Xamarin.Forms入門 DependencyService with Prism

さて、前回はすこし「よりみち」をしてDependencyServiceのおさらいをしました。 今回はPrismにおける、DependencyServiceの取り扱いについてお話ししたいと思います。 そのうえで、なぜそういった機構が必要なのかを解説したいと思います。 「DependencySer…

Prism for Xamarin.Forms入門 よりみち:DependencyService

今回はPrism.Formsから少し離れて、Xamarin.Formsの提供するDependencyServiceについて解説します。 と言うのも 「Prism.Forms上でDependencyServiceとどう付き合うか?」 と言った内容のエントリーを書こうと考えていたのですが、当然ですがDependencyServi…

Prism for Xamarin.Forms入門 PageDialogService

お久しぶりです。 少し間が空いてしまいました。 本当はもう少しNavigationServiceを掘り下げたかったのですが、ちゃんと説明するにはもう少し時間がかかりそうなので、先にPageDialogServiceの説明をしたいと思います。 NavigationServiceについては、機会…