サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
ticktack.hatenablog.jp
Xamarin.Formsのリリースから約2年、当初よりもプラットフォームごとのカスタマイズ手段が増えてきたので、ここでちょっと整理してみようと思います。 目次 他に忘れてる物があったら教えてください。 OnPlatform (XF 1.0 ~) DependecyService (XF 1.0 ~) Plugins for Xamarin Custom Renderer (XF 1.0 ~) Effects (XF 2.1 ~) Native Embedding (XF 2.2 ~) OnPlatform プラットフォーム毎に個別の処理をしたり、値を返すのに使います。 PCL、Shared、XAMLどの場面でも使えて、個別にパラメータを設定するのに活躍します。 Xamarinのドキュメント Device Class - Xamarin XAMLでOnPlatformを使うときのドキュメン
前置き Build 2016での発表から全ての開発者がVisual StudioでXamarinを利用できるようになり、アプリのみならずクロスプラットフォームなライブラリ開発も行いやすくなりました。 という訳で今回はPlugins for XamarinのテンプレートからNuGetパッケージを作るまでの流れを解説します。 Plugins for Xamarin って何? Xamarin.iOS, Xamarin.Android, Windows Phone などの固有機能を共通のインターフェースで利用できるようにデザインされたライブラリ群です。 代表的なものにバッテリー、ストレージ、位置情報などを利用するためのプラグインがあります。 Plugins for Xamarinを 使いこなす 方法はBuild Insiderで田淵さん(@ytabuchi)連載している記事を参照してください。 P
今朝起きるとBuild 2017の2日目にXamarin Live Player(以降XLPと省略します)という技術が発表されていたので、今日はその仕組みについて想像していました。 5/12 午前 この時点では、どうやらXLPは「Mac不要でiOSアプリをビルドしてデバッグできる」技術らしいと把握していました。 「またまた皆騙されちゃってー、iOSアプリをビルドするならMacは必要、見えないところにいるだけでしょう」と想像した図がこちら。 Xamarin Live Playerについて、まだ何も試せてないけど多分こんな仕組みじゃないかな(iOSアプリの場合) pic.twitter.com/EHx7O26IN7— ざまりん.ふぉーむずマン👀 (@ticktackmobile) 2017年5月12日 断っておくとこの想像図は間違っています。(そもそも「iOSアプリをビルドする技術」という理
Xamarin.Forms 2.3.4-preで新しいOnPlatformの仕組みが導入され、従来の物は非推奨となります。 概要 動作プラットフォームを文字列で判別するアプローチに変更(従来はenum) Xamarin.Formsがサポートしていないプラットフォームへの対応が容易に(Tizenとか) XAMLのOnPlatformで複数のプラットフォームに対してまとめて値を設定可能に Device.OnPlatform(), Device.OnPlatform<T>() は実質廃止 RuntimePlatform これまで、実行中のプラットフォームを取得するにはenum TargetPlatform型のDevice.OSプロパティを使用して来ました。 これを置き換える形でstring型のDevice.RuntimePlatformプロパティが新しく定義されます。 (Xamarin.Form
Xamarin.Forms 2.3.3で Platform Specifics という機能が追加されました。 これはPCLなどの共通コードからプラットフォーム固有の機能を呼び出したりする類のものです。(ただしコードビハインド限定) Forumでの紹介文によると... Introducing Platform Specifics! Features or behaviors that apply to one platform only can now be implemented without requiring custom renderers. These new features/behaviors can then be accessed easily via a fluent code API or XAML. Vendors can easily add their own
前回の記事でサンプル用に割とオーソドックスViewModelを作ったところ、ReactivePropertyに置き換えた場合と比較したら面白そうだと思ったので書いてみます。 目次 INotifyPropertyChangedインターフェースを実装しなくなる 変更通知プロパティのコードが短くなる ICommand.CanExecuteChangedの管理がラクになる Binding記述が少し長くなる 1. INotifyPropertyChangedインターフェースを実装しなくなる PropertyChangedイベントの発火はReactivePropertyがやってくれるので、ViewModelはINotifyPropertyChangedを実装する必要がありません。「全てのViewModelがINotifyPropertyChangedを実装した基底クラスから派生する」といった定番スタイ
NControl は NControlView というUIコントロールを提供するXamarin.Forms用ライブラリです。 NControlView は前回紹介したNGraphicsのカンバスを内蔵しており、独自の見た目を持つカスタムコントロールが簡単に作れるようになっています。(ちなみにNGraphicsの作者とは別の人) さらにXamarin.Forms.ContentViewを継承しているため複合コントロールを作る事も容易です。 さらにさらに、タッチイベントも提供されているためカスタムボタンとして作りこむのにとっても都合が良いのです!(押されたら色を変えたり、アニメーションしたり。画像やラベルにGestureRecognizerを追加するだけでは難しいところ) 公式のサンプルコントロールがとても参考になるので是非ともご一読頂きたい。 RoundedCornerControl (角丸
この記事はXamarin.Formsの標準コントロールだけでは対応しきれなくなった時、ViewRendererを駆使した独自コントロールで乗り越えるためのチュートリアルです。 目次 Xamarin.Formsコントロールの仕組み 独自のコントロールを作る Binding可能なプロパティでNaitiveコントロールと連携する NativeコントロールからFormsコントロールにメッセージを送る FormsコントロールからNativeコントロールにメッセージを送る さらなるステップアップ Xamarin.Formsコントロールの仕組み 最初にXamarin.Formsのコントロールがどのような仕組みで成り立っているか確認しておきましょう。 Xamarin.Formsでは各プラットフォームのコントロールをラップし、抽象化したコントロールを定義する事でView層コードの共通化を可能としています。
Android版に続き、Xamarin.Forms製アプリ「AEDオープンデータ検索」のiOS版をリリースしました! iOS版のコードも公開中のGitHubリポジトリに含まれていますよ! https://github.com/P3PPP/XFAedSearch 主な機能 近くにあるAEDを地図に表示します。 AED情報のソースは初音 玲さん( @hatsune_ )の AEDオープンデータプラットフォーム です。 当然といえば当然ですがAndroid版と同じです。 一応Android版のリンクのリンクも
Evelve 2016で紹介されたXamarin.Forms Themesが(ようやく)NuGetに配信されました。 中身のdllを見る限り、現時点ではiOS、Androidのみ対応しているようですね。 早速試した方がいらっしゃいます! Xamarinメモ その18 Xamarin.Forms.ThemesをPrism.Unity.Formsと併用する場合の注意 – A certain engineer "COMPLEX" 僭越ながら補足させていただくと... 補足1 App.xamlの追加方法は @omanuke さんの記事を参考にすると良いでしょう。 補足2 「assemblyがロードされない場合」が発生する理由は、XAMLしか参照していないassemblyはリンカが依存関係を検出できないためアプリパッケージにプラットフォーム実装dllが含まれなくなるからです。 よって、コードビハイン
Xamarin Evolve 2016のキーノートで遂に来ました! 念願のXAMLプレビューが!Xamarin.Formsに! 呼称は Xamarin.Forms Previewer だそうです。 というわけで早速試してみた様子がこちら XAML Previewer動いたよん❤️ pic.twitter.com/Qtx9V7CKO1— Xamarin.Formsヒトバシラー (@ticktackmobile) 2016年4月28日 どこまでが必須か分からないけどXAMLプレビュー動くまでにやった事 ・Xamarin Studio(Mac)をAlphaチャネルでアップデート ・Mac OSを最新にアップデート ・Xcodeを最新にアップデート ・Xcodeを1度起動して、関連ツール(?)アップデート 続く— Xamarin.Formsヒトバシラー (@ticktackmobile) 2016
Xamarin.Forms 2.1.0 で Effects という新しい概念が追加される予定です。 (個人的な感想として、BehaiviorsやStylesの概念をCutstomRendererに持ち込んだ物がEffectsと捉えるとしっくりきます。) 「Buttonコントロールに枠線を付けたい」といった場合、従来はCustomRendererでプラットフォームごとのViewに手を加えるのが基本的なアプローチでした。 (iOS版のボタンに枠線を付けたかっただけなのに!?) Effectsを使えばそのようなことがより簡単に、もっと使い回しの効く形で実現できるようになります。 サンプル 早速、枠線を付ける簡単なEffectを作成してみましょう。(iOS用です、iOSのプロジェクト内に書いてください) using System; using Xamarin.Forms; using Xamari
もっと具体的に書くと、 自作ライブラリ(PCL)のコントロールを XAMLのみ で使用していて、 C#コードでそのライブラリを参照しておらず 、Page表示時に System.IO.FileNotFoundException (Could not load file or assembly 'CustomControls' or one of its dependencies. The system cannot find the file specified.) が発生してアプリが落ちる場合の対処方法です。 つまり、こんな風にXAMLしかライブラリを参照していない場合にFileNotFoundExceptionとなります。 <?xml version="1.0" encoding="UTF-8"?> <ContentPage xmlns="http://xamarin.com/schem
NGraphics はベクタグラフィクスを描くためのクロスプラットフォーム ライブラリです。 つまり、Windows、Android(Xamarin)、iOS(Xamarin)などに対して、統一的なAPIで Canvas に Ellipse や Rectangle や Path が描けます。 実際のコードを見てみましょう。公式のREADMEに書かれているサンプルです。 var canvas = Platforms.Current.CreateImageCanvas(new Size(100), scale: 2); var skyBrush = new LinearGradientBrush (Point.Zero, Point.OneY, Colors.Blue, Colors.White); canvas.FillRectangle (new Rect (canvas.Size), s
このページを最初にブックマークしてみませんか?
『ticktack.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く