Some test text!

Code sharing between Xamarin.Android app and Xamarin.iOS app

In this document
chevron_rightShared classes
chevron_rightPlatform specific classes

linkShared classes

PDFTron for Xamarin SDK takes advantage of PInvoke which allows calling C from C# directly. As a result, majority of PDFTron classes share the same API between Xamarin.Android and Xamarin.iOS. For example, you can find AndroidMiscellaneousSamples and iOSMiscellaneousSamples in the download packages which share all of their source code.

This guide demonstrates how to structure your project to allow code sharing. Platform specific classes will be listed at the end of this guide.

First, create a Common folder outside of both apps, for example:

MyProject/
    |__Common/
    |__MyAndroidApp/
    |__MyiOSApp/

Common folder will be where all the shared source files live. For example, let's say we have a Common/CreateSticky.cs file for creating sticky note annotations.

Now, when open each of the Xamarin.iOS or Xamarin.Android project in Visual Studio, add CreateSticky.cs as a linked item:

In Visual Studio for Mac:

  • Right click on the project
  • Click Add > Add Files...
  • Select Common/CreateSticky.cs
  • Choose Add a link in the Add File To Folder dialog

In Visual Studio 2017:

  • Right click on the project
  • Click Add > Existing item...
  • Select Common/CreateSticky.cs, in the same dialog, instead of Add button, click the down arrow and select Add As Link

And that is it! You can use PDFTron pdftron.PDF.Annot class to create the sticky note in a file that is now shared between Xamarin.Android and Xamarin.iOS apps.

linkPlatform specific classes

List of platform specific classes:

  • pdftron.PDF.PDFViewCtrl
  • All classes under pdftron.PDF.Tools namespace
  • All classes under pdftron.PDF.Controls namespace