ぴーさんログ

だいたいXamarin.Formsのブログ

Xamarin

Slim Bindingアプローチについて

今回はSlim Bindingアプローチを題材に.NET iOS/Android, MAUIにおけるBinding Library事情についての話をします。(Slim Bindingアプローチの具体的な実装手順は割愛します) Binding Libraryとは? Slim Bindingアプローチは言ってしまえばBinding Libraryの…

【Xamarin → .NET 6+(MAUI)移行】 csprojファイルに書くと良いかも知れない設定 3選

Xamarin.FormsアプリをMAUIへ移行する際にプロジェクトファイル(csproj)を直接編集して設定変更することが度々ありました。 今回はその中で利用機会のありそう3点をご紹介します。 プラットフォーム固有のソースファイル指定 (MAUI向け) XamlC強制 HttpHandl…

なぜXamarinから.NET 6+, MAUIへ移行しなければならないのか

Xamarin、およびXamarin.Formsのサポート終了期日(2024年5月1日)まで半年を切りました。 今回はなぜ移行が必要なのか、どんな作業が発生するのかといった事について書いていきます。 なお、本記事では.NET 6とそれ移行のバージョンについて.NET 6+と表記しま…

HttpClient周りの仕様が変わってました

Xamarinから.NET 6+(MAUI含む)へ移行する際に注意すべきHTTPスタックのお話です。 HttpClientの挙動に影響するので、.NET 6+へ移行したらHTTP通信周りに異常が無いかテストしましょう! HTTP Handlerの設定 .NET 6+になってHTTP Handler周りの仕様がXamarin.…

.NET for iOS / AndroidのSDKバージョンを固定する

.NET for iOS / Android、およびMAUI SDKのバージョンを制御する方法というテーマで調べた事をつらつら書いていきます。 問題 .NET 6以降のiOS/Android SDK管理は、基本的に最新へ上げ続ける事を要求する。 ついでに、Xamarin.Formsが.NET MAUIになってバー…

csprojファイル内で使用されるMSBuildプロパティのデフォルト値を調べる

前置き .NET Coreと同じくらいの時期に登場したSDKスタイルと呼ばれるcsproj形式では、 明示的に記述しなくても多くのMSBuildプロパティに初期値が設定されるようになっています。 ここで Release ビルドの設定を少し変更した Release_Sandbox のようなビル…

Xamarin.Macのコントリビュータになりました

Xamarin.Macなアプリは作ってないんですけどね。 何故かNSDistributedNotificationCenter.DefaultCenterの型がNSObjectになってるというツイートを見かけたのでPRにしてみたけど通るかな?https://t.co/T2aOtmWp7B— ざまりん.ふぉーむずのソースコード読むマ…

ASUS ZenFone 4s MAXでXamarin.Androidの実機デバッグができない場合のトラブルシューティング

ASUS ZenFoneでXamarin.Androidアプリの実機デバッグをする際、「Mono Shared Runtimeのインストールがブロックされて失敗する」というのは既知の問題があります。 Can't deploy on device (Android MarshMallow) — Xamarin Forums ZenFone 2や3では「Auto-s…

Visual Studio 2017で作成したXamarin.FormsプロジェクトをVisual Studio 2015でビルドする

さて、現時点のVisual Studio 2017(ver. 15.6.5)でXamarin.Formsプロジェクトを新規作成すると結構新しくてイケイケなプロジェクトをはいてくれます。 packages.configファイルが無い 共通コードが.NET Standard 2.0(またはShared project) これをVisual Stu…

Xamarin.Forms VisualStateManager Support

Xamarin.Forms 3.0.0からVisualStateManager、およびVisualStateが追加されます。 VisualStateManager.GoToState()を呼ぶと対応するVisualStateのSetterが適用される機能です。 これにより、Viewの状態に対応する見た目を宣言的に扱うことが可能となります。…

Xamarin.Forms CSS Support

Xamarin.Forms 3.0からCSS Supportが追加されます。(ASP .NET辺りの人たちにリーチしていく狙いらしい?) 一部制限はあるものの大体の機能がそのまま使えるようです、よってこの記事ではXamarin.Forms固有の事情を中心に説明します。 詳しく知りたい人は元の…

Xamarin.AndroidでFindViewByIdを省略するやつ

が追加されるらしいです。(Kotlin Android Extensionsでできるアレ) Slides from my presentation today. https://t.co/Pg8rjY9MKR pic.twitter.com/Pe46x3Yp1b— Miguel de Icaza (@migueldeicaza) 2018年3月6日 (Miguelの資料より引用) 仕組みとしてはXamar…

Xamarin.Forms.FlexLayout

いつの間にかXamarin.FormsのmasterブランチにFlexLayoutが生えていたので試してみました。 いつの間にかXamarin.Flexなるディレクトリが生えてるhttps://t.co/Gk1qspwOy9— ざまりん.ふぉーむずマン (@ticktackmobile) February 15, 2018 というかFlexLayout…

JXUGC #23 Xamarin 無料化一周年記念勉強会!で喋ってきました

2017/5/27(土)に開催されたJXUGC #23 Xamarin 無料化一周年記念勉強会!で喋ってきました。 Xamarin.formsで好き勝手に野良プラットフォーム from P3PPP Xamarin.Formsがさらにオープンになる変更がリリースノートでも特に言及される気配がないのでちょっと…

Xamarin Live Playerの仕組みを想像してた

今朝起きるとBuild 2017の2日目にXamarin Live Player(以降XLPと省略します)という技術が発表されていたので、今日はその仕組みについて想像していました。 5/12 午前 この時点では、どうやらXLPは「Mac不要でiOSアプリをビルドしてデバッグできる」技術らし…

