Portable projects
- Easy to read code
- Easy Unit testing
- Portable
- Better implementation of the code
There are 3 type of portable projects,
Blank app (Native Portable)
- It contains shared code and resource.
- Native word defines it to use it more for an Android framework.
Blank app (Xamarin.Forms.Portable)
- Blank app uses Xamarin.Form, which is pretty much designing an app once for an iOS, Android & Win phone.
- Where you will write the code, which is shared across the platform and includes UI code, use it with Xamarin.Forms.
Blank XAML app (Xamarin.Forms.Portable)
- The template just creates the default pages, using XAML, code at the backend, and the other uses of C# instead of XAML.
Shared projects
- Shared project can be a nice solution in small projects.
There are 3 types of shared projects.
Blank App (Native Shared)
- Visual Studio creates a project for each platform and a special project. You can add files & resource too.
- Blank App, using Xamarin.IOS or Xamarin.Android are built, using Xamarin SCL.
Blank app (Xamarin.Forms.Shared)
- Xamarin's own custom control is very helpful to design the form.
- Requires less knowledge of Android framework.
- Fast development compared to Native.
Blank XAML app (Xamarin.Forms.Shared)
- The template just creates the default pages, using XAML, code at the backend,and the other uses of C# instead of XAML.
Class Library(Xamarin.Forms)
CLs don’t come without their own set of headaches but they provide a great way to write the code. Once, it can be used on multiple platforms, it is
- Easily maintained and tested.
- When you write a Class Library, you don’t need to insert compiler Directives to switch the code depending on each platform. You will select which platforms will you support, followed by starting to write the code..
UI Test app (Xamarin.UITest | Cross-Platform)
- Xamarin.UITest is a testing framework, which enables Automated UI Acceptance Tests written in NUnit to be run against iOS and Android Applications.
- It integrates tightly with Xamarin.iOS and Xamarin.Android projects but it can also be used with iOS and Android projects written natively in Objective-C/Swift and Java.