
ContentProvider no Android, Entendendo e Utilizando
(6635)

CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim

CategoriaEngenharia de Software
Autor(es)Eric Evans
EditoraAlta Books
Edição3ª
Ano2016
Páginas528
Tudo bem?
Na vídeo aula acima nós vamos, passo a passo, destrinchar o principal componente Android de compartilhamento de conteúdo privado.
Estamos falando do ContentProvider e consequentemente de algumas outras APIs que o complementam, são elas:
- ContenteResolver;
- e UriMatcher.
É muito importante que você, antes de consumir a vídeo aula, leia todo este artigo. Pois aqui tem dicas importantes para que você não se perca neste conteúdo, que apesar de longo é bem completo.
Já quero lhe adiantar que o conteúdo sobre ContentProvider, o domínio deste conteúdo (em meu ponto de vista), é um excelente primeiro passo para a sua masterização (especialização) como desenvolvedor de aplicativos Android.
Pois apesar de ser algo muito especifico de domínio, ou seja, serão poucos os projetos Android que exigirão de você a implementação de compartilhamento de conteúdo com um ContentProvider.
Apesar disso, aprender e dominar o trabalho com está API vai facilitar em muito o seu trabalho como profissional de desenvolvimento de apps Android.
Pois você, de forma inevitável, entenderá mais sobre como funciona o compartilhamento seguro de dados com aplicativos clientes.
Além de ter a habilidade de fazer isso com a API recomendada pela documentação oficial. Ainda com a possibilidade de configuração completa em projeto em poucos minutos.
E mais... algo que eu Vinícius considero muito importante:
Se você domina conteúdos que exigem mais foco e dedicação, conteúdos difíceis. Como no caso do ContentProvider.
Então o domínio de outros conteúdos fáceis, ou não, será bem mais simples.
Mas antes que você se sinta confuso, principalmente porque eu ainda não lhe dei uma definição completa.
Antes dessa possível confusão... basicamente o ContentProvider é:
Uma API Android que permite que nós desenvolvedores liberemos alguns dados de nossos aplicativos para outros apps.
Isso de maneira segura, padronizada e controlada.
Os dados podem ter inúmeras origens a partir de nosso aplicativo.
Exemplo:
✓ SQLite;
✓ Arquivos de mídia (imagem, vídeo, áudio) armazenados dentro de folders no SDCard, folders vinculados ao nosso app;
✓ ...
Com a API ContentResolver e com acesso às URIs de compartilhamento de dados de nosso aplicativo, utilizando o UriMatcher, os aplicativos de terceiros (aplicativos clientes) poderão acessar todos os dados de nosso aplicativo, dados que são passíveis de acesso.
Um exemplo para ficar bem claro. Mesmo que não recomendado dessa forma...
... é possível permitir que aplicativos sociais consigam preencher os dados de cadastro de um novo usuário. Isso com acesso, via ContentResolver, à configuração ContentProvider de nosso app.
Há inúmeras maneiras de permitir que dados de seu aplicativo sejam acessados.
Mas sem sombra de dúvidas o uso de ContentProvider já oferece ao menos uma camada de segurança que alivia a nossa "dor" como desenvolvedor de ter que desenvolver na "unha" todo o algoritmo de segurança.
Voltando ao assunto "vídeo aula"...
Não deixe de entender por completo, além do ContentProvider, as APIs ContentResolver e UriMatcher.
Como informado anteriormente, é o ContentResolver que permite o acesso ao ContentProvider.
E o UriMatcher, apesar de não ser obrigatório na comunicação ContentResolver ⇄ ContentProvider, é essa API que padroniza a "linguagem" utilizada na comunicação.
Sempre é bom lembrar: "Padronização evita confusão."
Fique também ligado em toda a configuração necessária no AndroidManifest.xml. Configuração com as tags <provider>, <permission> e <uses-permission>.
São essas tags que informam a todo o sistema, incluindo quando já na Google Play Store, que o aplicativo provê conteúdos via ContentProvider.
E como último informe sobre o conteúdo da vídeo aula:
Para compartilhamento de conteúdos binários (imagem, vídeo, áudio, ...) via openInputStream() e openOutputStream()...
... temos também que trabalhar com a coluna _data (não é obrigatório, mas é uma escolha inteligente) no SQLite para que não seja necessária a implementação do código que abre e fecha o stream da entidade binária.
Então é isso.
Se você está preocupado em ir para o próximo nível no desenvolvimento de aplicativos Android. Preocupado em se masterizar, se especializar.
Então dominar o ContentProvider será um excepcional primeiro (ou o mais novo) passo.
Antes de finalizar, deixo abaixo alguns links de outros conteúdos do Blog que lhe colocarão em dia com o que há de atual no mercado de desenvolvimento de aplicativos Android:
- Kotlin Android, Entendendo e Primeiro Projeto;
- Android Studio: Instalação, Configuração e Otimização;
- Android Mobile-Commerce, Apresentação e Protótipo do Projeto.
E caso você tenha como meta aprender a criar aplicativos, ou evoluir nesta área, também com o conteúdo gratuito do Blog e canal, então não deixe de acessar a lista de estudos em:
Não esqueça de se inscrever 📫 na lista de e-mails do Blog para receber os conteúdos Android em primeira mão e também em formato PDF (esse formato é liberado somente para os inscritos na lista de e-mails).
Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades.
Surgindo dúvidas ou dicas, pode enviar abaixo na área de comentários que logo eu lhe retorno.
Obs. : o link para download do projeto apresentado na vídeo aula se encontra logo abaixo no artigo, mais precisamente na seção "Download".
Abraço.
Eclipse IDE vs Android Studio IDE
Apesar do conteúdo da vídeo aula acima estar utilizando o Eclipse IDE 😱. Tudo que é apresentado, tanto a parte teórica quanto a parte prática, é ainda válido nos dias de hoje com o desenvolvimento Android utilizando o Android Studio 😁.
Ou seja, independente da linguagem oficial (Java, Kotlin, C ou C++), IDE ou framework que você esteja utilizando, o conteúdo acima é ainda de grande utilidade.
AndroidX
Apesar do conteúdo sobre ContentProvider ainda estar atual e ser um grande diferencial para qualquer nível de desenvolvedor Android.
Principalmente para aqueles que estão buscando a masterização (especialização) como desenvolvedor mobile.
Apesar disso eu também recomendo, assim que finalizado o projeto em sua própria instalação de IDE, que você o migre para o AndroidX.
Algo que pode ser feito com poucos cliques, como apresentado no tutorial a seguir: Migrar para o AndroidX.
Fontes
Documentação oficial ContentProvider Android
Documentação oficial ContentResolver Android
Documentação oficial UriMatcher Android
Fundamentos do provedor de conteúdo
Criação de um provedor de conteúdo
ListView: Entendendo e Utilizando no Android
Utilizando BaseAdapter Para Personalização Completa da ListView
Comentários Facebook