Fonte:
dotnet workload list
A lista estando vazia é preciso instalar a partir do configurador do Visual Studio
dotnet new --list
A lista vai mostrar os templates disponíveis de acordo com os workloads instalados.
dotnet new maui -n "PassXYZ.Vault"
dotnet build -t:Run -f net8.0-android
Uma variedade de recursos desde imagens, fontes, splash screens, estilos e outros arquivos crus ficam neste pasta. Estes recursos podem ser usando por todas as plataformas.
Evento | Descrição | Transição de Estado | Método sobrescrito |
---|---|---|---|
Created | Este evento é gerado após a criação da janela nativa. | Not running -> Running | OnCreated |
Activated | Este evento é gerado quando a janela foi ativada e é, ou se tornará, a janela em foco. | Not running -> Running | OnActivated |
Deactivated | Este evento é gerado quando a janela não é mais a janela em foco. No entanto, a janela ainda pode estar visível. | Running -> Deactivated | OnDeactivated |
Stopped | Este evento é gerado quando a janela não está mais visível. | Deactivated -> Stopped | OnStopped |
Resumed | Este evento é gerado quando um aplicativo é retomado após ser interrompido. | Stopped -> Running | OnResumed |
Destroying | Este evento é gerado quando a janela nativa está sendo destruída e desalocada. | Stopped -> Not running | OnDestroying |
Como se faz a subscrição em cada tipo de evento:
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new AppShell();
}
protected override Window CreateWindow(IActivationState activationState)
{
Window window = base.CreateWindow(activationState);
window.Created += (s, e) => {
Debug.WriteLine("PassXYZ.Vault.App: 1. Created event");
};
window.Activated += (s, e) => {
Debug.WriteLine("PassXYZ.Vault.App: 2. Activated event");
};
window.Deactivated += (s, e) => {
Debug.WriteLine("PassXYZ.Vault.App: 3. Deactivated event");
};
window.Stopped += (s, e) => {
Debug.WriteLine("PassXYZ.Vault.App: 4. Stopped event");
};
window.Resumed += (s, e) => {
Debug.WriteLine("PassXYZ.Vault.App: 5. Resumed event");
};
window.Destroying += (s, e) => {
Debug.WriteLine("PassXYZ.Vault.App: 6. Destroying event");
};
return window;
}
}
Depois de lançarmos nosso aplicativo, podemos ver que os eventos Created e Activated são acionados. Então, minimizamos nosso aplicativo. Podemos ver que os eventos Deactivated e Stopped são disparados. Quando retomamos nosso aplicativo, os eventos Resumed e Activated são disparados. Finalmente, fechamos nosso aplicativo e um evento Destroying é disparado.
Estes 3 recursos podem ser configurados no arquivo MauiProgram.cs, logo após a criação do builder.
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
#if DEBUG
builder.Logging.AddDebug();
#endif
builder.Services.AddSingleton<MainPage>();
builder.Services.AddSingleton<BeerPage>();
builder.Services.AddSingleton<IGetCalculatedPricePerLiterQuery, GetCalculatedPricePerLiterQuery>();
builder.Services.AddSingleton<IDateTimeProvider, LocalDateTimeProvider>();
builder.Services.AddSingleton(s => ActivatorUtilities.CreateInstance<RepositoryManager>(s, dbPath));
builder.Services.AddSingleton<ICreateBeerCommand, CreateBeerCommand>();
builder.Services.AddSingleton<IGetAllBeerQuery, GetAllBeerQuery>();
return builder.Build();
Fonte:
Ao publicar seu aplicativo .NET MAUI para Android, você gera um arquivo Android Package (APK) ou Android App Bundle (AAB). O APK é usado para instalar seu aplicativo em um dispositivo Android e o AAB é usado para publicar seu aplicativo no Google Play.