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{}