かずきのBlog@hatena

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

Xamarin

KAMISHIBAI for Xamarin.Forms を Prism で使ってみよう

nuitsさんが面白そうなものを作ってました。 www.nuits.jp さて、個人的に気になるのは Prism と組み合わせた場合の方法。なんたって Prism にも組み込みの画面遷移機能があるので。 考えたこと1 Prism の画面遷移機能は原理的に画面遷移を行うための機能を…

【東工大生限定招待】 Xamarin ハンズオンラーニング with JXUG,MSP で発表してきました

東工大でXamarin関連のことについて話してきました。そこでの資料を公開します。 Xamarin でのモバイルアプリ開発 周辺基礎知識 from 一希 大田 www.slideshare.net

かずきのXamarin.Forms入門を更新しました

5か月ぶりくらいに内容をアップデートしました。 SlideShareにサインインするとダウンロードボタンが表示されるので、そこからダウンロードしてご利用ください。 Xamarin.forms入門 from 一希 大田 www.slideshare.net 変更内容 Xamarin.Forms 2.3.4ベースの…

Bot FrameworkのDirect Line APIをXamarin.Formsから使う場合のサンプルプログラム

を書きました。 .NET Standardにしないといけなかったりとちょっと手間取りましたが、なんとか動く感じになりました。リポジトリは以下になります。 github.com Bot Frameworkを使えば簡単にBotを作れるので、作ったBotを自分のアプリに組み込む際の参考にし…

Prism.Forms でプラットフォーム固有処理を呼び分ける方法

Xamarin.Forms にも標準で DependencyService という機能があるんですが、こいつよりも柔軟な素敵な機能が Prism.Forms には提供されています。 IPlatformInitializer それは IPlatformInitializer です!これは、Prism.Forms のDIコンテナへのインスタンス…

Xamarin.Forms と Azure の組み合わせサンプル書いてみたよ

Microsoft Cognitive Services を使ったサンプルを ABC 2017 Spring で作ってみたら動かなくて悲しい目にあったので、全部スマホでやってた処理を、きちんとサーバーサイドとクライアントサイドにわけてデータも1度処理したものは永続化してというのをやって…

#decode17 に参加してきました(登壇側で)(ほぼ技術的なエントリではないです)

5/23 - 24 で開催された Microsoft の主催する開発系イベントの de:code 2017 に登壇者側で参加してきました。de:code は、初回から前回まで一般参加者として参加してきたので割と思い入れのあるイベントでした。今年は Microsoft に転職して最初の de:code …

Xamarin + Visual Studio Mobile Centerをやってみよう

Visual Studio Mobile Centerは、モバイルアプリを開発する際に必要になる以下の機能を提供してくれる便利なやつです。 リポジトリ(GitHub, VSTS, Bitbucket)と連携しての自動ビルド Xamarin.UITestなどのテストコードをプールされた様々な実機上で実行 アプ…

Xamarin.FormsでBotFrameworkのDirectLineを試す

自分用メモです。(雑です) PCLを辞めます。 .NET Standardにプロジェクトを変換します。 以下をプロジェクトに追加する。 Micrsoft.Bot.Connector.DirectrLine Microsoft.Rest.ClientRuntime こんな感じに書けば動いた!とりあえず

JXUGC 22 最新事例&お前のアプリを説明してもらおうの会で発表してきました

XAML入門というテーマで発表してきました。スライドを公開します。 XAML入門 from 一希 大田 www.slideshare.net

Xamrin.FormsでBLEのアドバタイズパケットを拾おう(要はビーコン)

ということで、Xamarin.FormsでBLEやってみようと思います。 スキャンして、近くのパケット拾って来るのがゴールくらいにしておきましょう。 BLEを使おうとすると、ネイティブのコードを書かないといけないのですが、幸いにもプラグインのリストにBluetooth …

Xamarin.Formsでグラフを描こう(OxyPlot)

WPFでグラフを描けるライブラリを探してたらOxyPlotというのを見つけました。 見つけたと思ったら、こいつXamarin.Formsでもできるぞ!?ということで試して見ました。 NuGetの追加 以下のパッケージを追加します。 OxyPlot.Xamarin.Forms 初期化 以下のコー…

かずきのXamarin.Forms入門を更新しました

