shuhelohelo’s blog

Xamarin.Forms多めです.

RefreshViewはリストだけじゃなくてなんにでも使える

タイトルのとおり,RefreshViewで囲んだコントロールはPull-To-Refresh(下に引っ張って更新)できるようになる. Imageは試した. 画像を下に引っ張ると別の画像に変わる,といったことができる. <RefreshView Command="{Binding AvatarRefreshCommand}" IsRefreshing="{Binding IsAvatarRefreshing}"> </refreshview>

HttpClientを使って受け取ったJSON形式のレスポンスをデシリアライズする方法

方法としてはSystem.Text.Jsonを使ってJSON文字列をデシリアライズするか,System.Net.Http.Jsonを使ってレスポンスから直接オブジェクトを取得するか,がある. System.Text.Jsonを利用するためにはNugetからインストールします. System.Net.Http.Jsonを利用す…

Xamarin.FormsでASP.NET Coreなappsettings.jsonから値を取得する

Xamarin.FormsでASP.NET CoreのDIの仕組みを使うことについては以下の記事に書きました. shuhelohelo.hatenablog.com これをベースとします. 今回は基本的なことに戻って,appsettings.jsonファイルに記述した値を取得する方法についてです. 以下のような内容…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (5) HttpClient

Asp.Net CoreでおなじみのAddHttpClientメソッドを使ってHttpClientを安全に正しく利用することができます. HttpClientの使用上の注意と使い方については以下の公式のガイドに詳しく書いてあります. docs.microsoft.com ここで説明されているとおり,HttpClie…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (4)

