O X do Xamarin Forms — “Escondendo” o teclado. Dependency Service em Ação

Fala Galera,
Existem algumas situações que precisamos nos mesmos retirar o teclado da tela para não atrapalhar a experiencia do usuário. Um campo de pesquisa por exemplo, após apertar um botão o teclado deve desaparecer.
Esconder o teclado funciona de forma diferente no IOS e no Android, mas e no Xamarin.Forms? E ai que entra o Fodastico Dependency Service !
Espera aeeeeeeeee, 2 artigos em um ? Isso, o teclado foi só uma desculpa :P
Dependency Service
De uma forma resumida, o Dependency Service nos permite acessar funções nativas das plataformas no Xamarin.Forms.
Mas como funciona? Veja o Esquema abaixo :

Basicamente precisamos de 3 Componentes para utilizar o Dependency Service :
- Interface —A funcionalidade que queremos utilizar é definida por uma interface no código compartilhado
- Implementação por plataforma — As classes que implementarão essa interface em cada projeto nativo.
- Registro— Cada implementação deve ser registrada no Dependency Service através de atributos, assim o mesmo poderá encontrar a implementação em tempo de execução.
Achou complicado ? Que nada, vamos ver na pratica.. Agora entra o Papel do teclado nessa historia :D
Implementando o “Esconder” teclado
Seguindo nossa receita de Bolo acima, vamos implementar a Interface IKeyboardHelper no nosso projeto compartilhado :
Certo, agora devemos implementar por plataforma a classe correspondente e o registro.
No projeto IOS vamos criar a iOSKeyboardHelper.cs :
Veja que implementamos o [assembly: Dependency(typeof(iOSKeyboardHelper))] , é com esse atributo que o Dependency Service vai saber qual classe deve chamar no projeto IOS.
Vamos agora fazer no Android o mesmo :
Perfeito! agora fizemos a receita completa. Mas como utilizamos ?
Com apenas uma linha de Código! Sim, simples assim !
Crie um botão Simples no seu projeto Xamarin.Forms, e no evento chame o método :
Chamando apenas o DependencyService.Get<IKeyboardHelper>().HideKeyboard(); a classe da plataforma correspondente é acionada !
Simples não ?
Agora sempre que precisar de algo especifico da plataforma , seu novo amigo se chama Dependency Service
Quem quiser pode baixar o código aqui.
Existem mais 2 Exemplos interessantes da própria Xamarin :
· Checando a orientação do dispositivo
· Checando o status da bateria
Espero ter ajudado!
Aquele abraço!