Native & Classic Xamarin
If you already have a complex or implemented classes for the platform boilerplate, please follow the manual hooks guide. This is designed to get you up and running quickly on full .NET native platforms.
iOS/Mac Catalyst
This is the basic requirement for
using Shiny;
using Shiny.Hosting;
using Foundation;
using UIKit;
namespace YourNamespace;
public class MyDelegate : Shiny.ShinyAppDelegate
{
protected override IHost CreateShinyHost()
{
var builder = HostBuilder.Create();
// register all of your services and shiny modules here
return builder.Create();
}
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
// any launch stuff you require - don't call shiny stuff BEFORE the line below
return base.FinishedLaunching(application, launchOptions);
}
}
Android
Create a MainApplication
class and inherit Shiny.ShinyAndroidApplication
using System;
using Android.App;
using Android.Runtime;
using Shiny.Hosting;
namespace YourNamespace;
public class YourShinyAndroidApplication : Shiny.ShinyAndroidApplication
{
// this is required for .NET Android
public ShinyAndroidApplication(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer) {}
protected override IHost CreateShinyHost()
{
var builder = HostBuilder.Create();
// register all of your services and shiny modules here
return builder.Build();
}
}
Next, add a new main activity (or have all of your activities inherit) Shiny.ShinyAndroidActivity
using Android.App;
using Android.Content.PM;
namespace YourNamespace;
[Activity(
Theme = "@style/YourTheme",
MainLauncher = true,
ConfigurationChanges =
ConfigChanges.ScreenSize |
ConfigChanges.Orientation |
ConfigChanges.UiMode |
ConfigChanges.ScreenLayout |
ConfigChanges.SmallestScreenSize |
ConfigChanges.Density
)]
public class MainActivity : Shiny.ShinyAndroidActivity
{
}