すっかりDataTemplateSelectorについて書くのを忘れてたのでSlideShareのPDFとKindleを差し替えました。 Kindleは反映までに1日くらいかかるのと、おそらく既に購入された方には変更は届けないとAmazonが判断すると思います…(よっぽどインパクトの大きな変…

Prism.FormsでAutofacを使ってみよう

Xamarin Studioベースで話を進めます。(Visual Studioでもだいたい同じになると思うけど) まずForms Appを新規作成してPCLで作ります。 NuGetから以下のパッケージを追加します。 Prism.Autofac.Forms Views名前空間を作って、そこにMainPage.xamlを作成し…

MacのXamarin.iOSでSegueが作れない

Ctrl + Dragでページを結んでもSegueが作れないというかメニューが一瞬出て消えるっていう動きをしていました。ググってみるとStackoverflowが引っかかりました。 stackoverflow.com トラックパッドの設定で「強めのクリックと触覚フィードバック」のチェッ…

かずきのXamarin.Forms入門のKindle版だしました(Prismもあるよ)

先日SlideShareに公開したXamarin.FormsのPDFですが Xamarin.forms入門 from 一希 大田 www.slideshare.net こちらは、SlideShareにログインすると無料でダウンロードできます。 それに加えて、Kindleで販売も始めました。こちらはKindleで見たい人向けです1…

Xamarin.Forms入門のPDF作りました(Prismもあるよ)

SlideShareでログインしてダウンロードできるようにしています。是非ダウンロードしてみてください!200ページちょっとあります。 Xamarin.forms入門 from 一希 大田 www.slideshare.net 目次 1 はじめに 1.1 ターゲットプラットフォーム 1.2 Xamarin.Forms…

Xamarin.Forms + PrismでSQLiteを使ってみよう

モバイル環境でのデータベースといったらSQLiteがデファクト!ということでXamarin.Forms + Prism.Formsの環境で試してみましょう。 NuGetパッケージの導入 使用するパッケージはSQLite-net-pclです。(似た名前のが多いので注意) www.nuget.org プラットフォ…

Xamarin.FormsでBehaviorのTriggerとActionを作る

Xamarin.Formsのドキュメント上は見つけれなかったけど、ソースコード的にはTriggerとActionがあったりします。 github.com ただ、この人たちはBindingに対応してないという、ちょっと悲しい感じに仕上がってます。なので、XamarinのBehaviorをベースにBindi…

Xamarin.FormsのBehaviorをBinding可能にする

デフォルトだとBindingできないんですよ。ということでソリューションは以下のようにします。 github.com BindingContextが伝搬しないなら伝搬させればいいじゃない?ということで手動でせっせと伝搬させてます。 これくらいデフォルトで面倒見てほしかった……

Xamarin.FormsのListViewでタップされた項目をスマートにViewModelに渡す方法

EventToCommandBehaviorを使います。コードはこちらを参考に。 github.com この時、こういうBehaviorを作っておくとListViewの選択がされなくなって捗ります。 using Xamarin.Forms; namespace PrismUnityApp2 { public class NotSelectableListViewBehavior…

Xamarin.FormsでPrism.Formsを使ってPCLに非対応なライブラリを使う方法

例えばMicrosoft.AzureのStorageのライブラリなんかがXamarin.AndroidとXamarin.iOSには対応してるけどPCLには対応してないといった感じです。 被害者がここに。 @chomado ウワアアあああああああああああああああああXamarin .Forms PCL の私 爆死\(^o^)/…

Xamarin.Formsで画面レイアウトを作るためのレイアウトコントロールの必要最低限

Xamarin.Formsで思い通りのレイアウトを組みたい。 そんな時には、レイアウト系のコントロールを押さえておくといいです。 公式ドキュメント Layouts - Xamarin Layoutコントロール Xamarin.Formsでは、複数のコントロールを配置するときには、あらかじめ定…

Xamarin.FormsのListViewで行単位で高さを変えるには

何もしないと同じになるっぽい。 違う高さにするには、以下のようにHasUnevenRowsプロパティをTrueに設定すればいい。 <ListView ... HasUnevenRows="True"> ... </ListView> おしまし。

Xamarin.Formsでタブページを使う

TabbedPageを使うといいということみたいです。 TabbedPage内にはタブとして表示したいページを置いて行って、タブのタイトルにはPageのTitleが表示されるという動きをしています。 意外と簡単だった。 Prismを使ってNavigationPage内にTabbedPageをネストし…

Xamarin.FormsでLabelに下線を引きたい

デフォルトで引けないんですね。知らなかった。 Effectを使おう ということでカスタムレンダラー案件かなと思ったらEffectでいけるっぽいです。 Android Androidに以下のようなクラスを追加します。 using Android.Widget; using Xamarin.Forms; using Xamar…

Visual Studio Moble Center触ってみた

Visual Studio Mobile Centerの申し込みをしたら、先日招待メールもらったので触ってみました。 初期画面 ログインするとこんな感じの画面になります。 アプリの作成 Add a new appというボタンがあるので押すと、アプリの作成画面になります。 OSの選択が排…

Xamarin.Formsでボタンの2度押しをReactivePropertyを使って抑止してみよう

お題の通りです。 こんな感じでReactiveCommandを普通に使うと連打すると2重で画面遷移したりします。 using Prism.Mvvm; using Prism.Navigation; using Reactive.Bindings; using System; namespace PrismUnityApp12.ViewModels { public class MainPageVi…

Xamarinで処理中を表すインジケーターを出したい

先日Cognitive Serviceを使った笑顔判定機を作りました。 こいつですが、Web上のAPIを呼び出して回線状況に応じては、そこそこ時間がかかるにも関わらず、処理中を示すUIが表示されていませんでした。 Xamarin.Formsでは、ActivityIndicatorクラスを使うこと…

Xamarin.Formsで笑顔測定をしよう(AndroidとUWP)

最近笑顔してますか?こんな感じの笑顔測定アプリを作ってみようと思います。これならボッチでも笑顔の練習できるよ! 左がニュートラルな顔、右が笑顔の場合です!スコアが変わってますね。 ということで、Cognitive ServiceのFace APIを使って笑顔判定する…

Microsoft Azure Mobile AppsのQuickstartのTodoアプリがUWP版だと例外で落ちることがある

追記 Xamarin.Forms 2.3.3系が正式リリースになったので、記事の内容をアップデート 最近、Microsoft Azure Mobile AppsでQuickstartのTodoアプリのひな型にUWPが追加されました。 小躍りするくらいうれしいことなのですが、このTodoアプリですが追加した複…

クライアントサイドから見たConnect(); 2016はどうだったかという感想

UWPに関しては華麗にスルーされてました。(悲しい) ただ、Visual Studio 2017 RCでは、試してないけどUWP開発のための機能強化も結構含まれてるのでさみしくなんかありません。 デモアプリもUWP多かったですしね! ということで本題です。 クライアントサ…

当然っちゃ当然だけどXamarin.FormsでHoloLens対応アプリ作れます

HoloLensではUWPが動く。 Xamarin.FormsではUWPの開発が可能。 ということで当然ですが動きます。HoloLensでXamarin.Formsで作ったアプリが!! iOS, Android対応アプリをXamarin.Formsで作ってる人は、やってみてもいいのではと思いました。 実験 Prism.For…

Azure Mobile Appsのローカル同期機能で作成されるDBの中身を見てみよう(Android版)

さて、ローカル同期したAndroidのデータをひっこぬいてBrowser for SQLIteで中身を見てみたいと思います。 今回は、エミュレータで実行してる前提でコマンドを書いています。 まずadbのshellでつなぎます。 adb -e shell アプリパッケージ名を調べます。 ア…

JXUG #18 「Azure Mobile Apps入門」資料公開

JXUG #18で発表してきました。 デモが想定の半分くらいしかできなかったのが心残り(XAMLインテリセンスないと書けない体になってる…)ですが、資料を公開しておきます。 Azure Mobile Apps入門—大田 一希

Visual Studio Team ServicesからXamarin Test Cloudを使ってみよう(Android編)

iOS編はあるのかって?Mac持ってないのでできないのでMac持ってる人だれかお願いします。 Xamarinプロジェクトの作成 ということで、テスト対象のプロジェクトを作りましょう。 今回は、Prismのテンプレートパックを入れたら作られるプロジェクトテンプレー…

Azure Mobile AppsでテーブルのクエリにIN句を使いたい

ODataはin句をサポートしてないらしい?ので出来ません。(完) こんな定義らしい。 filter = '$filter' EQ boolCommonExpr boolCommonExpr = ( isofExpr / boolMethodCallExpr / notExpr / commonExpr [ eqExpr / neExpr / ltExpr / leExpr / gtExpr / geEx…

モバイルアプリなどの練習用WebAPIを作成しました

モバイルアプリやUWPの練習でたたける簡単なAPIがほしいかも?ということで作ってAzureに置いてみました。一応認証のかかったシンプルなAPIです。 OAuth2で、ユーザー名admin、パスワードp@ssw0rdでトークンが取得できます。 Web APIは以下のような感じです…

Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)「プッシュ通知(Androidだけ)」

過去記事 Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms) - かずきのBlog@hatena Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)「DBの変更」 - かずきのBlog@hatena Azure MobileApps…

Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)「オフラインデータ同期」

過去記事 Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms) - かずきのBlog@hatena Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)「DBの変更」 - かずきのBlog@hatena Azure MobileApps…

Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)「ローカルデバッグ」

過去記事 Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms) - かずきのBlog@hatena Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)「DBの変更」 - かずきのBlog@hatena ローカルデバッグ…

Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)「DBの変更」

過去記事 Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms) - かずきのBlog@hatena DBの変更 JavaScriptがバックエンドのときはいい感じにDBの変更をしてくれる(それはそれで怖いっちゃ怖いけど)んですが、.NETバックエン…

Azure MobileApps + Xamarin.Forms開発の始め方(.NETバックエンド + Prism.Forms)

というテーマで書きます! サーバーサイド(Azure) Microsoft Azureには、モバイルバックエンドの開発をお手軽にするための、Mobile Appsというものがあります。 これは、サーバーサイドをnodejsのexpressベースのフレームワークで開発するか、ASP.NET WebA…

今さら入門するMVVMに必要な技術要素(Xamarin.Forms & UWP)

Model View ViewModelパターン(以下MVVMパターン)が登場して約10年になります。 ここらへんで一度MVVMを実装するうえで必要になる技術要素を振り返ってみたいと思います。 その前にMVVM MVVMは以下のWikipediaあたりでも見てください。 Model View ViewMod…

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を作ってみ…

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のライフサイクルで呼び出されるメソッドは以下…