From 6ad4660a53afeb6029a2b2efa0c7292f23dce4fa Mon Sep 17 00:00:00 2001 From: Ryan Davis Date: Thu, 12 Jan 2023 15:29:00 +1000 Subject: [PATCH] docs: add maui sample --- src/samples/maui/maui.sln | 21 + src/samples/maui/maui/App.cs | 13 + src/samples/maui/maui/BaseTypes/BaseTypes.cs | 26 ++ src/samples/maui/maui/ContainerExtensions.cs | 35 ++ src/samples/maui/maui/MauiProgram.cs | 59 +++ src/samples/maui/maui/Pages/MainPage.cs | 47 ++ src/samples/maui/maui/Pages/OtherPage.cs | 10 + .../Platforms/Android/AndroidManifest.xml | 6 + .../maui/Platforms/Android/MainActivity.cs | 12 + .../maui/Platforms/Android/MainApplication.cs | 15 + .../Android/Resources/values/colors.xml | 6 + .../maui/Platforms/MacCatalyst/AppDelegate.cs | 9 + .../maui/Platforms/MacCatalyst/Info.plist | 30 ++ .../maui/Platforms/MacCatalyst/Program.cs | 15 + src/samples/maui/maui/Platforms/Tizen/Main.cs | 16 + .../maui/Platforms/Tizen/tizen-manifest.xml | 15 + .../maui/maui/Platforms/Windows/App.xaml | 8 + .../maui/maui/Platforms/Windows/App.xaml.cs | 23 + .../Platforms/Windows/Package.appxmanifest | 46 ++ .../maui/maui/Platforms/Windows/app.manifest | 15 + .../maui/maui/Platforms/iOS/AppDelegate.cs | 9 + .../maui/maui/Platforms/iOS/Info.plist | 32 ++ .../maui/maui/Platforms/iOS/Program.cs | 15 + .../maui/maui/Properties/launchSettings.json | 8 + src/samples/maui/maui/Reload/ReloadManager.cs | 132 ++++++ .../maui/maui/Resources/AppIcon/appicon.svg | 4 + .../maui/maui/Resources/AppIcon/appiconfg.svg | 8 + .../maui/Resources/Fonts/OpenSans-Regular.ttf | Bin 0 -> 107152 bytes .../Resources/Fonts/OpenSans-Semibold.ttf | Bin 0 -> 111032 bytes .../maui/maui/Resources/Images/dotnet_bot.svg | 93 ++++ .../maui/maui/Resources/Raw/AboutAssets.txt | 15 + .../maui/maui/Resources/Splash/splash.svg | 8 + .../maui/maui/Resources/Styles/Colors.xaml | 44 ++ .../maui/maui/Resources/Styles/Styles.xaml | 405 ++++++++++++++++++ src/samples/maui/maui/maui.App.sln | 27 ++ src/samples/maui/maui/maui.csproj | 64 +++ src/samples/maui/readme.md | 38 ++ src/samples/maui/reload-config.json | 35 ++ src/samples/maui/run-host.sh | 1 + 39 files changed, 1365 insertions(+) create mode 100644 src/samples/maui/maui.sln create mode 100644 src/samples/maui/maui/App.cs create mode 100644 src/samples/maui/maui/BaseTypes/BaseTypes.cs create mode 100644 src/samples/maui/maui/ContainerExtensions.cs create mode 100644 src/samples/maui/maui/MauiProgram.cs create mode 100644 src/samples/maui/maui/Pages/MainPage.cs create mode 100644 src/samples/maui/maui/Pages/OtherPage.cs create mode 100644 src/samples/maui/maui/Platforms/Android/AndroidManifest.xml create mode 100644 src/samples/maui/maui/Platforms/Android/MainActivity.cs create mode 100644 src/samples/maui/maui/Platforms/Android/MainApplication.cs create mode 100644 src/samples/maui/maui/Platforms/Android/Resources/values/colors.xml create mode 100644 src/samples/maui/maui/Platforms/MacCatalyst/AppDelegate.cs create mode 100644 src/samples/maui/maui/Platforms/MacCatalyst/Info.plist create mode 100644 src/samples/maui/maui/Platforms/MacCatalyst/Program.cs create mode 100644 src/samples/maui/maui/Platforms/Tizen/Main.cs create mode 100644 src/samples/maui/maui/Platforms/Tizen/tizen-manifest.xml create mode 100644 src/samples/maui/maui/Platforms/Windows/App.xaml create mode 100644 src/samples/maui/maui/Platforms/Windows/App.xaml.cs create mode 100644 src/samples/maui/maui/Platforms/Windows/Package.appxmanifest create mode 100644 src/samples/maui/maui/Platforms/Windows/app.manifest create mode 100644 src/samples/maui/maui/Platforms/iOS/AppDelegate.cs create mode 100644 src/samples/maui/maui/Platforms/iOS/Info.plist create mode 100644 src/samples/maui/maui/Platforms/iOS/Program.cs create mode 100644 src/samples/maui/maui/Properties/launchSettings.json create mode 100644 src/samples/maui/maui/Reload/ReloadManager.cs create mode 100644 src/samples/maui/maui/Resources/AppIcon/appicon.svg create mode 100644 src/samples/maui/maui/Resources/AppIcon/appiconfg.svg create mode 100644 src/samples/maui/maui/Resources/Fonts/OpenSans-Regular.ttf create mode 100644 src/samples/maui/maui/Resources/Fonts/OpenSans-Semibold.ttf create mode 100644 src/samples/maui/maui/Resources/Images/dotnet_bot.svg create mode 100644 src/samples/maui/maui/Resources/Raw/AboutAssets.txt create mode 100644 src/samples/maui/maui/Resources/Splash/splash.svg create mode 100644 src/samples/maui/maui/Resources/Styles/Colors.xaml create mode 100644 src/samples/maui/maui/Resources/Styles/Styles.xaml create mode 100644 src/samples/maui/maui/maui.App.sln create mode 100644 src/samples/maui/maui/maui.csproj create mode 100644 src/samples/maui/readme.md create mode 100644 src/samples/maui/reload-config.json create mode 100755 src/samples/maui/run-host.sh diff --git a/src/samples/maui/maui.sln b/src/samples/maui/maui.sln new file mode 100644 index 0000000..740b37b --- /dev/null +++ b/src/samples/maui/maui.sln @@ -0,0 +1,21 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "maui", "maui\maui.csproj", "{02F3277E-C9F4-4917-ADCE-D26EAD8860FC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "About", "About", "{1A5C33A3-3B5A-418E-A6D8-E63CBAEC269E}" + ProjectSection(SolutionItems) = preProject + readme.md = readme.md + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {02F3277E-C9F4-4917-ADCE-D26EAD8860FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02F3277E-C9F4-4917-ADCE-D26EAD8860FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02F3277E-C9F4-4917-ADCE-D26EAD8860FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02F3277E-C9F4-4917-ADCE-D26EAD8860FC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/src/samples/maui/maui/App.cs b/src/samples/maui/maui/App.cs new file mode 100644 index 0000000..23d1bf9 --- /dev/null +++ b/src/samples/maui/maui/App.cs @@ -0,0 +1,13 @@ +using DryIoc; +using maui.Pages; +using IContainer = DryIoc.IContainer; + +namespace maui; + +public partial class App : Application +{ + public App(IContainer container) + { + MainPage = container.Resolve(); + } +} diff --git a/src/samples/maui/maui/BaseTypes/BaseTypes.cs b/src/samples/maui/maui/BaseTypes/BaseTypes.cs new file mode 100644 index 0000000..9a139b1 --- /dev/null +++ b/src/samples/maui/maui/BaseTypes/BaseTypes.cs @@ -0,0 +1,26 @@ +namespace maui.BaseTypes; + +// imagine these were good page base classes +public abstract class BasePage : ContentPage { } +public abstract class BasePage : BasePage + where TViewModel : BaseViewModel +{ + public TViewModel ViewModel { get; set; } + + public BasePage(TViewModel viewModel) + { + ViewModel = viewModel; + } +} + +// imagine this was a good view model base class with inotify etc. +public abstract class BaseViewModel +{ + +} + +// imagine this was a good view model base class +public abstract class BaseService +{ + +} diff --git a/src/samples/maui/maui/ContainerExtensions.cs b/src/samples/maui/maui/ContainerExtensions.cs new file mode 100644 index 0000000..d8a15eb --- /dev/null +++ b/src/samples/maui/maui/ContainerExtensions.cs @@ -0,0 +1,35 @@ +using DryIoc; +using maui.BaseTypes; +using IContainer = DryIoc.IContainer; + +namespace maui; + +public static class ContainerExtensions +{ + // called at startup and by reload manager to update container types + public static IContainer RegisterApplicationTypes(this IContainer container, params Type[] types) + { + foreach (var t in types.Where(t => !t.IsAbstract)) + { + // register pages and viewmodels for direct resolution + if (t.IsSubclassOf(typeof(Page)) || t.IsSubclassOf(typeof(BaseViewModel))) + { + container.Register(t, reuse: Reuse.Transient); + + // if you were using shell or prism you could add/overwrite the route registration here + } + + // register services against interfaces + // use 'IfAlreadyRegistered.Replace' to replace existing registrations + if (t.IsSubclassOf(typeof(BaseService))) + { + container.RegisterMany( + new [] { t }, + serviceTypeCondition: _ => true, + ifAlreadyRegistered: IfAlreadyRegistered.Replace); + } + } + + return container; + } +} \ No newline at end of file diff --git a/src/samples/maui/maui/MauiProgram.cs b/src/samples/maui/maui/MauiProgram.cs new file mode 100644 index 0000000..ea64de1 --- /dev/null +++ b/src/samples/maui/maui/MauiProgram.cs @@ -0,0 +1,59 @@ +using CommunityToolkit.Maui.Markup; +using DryIoc; +using DryIoc.Microsoft.DependencyInjection; +using maui.Reload; +using Microsoft.Extensions.Logging; +using Tbc.Target.Config; +using Debug = System.Diagnostics.Debug; +using IContainer = DryIoc.IContainer; + +namespace maui; + +public static class MauiProgram +{ + public static MauiApp CreateMauiApp() + { + var builder = MauiApp.CreateBuilder(); + var container = ConfigureMutableContainer(builder); + + builder + .UseMauiApp() + .UseMauiCommunityToolkitMarkup() + .ConfigureFonts(fonts => + { + fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); + fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); + }); + +#if DEBUG + builder.Logging.AddDebug(); +#endif + + var app = builder.Build(); + +#if DEBUG + Task.Run(() => RunTbc(app, container)); +#endif + return app; + } + + private static async Task RunTbc(MauiApp app, IContainer container) + { + var rm = new ReloadManager(container); + var ts = new Tbc.Target.TargetServer(TargetConfiguration.Default(port: 50129)); + await ts.Run(rm, x => Debug.WriteLine(x)); + } + + private static IContainer ConfigureMutableContainer(MauiAppBuilder builder) + { + // this is the dryioc container + var container = + new Container(Rules.MicrosoftDependencyInjectionRules) + .RegisterApplicationTypes(typeof(MauiProgram).Assembly.GetTypes()); + + // this makes it maui friendly + builder.ConfigureContainer(new DryIocServiceProviderFactory(container)); + + return container; + } +} diff --git a/src/samples/maui/maui/Pages/MainPage.cs b/src/samples/maui/maui/Pages/MainPage.cs new file mode 100644 index 0000000..67b5114 --- /dev/null +++ b/src/samples/maui/maui/Pages/MainPage.cs @@ -0,0 +1,47 @@ +using CommunityToolkit.Maui.Markup; +using maui.BaseTypes; + +namespace maui.Pages; + +public class MainPage : BasePage +{ + public MainPage(MainViewModel vm) : base(vm) + { + BackgroundColor = Colors.Blue; + + Content = + new StackLayout + { + Children = + { + new Label { Text = vm.MyString } + .TextColor(Colors.Red) + .TextCenter(), + } + }.Center(); + } +} + +public class MainViewModel : BaseViewModel +{ + private readonly IMyService _myService; + + public string MyString { get; set; } + + public MainViewModel(IMyService myService) + { + _myService = myService; + + MyString = _myService.MyString; + } +} + + +public interface IMyService +{ + string MyString { get; } +} +public class MyService : BaseService, IMyService +{ + public string MyString => "service string"; +} diff --git a/src/samples/maui/maui/Pages/OtherPage.cs b/src/samples/maui/maui/Pages/OtherPage.cs new file mode 100644 index 0000000..5ed333b --- /dev/null +++ b/src/samples/maui/maui/Pages/OtherPage.cs @@ -0,0 +1,10 @@ +namespace maui.Pages; + +public class OtherPage : ContentPage +{ + public OtherPage() + { + BackgroundColor = Colors.Red; + } +} + diff --git a/src/samples/maui/maui/Platforms/Android/AndroidManifest.xml b/src/samples/maui/maui/Platforms/Android/AndroidManifest.xml new file mode 100644 index 0000000..e9937ad --- /dev/null +++ b/src/samples/maui/maui/Platforms/Android/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/Android/MainActivity.cs b/src/samples/maui/maui/Platforms/Android/MainActivity.cs new file mode 100644 index 0000000..fa3fb3b --- /dev/null +++ b/src/samples/maui/maui/Platforms/Android/MainActivity.cs @@ -0,0 +1,12 @@ +using Android.App; +using Android.Content.PM; +using Android.OS; + +namespace maui; + +[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, + ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | + ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] +public class MainActivity : MauiAppCompatActivity +{ +} \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/Android/MainApplication.cs b/src/samples/maui/maui/Platforms/Android/MainApplication.cs new file mode 100644 index 0000000..09f18a2 --- /dev/null +++ b/src/samples/maui/maui/Platforms/Android/MainApplication.cs @@ -0,0 +1,15 @@ +using Android.App; +using Android.Runtime; + +namespace maui; + +[Application] +public class MainApplication : MauiApplication +{ + public MainApplication(IntPtr handle, JniHandleOwnership ownership) + : base(handle, ownership) + { + } + + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); +} \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/Android/Resources/values/colors.xml b/src/samples/maui/maui/Platforms/Android/Resources/values/colors.xml new file mode 100644 index 0000000..c04d749 --- /dev/null +++ b/src/samples/maui/maui/Platforms/Android/Resources/values/colors.xml @@ -0,0 +1,6 @@ + + + #512BD4 + #2B0B98 + #2B0B98 + \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/MacCatalyst/AppDelegate.cs b/src/samples/maui/maui/Platforms/MacCatalyst/AppDelegate.cs new file mode 100644 index 0000000..83e4aa6 --- /dev/null +++ b/src/samples/maui/maui/Platforms/MacCatalyst/AppDelegate.cs @@ -0,0 +1,9 @@ +using Foundation; + +namespace maui; + +[Register("AppDelegate")] +public class AppDelegate : MauiUIApplicationDelegate +{ + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); +} \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/MacCatalyst/Info.plist b/src/samples/maui/maui/Platforms/MacCatalyst/Info.plist new file mode 100644 index 0000000..c96dd0a --- /dev/null +++ b/src/samples/maui/maui/Platforms/MacCatalyst/Info.plist @@ -0,0 +1,30 @@ + + + + + UIDeviceFamily + + 1 + 2 + + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/appicon.appiconset + + diff --git a/src/samples/maui/maui/Platforms/MacCatalyst/Program.cs b/src/samples/maui/maui/Platforms/MacCatalyst/Program.cs new file mode 100644 index 0000000..4154d29 --- /dev/null +++ b/src/samples/maui/maui/Platforms/MacCatalyst/Program.cs @@ -0,0 +1,15 @@ +using ObjCRuntime; +using UIKit; + +namespace maui; + +public class Program +{ + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, typeof(AppDelegate)); + } +} \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/Tizen/Main.cs b/src/samples/maui/maui/Platforms/Tizen/Main.cs new file mode 100644 index 0000000..fc16cea --- /dev/null +++ b/src/samples/maui/maui/Platforms/Tizen/Main.cs @@ -0,0 +1,16 @@ +using System; +using Microsoft.Maui; +using Microsoft.Maui.Hosting; + +namespace maui; + +class Program : MauiApplication +{ + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + + static void Main(string[] args) + { + var app = new Program(); + app.Run(args); + } +} \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/Tizen/tizen-manifest.xml b/src/samples/maui/maui/Platforms/Tizen/tizen-manifest.xml new file mode 100644 index 0000000..8445b61 --- /dev/null +++ b/src/samples/maui/maui/Platforms/Tizen/tizen-manifest.xml @@ -0,0 +1,15 @@ + + + + + + maui-appicon-placeholder + + + + + http://tizen.org/privilege/internet + + + + \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/Windows/App.xaml b/src/samples/maui/maui/Platforms/Windows/App.xaml new file mode 100644 index 0000000..8eae2d7 --- /dev/null +++ b/src/samples/maui/maui/Platforms/Windows/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/src/samples/maui/maui/Platforms/Windows/App.xaml.cs b/src/samples/maui/maui/Platforms/Windows/App.xaml.cs new file mode 100644 index 0000000..45b4046 --- /dev/null +++ b/src/samples/maui/maui/Platforms/Windows/App.xaml.cs @@ -0,0 +1,23 @@ +using Microsoft.UI.Xaml; + +// To learn more about WinUI, the WinUI project structure, +// and more about our project templates, see: http://aka.ms/winui-project-info. + +namespace maui.WinUI; + +/// +/// Provides application-specific behavior to supplement the default Application class. +/// +public partial class App : MauiWinUIApplication +{ + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + } + + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); +} \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/Windows/Package.appxmanifest b/src/samples/maui/maui/Platforms/Windows/Package.appxmanifest new file mode 100644 index 0000000..ff5ecc0 --- /dev/null +++ b/src/samples/maui/maui/Platforms/Windows/Package.appxmanifest @@ -0,0 +1,46 @@ + + + + + + + + + $placeholder$ + User Name + $placeholder$.png + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/samples/maui/maui/Platforms/Windows/app.manifest b/src/samples/maui/maui/Platforms/Windows/app.manifest new file mode 100644 index 0000000..76fb1b5 --- /dev/null +++ b/src/samples/maui/maui/Platforms/Windows/app.manifest @@ -0,0 +1,15 @@ + + + + + + + + true/PM + PerMonitorV2, PerMonitor + + + diff --git a/src/samples/maui/maui/Platforms/iOS/AppDelegate.cs b/src/samples/maui/maui/Platforms/iOS/AppDelegate.cs new file mode 100644 index 0000000..83e4aa6 --- /dev/null +++ b/src/samples/maui/maui/Platforms/iOS/AppDelegate.cs @@ -0,0 +1,9 @@ +using Foundation; + +namespace maui; + +[Register("AppDelegate")] +public class AppDelegate : MauiUIApplicationDelegate +{ + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); +} \ No newline at end of file diff --git a/src/samples/maui/maui/Platforms/iOS/Info.plist b/src/samples/maui/maui/Platforms/iOS/Info.plist new file mode 100644 index 0000000..0004a4f --- /dev/null +++ b/src/samples/maui/maui/Platforms/iOS/Info.plist @@ -0,0 +1,32 @@ + + + + + LSRequiresIPhoneOS + + UIDeviceFamily + + 1 + 2 + + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/appicon.appiconset + + diff --git a/src/samples/maui/maui/Platforms/iOS/Program.cs b/src/samples/maui/maui/Platforms/iOS/Program.cs new file mode 100644 index 0000000..4154d29 --- /dev/null +++ b/src/samples/maui/maui/Platforms/iOS/Program.cs @@ -0,0 +1,15 @@ +using ObjCRuntime; +using UIKit; + +namespace maui; + +public class Program +{ + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, typeof(AppDelegate)); + } +} \ No newline at end of file diff --git a/src/samples/maui/maui/Properties/launchSettings.json b/src/samples/maui/maui/Properties/launchSettings.json new file mode 100644 index 0000000..edf8aad --- /dev/null +++ b/src/samples/maui/maui/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "Windows Machine": { + "commandName": "MsixPackage", + "nativeDebugging": false + } + } +} \ No newline at end of file diff --git a/src/samples/maui/maui/Reload/ReloadManager.cs b/src/samples/maui/maui/Reload/ReloadManager.cs new file mode 100644 index 0000000..fad4bf2 --- /dev/null +++ b/src/samples/maui/maui/Reload/ReloadManager.cs @@ -0,0 +1,132 @@ +using System.Diagnostics; +using DryIoc; +using maui.BaseTypes; +using Tbc.Core.Models; +using Tbc.Target; +using Tbc.Target.Interfaces; +using Tbc.Target.Requests; +using IContainer = DryIoc.IContainer; + +namespace maui.Reload; + +public class ReloadManager : ReloadManagerBase +{ + private readonly IContainer _container; + public IReloadManager? Delegate { get; set; } + + public ReloadManager(IContainer container) + { + _container = container; + } + + public override async Task ProcessNewAssembly(ProcessNewAssemblyRequest req) + { + var types = req.Assembly.GetTypes(); + + // if we're a replaced reloadmanager, pass the request to the replacement + if (await ForwardToReplacement(req) is { } forwardedOutcome) + return forwardedOutcome; + + // register any new reloaded types so we can resolve them with dependencies + RegisterUpdatedTypes(types); + + // try to find a page to present and present it + if (await PresentPageIfReloaded(types, req.PrimaryType) is { } presentationOutcome) + return presentationOutcome; + + return new() { Success = true, Messages = { new() { Message = "No suitable type was found to present" } }}; + } + + private void RegisterUpdatedTypes(Type[] types) + => _container.RegisterApplicationTypes(types); + + private async Task PresentPageIfReloaded(Type[] allTypes, Type? primaryType) + { + // find a page to present + // if the 'primary type' (hinted using cli) is a page, it's that, otherwise pick the first page we reloaded + var maybeFocusPageType = + primaryType?.IsSubclassOf(typeof(Page)) ?? false + ? primaryType + : allTypes.FirstOrDefault(x => x.IsSubclassOf(typeof(Page))); + + if (maybeFocusPageType is not { } focusPageType) + return null; // nothing to present, let the caller decide the outcome + + // resolve the page from container + // before calling this we registered it and any changed dependencies + var page = (Page)_container.Resolve(focusPageType); + + // try to put it on the screen + var outcome = await MainThread.InvokeOnMainThreadAsync(() => + { + try + { + App.Current.MainPage = page; + + return new Outcome { Success = true }; + } + catch (Exception ex) + { + // write it to the console + Console.WriteLine(ex); + + // or we could put the error on the screen if we wanted + // App.Current.MainPage = new ContentPage + // { + // Content = new Label + // { + // Text = ex.ToString() + // } + // }; + + return new Outcome { Success = false }; + } + }); + + return outcome; + } + + // this lets us update the reload manager at runtime + private async Task ForwardToReplacement(ProcessNewAssemblyRequest req) + { + var replacement = req.Assembly.GetTypes() + .FirstOrDefault(x => x.ImplementsServiceType() && x != GetType()); + + if (replacement != null) + { + _container.Register(typeof(IReloadManager), replacement, ifAlreadyRegistered: IfAlreadyRegistered.Replace); + Delegate = _container.Resolve(); + NotifyReplacement(Delegate); + + return await Delegate.ProcessNewAssembly(req); + } + else + { + return null; + } + } + + public override Task ExecuteCommand(CommandRequest req) + { + if (req.Command == "cool") + { + var page = App.Current.MainPage; + MainThread.InvokeOnMainThreadAsync(async () => + { + while (true) + { + page.BackgroundColor = new[] + { + Colors.Red, Colors.Green, Colors.Yellow + }.OrderByDescending(_ => Guid.NewGuid()) + .First(); + + await Task.Delay(TimeSpan.FromSeconds(.1)); + } + }); + } + + return Task.FromResult(new Outcome { Success = true }); + } +} + diff --git a/src/samples/maui/maui/Resources/AppIcon/appicon.svg b/src/samples/maui/maui/Resources/AppIcon/appicon.svg new file mode 100644 index 0000000..9d63b65 --- /dev/null +++ b/src/samples/maui/maui/Resources/AppIcon/appicon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/samples/maui/maui/Resources/AppIcon/appiconfg.svg b/src/samples/maui/maui/Resources/AppIcon/appiconfg.svg new file mode 100644 index 0000000..21dfb25 --- /dev/null +++ b/src/samples/maui/maui/Resources/AppIcon/appiconfg.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/samples/maui/maui/Resources/Fonts/OpenSans-Regular.ttf b/src/samples/maui/maui/Resources/Fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8dc12bb0db8a5c3fd970f3894d5dd6cc9209394d GIT binary patch literal 107152 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

