Merge branch 'main' into mu-20240205-tfm-net80-material-1.11.0

This commit is contained in:
moljac 2024-05-09 18:57:28 +02:00
Родитель 0a90a61d72 02fa19f30e
Коммит 80646950ea
91 изменённых файлов: 647 добавлений и 2515 удалений

Просмотреть файл

@ -1,13 +1,12 @@
# AndroidX for .NET Android
# AndroidX for .NET for Android
[![GitHub License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://github.com/xamarin/AndroidX/blob/master/LICENSE)
[![GitHub License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://github.com/xamarin/AndroidX/blob/main/LICENSE)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/xamarin/AndroidX/issues)
[![GitHub contributors](https://img.shields.io/github/contributors/xamarin/AndroidX.svg)](https://github.com/xamarin/AndroidX/graphs/contributors)
[![Build Status](https://dev.azure.com/devdiv/DevDiv/_apis/build/status/Xamarin/Components/AndroidX?branchName=master)](https://dev.azure.com/devdiv/DevDiv/_build/latest?definitionId=12322&branchName=master)
Microsoft creates and maintains .NET Android bindings for many of [Google's AndroidX libraries](https://developer.android.com/jetpack).
Microsoft creates and maintains .NET for Android bindings for many of [Google's AndroidX libraries](https://developer.android.com/jetpack).
These bindings will also continue to support Xamarin.Android projects for the remainder of its [supported lifecycle](https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin).
Support for Xamarin.Android ended on [May 1st, 2024](https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin). New versions of these packages will not support Xamarin.Android.
## What is AndroidX
@ -45,21 +44,20 @@ Note that these packages are largely just autogenerated bindings around Google's
## License
The license for this repository is specified in [LICENSE.md](LICENSE.md)
The license for this repository is specified in [LICENSE.md](LICENSE.md).
Each package published from this repository generally contains third-party code (ie: `.jar`/`.aar`) that
is governed by its own license. Per-package license information is available in [cgmanifest.json](cgmanifest.json).
## Building
Instructions for building this repository are specified in [BUILDING.md](BUILDING.md)
Instructions for building this repository are specified in [BUILDING.md](BUILDING.md).
In depth building instructions: [./docs/build.md](./docs/build.md).
## Contribution Guidelines
The Contribution Guidelines for this repository are listed in [CONTRIBUTING.md](.github/CONTRIBUTING.md)
The Contribution Guidelines for this repository are listed in [CONTRIBUTING.md](.github/CONTRIBUTING.md).
This project has adopted the code of conduct defined by the Contributor Covenant
to clarify expected behavior in our community. For more information, see the
@ -67,4 +65,4 @@ to clarify expected behavior in our community. For more information, see the
## .NET Foundation
This project is part of the [.NET Foundation](http://www.dotnetfoundation.org/projects)
This project is part of the [.NET Foundation](http://www.dotnetfoundation.org/projects).

Просмотреть файл

@ -19,12 +19,10 @@ variables:
# Windows specific variables
windowsAgentPoolName: Maui-1ESPT # Windows VM pool name
windowsImage: 1ESPT-Windows2022 # Windows VM image name
windowsClassicInstaller: https://aka.ms/xamarin-android-commercial-d17-8-windows # Windows Classic XA installer URL
# macOS specific variables
macosAgentPoolName: Azure Pipelines # macOS VM pool name
macosImage: internal-macos12 # macOS VM image name
macosClassicInstaller: https://aka.ms/xamarin-android-commercial-d17-8-macos # macOS Classic XA installer URL
resources:
repositories:
@ -57,7 +55,6 @@ extends:
name: $(windowsAgentPoolName)
image: $(windowsImage)
os: windows
classicInstallerUrl: $(windowsClassicInstaller)
mainBranchName: $(mainBranchName)
configuration: $(configuration)
runAPIScan: true
@ -69,7 +66,6 @@ extends:
name: $(macosAgentPoolName)
vmImage: $(macosImage)
os: macOS
classicInstallerUrl: $(macosClassicInstaller)
mainBranchName: $(mainBranchName)
configuration: $(configuration)

Просмотреть файл

@ -757,55 +757,6 @@ Task("samples-generate-all-targets")
System.IO.File.WriteAllText("./output/Directory.packages.props", content_new);
});
Task("samples")
.IsDependentOn("nuget")
.IsDependentOn("samples-only");
Task("samples-only")
.IsDependentOn("samples-generate-all-targets")
.Does(() =>
{
// clear the packages folder so we always use the latest
var packagesPath = MakeAbsolute((DirectoryPath)"./samples/packages").FullPath;
EnsureDirectoryExists(packagesPath);
CleanDirectories(packagesPath);
// build the samples
MSBuildSettings settings_msbuild = new MSBuildSettings()
.SetConfiguration("Debug") // We don't need to run linking
.SetVerbosity(VERBOSITY)
.SetMaxCpuCount(0)
.WithRestore()
.WithProperty("RestorePackagesPath", packagesPath)
.WithProperty("AndroidSdkBuildToolsVersion", $"{AndroidSdkBuildTools}");
if (!string.IsNullOrEmpty(ANDROID_HOME))
settings_msbuild.WithProperty("AndroidSdkDirectory", $"{ANDROID_HOME}");
if (!string.IsNullOrEmpty(MSBUILD_PATH))
settings_msbuild.ToolPath = MSBUILD_PATH;
string[] solutions = new string[]
{
"./samples/BuildXamarinFormsApp/BuildXamarinFormsApp.sln",
//"./samples/BuildMinimalMaterial/BuildMinimalMaterial.sln",
// "./samples/BuildMinimalMaterialAppCompat/BuildMinimalMaterialAppCompat.sln",
// "./samples/dotnet/BuildAllDotNet.sln", //MSBuild cannot handle net6 projects
};
foreach(string solution in solutions)
{
FilePath fp_solution = new FilePath(solution);
string filename = fp_solution.GetFilenameWithoutExtension().ToString();
Information($"=====================================================================================================");
Information($"MSBuild {solution} / {filename}");
MSBuild(solution, settings_msbuild.EnableBinaryLogger($"./output/samples.{filename}.{CONFIGURATION}.msbuild.{DateTime.Now.ToString("yyyyMMddHHmmss")}.binlog"));
}
return;
});
Task("samples-dotnet")
.IsDependentOn("nuget")
.IsDependentOn("samples-only-dotnet");
@ -832,7 +783,6 @@ Task("samples-only-dotnet")
{
"./samples/dotnet/BuildAllDotNet.sln",
"./samples/dotnet/BuildAllMauiApp.sln",
"./samples/dotnet/BuildAllXamarinForms.sln",
};
foreach(string solution in solutions)
@ -1019,7 +969,6 @@ Task ("packages")
Task ("full-run")
.IsDependentOn ("binderate")
.IsDependentOn ("nuget")
.IsDependentOn ("samples")
.IsDependentOn ("samples-dotnet")
.IsDependentOn ("tools-executive-order")
;
@ -1040,7 +989,6 @@ Task ("ci-build")
// Runs samples without building packages
Task ("ci-samples")
.IsDependentOn ("samples-only")
.IsDependentOn ("samples-only-dotnet")
;

Просмотреть файл

@ -2,7 +2,6 @@ parameters:
# Environment Parameters
name: # Job display name
buildPool: # VM pool information
classicInstallerUrl: # URL to retrieve the Classic XA installer
# Build Parameters
mainBranchName: 'main' # Name of Git "main" branch
@ -23,7 +22,6 @@ parameters:
tools: # Additional .NET global tools to install
- 'xamarin.androidbinderator.tool': '0.5.7'
- 'Cake.Tool': '4.0.0'
- 'boots': '1.1.0.36'
- 'private-api-tools': '1.0.3'
# Reporting/Analysis Parameters
@ -56,7 +54,6 @@ jobs:
dotnetWorkloadSource: ${{ parameters.dotnetWorkloadSource }}
dotnetNuGetOrgSource: ${{ parameters.dotnetNuGetOrgSource }}
dotnetTools: ${{ parameters.tools }}
classicInstallerUrl: ${{ parameters.classicInstallerUrl }}
- template: build-and-test.yml
parameters:

Просмотреть файл

@ -5,7 +5,6 @@ parameters:
dotnetWorkloadSource: ''
dotnetNuGetOrgSource: ''
dotnetTools: []
classicInstallerUrl: ''
steps:
# before the build starts, make sure the tooling is as expected
@ -38,6 +37,3 @@ steps:
- ${{ each pair in tool }}:
- pwsh: dotnet tool update -g ${{ pair.key }} --version ${{ pair.value }}
displayName: 'Install tool: ${{ pair.key }}'
- pwsh: boots --url ${{ parameters.classicInstallerUrl }} --downgrade-first
displayName: 'Install Classic XA'

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,314 +0,0 @@
# Artifacts with versions supported
| | | | | |
|----|----------------------------------------------------------------------|--------------------|----------------------------------------------------------------------|--------------------|
| 1|androidx.activity:activity |1.9.0 |Xamarin.AndroidX.Activity |1.9.0 |
| 2|androidx.activity:activity-compose |1.9.0 |Xamarin.AndroidX.Activity.Compose |1.9.0 |
| 3|androidx.activity:activity-ktx |1.9.0 |Xamarin.AndroidX.Activity.Ktx |1.9.0 |
| 4|androidx.ads:ads-identifier |1.0.0-alpha05 |Xamarin.AndroidX.Ads.Identifier |1.0.0.22-alpha05 |
| 5|androidx.ads:ads-identifier-common |1.0.0-alpha05 |Xamarin.AndroidX.Ads.IdentifierCommon |1.0.0.22-alpha05 |
| 6|androidx.ads:ads-identifier-provider |1.0.0-alpha05 |Xamarin.AndroidX.Ads.IdentifierProvider |1.0.0.22-alpha05 |
| 7|androidx.annotation:annotation |1.7.1 |Xamarin.AndroidX.Annotation |1.7.1.1 |
| 8|androidx.annotation:annotation-experimental |1.4.1 |Xamarin.AndroidX.Annotation.Experimental |1.4.1 |
| 9|androidx.annotation:annotation-jvm |1.7.1 |Xamarin.AndroidX.Annotation.Jvm |1.7.1.1 |
| 10|androidx.appcompat:appcompat |1.6.1 |Xamarin.AndroidX.AppCompat |1.6.1.7 |
| 11|androidx.appcompat:appcompat-resources |1.6.1 |Xamarin.AndroidX.AppCompat.AppCompatResources |1.6.1.8 |
| 12|androidx.arch.core:core-common |2.2.0 |Xamarin.AndroidX.Arch.Core.Common |2.2.0.7 |
| 13|androidx.arch.core:core-runtime |2.2.0 |Xamarin.AndroidX.Arch.Core.Runtime |2.2.0.7 |
| 14|androidx.asynclayoutinflater:asynclayoutinflater |1.0.0 |Xamarin.AndroidX.AsyncLayoutInflater |1.0.0.23 |
| 15|androidx.autofill:autofill |1.1.0 |Xamarin.AndroidX.AutoFill |1.1.0.22 |
| 16|androidx.biometric:biometric |1.1.0 |Xamarin.AndroidX.Biometric |1.1.0.19 |
| 17|androidx.browser:browser |1.8.0 |Xamarin.AndroidX.Browser |1.8.0 |
| 18|androidx.camera:camera-camera2 |1.3.3 |Xamarin.AndroidX.Camera.Camera2 |1.3.3 |
| 19|androidx.camera:camera-core |1.3.3 |Xamarin.AndroidX.Camera.Core |1.3.3 |
| 20|androidx.camera:camera-extensions |1.3.3 |Xamarin.AndroidX.Camera.Extensions |1.3.3 |
| 21|androidx.camera:camera-lifecycle |1.3.3 |Xamarin.AndroidX.Camera.Lifecycle |1.3.3 |
| 22|androidx.camera:camera-video |1.3.3 |Xamarin.AndroidX.Camera.Video |1.3.3 |
| 23|androidx.camera:camera-view |1.3.3 |Xamarin.AndroidX.Camera.View |1.3.3 |
| 24|androidx.car:car |1.0.0-alpha7 |Xamarin.AndroidX.Car.Car |1.0.0.21-alpha7 |
| 25|androidx.car:car-cluster |1.0.0-alpha5 |Xamarin.AndroidX.Car.Cluster |1.0.0.21-alpha5 |
| 26|androidx.car.app:app |1.2.0 |Xamarin.AndroidX.Car.App.App |1.2.0.8 |
| 27|androidx.cardview:cardview |1.0.0 |Xamarin.AndroidX.CardView |1.0.0.25 |
| 28|androidx.collection:collection |1.4.0 |Xamarin.AndroidX.Collection |1.4.0.2 |
| 29|androidx.collection:collection-jvm |1.4.0 |Xamarin.AndroidX.Collection.Jvm |1.4.0.1 |
| 30|androidx.collection:collection-ktx |1.4.0 |Xamarin.AndroidX.Collection.Ktx |1.4.0.1 |
| 31|androidx.compose.animation:animation |1.6.6 |Xamarin.AndroidX.Compose.Animation |1.6.6 |
| 32|androidx.compose.animation:animation-android |1.6.6 |Xamarin.AndroidX.Compose.Animation.Android |1.6.6 |
| 33|androidx.compose.animation:animation-core |1.6.6 |Xamarin.AndroidX.Compose.Animation.Core |1.6.6 |
| 34|androidx.compose.animation:animation-core-android |1.6.6 |Xamarin.AndroidX.Compose.Animation.Core.Android |1.6.6 |
| 35|androidx.compose.animation:animation-graphics |1.6.6 |Xamarin.AndroidX.Compose.Animation.Graphics |1.6.6 |
| 36|androidx.compose.animation:animation-graphics-android |1.6.6 |Xamarin.AndroidX.Compose.Animation.Graphics.Android |1.6.6 |
| 37|androidx.compose.foundation:foundation |1.6.6 |Xamarin.AndroidX.Compose.Foundation |1.6.6 |
| 38|androidx.compose.foundation:foundation-android |1.6.6 |Xamarin.AndroidX.Compose.Foundation.Android |1.6.6 |
| 39|androidx.compose.foundation:foundation-layout |1.6.6 |Xamarin.AndroidX.Compose.Foundation.Layout |1.6.6 |
| 40|androidx.compose.foundation:foundation-layout-android |1.6.6 |Xamarin.AndroidX.Compose.Foundation.Layout.Android |1.6.6 |
| 41|androidx.compose.material:material |1.6.6 |Xamarin.AndroidX.Compose.Material |1.6.6 |
| 42|androidx.compose.material:material-android |1.6.6 |Xamarin.AndroidX.Compose.Material.Android |1.6.6 |
| 43|androidx.compose.material:material-icons-core |1.6.6 |Xamarin.AndroidX.Compose.Material.Icons.Core |1.6.6 |
| 44|androidx.compose.material:material-icons-core-android |1.6.6 |Xamarin.AndroidX.Compose.Material.Icons.Core.Android |1.6.6 |
| 45|androidx.compose.material:material-icons-extended |1.6.6 |Xamarin.AndroidX.Compose.Material.Icons.Extended |1.6.6 |
| 46|androidx.compose.material:material-icons-extended-android |1.6.6 |Xamarin.AndroidX.Compose.Material.Icons.Extended.Android |1.6.6 |
| 47|androidx.compose.material:material-ripple |1.6.6 |Xamarin.AndroidX.Compose.Material.Ripple |1.6.6 |
| 48|androidx.compose.material:material-ripple-android |1.6.6 |Xamarin.AndroidX.Compose.Material.Ripple.Android |1.6.6 |
| 49|androidx.compose.material3:material3 |1.2.1 |Xamarin.AndroidX.Compose.Material3 |1.2.1 |
| 50|androidx.compose.material3:material3-android |1.2.1 |Xamarin.AndroidX.Compose.Material3Android |1.2.1 |
| 51|androidx.compose.material3:material3-window-size-class |1.2.1 |Xamarin.AndroidX.Compose.Material3.WindowSizeClass |1.2.1 |
| 52|androidx.compose.material3:material3-window-size-class-android |1.2.1 |Xamarin.AndroidX.Compose.Material3.WindowSizeClassAndroid |1.2.1 |
| 53|androidx.compose.runtime:runtime |1.6.6 |Xamarin.AndroidX.Compose.Runtime |1.6.6 |
| 54|androidx.compose.runtime:runtime-android |1.6.6 |Xamarin.AndroidX.Compose.Runtime.Android |1.6.6 |
| 55|androidx.compose.runtime:runtime-livedata |1.6.6 |Xamarin.AndroidX.Compose.Runtime.LiveData |1.6.6 |
| 56|androidx.compose.runtime:runtime-rxjava2 |1.6.6 |Xamarin.AndroidX.Compose.Runtime.RxJava2 |1.6.6 |
| 57|androidx.compose.runtime:runtime-rxjava3 |1.6.6 |Xamarin.AndroidX.Compose.Runtime.RxJava3 |1.6.6 |
| 58|androidx.compose.runtime:runtime-saveable |1.6.6 |Xamarin.AndroidX.Compose.Runtime.Saveable |1.6.6 |
| 59|androidx.compose.runtime:runtime-saveable-android |1.6.6 |Xamarin.AndroidX.Compose.Runtime.Saveable.Android |1.6.6 |
| 60|androidx.compose.ui:ui |1.6.6 |Xamarin.AndroidX.Compose.UI |1.6.6 |
| 61|androidx.compose.ui:ui-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Android |1.6.6 |
| 62|androidx.compose.ui:ui-geometry |1.6.6 |Xamarin.AndroidX.Compose.UI.Geometry |1.6.6 |
| 63|androidx.compose.ui:ui-geometry-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Geometry.Android |1.6.6 |
| 64|androidx.compose.ui:ui-graphics |1.6.6 |Xamarin.AndroidX.Compose.UI.Graphics |1.6.6 |
| 65|androidx.compose.ui:ui-graphics-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Graphics.Android |1.6.6 |
| 66|androidx.compose.ui:ui-text |1.6.6 |Xamarin.AndroidX.Compose.UI.Text |1.6.6 |
| 67|androidx.compose.ui:ui-text-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Text.Android |1.6.6 |
| 68|androidx.compose.ui:ui-tooling |1.6.6 |Xamarin.AndroidX.Compose.UI.Tooling |1.6.6 |
| 69|androidx.compose.ui:ui-tooling-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Tooling.Android |1.6.6 |
| 70|androidx.compose.ui:ui-tooling-data |1.6.6 |Xamarin.AndroidX.Compose.UI.Tooling.Data |1.6.6 |
| 71|androidx.compose.ui:ui-tooling-data-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Tooling.Data.Android |1.6.6 |
| 72|androidx.compose.ui:ui-tooling-preview |1.6.6 |Xamarin.AndroidX.Compose.UI.Tooling.Preview |1.6.6 |
| 73|androidx.compose.ui:ui-tooling-preview-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Tooling.Preview.Android |1.6.6 |
| 74|androidx.compose.ui:ui-unit |1.6.6 |Xamarin.AndroidX.Compose.UI.Unit |1.6.6 |
| 75|androidx.compose.ui:ui-unit-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Unit.Android |1.6.6 |
| 76|androidx.compose.ui:ui-util |1.6.6 |Xamarin.AndroidX.Compose.UI.Util |1.6.6 |
| 77|androidx.compose.ui:ui-util-android |1.6.6 |Xamarin.AndroidX.Compose.UI.Util.Android |1.6.6 |
| 78|androidx.compose.ui:ui-viewbinding |1.6.6 |Xamarin.AndroidX.Compose.UI.ViewBinding |1.6.6 |
| 79|androidx.concurrent:concurrent-futures |1.1.0 |Xamarin.AndroidX.Concurrent.Futures |1.1.0.18 |
| 80|androidx.concurrent:concurrent-futures-ktx |1.1.0 |Xamarin.AndroidX.Concurrent.Futures.Ktx |1.1.0.7 |
| 81|androidx.constraintlayout:constraintlayout |2.1.4 |Xamarin.AndroidX.ConstraintLayout |2.1.4.10 |
| 82|androidx.constraintlayout:constraintlayout-core |1.0.4 |Xamarin.AndroidX.ConstraintLayout.Core |1.0.4.10 |
| 83|androidx.constraintlayout:constraintlayout-solver |2.0.4 |Xamarin.AndroidX.ConstraintLayout.Solver |2.0.4.18 |
| 84|androidx.contentpager:contentpager |1.0.0 |Xamarin.AndroidX.ContentPager |1.0.0.23 |
| 85|androidx.coordinatorlayout:coordinatorlayout |1.2.0 |Xamarin.AndroidX.CoordinatorLayout |1.2.0.11 |
| 86|androidx.core:core |1.13.0 |Xamarin.AndroidX.Core |1.13.0 |
| 87|androidx.core:core-animation |1.0.0-alpha02 |Xamarin.AndroidX.Core.Animation |1.0.0.21-alpha02 |
| 88|androidx.core:core-google-shortcuts |1.1.0 |Xamarin.AndroidX.Core.GoogleShortcuts |1.1.0.8 |
| 89|androidx.core:core-ktx |1.13.0 |Xamarin.AndroidX.Core.Core.Ktx |1.13.0 |
| 90|androidx.core:core-role |1.0.0 |Xamarin.AndroidX.Core.Role |1.0.0.21 |
| 91|androidx.core:core-splashscreen |1.0.1 |Xamarin.AndroidX.Core.SplashScreen |1.0.1.6 |
| 92|androidx.credentials:credentials |1.2.2 |Xamarin.AndroidX.Credentials |1.2.2 |
| 93|androidx.credentials:credentials-play-services-auth |1.2.2 |Xamarin.AndroidX.Credentials.PlayServicesAuth |1.2.2 |
| 94|androidx.cursoradapter:cursoradapter |1.0.0 |Xamarin.AndroidX.CursorAdapter |1.0.0.23 |
| 95|androidx.customview:customview |1.1.0 |Xamarin.AndroidX.CustomView |1.1.0.22 |
| 96|androidx.customview:customview-poolingcontainer |1.0.0 |Xamarin.AndroidX.CustomView.PoolingContainer |1.0.0.9 |
| 97|androidx.databinding:databinding-adapters |8.3.2 |Xamarin.AndroidX.DataBinding.DataBindingAdapters |8.3.2 |
| 98|androidx.databinding:databinding-common |8.3.2 |Xamarin.AndroidX.DataBinding.DataBindingCommon |8.3.2 |
| 99|androidx.databinding:databinding-runtime |8.3.2 |Xamarin.AndroidX.DataBinding.DataBindingRuntime |8.3.2 |
| 100|androidx.databinding:viewbinding |8.3.2 |Xamarin.AndroidX.DataBinding.ViewBinding |8.3.2 |
| 101|androidx.datastore:datastore |1.1.0 |Xamarin.AndroidX.DataStore |1.1.0 |
| 102|androidx.datastore:datastore-android |1.1.0 |Xamarin.AndroidX.DataStore.Android |1.1.0 |
| 103|androidx.datastore:datastore-core |1.1.0 |Xamarin.AndroidX.DataStore.Core |1.1.0 |
| 104|androidx.datastore:datastore-core-android |1.1.0 |Xamarin.AndroidX.DataStore.Core.Android |1.1.0 |
| 105|androidx.datastore:datastore-core-jvm |1.1.0 |Xamarin.AndroidX.DataStore.Core.Jvm |1.1.0 |
| 106|androidx.datastore:datastore-core-okio |1.1.0 |Xamarin.AndroidX.DataStore.Core.OkIO |1.1.0 |
| 107|androidx.datastore:datastore-core-okio-jvm |1.1.0 |Xamarin.AndroidX.DataStore.Core.OkIO.Jvm |1.1.0 |
| 108|androidx.datastore:datastore-preferences |1.1.0 |Xamarin.AndroidX.DataStore.Preferences |1.1.0 |
| 109|androidx.datastore:datastore-preferences-android |1.1.0 |Xamarin.AndroidX.DataStore.Preferences.Android |1.1.0 |
| 110|androidx.datastore:datastore-preferences-core |1.1.0 |Xamarin.AndroidX.DataStore.Preferences.Core |1.1.0 |
| 111|androidx.datastore:datastore-preferences-core-jvm |1.1.0 |Xamarin.AndroidX.DataStore.Preferences.Core.Jvm |1.1.0 |
| 112|androidx.datastore:datastore-rxjava2 |1.1.0 |Xamarin.AndroidX.DataStore.RxJava2 |1.1.0 |
| 113|androidx.datastore:datastore-rxjava3 |1.1.0 |Xamarin.AndroidX.DataStore.RxJava3 |1.1.0 |
| 114|androidx.documentfile:documentfile |1.0.1 |Xamarin.AndroidX.DocumentFile |1.0.1.23 |
| 115|androidx.drawerlayout:drawerlayout |1.2.0 |Xamarin.AndroidX.DrawerLayout |1.2.0.7 |
| 116|androidx.dynamicanimation:dynamicanimation |1.0.0 |Xamarin.AndroidX.DynamicAnimation |1.0.0.23 |
| 117|androidx.emoji:emoji |1.1.0 |Xamarin.AndroidX.Emoji |1.1.0.18 |
| 118|androidx.emoji:emoji-appcompat |1.1.0 |Xamarin.AndroidX.Emoji.AppCompat |1.1.0.18 |
| 119|androidx.emoji:emoji-bundled |1.1.0 |Xamarin.AndroidX.Emoji.Bundled |1.1.0.18 |
| 120|androidx.emoji2:emoji2 |1.4.0 |Xamarin.AndroidX.Emoji2 |1.4.0.4 |
| 121|androidx.emoji2:emoji2-views-helper |1.4.0 |Xamarin.AndroidX.Emoji2.ViewsHelper |1.4.0.4 |
| 122|androidx.enterprise:enterprise-feedback |1.1.0 |Xamarin.AndroidX.Enterprise.Feedback |1.1.0.9 |
| 123|androidx.exifinterface:exifinterface |1.3.7 |Xamarin.AndroidX.ExifInterface |1.3.7.1 |
| 124|androidx.fragment:fragment |1.6.2 |Xamarin.AndroidX.Fragment |1.6.2.2 |
| 125|androidx.fragment:fragment-ktx |1.6.2 |Xamarin.AndroidX.Fragment.Ktx |1.6.2.2 |
| 126|androidx.gridlayout:gridlayout |1.0.0 |Xamarin.AndroidX.GridLayout |1.0.0.23 |
| 127|androidx.heifwriter:heifwriter |1.0.0 |Xamarin.AndroidX.HeifWriter |1.0.0.23 |
| 128|androidx.interpolator:interpolator |1.0.0 |Xamarin.AndroidX.Interpolator |1.0.0.23 |
| 129|androidx.leanback:leanback |1.0.0 |Xamarin.AndroidX.Leanback |1.0.0.25 |
| 130|androidx.leanback:leanback-preference |1.0.0 |Xamarin.AndroidX.Leanback.Preference |1.0.0.23 |
| 131|androidx.legacy:legacy-preference-v14 |1.0.0 |Xamarin.AndroidX.Legacy.Preference.V14 |1.0.0.23 |
| 132|androidx.legacy:legacy-support-core-ui |1.0.0 |Xamarin.AndroidX.Legacy.Support.Core.UI |1.0.0.24 |
| 133|androidx.legacy:legacy-support-core-utils |1.0.0 |Xamarin.AndroidX.Legacy.Support.Core.Utils |1.0.0.23 |
| 134|androidx.legacy:legacy-support-v13 |1.0.0 |Xamarin.AndroidX.Legacy.Support.V13 |1.0.0.23 |
| 135|androidx.legacy:legacy-support-v4 |1.0.0 |Xamarin.AndroidX.Legacy.Support.V4 |1.0.0.23 |
| 136|androidx.lifecycle:lifecycle-common |2.7.0 |Xamarin.AndroidX.Lifecycle.Common |2.7.0.1 |
| 137|androidx.lifecycle:lifecycle-common-java8 |2.7.0 |Xamarin.AndroidX.Lifecycle.Common.Java8 |2.7.0.1 |
| 138|androidx.lifecycle:lifecycle-extensions |2.2.0 |Xamarin.AndroidX.Lifecycle.Extensions |2.2.0.23 |
| 139|androidx.lifecycle:lifecycle-livedata |2.7.0 |Xamarin.AndroidX.Lifecycle.LiveData |2.7.0.1 |
| 140|androidx.lifecycle:lifecycle-livedata-core |2.7.0 |Xamarin.AndroidX.Lifecycle.LiveData.Core |2.7.0.1 |
| 141|androidx.lifecycle:lifecycle-livedata-core-ktx |2.7.0 |Xamarin.AndroidX.Lifecycle.LiveData.Core.Ktx |2.7.0.1 |
| 142|androidx.lifecycle:lifecycle-livedata-ktx |2.7.0 |Xamarin.AndroidX.Lifecycle.LiveData.Ktx |2.7.0.1 |
| 143|androidx.lifecycle:lifecycle-process |2.7.0 |Xamarin.AndroidX.Lifecycle.Process |2.7.0.1 |
| 144|androidx.lifecycle:lifecycle-reactivestreams |2.7.0 |Xamarin.AndroidX.Lifecycle.ReactiveStreams |2.7.0.1 |
| 145|androidx.lifecycle:lifecycle-reactivestreams-ktx |2.7.0 |Xamarin.AndroidX.Lifecycle.ReactiveStreams.Ktx |2.7.0.1 |
| 146|androidx.lifecycle:lifecycle-runtime |2.7.0 |Xamarin.AndroidX.Lifecycle.Runtime |2.7.0.1 |
| 147|androidx.lifecycle:lifecycle-runtime-ktx |2.7.0 |Xamarin.AndroidX.Lifecycle.Runtime.Ktx |2.7.0.1 |
| 148|androidx.lifecycle:lifecycle-service |2.7.0 |Xamarin.AndroidX.Lifecycle.Service |2.7.0.1 |
| 149|androidx.lifecycle:lifecycle-viewmodel |2.7.0 |Xamarin.AndroidX.Lifecycle.ViewModel |2.7.0.1 |
| 150|androidx.lifecycle:lifecycle-viewmodel-compose |2.7.0 |Xamarin.AndroidX.Lifecycle.ViewModel.Compose |2.7.0.1 |
| 151|androidx.lifecycle:lifecycle-viewmodel-ktx |2.7.0 |Xamarin.AndroidX.Lifecycle.ViewModel.Ktx |2.7.0.1 |
| 152|androidx.lifecycle:lifecycle-viewmodel-savedstate |2.7.0 |Xamarin.AndroidX.Lifecycle.ViewModelSavedState |2.7.0.1 |
| 153|androidx.loader:loader |1.1.0 |Xamarin.AndroidX.Loader |1.1.0.23 |
| 154|androidx.localbroadcastmanager:localbroadcastmanager |1.1.0 |Xamarin.AndroidX.LocalBroadcastManager |1.1.0.11 |
| 155|androidx.media:media |1.7.0 |Xamarin.AndroidX.Media |1.7.0.1 |
| 156|androidx.media2:media2-common |1.3.0 |Xamarin.AndroidX.Media2.Common |1.3.0.1 |
| 157|androidx.media2:media2-session |1.3.0 |Xamarin.AndroidX.Media2.Session |1.3.0.1 |
| 158|androidx.media2:media2-widget |1.3.0 |Xamarin.AndroidX.Media2.Widget |1.3.0.1 |
| 159|androidx.mediarouter:mediarouter |1.7.0 |Xamarin.AndroidX.MediaRouter |1.7.0 |
| 160|androidx.multidex:multidex |2.0.1 |Xamarin.AndroidX.MultiDex |2.0.1.23 |
| 161|androidx.navigation:navigation-common |2.7.7 |Xamarin.AndroidX.Navigation.Common |2.7.7.1 |
| 162|androidx.navigation:navigation-common-ktx |2.7.7 |Xamarin.AndroidX.Navigation.Common.Ktx |2.7.7.1 |
| 163|androidx.navigation:navigation-compose |2.7.7 |Xamarin.AndroidX.Navigation.Compose |2.7.7.1 |
| 164|androidx.navigation:navigation-fragment |2.7.7 |Xamarin.AndroidX.Navigation.Fragment |2.7.7.1 |
| 165|androidx.navigation:navigation-fragment-ktx |2.7.7 |Xamarin.AndroidX.Navigation.Fragment.Ktx |2.7.7.1 |
| 166|androidx.navigation:navigation-runtime |2.7.7 |Xamarin.AndroidX.Navigation.Runtime |2.7.7.1 |
| 167|androidx.navigation:navigation-runtime-ktx |2.7.7 |Xamarin.AndroidX.Navigation.Runtime.Ktx |2.7.7.1 |
| 168|androidx.navigation:navigation-ui |2.7.7 |Xamarin.AndroidX.Navigation.UI |2.7.7.1 |
| 169|androidx.navigation:navigation-ui-ktx |2.7.7 |Xamarin.AndroidX.Navigation.UI.Ktx |2.7.7.1 |
| 170|androidx.paging:paging-common |3.2.1 |Xamarin.AndroidX.Paging.Common |3.2.1.4 |
| 171|androidx.paging:paging-common-ktx |3.2.1 |Xamarin.AndroidX.Paging.Common.Ktx |3.2.1.4 |
| 172|androidx.paging:paging-runtime |3.2.1 |Xamarin.AndroidX.Paging.Runtime |3.2.1.4 |
| 173|androidx.paging:paging-runtime-ktx |3.2.1 |Xamarin.AndroidX.Paging.Runtime.Ktx |3.2.1.4 |
| 174|androidx.paging:paging-rxjava2 |3.2.1 |Xamarin.AndroidX.Paging.RxJava2 |3.2.1.4 |
| 175|androidx.paging:paging-rxjava2-ktx |3.2.1 |Xamarin.AndroidX.Paging.RxJava2.Ktx |3.2.1.4 |
| 176|androidx.palette:palette |1.0.0 |Xamarin.AndroidX.Palette |1.0.0.23 |
| 177|androidx.palette:palette-ktx |1.0.0 |Xamarin.AndroidX.Palette.Palette.Ktx |1.0.0.16 |
| 178|androidx.percentlayout:percentlayout |1.0.0 |Xamarin.AndroidX.PercentLayout |1.0.0.24 |
| 179|androidx.preference:preference |1.2.1 |Xamarin.AndroidX.Preference |1.2.1.4 |
| 180|androidx.preference:preference-ktx |1.2.1 |Xamarin.AndroidX.Preference.Preference.Ktx |1.2.1.4 |
| 181|androidx.print:print |1.0.0 |Xamarin.AndroidX.Print |1.0.0.23 |
| 182|androidx.profileinstaller:profileinstaller |1.3.1 |Xamarin.AndroidX.ProfileInstaller.ProfileInstaller |1.3.1.6 |
| 183|androidx.recommendation:recommendation |1.0.0 |Xamarin.AndroidX.Recommendation |1.0.0.23 |
| 184|androidx.recyclerview:recyclerview |1.3.2 |Xamarin.AndroidX.RecyclerView |1.3.2.2 |
| 185|androidx.recyclerview:recyclerview-selection |1.1.0 |Xamarin.AndroidX.RecyclerView.Selection |1.1.0.17 |
| 186|androidx.resourceinspection:resourceinspection-annotation |1.0.1 |Xamarin.AndroidX.ResourceInspection.Annotation |1.0.1.11 |
| 187|androidx.room:room-common |2.6.1 |Xamarin.AndroidX.Room.Common |2.6.1.1 |
| 188|androidx.room:room-guava |2.6.1 |Xamarin.AndroidX.Room.Guava |2.6.1.1 |
| 189|androidx.room:room-ktx |2.6.1 |Xamarin.AndroidX.Room.Room.Ktx |2.6.1.1 |
| 190|androidx.room:room-runtime |2.6.1 |Xamarin.AndroidX.Room.Runtime |2.6.1.1 |
| 191|androidx.room:room-rxjava2 |2.6.1 |Xamarin.AndroidX.Room.Room.RxJava2 |2.6.1.1 |
| 192|androidx.room:room-rxjava3 |2.6.1 |Xamarin.AndroidX.Room.Room.RxJava3 |2.6.1.1 |
| 193|androidx.savedstate:savedstate |1.2.1 |Xamarin.AndroidX.SavedState |1.2.1.7 |
| 194|androidx.savedstate:savedstate-ktx |1.2.1 |Xamarin.AndroidX.SavedState.SavedState.Ktx |1.2.1.7 |
| 195|androidx.security:security-crypto |1.0.0 |Xamarin.AndroidX.Security.SecurityCrypto |1.0.0.16 |
| 196|androidx.slice:slice-builders |1.0.0 |Xamarin.AndroidX.Slice.Builders |1.0.0.23 |
| 197|androidx.slice:slice-core |1.0.0 |Xamarin.AndroidX.Slice.Core |1.0.0.23 |
| 198|androidx.slice:slice-view |1.0.0 |Xamarin.AndroidX.Slice.View |1.0.0.23 |
| 199|androidx.slidingpanelayout:slidingpanelayout |1.2.0 |Xamarin.AndroidX.SlidingPaneLayout |1.2.0.11 |
| 200|androidx.sqlite:sqlite |2.4.0 |Xamarin.AndroidX.Sqlite |2.4.0.2 |
| 201|androidx.sqlite:sqlite-framework |2.4.0 |Xamarin.AndroidX.Sqlite.Framework |2.4.0.2 |
| 202|androidx.startup:startup-runtime |1.1.1 |Xamarin.AndroidX.Startup.StartupRuntime |1.1.1.11 |
| 203|androidx.swiperefreshlayout:swiperefreshlayout |1.1.0 |Xamarin.AndroidX.SwipeRefreshLayout |1.1.0.18 |
| 204|androidx.tracing:tracing |1.2.0 |Xamarin.AndroidX.Tracing.Tracing |1.2.0.1 |
| 205|androidx.transition:transition |1.4.1 |Xamarin.AndroidX.Transition |1.4.1.16 |
| 206|androidx.tvprovider:tvprovider |1.0.0 |Xamarin.AndroidX.TvProvider |1.0.0.25 |
| 207|androidx.vectordrawable:vectordrawable |1.1.0 |Xamarin.AndroidX.VectorDrawable |1.1.0.23 |
| 208|androidx.vectordrawable:vectordrawable-animated |1.1.0 |Xamarin.AndroidX.VectorDrawable.Animated |1.1.0.23 |
| 209|androidx.versionedparcelable:versionedparcelable |1.2.0 |Xamarin.AndroidX.VersionedParcelable |1.2.0.1 |
| 210|androidx.viewpager:viewpager |1.0.0 |Xamarin.AndroidX.ViewPager |1.0.0.23 |
| 211|androidx.viewpager2:viewpager2 |1.0.0 |Xamarin.AndroidX.ViewPager2 |1.0.0.25 |
| 212|androidx.wear:wear |1.3.0 |Xamarin.AndroidX.Wear |1.3.0.4 |
| 213|androidx.wear:wear-input |1.1.0 |Xamarin.AndroidX.Wear.Input |1.0.0.13 |
| 214|androidx.wear:wear-ongoing |1.0.0 |Xamarin.AndroidX.Wear.Ongoing |1.0.0.13 |
| 215|androidx.wear:wear-phone-interactions |1.0.1 |Xamarin.AndroidX.Wear.PhoneInteractions |1.0.1.11 |
| 216|androidx.wear:wear-remote-interactions |1.0.0 |Xamarin.AndroidX.Wear.RemoteInteractions |1.0.0.13 |
| 217|androidx.wear.compose:compose-foundation |1.3.1 |Xamarin.AndroidX.Wear.Compose.Foundation |1.3.1 |
| 218|androidx.wear.compose:compose-material |1.3.1 |Xamarin.AndroidX.Wear.Compose.Material |1.3.1 |
| 219|androidx.wear.compose:compose-material-core |1.3.1 |Xamarin.AndroidX.Wear.Compose.Material.Core |1.3.1 |
| 220|androidx.wear.compose:compose-navigation |1.3.1 |Xamarin.AndroidX.Wear.Compose.Navigation |1.3.1 |
| 221|androidx.wear.protolayout:protolayout |1.1.0 |Xamarin.AndroidX.Wear.ProtoLayout |1.1.0.1 |
| 222|androidx.wear.protolayout:protolayout-expression |1.1.0 |Xamarin.AndroidX.Wear.ProtoLayout.Expression |1.1.0.1 |
| 223|androidx.wear.protolayout:protolayout-expression-pipeline |1.1.0 |Xamarin.AndroidX.Wear.ProtoLayout.Expression.Pipeline |1.1.0.1 |
| 224|androidx.wear.protolayout:protolayout-proto |1.1.0 |Xamarin.AndroidX.Wear.ProtoLayout.Proto |1.1.0.1 |
| 225|androidx.wear.tiles:tiles |1.3.0 |Xamarin.AndroidX.Wear.Tiles |1.3.0.1 |
| 226|androidx.wear.tiles:tiles-material |1.3.0 |Xamarin.AndroidX.Wear.Tiles.Material |1.3.0.1 |
| 227|androidx.wear.tiles:tiles-proto |1.3.0 |Xamarin.AndroidX.Wear.Tiles.Proto |1.3.0.1 |
| 228|androidx.wear.tiles:tiles-renderer |1.1.0 |Xamarin.AndroidX.Wear.Tiles.Renderer |1.1.0.8 |
| 229|androidx.wear.watchface:watchface |1.2.1 |Xamarin.AndroidX.Wear.WatchFace |1.2.1.1 |
| 230|androidx.wear.watchface:watchface-client |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Client |1.2.1.1 |
| 231|androidx.wear.watchface:watchface-client-guava |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.ClientGuava |1.2.1.1 |
| 232|androidx.wear.watchface:watchface-complications |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Complications |1.2.1.1 |
| 233|androidx.wear.watchface:watchface-complications-data |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Complications.Data |1.2.1.1 |
| 234|androidx.wear.watchface:watchface-complications-data-source |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Complications.Data.Source |1.2.1.1 |
| 235|androidx.wear.watchface:watchface-complications-data-source-ktx |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Complications.Data.Source.Ktx |1.2.1.1 |
| 236|androidx.wear.watchface:watchface-complications-rendering |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Complications.Rendering |1.2.1.1 |
| 237|androidx.wear.watchface:watchface-data |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Data |1.2.1.1 |
| 238|androidx.wear.watchface:watchface-guava |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Guava |1.2.1.1 |
| 239|androidx.wear.watchface:watchface-style |1.2.1 |Xamarin.AndroidX.Wear.WatchFace.Style |1.2.1.1 |
| 240|androidx.webkit:webkit |1.10.0 |Xamarin.AndroidX.WebKit |1.10.0.1 |
| 241|androidx.window:window |1.2.0 |Xamarin.AndroidX.Window |1.2.0.2 |
| 242|androidx.window:window-extensions |1.0.0-alpha01 |Xamarin.AndroidX.Window.WindowExtensions |1.0.0.18-alpha01 |
| 243|androidx.window:window-java |1.2.0 |Xamarin.AndroidX.Window.WindowJava |1.2.0.2 |
| 244|androidx.window:window-rxjava2 |1.2.0 |Xamarin.AndroidX.Window.WindowRxJava2 |1.2.0.2 |
| 245|androidx.window:window-rxjava3 |1.2.0 |Xamarin.AndroidX.Window.WindowRxJava3 |1.2.0.2 |
| 246|androidx.window.extensions.core:core |1.0.0 |Xamarin.AndroidX.Window.Extensions.Core.Core |1.0.0.5 |
| 247|androidx.work:work-runtime |2.9.0 |Xamarin.AndroidX.Work.Runtime |2.9.0.1 |
| 248|androidx.work:work-runtime-ktx |2.9.0 |Xamarin.AndroidX.Work.Work.Runtime.Ktx |2.9.0.1 |
| 249|com.android.installreferrer:installreferrer |1.1.2 |Xamarin.Google.Android.InstallReferrer |1.1.2 |
| 250|com.google.accompanist:accompanist-appcompat-theme |0.34.0 |Xamarin.Google.Accompanist.AppCompat.Theme |0.34.0.1 |
| 251|com.google.accompanist:accompanist-drawablepainter |0.34.0 |Xamarin.Google.Accompanist.DrawablePainter |0.34.0.1 |
| 252|com.google.accompanist:accompanist-flowlayout |0.34.0 |Xamarin.Google.Accompanist.FlowLayout |0.34.0.1 |
| 253|com.google.accompanist:accompanist-pager |0.34.0 |Xamarin.Google.Accompanist.Pager |0.34.0.1 |
| 254|com.google.accompanist:accompanist-pager-indicators |0.34.0 |Xamarin.Google.Accompanist.Pager.Indicators |0.34.0.1 |
| 255|com.google.accompanist:accompanist-permissions |0.34.0 |Xamarin.Google.Accompanist.Permissions |0.34.0.1 |
| 256|com.google.accompanist:accompanist-placeholder |0.34.0 |Xamarin.Google.Accompanist.Placeholder |0.34.0.1 |
| 257|com.google.accompanist:accompanist-placeholder-material |0.34.0 |Xamarin.Google.Accompanist.Placeholder.Material |0.34.0.1 |
| 258|com.google.accompanist:accompanist-swiperefresh |0.34.0 |Xamarin.Google.Accompanist.SwipeRefresh |0.34.0.1 |
| 259|com.google.accompanist:accompanist-systemuicontroller |0.34.0 |Xamarin.Google.Accompanist.SystemUIController |0.34.0.1 |
| 260|com.google.android.material:compose-theme-adapter |1.1.18 |Xamarin.Google.Android.Material.Compose.Theme.Adapter |1.1.18.9 |
| 261|com.google.android.material:compose-theme-adapter-3 |1.0.18 |Xamarin.Google.Android.Material.Compose.Theme.Adapter3 |1.0.18.8 |
| 262|com.google.android.material:material |1.11.0 |Xamarin.Google.Android.Material |1.11.0 |
| 263|com.google.assistant.appactions:suggestions |1.0.0 |Xamarin.Google.Assistant.AppActions.Suggestions |1.0.0.9 |
| 264|com.google.assistant.appactions:widgets |0.0.1 |Xamarin.Google.Assistant.AppActions.Widgets |0.0.1.10 |
| 265|com.google.auto.value:auto-value-annotations |1.10.4 |Xamarin.Google.AutoValue.Annotations |1.10.4.3 |
| 266|com.google.code.gson:gson |2.10.1 |GoogleGson |2.10.1.8 |
| 267|com.google.crypto.tink:tink-android |1.13.0 |Xamarin.Google.Crypto.Tink.Android |1.13.0 |
| 268|com.google.flogger:flogger |0.8 |Xamarin.Flogger |0.8.0.2 |
| 269|com.google.flogger:flogger-system-backend |0.8 |Xamarin.Flogger.SystemBackend |0.8.0.2 |
| 270|com.google.guava:failureaccess |1.0.2 |Xamarin.Google.Guava.FailureAccess |1.0.2.2 |
| 271|com.google.guava:guava |33.1.0-android |Xamarin.Google.Guava |33.1.0 |
| 272|com.google.guava:listenablefuture |1.0 |Xamarin.Google.Guava.ListenableFuture |1.0.0.18 |
| 273|com.google.j2objc:j2objc-annotations |3.0.0 |Xamarin.Google.J2Objc.Annotations |3.0.0 |
| 274|dev.chrisbanes.snapper:snapper |0.3.0 |Xamarin.Dev.ChrisBanes.Snapper |0.3.0.9 |
| 275|io.github.aakira:napier |2.7.1 |Xamarin.AAkira.Napier |2.7.1.1 |
| 276|io.reactivex.rxjava2:rxandroid |2.1.1 |Xamarin.Android.ReactiveX.RxAndroid |2.1.1.9 |
| 277|io.reactivex.rxjava2:rxjava |2.2.21 |Xamarin.Android.ReactiveX.RxJava |2.2.21.16 |
| 278|io.reactivex.rxjava2:rxkotlin |2.4.0 |Xamarin.Android.ReactiveX.RxKotlin |2.4.0.9 |
| 279|io.reactivex.rxjava3:rxandroid |3.0.2 |Xamarin.Android.ReactiveX.RxJava3.RxAndroid |3.0.2.8 |
| 280|io.reactivex.rxjava3:rxjava |3.1.8 |Xamarin.Android.ReactiveX.RxJava3.RxJava |3.1.8.3 |
| 281|io.reactivex.rxjava3:rxkotlin |3.0.1 |Xamarin.Android.ReactiveX.RxJava3.RxKotlin |3.0.1.9 |
| 282|org.checkerframework:checker-compat-qual |2.5.6 |Xamarin.CheckerFramework.CheckerCompatQual |2.5.6.2 |
| 283|org.checkerframework:checker-qual |3.42.0 |Xamarin.CheckerFramework.CheckerQual |3.42.0.1 |
| 284|org.jetbrains:annotations |24.1.0 |Xamarin.Jetbrains.Annotations |24.1.0.2 |
| 285|org.jetbrains.kotlin:kotlin-android-extensions-runtime |1.9.23 |Xamarin.Kotlin.Android.Extensions.Runtime |1.9.23 |
| 286|org.jetbrains.kotlin:kotlin-parcelize-runtime |1.9.23 |Xamarin.Kotlin.Parcelize.Runtime |1.9.23 |
| 287|org.jetbrains.kotlin:kotlin-reflect |1.9.23 |Xamarin.Kotlin.Reflect |1.9.23 |
| 288|org.jetbrains.kotlin:kotlin-stdlib |1.9.23 |Xamarin.Kotlin.StdLib |1.9.23 |
| 289|org.jetbrains.kotlin:kotlin-stdlib-common |1.9.23 |Xamarin.Kotlin.StdLib.Common |1.9.23 |
| 290|org.jetbrains.kotlin:kotlin-stdlib-jdk7 |1.9.23 |Xamarin.Kotlin.StdLib.Jdk7 |1.9.23 |
| 291|org.jetbrains.kotlin:kotlin-stdlib-jdk8 |1.9.23 |Xamarin.Kotlin.StdLib.Jdk8 |1.9.23 |
| 292|org.jetbrains.kotlinx:atomicfu |0.17.0 |Xamarin.KotlinX.AtomicFU |0.17.0 |
| 293|org.jetbrains.kotlinx:atomicfu-jvm |0.17.0 |Xamarin.KotlinX.AtomicFU.Jvm |0.17.0 |
| 294|org.jetbrains.kotlinx:kotlinx-coroutines-android |1.8.0 |Xamarin.KotlinX.Coroutines.Android |1.8.0.1 |
| 295|org.jetbrains.kotlinx:kotlinx-coroutines-core |1.8.0 |Xamarin.KotlinX.Coroutines.Core |1.8.0.1 |
| 296|org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm |1.8.0 |Xamarin.KotlinX.Coroutines.Core.Jvm |1.8.0.1 |
| 297|org.jetbrains.kotlinx:kotlinx-coroutines-guava |1.8.0 |Xamarin.KotlinX.Coroutines.Guava |1.8.0.1 |
| 298|org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 |1.8.0 |Xamarin.KotlinX.Coroutines.Jdk8 |1.8.0.1 |
| 299|org.jetbrains.kotlinx:kotlinx-coroutines-play-services |1.8.0 |Xamarin.KotlinX.Coroutines.Play.Services |1.8.0.1 |
| 300|org.jetbrains.kotlinx:kotlinx-coroutines-reactive |1.8.0 |Xamarin.KotlinX.Coroutines.Reactive |1.8.0.1 |
| 301|org.jetbrains.kotlinx:kotlinx-coroutines-rx2 |1.8.0 |Xamarin.KotlinX.Coroutines.Rx2 |1.8.0.1 |
| 302|org.jetbrains.kotlinx:kotlinx-coroutines-rx3 |1.8.0 |Xamarin.KotlinX.Coroutines.Rx3 |1.8.0.1 |
| 303|org.jetbrains.kotlinx:kotlinx-serialization-core |1.6.3 |Xamarin.KotlinX.Serialization.Core |1.6.3 |
| 304|org.jetbrains.kotlinx:kotlinx-serialization-core-jvm |1.6.3 |Xamarin.KotlinX.Serialization.Core.Jvm |1.6.3 |
| 305|org.jetbrains.kotlinx:kotlinx-serialization-protobuf |1.6.3 |Xamarin.KotlinX.Serialization.Protobuf |1.6.3 |
| 306|org.jetbrains.kotlinx:kotlinx-serialization-protobuf-jvm |1.6.3 |Xamarin.KotlinX.Serialization.Protobuf.Jvm |1.6.3 |
| 307|org.reactivestreams:reactive-streams |1.0.4 |Xamarin.Android.ReactiveStreams |1.0.4.10 |

Просмотреть файл

@ -1,19 +1,19 @@
BuildToolName,BuildToolVersion
dotnet sdk, 7.0.403
dotnet sdk, 7.0.408
dotnet sdk, patch
msbuild-sdks MSBuild.Sdk.Extras, 3.0.44
msbuild-sdks Microsoft.Build.Traversal, 3.2.0
msbuild-sdks Microsoft.Build.NoTargets, 3.7.0
msbuild-sdks Microsoft.Build.Traversal, 4.1.0
msbuild-sdks Microsoft.Build.NoTargets, 3.7.56
msbuild-sdks Xamarin.Legacy.Sdk, 0.2.0-alpha4
Mono JIT compiler, 6.12.0.188 (2020-02/ca8abcb6bc4 Thu Oct 13 14:26:22 EDT 2022)
nuget, 6.3.1.1
api-tools,1.3.5
boots,1.1.0.712-preview2
boots,1.1.0.36
private-api-tools,1.0.3
xamarin.androidbinderator.tool,0.5.7
Gradle, 8.4
Kotlin, 1.9.10
Gradle, 8.7
Kotlin, 1.9.22
Groovy, 3.0.17
Ant, Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM, 11.0.21 (Eclipse Adoptium 11.0.21+9)
openjdk, 11.0.21 2023-10-17
javac, 11.0.21
JVM, 11.0.22 (Eclipse Adoptium 11.0.22+7)
openjdk, 11.0.22 2024-01-16
javac, 11.0.22

1 BuildToolName BuildToolVersion
2 dotnet sdk 7.0.403 7.0.408
3 dotnet sdk patch
4 msbuild-sdks MSBuild.Sdk.Extras 3.0.44
5 msbuild-sdks Microsoft.Build.Traversal 3.2.0 4.1.0
6 msbuild-sdks Microsoft.Build.NoTargets 3.7.0 3.7.56
7 msbuild-sdks Xamarin.Legacy.Sdk 0.2.0-alpha4
8 Mono JIT compiler 6.12.0.188 (2020-02/ca8abcb6bc4 Thu Oct 13 14:26:22 EDT 2022)
9 nuget 6.3.1.1
10 api-tools boots 1.3.5 1.1.0.36
11 boots private-api-tools 1.1.0.712-preview2 1.0.3
12 xamarin.androidbinderator.tool 0.5.7
13 Gradle 8.4 8.7
14 Kotlin 1.9.10 1.9.22
15 Groovy 3.0.17
16 Ant Apache Ant(TM) version 1.10.13 compiled on January 4 2023
17 JVM 11.0.21 (Eclipse Adoptium 11.0.21+9) 11.0.22 (Eclipse Adoptium 11.0.22+7)
18 openjdk 11.0.21 2023-10-17 11.0.22 2024-01-16
19 javac 11.0.21 11.0.22

Просмотреть файл

@ -6,18 +6,18 @@
{
"sdk":
{
"version": "7.0.403",
"version": "7.0.408",
"rollForward": "patch"
},
"msbuild-sdks":
{
"MSBuild.Sdk.Extras": "3.0.44",
"Microsoft.Build.Traversal": "3.2.0",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.Build.Traversal": "4.1.0",
"Microsoft.Build.NoTargets": "3.7.56",
"Xamarin.Legacy.Sdk": "0.2.0-alpha4"
}
}
```
version7.0.403
version7.0.408
rollForwardpatch

Просмотреть файл

@ -584,7 +584,6 @@ ReactiveX.Subjects
ReactiveX.Subscribers
Xamarin.Android.InstallReferrer
System.Runtime.CompilerServices
System.Runtime.Versioning
Xamarin.AAkira.Napier
Xamarin.Android.InstallReferrer.Api
Xamarin.Android.InstallReferrer.Commons

Просмотреть файл

@ -1,37 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28606.126
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildXamarinFormsApp", "BuildXamarinFormsApp\BuildXamarinFormsApp\BuildXamarinFormsApp.csproj", "{0762E7E2-F0CE-4390-915F-26B9B8A40B59}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|iPhone = Debug|iPhone
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Debug|iPhone.Build.0 = Debug|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Release|Any CPU.Build.0 = Release|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Release|iPhone.ActiveCfg = Release|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Release|iPhone.Build.0 = Release|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{0762E7E2-F0CE-4390-915F-26B9B8A40B59}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {EE78FB73-5D36-494B-AB0F-A8F0D99923E6}
EndGlobalSection
EndGlobal

Просмотреть файл

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="BuildXamarinFormsApp.App">
<Application.Resources>
<ResourceDictionary>
<!--Global Styles-->
<Color x:Key="NavigationPrimary">#2196F3</Color>
<Style TargetType="NavigationPage">
<Setter Property="BarBackgroundColor" Value="{StaticResource NavigationPrimary}" />
<Setter Property="BarTextColor" Value="White" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>

Просмотреть файл

@ -1,32 +0,0 @@
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using BuildXamarinFormsApp.Services;
using BuildXamarinFormsApp.Views;
namespace BuildXamarinFormsApp
{
public partial class App : Application
{
public App()
{
InitializeComponent();
DependencyService.Register<MockDataStore>();
MainPage = new MainPage();
}
protected override void OnStart()
{
}
protected override void OnSleep()
{
}
protected override void OnResume()
{
}
}
}

Просмотреть файл

@ -1,3 +0,0 @@
using Xamarin.Forms.Xaml;
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

Просмотреть файл

@ -1,25 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>portable</DebugType>
<DebugSymbols>true</DebugSymbols>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup>
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2612" />
<PackageReference Include="Xamarin.Essentials" Version="1.8.0" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,18 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BuildXamarinFormsApp.Models
{
public enum MenuItemType
{
Browse,
About
}
public class HomeMenuItem
{
public MenuItemType Id { get; set; }
public string Title { get; set; }
}
}

Просмотреть файл

@ -1,11 +0,0 @@
using System;
namespace BuildXamarinFormsApp.Models
{
public class Item
{
public string Id { get; set; }
public string Text { get; set; }
public string Description { get; set; }
}
}

Просмотреть файл

@ -1,15 +0,0 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace BuildXamarinFormsApp.Services
{
public interface IDataStore<T>
{
Task<bool> AddItemAsync(T item);
Task<bool> UpdateItemAsync(T item);
Task<bool> DeleteItemAsync(string id);
Task<T> GetItemAsync(string id);
Task<IEnumerable<T>> GetItemsAsync(bool forceRefresh = false);
}
}

Просмотреть файл

@ -1,60 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BuildXamarinFormsApp.Models;
namespace BuildXamarinFormsApp.Services
{
public class MockDataStore : IDataStore<Item>
{
readonly List<Item> items;
public MockDataStore()
{
items = new List<Item>()
{
new Item { Id = Guid.NewGuid().ToString(), Text = "First item", Description="This is an item description." },
new Item { Id = Guid.NewGuid().ToString(), Text = "Second item", Description="This is an item description." },
new Item { Id = Guid.NewGuid().ToString(), Text = "Third item", Description="This is an item description." },
new Item { Id = Guid.NewGuid().ToString(), Text = "Fourth item", Description="This is an item description." },
new Item { Id = Guid.NewGuid().ToString(), Text = "Fifth item", Description="This is an item description." },
new Item { Id = Guid.NewGuid().ToString(), Text = "Sixth item", Description="This is an item description." }
};
}
public async Task<bool> AddItemAsync(Item item)
{
items.Add(item);
return await Task.FromResult(true);
}
public async Task<bool> UpdateItemAsync(Item item)
{
var oldItem = items.Where((Item arg) => arg.Id == item.Id).FirstOrDefault();
items.Remove(oldItem);
items.Add(item);
return await Task.FromResult(true);
}
public async Task<bool> DeleteItemAsync(string id)
{
var oldItem = items.Where((Item arg) => arg.Id == id).FirstOrDefault();
items.Remove(oldItem);
return await Task.FromResult(true);
}
public async Task<Item> GetItemAsync(string id)
{
return await Task.FromResult(items.FirstOrDefault(s => s.Id == id));
}
public async Task<IEnumerable<Item>> GetItemsAsync(bool forceRefresh = false)
{
return await Task.FromResult(items);
}
}
}

Просмотреть файл

@ -1,18 +0,0 @@
using System;
using System.Windows.Input;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace BuildXamarinFormsApp.ViewModels
{
public class AboutViewModel : BaseViewModel
{
public AboutViewModel()
{
Title = "About";
OpenWebCommand = new Command(async () => await Browser.OpenAsync("https://xamarin.com"));
}
public ICommand OpenWebCommand { get; }
}
}

Просмотреть файл

@ -1,56 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using Xamarin.Forms;
using BuildXamarinFormsApp.Models;
using BuildXamarinFormsApp.Services;
namespace BuildXamarinFormsApp.ViewModels
{
public class BaseViewModel : INotifyPropertyChanged
{
public IDataStore<Item> DataStore => DependencyService.Get<IDataStore<Item>>();
bool isBusy = false;
public bool IsBusy
{
get { return isBusy; }
set { SetProperty(ref isBusy, value); }
}
string title = string.Empty;
public string Title
{
get { return title; }
set { SetProperty(ref title, value); }
}
protected bool SetProperty<T>(ref T backingStore, T value,
[CallerMemberName]string propertyName = "",
Action onChanged = null)
{
if (EqualityComparer<T>.Default.Equals(backingStore, value))
return false;
backingStore = value;
onChanged?.Invoke();
OnPropertyChanged(propertyName);
return true;
}
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
var changed = PropertyChanged;
if (changed == null)
return;
changed.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
}

Просмотреть файл

@ -1,16 +0,0 @@
using System;
using BuildXamarinFormsApp.Models;
namespace BuildXamarinFormsApp.ViewModels
{
public class ItemDetailViewModel : BaseViewModel
{
public Item Item { get; set; }
public ItemDetailViewModel(Item item = null)
{
Title = item?.Text;
Item = item;
}
}
}

Просмотреть файл

@ -1,55 +0,0 @@
using System;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Threading.Tasks;
using Xamarin.Forms;
using BuildXamarinFormsApp.Models;
using BuildXamarinFormsApp.Views;
namespace BuildXamarinFormsApp.ViewModels
{
public class ItemsViewModel : BaseViewModel
{
public ObservableCollection<Item> Items { get; set; }
public Command LoadItemsCommand { get; set; }
public ItemsViewModel()
{
Title = "Browse";
Items = new ObservableCollection<Item>();
LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand());
MessagingCenter.Subscribe<NewItemPage, Item>(this, "AddItem", async (obj, item) =>
{
var newItem = item as Item;
Items.Add(newItem);
await DataStore.AddItemAsync(newItem);
});
}
async Task ExecuteLoadItemsCommand()
{
IsBusy = true;
try
{
Items.Clear();
var items = await DataStore.GetItemsAsync(true);
foreach (var item in items)
{
Items.Add(item);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
finally
{
IsBusy = false;
}
}
}
}

Просмотреть файл

@ -1,81 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="BuildXamarinFormsApp.Views.AboutPage"
xmlns:vm="clr-namespace:BuildXamarinFormsApp.ViewModels"
Title="{Binding Title}">
<ContentPage.BindingContext>
<vm:AboutViewModel />
</ContentPage.BindingContext>
<ContentPage.Resources>
<ResourceDictionary>
<Color x:Key="Primary">#2196F3</Color>
<Color x:Key="Accent">#96d1ff</Color>
<Color x:Key="LightTextColor">#999999</Color>
</ResourceDictionary>
</ContentPage.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackLayout BackgroundColor="{StaticResource Accent}" VerticalOptions="FillAndExpand" HorizontalOptions="Fill">
<StackLayout Orientation="Horizontal" HorizontalOptions="Center" VerticalOptions="Center">
<ContentView Padding="0,40,0,40" VerticalOptions="FillAndExpand">
<Image Source="xamarin_logo.png" VerticalOptions="Center" HeightRequest="64" />
</ContentView>
</StackLayout>
</StackLayout>
<ScrollView Grid.Row="1">
<StackLayout Orientation="Vertical" Padding="16,40,16,40" Spacing="10">
<Label FontSize="22">
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text="AppName" FontAttributes="Bold" FontSize="22" />
<Span Text=" " />
<Span Text="1.0" ForegroundColor="{StaticResource LightTextColor}" />
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text="This app is written in C# and native APIs using the" />
<Span Text=" " />
<Span Text="Xamarin Platform" FontAttributes="Bold" />
<Span Text="." />
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text="It shares code with its" />
<Span Text=" " />
<Span Text="iOS, Android, and Windows" FontAttributes="Bold" />
<Span Text=" " />
<Span Text="versions." />
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
<Button Margin="0,10,0,0" Text="Learn more"
Command="{Binding OpenWebCommand}"
BackgroundColor="{StaticResource Primary}"
TextColor="White" />
</StackLayout>
</ScrollView>
</Grid>
</ContentPage>

Просмотреть файл

@ -1,18 +0,0 @@
using System;
using System.ComponentModel;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace BuildXamarinFormsApp.Views
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class AboutPage : ContentPage
{
public AboutPage()
{
InitializeComponent();
}
}
}

Просмотреть файл

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="BuildXamarinFormsApp.Views.ItemDetailPage"
Title="{Binding Title}">
<StackLayout Spacing="20" Padding="15">
<Label Text="Text:" FontSize="Medium" />
<Label Text="{Binding Item.Text}" d:Text="Item name" FontSize="Small"/>
<Label Text="Description:" FontSize="Medium" />
<Label Text="{Binding Item.Description}" d:Text="Item description" FontSize="Small"/>
</StackLayout>
</ContentPage>

Просмотреть файл

@ -1,39 +0,0 @@
using System;
using System.ComponentModel;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using BuildXamarinFormsApp.Models;
using BuildXamarinFormsApp.ViewModels;
namespace BuildXamarinFormsApp.Views
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class ItemDetailPage : ContentPage
{
ItemDetailViewModel viewModel;
public ItemDetailPage(ItemDetailViewModel viewModel)
{
InitializeComponent();
BindingContext = this.viewModel = viewModel;
}
public ItemDetailPage()
{
InitializeComponent();
var item = new Item
{
Text = "Item 1",
Description = "This is an item description."
};
viewModel = new ItemDetailViewModel(item);
BindingContext = viewModel;
}
}
}

Просмотреть файл

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="BuildXamarinFormsApp.Views.ItemsPage"
Title="{Binding Title}"
x:Name="BrowseItemsPage">
<ContentPage.ToolbarItems>
<ToolbarItem Text="Add" Clicked="AddItem_Clicked" />
</ContentPage.ToolbarItems>
<RefreshView IsRefreshing="{Binding IsBusy, Mode=TwoWay}" Command="{Binding LoadItemsCommand}">
<CollectionView x:Name="ItemsCollectionView"
ItemsSource="{Binding Items}">
<d:CollectionView.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>First Item</x:String>
<x:String>Second Item</x:String>
<x:String>Third Item</x:String>
<x:String>Fourth Item</x:String>
<x:String>Fifth Item</x:String>
<x:String>Sixth Item</x:String>
</x:Array>
</d:CollectionView.ItemsSource>
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout Padding="10">
<Label Text="{Binding Text}"
d:Text="{Binding .}"
LineBreakMode="NoWrap"
Style="{DynamicResource ListItemTextStyle}"
FontSize="16" />
<Label Text="{Binding Description}"
d:Text="Item descripton"
LineBreakMode="NoWrap"
Style="{DynamicResource ListItemDetailTextStyle}"
FontSize="13" />
<StackLayout.GestureRecognizers>
<TapGestureRecognizer NumberOfTapsRequired="1" Tapped="OnItemSelected"></TapGestureRecognizer>
</StackLayout.GestureRecognizers>
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</RefreshView>
</ContentPage>

Просмотреть файл

@ -1,50 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using BuildXamarinFormsApp.Models;
using BuildXamarinFormsApp.Views;
using BuildXamarinFormsApp.ViewModels;
namespace BuildXamarinFormsApp.Views
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class ItemsPage : ContentPage
{
ItemsViewModel viewModel;
public ItemsPage()
{
InitializeComponent();
BindingContext = viewModel = new ItemsViewModel();
}
async void OnItemSelected(object sender, EventArgs args)
{
var layout = (BindableObject)sender;
var item = (Item)layout.BindingContext;
await Navigation.PushAsync(new ItemDetailPage(new ItemDetailViewModel(item)));
}
async void AddItem_Clicked(object sender, EventArgs e)
{
await Navigation.PushModalAsync(new NavigationPage(new NewItemPage()));
}
protected override void OnAppearing()
{
base.OnAppearing();
if (viewModel.Items.Count == 0)
viewModel.IsBusy = true;
}
}
}

Просмотреть файл

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:views="clr-namespace:BuildXamarinFormsApp.Views"
x:Class="BuildXamarinFormsApp.Views.MainPage">
<MasterDetailPage.Master>
<views:MenuPage />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<NavigationPage.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="iOS" Value="tab_feed.png"/>
</OnPlatform>
</NavigationPage.Icon>
<x:Arguments>
<views:ItemsPage />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>

Просмотреть файл

@ -1,55 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using BuildXamarinFormsApp.Models;
namespace BuildXamarinFormsApp.Views
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class MainPage : MasterDetailPage
{
Dictionary<int, NavigationPage> MenuPages = new Dictionary<int, NavigationPage>();
public MainPage()
{
InitializeComponent();
MasterBehavior = MasterBehavior.Popover;
MenuPages.Add((int)MenuItemType.Browse, (NavigationPage)Detail);
}
public async Task NavigateFromMenu(int id)
{
if (!MenuPages.ContainsKey(id))
{
switch (id)
{
case (int)MenuItemType.Browse:
MenuPages.Add(id, new NavigationPage(new ItemsPage()));
break;
case (int)MenuItemType.About:
MenuPages.Add(id, new NavigationPage(new AboutPage()));
break;
}
}
var newPage = MenuPages[id];
if (newPage != null && Detail != newPage)
{
Detail = newPage;
if (Device.RuntimePlatform == Device.Android)
await Task.Delay(100);
IsPresented = false;
}
}
}
}

Просмотреть файл

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="BuildXamarinFormsApp.Views.MenuPage"
Title="Menu">
<StackLayout VerticalOptions="FillAndExpand">
<ListView x:Name="ListViewMenu"
HasUnevenRows="True">
<d:ListView.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Item 1</x:String>
<x:String>Item 2</x:String>
</x:Array>
</d:ListView.ItemsSource>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="10">
<Label Text="{Binding Title}" d:Text="{Binding .}" FontSize="20"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>

Просмотреть файл

@ -1,40 +0,0 @@
using BuildXamarinFormsApp.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace BuildXamarinFormsApp.Views
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class MenuPage : ContentPage
{
MainPage RootPage { get => Application.Current.MainPage as MainPage; }
List<HomeMenuItem> menuItems;
public MenuPage()
{
InitializeComponent();
menuItems = new List<HomeMenuItem>
{
new HomeMenuItem {Id = MenuItemType.Browse, Title="Browse" },
new HomeMenuItem {Id = MenuItemType.About, Title="About" }
};
ListViewMenu.ItemsSource = menuItems;
ListViewMenu.SelectedItem = menuItems[0];
ListViewMenu.ItemSelected += async (sender, e) =>
{
if (e.SelectedItem == null)
return;
var id = (int)((HomeMenuItem)e.SelectedItem).Id;
await RootPage.NavigateFromMenu(id);
};
}
}
}

Просмотреть файл

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="BuildXamarinFormsApp.Views.NewItemPage"
Title="New Item">
<ContentPage.ToolbarItems>
<ToolbarItem Text="Cancel" Clicked="Cancel_Clicked" />
<ToolbarItem Text="Save" Clicked="Save_Clicked" />
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout Spacing="20" Padding="15">
<Label Text="Text" FontSize="Medium" />
<Entry Text="{Binding Item.Text}" d:Text="Item name" FontSize="Small" />
<Label Text="Description" FontSize="Medium" />
<Editor Text="{Binding Item.Description}" d:Text="Item description" FontSize="Small" Margin="0" />
</StackLayout>
</ContentPage.Content>
</ContentPage>

Просмотреть файл

@ -1,42 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using BuildXamarinFormsApp.Models;
namespace BuildXamarinFormsApp.Views
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class NewItemPage : ContentPage
{
public Item Item { get; set; }
public NewItemPage()
{
InitializeComponent();
Item = new Item
{
Text = "Item name",
Description = "This is an item description."
};
BindingContext = this;
}
async void Save_Clicked(object sender, EventArgs e)
{
MessagingCenter.Send(this, "AddItem", Item);
await Navigation.PopModalAsync();
}
async void Cancel_Clicked(object sender, EventArgs e)
{
await Navigation.PopModalAsync();
}
}
}

Просмотреть файл

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<TargetFrameworks>net8.0-android</TargetFrameworks>
<!-- Some packages specify a minimum of 28 (eg: Xamarin.AndroidX.HeifWriter) -->
<SupportedOSPlatformVersion>28</SupportedOSPlatformVersion>

Просмотреть файл

@ -1,7 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<TargetFrameworks>net8.0-android</TargetFrameworks>
<OutputType>Exe</OutputType>
<RootNamespace>BuildAllMauiApp</RootNamespace>
<UseMaui>true</UseMaui>

Просмотреть файл

@ -1,48 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30114.105
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildAllXamarinForms.XamarinAndroid", "BuildAllXamarinForms\BuildAllXamarinForms.XamarinAndroid\BuildAllXamarinForms.XamarinAndroid.csproj", "{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildAllXamarinForms", "BuildAllXamarinForms\BuildAllXamarinForms\BuildAllXamarinForms.csproj", "{68682700-D937-46C5-AC7D-57352521A46D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Release|iPhoneSimulator = Release|iPhoneSimulator
Debug|iPhone = Debug|iPhone
Release|iPhone = Release|iPhone
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Release|Any CPU.Build.0 = Release|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Debug|iPhone.Build.0 = Debug|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Release|iPhone.ActiveCfg = Release|Any CPU
{FB3ACFB9-F1FB-4D2C-9417-88B6BF616BE9}.Release|iPhone.Build.0 = Release|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Release|Any CPU.Build.0 = Release|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Debug|iPhone.Build.0 = Debug|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Release|iPhone.ActiveCfg = Release|Any CPU
{68682700-D937-46C5-AC7D-57352521A46D}.Release|iPhone.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

Просмотреть файл

@ -1,20 +0,0 @@
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories) and given a Build Action of "AndroidAsset".
These files will be deployed with your package and will be accessible using Android's
AssetManager, like this:
public class ReadAsset : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
InputStream input = Assets.Open ("my_asset.txt");
}
}
Additionally, some Android functions will automatically load asset files:
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");

Просмотреть файл

@ -1,30 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<!--
<TargetFramework>net8.0-android34</TargetFramework>
-->
<OutputType>Exe</OutputType>
</PropertyGroup>
<PropertyGroup
Condition="$(TargetFramework.EndsWith('-android')) == true"
>
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2612" />
<PackageReference Include="Xamarin.Essentials" Version="1.8.0" />
<PackageReference Include="Xamarin.Google.Guava.ListenableFuture" Version="1.0.0.16" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.6.0.2" />
</ItemGroup>
<PropertyGroup>
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\BuildAllXamarinForms\BuildAllXamarinForms.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,28 +0,0 @@
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
namespace BuildAllXamarinForms.Droid
{
[Activity(Label = "BuildAllXamarinForms", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize )]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}

Просмотреть файл

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.buildallxamarinforms">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="31" />
<application android:label="BuildAllXamarinForms.Android" android:theme="@style/MainTheme" android:largeHeap="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

Просмотреть файл

@ -1,31 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Android.App;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//[assembly: AssemblyTitle("BuildAllXamarinForms.Android")]
//[assembly: AssemblyDescription("")]
//[assembly: AssemblyConfiguration("")]
//[assembly: AssemblyCompany("")]
//[assembly: AssemblyProduct("BuildAllXamarinForms.Android")]
//[assembly: AssemblyCopyright("Copyright © 2014")]
//[assembly: AssemblyTrademark("")]
//[assembly: AssemblyCulture("")]
//[assembly: ComVisible(false)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
// Add some common permissions, these can be removed if not needed
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]

Просмотреть файл

@ -1,51 +0,0 @@
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-hdpi/
icon.png
drawable-ldpi/
icon.png
drawable-mdpi/
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" 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 R.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.

Просмотреть файл

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/launcher_background" />
<foreground android:drawable="@mipmap/launcher_foreground" />
</adaptive-icon>

Просмотреть файл

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/launcher_background" />
<foreground android:drawable="@mipmap/launcher_foreground" />
</adaptive-icon>

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 11 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.7 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 6.3 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 6.9 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 18 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 12 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 33 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 19 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 51 KiB

Просмотреть файл

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="launcher_background">#FFFFFF</color>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>

Просмотреть файл

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MainTheme" parent="MainTheme.Base">
<!-- As of Xamarin.Forms 4.6 the theme has moved into the Forms binary -->
<!-- If you want to override anything you can do that here. -->
<!-- Underneath are a couple of entries to get you started. -->
<!-- Set theme colors from https://aka.ms/material-colors -->
<!-- colorPrimary is used for the default action bar background -->
<!--<item name="colorPrimary">#2196F3</item>-->
<!-- colorPrimaryDark is used for the status bar -->
<!--<item name="colorPrimaryDark">#1976D2</item>-->
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<!--<item name="colorAccent">#FF4081</item>-->
</style>
</resources>

Просмотреть файл

@ -1,32 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Foundation;
using UIKit;
namespace BuildAllXamarinForms.iOS
{
// The UIApplicationDelegate for the application. This class is responsible for launching the
// User Interface of the application, as well as listening (and optionally responding) to
// application events from iOS.
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
//
// This method is invoked when the application has loaded and is ready to run. In this
// method you should instantiate the window, load the UI into it and then make the window
// visible.
//
// You have 17 seconds to return from this method, or iOS will terminate your application.
//
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
}
}

Просмотреть файл

@ -1,117 +0,0 @@
{
"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"
}
}

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 69 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 3.7 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 5.1 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 845 B

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.5 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.3 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.4 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.7 KiB

Просмотреть файл

@ -1,35 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-ios</TargetFramework>
<OutputType>Exe</OutputType>
<Nullable>enable</Nullable>
<ImplicitUsings>true</ImplicitUsings>
<SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
<RuntimeIdentifier>iossimulator-x64</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
<None Remove="Properties\" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2612" />
<PackageReference Include="Xamarin.Essentials" Version="1.8.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BuildAllXamarinForms\BuildAllXamarinForms.csproj" />
</ItemGroup>
<ItemGroup>
<BundleResource Condition="'$(_ResourcePrefix)' != ''" Update="Resources\Default-568h%402x.png">
<Link>Resources\Default-568h%402x.png</Link>
</BundleResource>
<BundleResource Condition="'$(_ResourcePrefix)' != ''" Update="Resources\Default-Portrait%402x.png">
<Link>Resources\Default-Portrait%402x.png</Link>
</BundleResource>
<BundleResource Condition="'$(_ResourcePrefix)' != ''" Update="Resources\Default%402x.png">
<Link>Resources\Default%402x.png</Link>
</BundleResource>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>

Просмотреть файл

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>MinimumOSVersion</key>
<string>13.0</string>
<key>CFBundleDisplayName</key>
<string>BuildAllXamarinForms</string>
<key>CFBundleIdentifier</key>
<string>com.companyname.BuildAllXamarinForms</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>CFBundleName</key>
<string>BuildAllXamarinForms</string>
<key>XSAppIconAssets</key>
<string>Assets.xcassets/AppIcon.appiconset</string>
</dict>
</plist>

Просмотреть файл

@ -1,21 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Foundation;
using UIKit;
namespace BuildAllXamarinForms.iOS
{
public class Application
{
// 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));
}
}
}

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 8.7 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 10 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 34 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 7.1 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 8.2 KiB

Просмотреть файл

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13142" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="X5k-f2-b5h">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="gAE-YM-kbH">
<objects>
<viewController id="X5k-f2-b5h" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Y8P-hJ-Z43"/>
<viewControllerLayoutGuide type="bottom" id="9ZL-r4-8FZ"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="yd7-JS-zBw">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" misplaced="YES" image="Icon-60.png" translatesAutoresizingMaskIntoConstraints="NO" id="23">
<rect key="frame" x="270" y="270" width="60" height="60"/>
<rect key="contentStretch" x="0.0" y="0.0" width="0.0" height="0.0"/>
</imageView>
</subviews>
<color key="backgroundColor" red="0.20392156862745098" green="0.59607843137254901" blue="0.85882352941176465" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="23" firstAttribute="centerY" secondItem="yd7-JS-zBw" secondAttribute="centerY" priority="1" id="39"/>
<constraint firstItem="23" firstAttribute="centerX" secondItem="yd7-JS-zBw" secondAttribute="centerX" priority="1" id="41"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="XAI-xm-WK6" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="349" y="339"/>
</scene>
</scenes>
<resources>
<image name="Icon-60.png" width="180" height="180"/>
</resources>
</document>

Просмотреть файл

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="BuildAllXamarinForms.App">
<Application.Resources>
</Application.Resources>
</Application>

Просмотреть файл

@ -1,29 +0,0 @@
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace BuildAllXamarinForms
{
public partial class App : Application
{
public App ()
{
InitializeComponent();
MainPage = new MainPage();
}
protected override void OnStart ()
{
}
protected override void OnSleep ()
{
}
protected override void OnResume ()
{
}
}
}

Просмотреть файл

@ -1,3 +0,0 @@
using Xamarin.Forms.Xaml;
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

Просмотреть файл

@ -1,26 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>portable</DebugType>
<DebugSymbols>true</DebugSymbols>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup>
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2612" />
<PackageReference Include="Xamarin.Essentials" Version="1.8.0" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="BuildAllXamarinForms.MainPage">
<StackLayout>
<Frame BackgroundColor="#2196F3" Padding="24" CornerRadius="0">
<Label Text="Welcome to Xamarin.Forms!" HorizontalTextAlignment="Center" TextColor="White" FontSize="36"/>
</Frame>
<Label Text="Start developing now" FontSize="Title" Padding="30,10,30,10"/>
<Label Text="Make changes to your XAML file and save to see your UI update in the running app with XAML Hot Reload. Give it a try!" FontSize="16" Padding="30,0,30,0"/>
<Label FontSize="16" Padding="30,24,30,0">
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text="Learn more at "/>
<Span Text="https://aka.ms/xamarin-quickstart" FontAttributes="Bold"/>
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
</StackLayout>
</ContentPage>

Просмотреть файл

@ -1,19 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace BuildAllXamarinForms
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
}
}

Просмотреть файл

@ -1,6 +1,6 @@
@using System
@using System.Linq
<Project Sdk="Xamarin.Legacy.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>$(_DefaultTargetFrameworks)</TargetFrameworks>
<IsBindingProject>true</IsBindingProject>