shuhelohelo’s blog

Xamarin.Forms多めです.

Xamarin.FormsでSystem.Text.JSONでJSONファイルからデシリアライズするときのメモ

https://codeburst.io/working-with-json-in-net-core-3-2fd1236126c1codeburst.io ここでは予めデシリアライズ先の型を用意して,Embedded resourceに指定したJSONファイルから読み込んだデータをデシリアライズする手順を示す. System.Text.Jsonをインスト…

テスト,開発用ダミーデータの入手先(住所録)

日本語 qiita.com 英語 mockaroo.com

Xamarin.FormsでCollectionViewを指定したItemまでスクロールする.

docs.microsoft.com これはグルーピングしたCollectionViewのスクロールの場合. private async void FilterButton_Tapped(object sender, EventArgs e) { var choices = _viewModel.GroupedSessions.Select(g => $"{g.TrackID} : {g.TrackName}"); string ch…

Xamarin.FormsのShellでNavigationBar(ToolBar?)にButtonを配置する

ContentPage内で指定するので,Shellに限ったことではないと思う. 以下のようにすると,上部のNavbarにボタンが追加される. <ContentPage.ToolbarItems> <ToolbarItem Text="Add" Clicked="AddItem_Clicked" /> </ContentPage.ToolbarItems> 複数も可. <ContentPage.ToolbarItems> <ToolbarItem Text="Add" /> <ToolbarItem Text="Hello" /> </ContentPage.ToolbarItems> こんな感…

Xamarin.Forms ShellでFlyoutで選択された項目のテキストカラーを変更する

選択時の背景色を変更する方法はこちらの記事に書きました. shuhelohelo.hatenablog.com 背景色を変更しましたが,文字の色によっては見えにくくなることもあります. このため,選択時の背景色に合わせて文字色も変更されるようにします. 選択時の色のときは,F…

Xamarin.Forms: ShellのFlyout(メニュー)の選択時の背景色を変更する

各項目が選択されたときの色(Selcted Color)を変更する方法はこちら↓ forums.xamarin.com ShellにはItemTemplateがあって,ここで指定したDataTemplateはFlyoutの各アイテムの見た目の定義になる. これを定義しなければデフォルトのスタイルが使用される. <Shell.ItemTemplate> <DataTemplate> <Grid Style="{StaticResource FloutItemStyle}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.2*" /></columndefinition></grid.columndefinitions></grid></datatemplate></shell.itemtemplate>…

Xamarin.Forms ShellのFlyoutItem,FlyoutHeader,FlyoutMenuのスタイル(Style)のテンプレート(template)

docs.microsoft.com github.com 公式のサンプルのとおり,各テンプレートは以下のとおり FlyoutHeaderのテンプレート <Shell.FlyoutHeaderTemplate> <DataTemplate> <Grid BackgroundColor="Black" HeightRequest="200"> </grid></datatemplate></shell.flyoutheadertemplate>

Xamarin.FormsのShellでページごとにNavigationBarやTabBarの色を変える.

全部↓の公式のサンプルを見たら良かった. github.com 以下のようにShellContent毎にStyleを指定している. <FlyoutItem Route="animals" Title="Animals" FlyoutDisplayOptions="AsMultipleItems"> <Tab Title="Domestic" Route="domestic" Icon="paw.png"> </tab></flyoutitem>

Twitterアプリを起動してTweet入力画面を表示する

Xamarin.Essentials.Launcherを使用する. コードとしてはこれでよい string text =System.Web.HttpUtility.UrlEncode( $"\n#decode20 #{sessionId}"); var canOpen = await Xamarin.Essentials.Launcher.CanOpenAsync("twitter://post"); if (canOpen) { awa…

Xamarin.FormsのGridのRow/Column Definitionをインラインで書けるようになる予定

blog.verslu.is Xamarin.Forms 4.7 pre-1以降で使えるとのことなので使ってみた. まずは現時点で最新のXamarin.Forms 4.7 pre-4をインストールする. Nugetパッケージマネージャからインストール(アップデート)をする. プレビュー版を検索候補に出す場合は,検…

MonkeyCacheを使ったデータのキャッシュ Xamarin.Formsで

xamgirl.com 公式↓ montemagno.com MonkeyCacheはウェブから取得したデータをキャッシュして,必要に応じて利用することを助けるライブラリです. データのキャッシュとは,オンライン時にWebAPIなどから取得したデータをローカルに保持しておき,オフライン時に…

Xamarin.Forms : RefreshViewのぐるぐるを自然なアニメーションで消すためには

Xamarin.FormsにはRefreshViewというコントロールがあって,これは画面を下に引っ張ってデータを更新するPull-To-Refreshという動作を提供するものです. とても便利でIsRefreshingというプロパティを持っていて,このtrue,falseを切り替えることでデータ更新中…

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ページに加えて,最近のアプリケーションでよく使われるドロワー(左からのスワイプで出てくるメニュー)といった基本的なナビゲーションを統合した仕組みです. これまでのページ遷移の方法に…