【Xamarin.Forms向け】ItemsSource BindablePropertyを追加するコードスニペット

BindableなItemsコントロールを作るときにコピペしてね。(ItemsViewを自分のコントロールに置換しよう)

【Xamarin.Forms 2.3.4-pre】ちゃんとBindableになったPicker

Xamarin.Forms 2.3.4-preでPickerがItemsSourceとItemSelectedをサポートするようになります。すっごーい! さっそくこんな感じのViewModelを用意してContentPageのBindingContextにセットします。 public class ViewModel : INotifyPropertyChanged { publi…

【Xamarin.Forms 2.3.4-pre】新しいOnPlatformメカニズム

Xamarin.Forms 2.3.4-preで新しいOnPlatformの仕組みが導入され、従来の物は非推奨となります。 概要 動作プラットフォームを文字列で判別するアプローチに変更(従来はenum) Xamarin.Formsがサポートしていないプラットフォームへの対応が容易に(Tizenとか) …

Xamarin.Forms.TabbedPageのiOS版でタブを上側に変更するサンプル

teratailで回答したやつ。 Xamarin - Xamarin.FormsのTabbedページのUIをiOSとAndroidで揃えたい(62739)|teratail スクショ stackoverflowの回答を参考にしています。 ios - Positioning UITabBar at the top - Stack Overflow Xamarin.iOS側のプロジェクト…

Xamarin.Androidでアプリのビルド時にJavaのヒープがあふれる時の対処

Xamarin.Androidでアプリのビルド時に... java.lang.OutOfMemoryError. Consider increasing the value of $(JavaMaximumHeapSize). Java ran out of memory while executing 'java.exe -jar ~' のようにJavaのヒープ領域があふれてエラーになったら 対処 X…

【Xamarin.Forms 2.3.3】 Platform Specifics

Xamarin.Forms 2.3.3で Platform Specifics という機能が追加されました。 これはPCLなどの共通コードからプラットフォーム固有の機能を呼び出したりする類のものです。(ただしコードビハインド限定) Forumでの紹介文によると... Introducing Platform Speci…

Xamarin.Forms.Tizenをハックして地図を表示してみる

この記事は Xamarin(その2) Advent Calendar 2016 20日目の記事です。 Xamarin.FormsにTizenが参戦!? Connect(); // 2016 のキーノートにて電撃的にXamarin.Forms.Tizenが発表され、一部界隈に衝撃を与えました。 衝撃を受ける様子 Tizen!?死んだはずで…

Xamarin入門者の集い supported by teratail に登壇してきました

2016年10月26日(水)にレバレジーズ株式会社にて開催された「Xamarin入門者の集い supported by teratail」にゲストスピーカーとして登壇してきました。 jxug.connpass.com ytabuchi.hatenablog.com 新しくXamarinを始めた人たちはXamarin.Formsから入ること…

【Xamarin.Forms】MasterDetailPageのMaster側を右寄せにするサンプル

Xamarin.FormsのMasterDetailPageのMaster部分(ドロワー?)を右寄せに改造するサンプルです。 Rendererとリフレクションを駆使して頑張ってます。AndroidとiOS(Phone)に対応。 GitHub - P3PPP/RightMasterDetailPageSample: Xamarin.FormsのMasterDetailPage…

【Xamarin.Forms】RelativeLayoutとConstraintのちょっと深い話

最近こんな質問に回答してました。 teratail.com という訳で今回は、RelativeLayoutの子要素にConstraintを再セットすることについて少し掘り下げます。 C#でRelaytiveLayoutにレアイアウト制約付きで子要素追加する際のコードはこんな感じです。 var label …

Xamarinでの開発はWindowsとMacのどちらが良いのか?

時々聞かれるのですが...... 大前提として、WindowsでVisual Studioをメインに使っていくにしてもiOSアプリのビルドにはMacが必要です。 モバイルアプリを(クロスプラットフォームで)開発しようというのに、iOSに対応しないという事は基本的に無いでしょう。…

【Xamarin.Forms 2.3.3 -pre2】XAML内でのネイティブView定義とBindingのサポート

Xamarin.Forms 2.3.3 -pre2でXAML内でネイティブプラットフォーム(iOS、Android、UWP)のコントロールを配置できるようになります。 これはXamarin.Forms 2.2で追加されたNative Embeddingという機能の発展系であると言えます。 ticktack.hatenablog.jp Nativ…

【Xamarin.Forms】XAMLでViewの縦横比を一定に保つ

teratail.com Teratailの"Xamarin Studioで幅は画面と同じ大きさ、高さが画面の幅に対して50%のViewを作りたい"(iOS)という質問に回答した時に、Aspect RatioのConstraint便利だなーと思ったのでXamarin.Formsでも同じようなことをやってみましょう。 C#でイ…

JXUGC #16 Xamarin.Forms Custom Renderer ハンズオン を開催してきました

さる2016/8/10、渋谷のdots.さん会場にて「JXUGC #16 Xamarin.Forms Custom Renderer ハンズオン」というイベントをやってきました。先生役で。 Twitterの反応を見る限り、おおむね好評だったようで何よりです。 イベントページ JXUGC #16 Xamarin.Forms Cus…

【Xamarin.Forms】ViewRendererと仲良くなるための簡易チュートリアル

この記事はXamarin.Formsの標準コントロールだけでは対応しきれなくなった時、ViewRendererを駆使した独自コントロールで乗り越えるためのチュートリアルです。 目次 Xamarin.Formsコントロールの仕組み 独自のコントロールを作る Binding可能なプロパティで…