Xamarin Forms Dependency Services

Acessando serviços do dispositivo via Xamarin Forms

Muitas pessoas tem medo de utilizar soluções cross platform com o receio de não conseguir acessar serviços como GPS, Bluetooth, Text To Speech ou ter acesso a componentes nativos como Mapas, Stream, Abas e outros. Diferente de algumas plataformas que dificultam muito essa implementação, com o Xamarin Forms você consegue utilizar as teorias mais básicas de orientação a objeto para fazer isso. Já falamos anteriormente sobre os Custom Renderers para criar ou customizar as Views,  que tal começarmos a falar dos Serviços de Dependência da Xamarin?

Xamarin Forms Dependency Services

Com o Xamairn Forms é possível utilizar a classe DependencyServices para buscar serviços de uma Interface implementados em cada device, para isso precisamos executar 3 passos:

  • Criar uma interface para declarar tudo o que será feito pelo seu serviço, isso deve ser feito na Camada da PCL (Forms)
  • Implementar a interface criando a execução de cada serviço nas plataformas especificas Android, iOS e Windows Phone.
  • Registrar as implementações desses serviços e busca-los no Forms.

 

Criando a Interface

Após criar seu projeto Xamarin Forms utilizando PCL você deve adicionar uma INTERFACE para assinar os métodos, vamos usar como exemplo o serviço de fala, para transpor textos em voz utilizando assim a Google Now do android. Veja a Interface

Implementando os Serviços

Após registrado os serviços que serão feitos, devemos ir na plataforma especifica e criar uma classe, essa deve implementar a sua interface e o que mais for necessário para funcionamento do mesmo. Observe a seguir a implementação para Android dentro do projeto feito com Xamarin Forms

Observe que o método Falar que foi assinado na interface está implementando para Android, da mesma forma que é implementado de forma nativa.

Registando e Comunicando com o Serviço

Para que o Xamarin Forms encontre sua implementação e possa executar tudo o que foi feito em cada plataforma, é necessário registrar seu serviço, para isso usamos o registro de assembly acima do namespace da sua classe, como visto no código anterior temos a linha [assembly : Xamarin.Forms.Dependency (typeof(RenderersEServices.Droid.Falar))] que registra o serviço.

Para fazer a chamada do seu serviço dentro da aplicação nós devemos implementar a chamada da interface utilizando os Dependency Services, para isso utilizando a seguinte linha:

DependencyService.Get<IFalar> ().Conversar (“Olá Leitores);

Nossa implementação ficaria assim na classe que inicia nosso projeto

 

Vídeo

Ontem foi feito um vídeo e está aqui em baixo mostrando e explicando um pouco mais sobre isso

 

Para ler um pouco mais basta acessar o site oficial.

O projeto trata está no GitHub

E você leitor, tem tentado criar algum serviço e tem dúvidas? Criou algo que não existia dentro do Xamarin Forms e quer compartilhar? Deixe seu comentário.

Não esqueça de se inscrever no nosso canal e curtir nossa página no Facebook!

Acessando serviços do dispositivo via Xamarin Forms
5 (100%) 2 votos

Rafael Moura

Desenvolvedor .NET, mais de 5 anos de experiência, apaixonado por tecnologia, Xamarin Student Partner Regional Lead Central/South America, Xamarin Comunity Speaker, Xamarin Certified Mobile Developer e Windows Phone Developer.

5 comentários em “Acessando serviços do dispositivo via Xamarin Forms

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: