Xamarin には、ネイティブライブラリを Xamarin で参照できる dll に変換する Binding という機能があります。
Binding Objective-C | Xamarin (iOS)
Binding a Java Library (.jar) | Xamarin (Android)
Android の jar は割と簡単なようですが iOS の Framework はコツがいるようで、変換しやすいものとしづらいものがあるようです。
コツらしきもの
- 手間を避けるため、配布されているスタティックライブラリそのまま使用
- GUI の Objective Sharpie では目標とする変換を得られない可能性があるのでターミナルの sharpie コマンドの使用も考慮する
- 出力された内容からも必要なものを取捨選択する
- 頑張る
Objective Sharpie については以下を参照してください。
Automated Binding Definitions using Objective Sharpie | Xamarin
既存の iOS ネイティブアプリから機能を持ってくる場合:
- Xcode でスタティックライブラリのプロジェクトを作成する。
- Xcode でそのプロジェクトを参照する、アプリのプロジェクトを作成する。
- スタティックライブラリの中に既存のソースで必要なものを全部入れて適切にビルドが通すようにする。
- そのライブラリ内に、適切に初期化して ViewController を返すクラスメソッドを実装。
- 動作はアプリプロジェクトで確認する。
- 最後に、スタティックライブラリ単体をユニバーサルバイナリになるようにビルドする。
こうしてできたスタティックライブラリをネイティブブリッジでつなぎ込みする。とのことです。
ネイティブブリッジは
Linking Native Libraries | Xamarin
のことかと思います。
(公開していいのだろうか…)