FtTe_~#Xxq1EyN(@m3Wm)X-EU$S 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 literal 0 HcmV?d00001 diff --git a/src/samples/maui/maui/Resources/Images/dotnet_bot.svg b/src/samples/maui/maui/Resources/Images/dotnet_bot.svg new file mode 100644 index 0000000..abfaff2 --- /dev/null +++ b/src/samples/maui/maui/Resources/Images/dotnet_bot.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/samples/maui/maui/Resources/Raw/AboutAssets.txt b/src/samples/maui/maui/Resources/Raw/AboutAssets.txt new file mode 100644 index 0000000..15d6244 --- /dev/null +++ b/src/samples/maui/maui/Resources/Raw/AboutAssets.txt @@ -0,0 +1,15 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories). Deployment of the asset to your application +is automatically handled by the following `MauiAsset` Build Action within your `.csproj`. + + + +These files will be deployed with you package and will be accessible using Essentials: + + async Task LoadMauiAsset() + { + using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt"); + using var reader = new StreamReader(stream); + + var contents = reader.ReadToEnd(); + } diff --git a/src/samples/maui/maui/Resources/Splash/splash.svg b/src/samples/maui/maui/Resources/Splash/splash.svg new file mode 100644 index 0000000..21dfb25 --- /dev/null +++ b/src/samples/maui/maui/Resources/Splash/splash.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/samples/maui/maui/Resources/Styles/Colors.xaml b/src/samples/maui/maui/Resources/Styles/Colors.xaml new file mode 100644 index 0000000..245758b --- /dev/null +++ b/src/samples/maui/maui/Resources/Styles/Colors.xaml @@ -0,0 +1,44 @@ + + + + + #512BD4 + #DFD8F7 + #2B0B98 + White + Black + #E1E1E1 + #C8C8C8 + #ACACAC + #919191 + #6E6E6E + #404040 + #212121 + #141414 + + + + + + + + + + + + + + + #F7B548 + #FFD590 + #FFE5B9 + #28C2D1 + #7BDDEF + #C3F2F4 + #3E8EED + #72ACF1 + #A7CBF6 + + \ No newline at end of file diff --git a/src/samples/maui/maui/Resources/Styles/Styles.xaml b/src/samples/maui/maui/Resources/Styles/Styles.xaml new file mode 100644 index 0000000..dc4a034 --- /dev/null +++ b/src/samples/maui/maui/Resources/Styles/Styles.xaml @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/samples/maui/maui/maui.App.sln b/src/samples/maui/maui/maui.App.sln new file mode 100644 index 0000000..5a5beae --- /dev/null +++ b/src/samples/maui/maui/maui.App.sln @@ -0,0 +1,27 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31611.283 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "maui", "maui.csproj", "{86124A45-B2D5-4869-BCFC-0251DA0C520F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {86124A45-B2D5-4869-BCFC-0251DA0C520F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86124A45-B2D5-4869-BCFC-0251DA0C520F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86124A45-B2D5-4869-BCFC-0251DA0C520F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {86124A45-B2D5-4869-BCFC-0251DA0C520F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86124A45-B2D5-4869-BCFC-0251DA0C520F}.Release|Any CPU.Build.0 = Release|Any CPU + {86124A45-B2D5-4869-BCFC-0251DA0C520F}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {61F7FB11-1E47-470C-91E2-47F8143E1572} + EndGlobalSection +EndGlobal diff --git a/src/samples/maui/maui/maui.csproj b/src/samples/maui/maui/maui.csproj new file mode 100644 index 0000000..22e5bf9 --- /dev/null +++ b/src/samples/maui/maui/maui.csproj @@ -0,0 +1,64 @@ + + + + net7.0-android;net7.0-ios;net7.0-maccatalyst + $(TargetFrameworks);net7.0-windows10.0.19041.0 + + + Exe + maui + true + true + enable + enable + Exe + + --marshal-objectivec-exceptions:disable + arm64 + iossimulator-arm64 + + + maui + + + com.companyname.maui + 2E5A72C1-833C-4DFF-BF2E-8C923D3A0E37 + + + 1.0 + 1 + + 11.0 + 13.1 + 21.0 + 10.0.17763.0 + 10.0.17763.0 + 6.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/samples/maui/readme.md b/src/samples/maui/readme.md new file mode 100644 index 0000000..9bb5efb --- /dev/null +++ b/src/samples/maui/readme.md @@ -0,0 +1,38 @@ +run run-host.sh to start a host that will watch for the maui sample, then start changing MainPage.cs and friends. + +[quick video](https://rdavisau.blob.core.windows.net/zzz/tbc-maui.mp4?sv=2020-08-04&st=2023-01-12T05%3A07%3A25Z&se=2050-01-11T15%3A00%3A00Z&sr=b&sp=r&sig=ukrEaCJ15tyjn5pGd0wdMVxWsamVLLcZ20h6oB0B7lY%3D) - note video has rapid flashing colours for a few seconds at ~3:30 🚦 + +only tested ios, other platforms probably need changes in reload-config.json to support global usings + +howto in general: + +* add tbc package reference +* implement your reload manager +* start target server with your reload manager +* run your app and a tbc host +* make your changes + * ui stuff + * view model stuff + * services? + * add commands? when you put !abc in the cli, that gets sent to the reload manager + +notable things: + +* mutable DI container + * in MauiProgram.cs, `ConfigureMutableContainer` sets up the app to use DryIoC as the underlying container. It's good, but also it allows mutation of registrations in the container after it has been created, which we take advantage of for our hot reload things + +* tbc runs at startup in debug builds + * in MauiProgram.cs, `RunTbc` sets up tbc to listen in debug builds only + +* shared type registration logic + * in ContainerExtensions.cs, `RegisterApplicationTypes` is called at startup to register types by convention. It is also used in the `ReloadManager` to update registrations with any reloaded/added types + +* toy base classes used for demonstrations + * in BaseTypes.cs there are base types for page, viewmodel, and service. they're used as markers for the auto container registration and to give an idea of how a real app might have it. But the viewmodel isn't even INPC. But it could be + +* basic reload manager implementation + * `ReloadManager.cs` has a basic reload implementation in it. After registering new types, it looks for a page type to resolve and sets that to `App.MainPage`. Another approach could be registering new page types for navigation and then navigating to the preferred page type. + +* source generators and global usings + * they have to be manually specified in reload-config.json (imagine if tbc tried to not be hard to use and determined them for you). in this one there are global usings for ios and source generators from maui markup community toolkit + diff --git a/src/samples/maui/reload-config.json b/src/samples/maui/reload-config.json new file mode 100644 index 0000000..2718f9b --- /dev/null +++ b/src/samples/maui/reload-config.json @@ -0,0 +1,35 @@ +{ + "ConsoleHost": { + "ExpectedClients": [{ + "Address": "localhost", + "Port": 50129 + }] + }, + "FileWatcher": { + "RootPath": "maui", + "Ignore": [ + "/obj/", + "/bin/" + ] + }, + "AssemblyCompiler": { + "Debug": true, + "PreprocessorSymbols": [ + "DEBUG", + "__RELOAD__" + ], + "SourceGeneratorReferences": [{ + "Kind": "NuGetPackageReference", + "Reference": "CommunityToolkit.Maui.Markup", + "Context": "2.1.0" + }], + "GlobalUsingsSources": [{ + "Kind": "SearchPath", + "Reference": "maui/obj/Debug/net7.0-ios", + "Context": "LastModified" + }], + "iOSDynamicRegistrationOptions": { + "Enabled": false + } + } +} \ No newline at end of file diff --git a/src/samples/maui/run-host.sh b/src/samples/maui/run-host.sh new file mode 100755 index 0000000..68915fd --- /dev/null +++ b/src/samples/maui/run-host.sh @@ -0,0 +1 @@ +dotnet run -f net7.0 -c release --project ../../heads/tbc.host.console/tbc.host.console.csproj -- ./reload-config.json