diff --git a/src/NET_9/EmbeddedAndroid/AndroidManifest.xml b/src/NET_9/EmbeddedAndroid/AndroidManifest.xml new file mode 100644 index 0000000..eb57e54 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.csproj b/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.csproj new file mode 100644 index 0000000..b62005a --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.csproj @@ -0,0 +1,38 @@ + + + net9.0-android + Exe + + + enable + latest + enable + EmbeddedAndroid + + + true + true + + + com.companyname.embeddedandroid + + + 1 + 1.0 + + + 21 + + + + + full + + + + + + diff --git a/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.sln b/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.sln new file mode 100644 index 0000000..fe64afc --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.sln @@ -0,0 +1,24 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmbeddedAndroid", "EmbeddedAndroid.csproj", "{6080BD5C-A536-4175-A64D-78FFC4642A41}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6080BD5C-A536-4175-A64D-78FFC4642A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6080BD5C-A536-4175-A64D-78FFC4642A41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6080BD5C-A536-4175-A64D-78FFC4642A41}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {6080BD5C-A536-4175-A64D-78FFC4642A41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6080BD5C-A536-4175-A64D-78FFC4642A41}.Release|Any CPU.Build.0 = Release|Any CPU + {6080BD5C-A536-4175-A64D-78FFC4642A41}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.slnx b/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.slnx new file mode 100644 index 0000000..8c79a97 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/EmbeddedAndroid.slnx @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/NET_9/EmbeddedAndroid/MainActivity.cs b/src/NET_9/EmbeddedAndroid/MainActivity.cs new file mode 100644 index 0000000..ea60322 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/MainActivity.cs @@ -0,0 +1,31 @@ +// Note: There's a change in namespace. +using Microsoft.Maui.Controls.Embedding; +//using Microsoft.Maui.Embedding; +using Microsoft.Maui.Platform; + +namespace EmbeddedAndroid +{ + [Activity(Label = "@string/app_name", MainLauncher = true)] + public class MainActivity : Activity + { + protected override void OnCreate(Bundle? savedInstanceState) + { + base.OnCreate(savedInstanceState); + + // Set our view from the "main" layout resource + //SetContentView(Resource.Layout.activity_main); + + var mauiApp = MauiApp.CreateBuilder() + .UseMauiEmbeddedApp() // Note: The method name too got updated. + .Build(); + + var mauiContext = new MauiContext(mauiApp.Services, this); + + var mauiPage = new MauiPage(); + // Platform-specific extension method + SetContentView(mauiPage.ToContainerView(mauiContext)); + // Platform-neutral extension method + //SetContentView(mauiPage.ToPlatform(mauiContext)); + } + } +} diff --git a/src/NET_9/EmbeddedAndroid/MauiPage.xaml b/src/NET_9/EmbeddedAndroid/MauiPage.xaml new file mode 100644 index 0000000..72ccdcf --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/MauiPage.xaml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/src/NET_9/EmbeddedAndroid/MauiPage.xaml.cs b/src/NET_9/EmbeddedAndroid/MauiPage.xaml.cs new file mode 100644 index 0000000..4b52264 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/MauiPage.xaml.cs @@ -0,0 +1,6 @@ +namespace EmbeddedAndroid; + +public partial class MauiPage : ContentPage +{ + public MauiPage() => InitializeComponent(); +} diff --git a/src/NET_9/EmbeddedAndroid/MyApp.xaml b/src/NET_9/EmbeddedAndroid/MyApp.xaml new file mode 100644 index 0000000..4a57b05 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/MyApp.xaml @@ -0,0 +1,17 @@ + + + + #512BD4 + + + + diff --git a/src/NET_9/EmbeddedAndroid/MyApp.xaml.cs b/src/NET_9/EmbeddedAndroid/MyApp.xaml.cs new file mode 100644 index 0000000..3a49511 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/MyApp.xaml.cs @@ -0,0 +1,6 @@ +namespace EmbeddedAndroid; + +public partial class MyApp : Microsoft.Maui.Controls.Application +{ + public MyApp() => InitializeComponent(); +} diff --git a/src/NET_9/EmbeddedAndroid/Resources/AboutResources.txt b/src/NET_9/EmbeddedAndroid/Resources/AboutResources.txt new file mode 100644 index 0000000..0fd3106 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.xml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.xml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "Resource" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the Resource class would expose: + +public class Resource { + public class Drawable { + public const int icon = 0x123; + } + + public class Layout { + public const int main = 0x456; + } + + public class Strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use Resource.Drawable.icon to reference the drawable/icon.png file, or +Resource.Layout.main to reference the layout/main.xml file, or Resource.Strings.first_string +to reference the first string in the dictionary file values/strings.xml. diff --git a/src/NET_9/EmbeddedAndroid/Resources/layout/activity_main.xml b/src/NET_9/EmbeddedAndroid/Resources/layout/activity_main.xml new file mode 100644 index 0000000..293d824 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/Resources/layout/activity_main.xml @@ -0,0 +1,13 @@ + + + + diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-anydpi-v26/appicon.xml b/src/NET_9/EmbeddedAndroid/Resources/mipmap-anydpi-v26/appicon.xml new file mode 100644 index 0000000..ae5a675 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/Resources/mipmap-anydpi-v26/appicon.xml @@ -0,0 +1,4 @@ + + + + diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-anydpi-v26/appicon_round.xml b/src/NET_9/EmbeddedAndroid/Resources/mipmap-anydpi-v26/appicon_round.xml new file mode 100644 index 0000000..ae5a675 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/Resources/mipmap-anydpi-v26/appicon_round.xml @@ -0,0 +1,4 @@ + + + + diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon.png new file mode 100644 index 0000000..0abfc1b Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon_background.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon_background.png new file mode 100644 index 0000000..513e69d Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon_background.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon_foreground.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon_foreground.png new file mode 100644 index 0000000..99d3a29 Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-hdpi/appicon_foreground.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon.png new file mode 100644 index 0000000..7b5a2e2 Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon_background.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon_background.png new file mode 100644 index 0000000..9e2d1e4 Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon_background.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon_foreground.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon_foreground.png new file mode 100644 index 0000000..a28d342 Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-mdpi/appicon_foreground.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon.png new file mode 100644 index 0000000..b28b73c Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon_background.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon_background.png new file mode 100644 index 0000000..658be3f Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon_background.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon_foreground.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon_foreground.png new file mode 100644 index 0000000..70a542a Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xhdpi/appicon_foreground.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon.png new file mode 100644 index 0000000..f9af117 Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon_background.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon_background.png new file mode 100644 index 0000000..9171c3e Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon_background.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon_foreground.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon_foreground.png new file mode 100644 index 0000000..cb63bfb Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxhdpi/appicon_foreground.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon.png new file mode 100644 index 0000000..1d948d6 Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon_background.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon_background.png new file mode 100644 index 0000000..1232d8c Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon_background.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon_foreground.png b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon_foreground.png new file mode 100644 index 0000000..9f9c9e6 Binary files /dev/null and b/src/NET_9/EmbeddedAndroid/Resources/mipmap-xxxhdpi/appicon_foreground.png differ diff --git a/src/NET_9/EmbeddedAndroid/Resources/values/ic_launcher_background.xml b/src/NET_9/EmbeddedAndroid/Resources/values/ic_launcher_background.xml new file mode 100644 index 0000000..d27622a --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/Resources/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #2C3E50 + diff --git a/src/NET_9/EmbeddedAndroid/Resources/values/strings.xml b/src/NET_9/EmbeddedAndroid/Resources/values/strings.xml new file mode 100644 index 0000000..3afa132 --- /dev/null +++ b/src/NET_9/EmbeddedAndroid/Resources/values/strings.xml @@ -0,0 +1,4 @@ + + EmbeddedAndroid + Hello, Android! + diff --git a/src/NET_9/EmbeddediOS/AppDelegate.cs b/src/NET_9/EmbeddediOS/AppDelegate.cs new file mode 100644 index 0000000..7351597 --- /dev/null +++ b/src/NET_9/EmbeddediOS/AppDelegate.cs @@ -0,0 +1,41 @@ +// Note: There's a change in namespace. +using Microsoft.Maui.Controls.Embedding; +//using Microsoft.Maui.Embedding; +using Microsoft.Maui.Platform; + +namespace EmbeddediOS; + +[Register(nameof(AppDelegate))] +public class AppDelegate : UIApplicationDelegate +{ + public override UIWindow? Window { get; set; } + + public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) + { + var mauiApp = MauiApp.CreateBuilder() + .UseMauiEmbeddedApp() // Note: The method name too got updated. + .Build(); + + var mauiContext = new MauiContext(mauiApp.Services); + var mauiPage = new MauiPage(); + // Platform-specific extension method + var viewController = mauiPage.ToUIViewController(mauiContext); + + // Create a new window instance based on the screen size + Window = new UIWindow(UIScreen.MainScreen.Bounds) + { + RootViewController = viewController + }; + + // Here MauiView is a type defined using .NET MAUI construct + // Platform-neutral Windowless API + //var nativeView = new MauiView().ToPlatform(mauiContext); + // Window-aware API - platformWindow can be passed as a method parameter + //var nativeView = new MauiView().ToPlatformEmbedded(mauiContext); + + // Make the window visible + Window.MakeKeyAndVisible(); + + return true; + } +} diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8db9066 --- /dev/null +++ b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,117 @@ +{ + "images": [ + { + "scale": "2x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon40.png" + }, + { + "scale": "3x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon60.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon58.png" + }, + { + "scale": "3x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon87.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon80.png" + }, + { + "scale": "3x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "2x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "3x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon180.png" + }, + { + "scale": "1x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon20.png" + }, + { + "scale": "2x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "1x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon29.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon58.png" + }, + { + "scale": "1x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon80.png" + }, + { + "scale": "1x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon76.png" + }, + { + "scale": "2x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon152.png" + }, + { + "scale": "2x", + "size": "83.5x83.5", + "idiom": "ipad", + "filename": "Icon167.png" + }, + { + "scale": "1x", + "size": "1024x1024", + "idiom": "ios-marketing", + "filename": "Icon1024.png" + } + ], + "properties": {}, + "info": { + "version": 1, + "author": "xcode" + } +} diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png new file mode 100644 index 0000000..b573205 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon120.png new file mode 100644 index 0000000..0b74155 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon120.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon152.png new file mode 100644 index 0000000..1c19313 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon152.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon167.png new file mode 100644 index 0000000..4e3e8bd Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon167.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon180.png new file mode 100644 index 0000000..40a7371 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon180.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon20.png new file mode 100644 index 0000000..8bb1383 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon20.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon29.png new file mode 100644 index 0000000..bdd130c Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon29.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon40.png new file mode 100644 index 0000000..75d2789 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon40.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon58.png new file mode 100644 index 0000000..06afa60 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon58.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon60.png new file mode 100644 index 0000000..2e0db2a Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon60.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon76.png new file mode 100644 index 0000000..755bc88 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon76.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon80.png new file mode 100644 index 0000000..6559bb4 Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon80.png differ diff --git a/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon87.png new file mode 100644 index 0000000..ca28c8d Binary files /dev/null and b/src/NET_9/EmbeddediOS/Assets.xcassets/AppIcon.appiconset/Icon87.png differ diff --git a/src/NET_9/EmbeddediOS/EmbeddediOS.csproj b/src/NET_9/EmbeddediOS/EmbeddediOS.csproj new file mode 100644 index 0000000..4a99298 --- /dev/null +++ b/src/NET_9/EmbeddediOS/EmbeddediOS.csproj @@ -0,0 +1,31 @@ + + + net9.0-ios + Exe + + + enable + latest + enable + EmbeddediOS + + + true + true + + + 15.0 + + + + + full + + + + + + diff --git a/src/NET_9/EmbeddediOS/EmbeddediOS.sln b/src/NET_9/EmbeddediOS/EmbeddediOS.sln new file mode 100644 index 0000000..484065f --- /dev/null +++ b/src/NET_9/EmbeddediOS/EmbeddediOS.sln @@ -0,0 +1,24 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmbeddediOS", "EmbeddediOS.csproj", "{DEB5C69A-CC84-491E-9E3D-72E222628EB2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DEB5C69A-CC84-491E-9E3D-72E222628EB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DEB5C69A-CC84-491E-9E3D-72E222628EB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DEB5C69A-CC84-491E-9E3D-72E222628EB2}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {DEB5C69A-CC84-491E-9E3D-72E222628EB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DEB5C69A-CC84-491E-9E3D-72E222628EB2}.Release|Any CPU.Build.0 = Release|Any CPU + {DEB5C69A-CC84-491E-9E3D-72E222628EB2}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/NET_9/EmbeddediOS/EmbeddediOS.slnx b/src/NET_9/EmbeddediOS/EmbeddediOS.slnx new file mode 100644 index 0000000..5060b9a --- /dev/null +++ b/src/NET_9/EmbeddediOS/EmbeddediOS.slnx @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/NET_9/EmbeddediOS/Entitlements.plist b/src/NET_9/EmbeddediOS/Entitlements.plist new file mode 100644 index 0000000..36a8706 --- /dev/null +++ b/src/NET_9/EmbeddediOS/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/NET_9/EmbeddediOS/Info.plist b/src/NET_9/EmbeddediOS/Info.plist new file mode 100644 index 0000000..bbe4860 --- /dev/null +++ b/src/NET_9/EmbeddediOS/Info.plist @@ -0,0 +1,42 @@ + + + + + CFBundleDisplayName + EmbeddediOS + CFBundleIdentifier + com.companyname.embeddedios + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIDeviceFamily + + 1 + 2 + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/src/NET_9/EmbeddediOS/LaunchScreen.storyboard b/src/NET_9/EmbeddediOS/LaunchScreen.storyboard new file mode 100644 index 0000000..780b7ed --- /dev/null +++ b/src/NET_9/EmbeddediOS/LaunchScreen.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/EmbeddediOS/Main.cs b/src/NET_9/EmbeddediOS/Main.cs new file mode 100644 index 0000000..12eb763 --- /dev/null +++ b/src/NET_9/EmbeddediOS/Main.cs @@ -0,0 +1,6 @@ +using EmbeddediOS; + +// This is the main entry point of the application. +// If you want to use a different Application Delegate class from "AppDelegate" +// you can specify it here. +UIApplication.Main(args, null, typeof(AppDelegate)); diff --git a/src/NET_9/EmbeddediOS/MauiPage.xaml b/src/NET_9/EmbeddediOS/MauiPage.xaml new file mode 100644 index 0000000..6f04825 --- /dev/null +++ b/src/NET_9/EmbeddediOS/MauiPage.xaml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/src/NET_9/EmbeddediOS/MauiPage.xaml.cs b/src/NET_9/EmbeddediOS/MauiPage.xaml.cs new file mode 100644 index 0000000..f96691a --- /dev/null +++ b/src/NET_9/EmbeddediOS/MauiPage.xaml.cs @@ -0,0 +1,6 @@ +namespace EmbeddediOS; + +public partial class MauiPage : ContentPage +{ + public MauiPage() => InitializeComponent(); +} diff --git a/src/NET_9/EmbeddediOS/MauiView.xaml b/src/NET_9/EmbeddediOS/MauiView.xaml new file mode 100644 index 0000000..73fe478 --- /dev/null +++ b/src/NET_9/EmbeddediOS/MauiView.xaml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/src/NET_9/EmbeddediOS/MauiView.xaml.cs b/src/NET_9/EmbeddediOS/MauiView.xaml.cs new file mode 100644 index 0000000..daca025 --- /dev/null +++ b/src/NET_9/EmbeddediOS/MauiView.xaml.cs @@ -0,0 +1,6 @@ +namespace EmbeddediOS; + +public partial class MauiView : ContentView +{ + public MauiView() => InitializeComponent(); +} diff --git a/src/NET_9/EmbeddediOS/MyApp.xaml b/src/NET_9/EmbeddediOS/MyApp.xaml new file mode 100644 index 0000000..5ac40cf --- /dev/null +++ b/src/NET_9/EmbeddediOS/MyApp.xaml @@ -0,0 +1,17 @@ + + + + #512BD4 + + + + diff --git a/src/NET_9/EmbeddediOS/MyApp.xaml.cs b/src/NET_9/EmbeddediOS/MyApp.xaml.cs new file mode 100644 index 0000000..cd72630 --- /dev/null +++ b/src/NET_9/EmbeddediOS/MyApp.xaml.cs @@ -0,0 +1,6 @@ +namespace EmbeddediOS; + +public partial class MyApp : Microsoft.Maui.Controls.Application +{ + public MyApp() => InitializeComponent(); +} diff --git a/src/NET_9/EmbeddediOS/Resources/LaunchScreen.xib b/src/NET_9/EmbeddediOS/Resources/LaunchScreen.xib new file mode 100644 index 0000000..8190201 --- /dev/null +++ b/src/NET_9/EmbeddediOS/Resources/LaunchScreen.xib @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/EmbeddediOS/SceneDelegate.cs b/src/NET_9/EmbeddediOS/SceneDelegate.cs new file mode 100644 index 0000000..efa31a8 --- /dev/null +++ b/src/NET_9/EmbeddediOS/SceneDelegate.cs @@ -0,0 +1,54 @@ +namespace EmbeddediOS; + +[Register(nameof(SceneDelegate))] +public class SceneDelegate : UIResponder, IUIWindowSceneDelegate +{ + [Export("window")] + public UIWindow? Window { get; set; } + + [Export("scene:willConnectToSession:options:")] + public void WillConnect(UIScene scene, UISceneSession session, UISceneConnectionOptions connectionOptions) + { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new(see UIApplicationDelegate `GetConfiguration` instead). + } + + [Export("sceneDidDisconnect:")] + public void DidDisconnect(UIScene scene) + { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded(see UIApplicationDelegate `DidDiscardSceneSessions` instead). + } + + [Export("sceneDidBecomeActive:")] + public void DidBecomeActive(UIScene scene) + { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused(or not yet started) when the scene was inactive. + } + + [Export("sceneWillResignActive:")] + public void WillResignActive(UIScene scene) + { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions(ex. an incoming phone call). + } + + [Export("sceneWillEnterForeground:")] + public void WillEnterForeground(UIScene scene) + { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + [Export("sceneDidEnterBackground:")] + public void DidEnterBackground(UIScene scene) + { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } +}