O Xamarin.Essentials abstrai recursos móveis nativos em um conjunto de APIs de plataforma cruzada com o objetivo de simplificar seu uso. Depois de alguns meses em sua prévia, ele foi lançado oficialmente com uma série de melhorias contribuídas pela comunidade.
O Xamarin forneceu por muito tempo uma maneira de usar recursos nativos oferecidos pela plataforma host. Isso vem na forma de ligações que expõem a API nativa em C#. Por exemplo, recursos do iOS como ARKit, acelerômetro e até mesmo o tempo de execução Objective-C estão disponíveis através do framework Xamarin.iOS. Essa abordagem permite que os desenvolvedores usem recursos nativos usando as APIs reais do iOS, Android ou macOS - somente eles podem fazer isso agora sem sair do C#.
O Xamarin.Essentials segue uma abordagem diferente, com base em uma única API, que é a mesma em todas as plataformas suportadas. Isso tem a vantagem de que uma parte maior da sua lógica de negócios possa permanecer genérica. De acordo com o engenheiro da Microsoft, Xamarin James Montemagno, o Xamarin.Essentials é altamente otimizado e o Xamarin só vinculará os recursos que são realmente usados e tirará o resto.
Atualmente, o Xamarin.Essentials inclui mais de 30 recursos nativos, abrangendo desde conectividade até geolocalização, informações do dispositivo até armazenamento seguro e muito mais.
Muitas das APIs incluídas no Xamarin.Essentials tentam compartilhar um design semelhante. Por exemplo, o magnetômetro, giroscópio, bússola e outros exigem que você use os métodos start
e stop
para iniciar ou parar para ouvir mudanças no sensor correspondente, com alterações enviadas de volta através do evento ReadingChanged
. Outras APIs do Essentials seguem um estilo mais imperativo. Por exemplo, para ligar ou desligar a lanterna, armazenar com segurança uma sequência de bytes, ou executar um pedaço de código no thread principal, basta chamar o método correspondente. As principais diferenças entre plataformas reside nos diferentes sistemas de permissão que cada plataforma adota e nos diferentes requisitos que um aplicativo deve cumprir. No entanto, essas são documentadas minuciosamente juntamente com cada API.
O Xamarin.Essentials requer Android 4.4 ou superior, iOS 10.0 ou superior, ou UWP 10.0.16299.0 ou superior. Você pode adicionar Xamarin.Essentials ao seu projeto usando NuGet e referenciá-lo a partir de seus arquivos de origem adicionando usando Xamarin.Essentials;. Se você já tem um aplicativo Xamarin e gostaria de mudar para Xamarin.Essentials, não perca o guia de transição escrito por Montemagno. Caso contrário, um ótimo ponto de partida é o aplicativo oficial Xamarin GeoContacts.