NavigationPageを使ったページ遷移をやってみようと思います. 変更するところはまず,Appクラスのコンストラクタです. 以下のようにNavigationPageをはさみます. public App(MainPage mainPage) { InitializeComponent(); MainPage = new NavigationPage(main…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (3)

これまで,Xamarin.FormsでAsp.Net CoreのDIの仕組みを利用する方法を書いてきました. shuhelohelo.hatenablog.com shuhelohelo.hatenablog.com 最後にまだDIできる余地が残されています. それがApp.xaml.csのAppクラスです. 現時点でAppクラスのコンストラク…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (2)

montemagno.com こちらの記事を試してみた2回目. 1回目はこちら. shuhelohelo.hatenablog.com 今回はプラットフォーム固有の機能をDIする場合についてです. プラットフォーム固有の機能(例えば通知機能)を使う場合,共有プロジェクト側でインターフェースを用…

Xamarin.Formsでの通知の表示方法

これは各プラットフォームごとに実装して,それをインターフェース経由で共通プロジェクトから呼び出す. 公式ドキュメント+チュートリアル. docs.microsoft.com これをやった. ソースコードはこちら. github.com 以下のように表示される. 沢山通知した場合は,…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (1)

montemagno.com こ,これは...! Xamarin.Forms以外のアプリケーションでも同様に使えそう. Microsoft.Extensions.Hostingをインストールする Nugetから. すべてのプロジェクトに. ビルトインのLoggingフレームワークと,jsonファイル形式(appsettings.json)の…

Xamarin.FormsでMvvmHelpersを使ってみる

channel9.msdn.com montemagno.com github.com MVVMフレームワーク色々 MVVMパターンでのアプリケーション開発をサポートするライブラリやフレームワークは色々あります. Prism ReactiveProperty MvvmCross ReactiveUI MVVMLite MVVMHelpers 他にもあると思…

ResourceDictionaryを単独のファイルに切り分ける

devblogs.microsoft.com ButtonやLabelを始めとする様々な見た目を指定するためにResourceDictionaryを使います.例えば以下のように. <ContentPage.Resources> <ResourceDictionary> <Style TargetType="Entry"> <Setter Property="PlaceholderColor" Value="Red" /> </Style> </ResourceDictionary> </ContentPage.Resources> これが定義されたContentPage内のすべてのEntryに…

Xamarin.Forms: Shellを使う場合のログインFlow

mallibone.com Shellは先頭のShellContentがデフォルトで表示されることを利用し,ローディングページ(LoadingPage)をShellContentとして先頭に置いている. LoadingPageはLoadingPage.xaml.csで以下のように初期化処理を行っている. internal LoadingViewMode…

Xamarin.FormsでLottieを使ってアニメーションを表示する

www.youtube.com LottieはAirBnBが開発した,アニメーションを表示するライブラリ. 表示させるアニメーションはこちらのサイトに公開されている. lottiefiles.com 動画はiOSの例なので,Androidはどうしようかと探した.この記事はAndroidの情報です.参考にした…

Xamarin.Formsでスプラッシュスクリーン

スプラッシュスクリーンは起動時に表示する画面. 以下のアプリを参考にする. github.com このアプリでは以下の流れでスプラッシュスクリーンを使っていた. App.xaml.csでMainPage = new SplashScreen(); SplashScreen.xamlは中央にpngを表示させるだけ コー…

Xamarin.Formsアプリのパフォーマンス向上について

docs.microsoft.com UIについてだけでなく,様々な点についてパフォーマンス向上に関するTIPSが書かれている. 子要素が1つだけなのにStackLayoutを使わない <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="DisplayImage.HomePage"> <StackLayout> <Image Source="waterfront.jpg" /> </image></stacklayout></contentpage>

Xamarin.FormsでGoogle認証を使う

https://www.xamboy.com/2019/11/19/social-media-authentication-google-login-in-xamarin-forms/ [追記] ライブラリ公式のREADMEの方がわかりやすいかも. github.com Plugin.GoogleClientをインストールする. Firebaseでプロジェクトを作成する Plugin.Goo…

Xamarin.Forms: Azure CosmosDBを使う

docs.microsoft.com チュートリアルのとおりに. Cosmos DB側の作業 Azure PortalでCosmosDBのリソース作成とサンプルデータの追加を行う. リソースを作る 「Azure Cosmos DB」を検索して作成する. 以下のように入力する. Subscription 利用しているAzureのアカ…

Xamarin.FormsのShellのRouteとページ遷移について

docs.microsoft.com Xamarin.Forms ShellはTabページ, Master-Detailページに加えて,最近のアプリケーションでよく使われるドロワー(左からのスワイプで出てくるメニュー)といった基本的なナビゲーションを統合した仕組みです. これまでのページ遷移の方法に…

Xamarin.FormsのShellの遷移の種類(Modalかどうか)は遷移先の各ページで指定する

Shellは画面遷移の手段としてShell.Current.Navigation.PushAsyncなどのこれまでのNavigationno方法もShell.Current.GoToAsyncも使えます. Navigation.PushAsync系の遷移方法にはModalなページとして開くPushModalAsyncもあります. しかし,Shell.Current.GoT…

Xamarin.FormsのShellでアプリ起動時のデフォルト表示ページを指定する

デフォルトページを指定する 特に指定しない場合,アプリケーション開始時のデフォルトのページは一番先頭に定義されたShellContentのページになる. アプリケーションのページの定義順とは関係なくデフォルトページを指定したい場合は以下記事のようにする. m…

Xamrin.FormsでDebugとReleaseで設定ファイルを切り替える方法 メモ

こちらの記事のとおりにやってみる. redth.codes これは読み込む設定ファイルがDebugビルドとReleaseビルドで切り替わるようにするもので,asp.netのuser secretのように「接続情報などの機密情報をgit管理されるプロジェクトファイル群の外側におくことで機密…

Xamarin.Formsでバックグラウンド(非アクティブ時でも)で位置情報を取得し続ける(Android編)

Android8以上でも非アクティブな状態で処理を継続する手段としてForeground Serviceがある これを使ってカウントアップを行う簡単なサンプルアプリを作った. shuhelohelo.hatenablog.com さて,バックグラウンドで数を1ずつ増やすタスクを実行しているわけで…

Xamarin.Formsでバックグラウンド(非アクティブ時でも)で処理を継続する(Android編)

はじめに この記事は,アプリケーションが非アクティブの状態でも動作を継続させる方法. 各プラットフォームごとに実装が異なり,この記事はAndroidについて. アプリケーションが非アクティブ(アプリをユーザーが操作中ではない)ときにも,継続して処理を行うこ…

Azure Notification HubsでXamarin.FormsアプリにPush通知 メモ (Android編)

このチュートリアルの通りにやってみる. docs.microsoft.com Azure Notification Hubsを使う場合の流れ Firebase Cloud MessagingやApple Push Notification ServiceなどをAzure Notification Hubsを介して利用する形. Azure Notification HubsはあくまでHub…

Xamarin.FormsでのPush通知について

追記 App Center Pushは廃止となり,Azure Notification Hubsを使うように,とのことです. docs.microsoft.com James Montemagnoさんによる説明. montemagno.com 以下,その内容のメモ Push通知を実現する方法は色々あるが,2つの選択肢を知っておけば良い. Push…

Xamarin.FormsでLight Theme, Dark Themeに応じてスタイルを切り替える

Experimentalですが,OSのLightテーマ,Darkテーマの切り替えに応じてUIの見た目を切り替える仕組みが提供されています. それがOnAppThemeマークアップ拡張です. 以下のように記述することで,OSのLightテーマ,Darkテーマに応じて,それぞれに指定した値が適用さ…

Xamarin.FormsのDynamicResource

docs.microsoft.com www.youtube.com アプリケーション内で使用する値やStyleなどをResourceDictionaryに定義しておき,StaticResourceとして使用することはよくあります. <Color x:Key="PrimaryColor">#547799</Color> ... <Label TextColor="{StaticResource PrimaryColor}"/> このResourceの値はプログラム中で変更することができます. App.Current</label>…

Xamarin.FormsからCognitive ServiceのComputer Visionを使う

今回やりたいのは,カメラで撮影した画像からテキストを抽出するもの. 参考は, github.com アプリ内でカメラを使って,撮影し,画像データを取得するには. MontemagnoさんのMediaPluginを使っている. カメラの使い方(Android) カメラを使って画像を取得するため…

Xamarin.Google.Android.Material Version="1.0.0-rc1"を導入したときのEntryなどの挙動の違い

以下のサンプルアプリを実行したとき,Entryの見た目と挙動が違っていたので,どういう仕組なのか色々調べた結果. github.com どんな挙動かというと以下のとおり. Entryに背景色がついていて,focusが当たると色が変わる. これはVisual="Material"としただけで…

Xamarin.Forms.Visual.Materialでコントロールの見た目を変更する

docs.microsoft.com devblogs.microsoft.com iOSとAndroidで可能な限り同じマテリアルデザインの見た目に統一することができる. これまではそれぞれネイティブのコントロールをそのまま使っていたところを,見た目を統一できる,かつデザインを新し目のものに…