➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/true-time-api-para-data-e-horario-ntp-no-android
Neste conjunto de slides vamos ao estudo da importância de se ter data e horário exatos em alguns domínios de problema Android.
Também aprenderemos como obter essa exatidão utilizando uma biblioteca específica para comunicação com servidores NTP, mais precisamente a biblioteca True Time Android.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=TRUE_TIME_API&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
1. A biblioteca Android-State permite reter o estado de objetos em atividades, fragmentos e visualizações em aplicativos Android de forma simples.
2. Ela funciona internamente utilizando o SaveInstanceState, mas de forma transparente ao desenvolvedor, evitando código boilerplate.
3. Há casos em que o ViewModel é mais apropriado, como quando se precisa reter listas grandes de objetos, devido às limitações do SaveInstanceState.
Leitor de Códigos no Android com Barcode Scanner API - ZXingVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/leitor-de-codigos-no-android-com-barcode-scanner-api-zxing
Neste conjunto de slides vamos, passo a passo, ao estudo completo da biblioteca Barcode Scanner API para assim utilizar de maneira simples, mas robusta, o projeto ZXing, em aplicativos Android, na leitura de simbologias de códigos de barras.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=BAR_CODE_LEITOR&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Data Binding Para Vinculo de Dados na UI AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/data-binding-para-vinculo-de-dados-na-ui-android
Neste conjunto de slides vamos ao estudo e aplicação da biblioteca Android Data Binding, popular biblioteca que ajuda a diminuir o código boilerplate de vinculo de dados e métodos à interface do usuário.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=DATA_BINDING&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Ajuste de Texto com Autosizing TextView - Android JetpackVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/ajuste-de-texto-com-autosizing-textview-android-jetpack
Neste conjunto de slides vamos ao estudo completo de uma das novas APIs adicionadas ao Android junto ao release do Android 8, Oreo. Autosizing TextView, para expansão e contração de conteúdo em texto de forma dinâmica.
Vamos trabalhar direto com a API de suporte que diferente da API normal, dá suporte a partir do Android 4.0, Ice Cream Sandwich.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
O documento discute a biblioteca Lottie API para animações no Android. A Lottie API permite animações mais completas importadas do After Effects e oferece menos limitações do que outras APIs de animação no Android. A biblioteca suporta animações locais, remotas e permite controle de progresso, frames, velocidade, repetições e cores das animações.
Live Templates Para Otimização de Tempo no Android StudioVinícius Thiengo
Este documento explica como criar e usar live templates no Android Studio para agilizar o desenvolvimento de aplicativos Android. Explica o que são live templates, como criar seus próprios templates personalizados usando variáveis, e lista as funções pré-definidas para variáveis de template.
Como Utilizar Métodos Binding Adapter no AndroidVinícius Thiengo
O documento explica três tipos de métodos binding adapter no Android: 1) busca automática por métodos setters, 2) definição explícita de métodos usando @BindingMethods, 3) definição de lógica com @BindingAdapter. Anotações @Binding permitem customizar métodos setters. @BindingMethods direciona métodos para atributos específicos. @BindingAdapter define lógica para escolher métodos.
O documento discute o padrão async/await em programação assíncrona, explicando seus benefícios como alternativa a estilos de programação síncronos e com callbacks. Apresenta exemplos de implementação em diversas linguagens e discute conceitos importantes como threads, I/O assíncrono e otimização de recursos. Também lista erros comuns e dicas para uma implementação correta do padrão.
1. A biblioteca Android-State permite reter o estado de objetos em atividades, fragmentos e visualizações em aplicativos Android de forma simples.
2. Ela funciona internamente utilizando o SaveInstanceState, mas de forma transparente ao desenvolvedor, evitando código boilerplate.
3. Há casos em que o ViewModel é mais apropriado, como quando se precisa reter listas grandes de objetos, devido às limitações do SaveInstanceState.
Leitor de Códigos no Android com Barcode Scanner API - ZXingVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/leitor-de-codigos-no-android-com-barcode-scanner-api-zxing
Neste conjunto de slides vamos, passo a passo, ao estudo completo da biblioteca Barcode Scanner API para assim utilizar de maneira simples, mas robusta, o projeto ZXing, em aplicativos Android, na leitura de simbologias de códigos de barras.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=BAR_CODE_LEITOR&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Data Binding Para Vinculo de Dados na UI AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/data-binding-para-vinculo-de-dados-na-ui-android
Neste conjunto de slides vamos ao estudo e aplicação da biblioteca Android Data Binding, popular biblioteca que ajuda a diminuir o código boilerplate de vinculo de dados e métodos à interface do usuário.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=DATA_BINDING&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Ajuste de Texto com Autosizing TextView - Android JetpackVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/ajuste-de-texto-com-autosizing-textview-android-jetpack
Neste conjunto de slides vamos ao estudo completo de uma das novas APIs adicionadas ao Android junto ao release do Android 8, Oreo. Autosizing TextView, para expansão e contração de conteúdo em texto de forma dinâmica.
Vamos trabalhar direto com a API de suporte que diferente da API normal, dá suporte a partir do Android 4.0, Ice Cream Sandwich.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
O documento discute a biblioteca Lottie API para animações no Android. A Lottie API permite animações mais completas importadas do After Effects e oferece menos limitações do que outras APIs de animação no Android. A biblioteca suporta animações locais, remotas e permite controle de progresso, frames, velocidade, repetições e cores das animações.
Live Templates Para Otimização de Tempo no Android StudioVinícius Thiengo
Este documento explica como criar e usar live templates no Android Studio para agilizar o desenvolvimento de aplicativos Android. Explica o que são live templates, como criar seus próprios templates personalizados usando variáveis, e lista as funções pré-definidas para variáveis de template.
Como Utilizar Métodos Binding Adapter no AndroidVinícius Thiengo
O documento explica três tipos de métodos binding adapter no Android: 1) busca automática por métodos setters, 2) definição explícita de métodos usando @BindingMethods, 3) definição de lógica com @BindingAdapter. Anotações @Binding permitem customizar métodos setters. @BindingMethods direciona métodos para atributos específicos. @BindingAdapter define lógica para escolher métodos.
O documento discute o padrão async/await em programação assíncrona, explicando seus benefícios como alternativa a estilos de programação síncronos e com callbacks. Apresenta exemplos de implementação em diversas linguagens e discute conceitos importantes como threads, I/O assíncrono e otimização de recursos. Também lista erros comuns e dicas para uma implementação correta do padrão.
SelectionTracker Para Seleção de Itens no RecyclerView AndroidVinícius Thiengo
1. A biblioteca SelectionTracker fornece uma maneira fácil de implementar funcionalidade de seleção de itens no RecyclerView.
2. São necessárias as implementações das classes ItemKeyProvider, ItemDetailsLookup e ItemDetails para permitir que a SelectionTracker acesse os itens e suas informações.
3. Após adicionar a biblioteca e implementar essas classes, é possível inicializar um objeto SelectionTracker, vinculá-lo ao RecyclerView e gerenciar a seleção de itens.
Observable Binding Para Atualização na UI AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/observable-binding-para-atualizacao-na-ui-android
Neste conjunto de slides vamos ao estudo dos tipos observáveis da biblioteca Data Binding. Você notará a facilidade de atualização dos elementos em tela quando utilizando esses tipos.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=OBSERVABLE_BINDING&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Preparar o ambiente para desenvolvimento angularNize Costa
O documento explica os passos para configurar o ambiente de desenvolvimento Angular 4 com TypeScript, incluindo a instalação do Node.js, NPM e Angular CLI. Também mostra como criar um projeto Angular usando o comando "ng new" e iniciar o servidor local com "ng serve".
Como Impulsionar o App Android - Compartilhamento NativoVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/como-impulsionar-o-app-android-compartilhamento-nativo
Neste conjunto de slides vamos estudar como compartilhar conteúdos em aplicativos Android utilizando APIs nativas, mais precisamente, utilizando Intent e IntentFilter.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Android DevConference - Automatizando testes sem sofrimentoiMasters
O documento discute testes automatizados de software, apresentando:
1) A importância da automação de testes para garantir qualidade e evolução rápida de produtos;
2) O histórico de implementação de testes no PagSeguro utilizando ferramentas como Calabash, Robotium e Espresso;
3) Técnicas como mocks, injeção de dependências e testes end-to-end para simular diversos cenários de teste.
Este documento fornece uma lista de conteúdos recomendados para estudar Android, incluindo IDEs, layouts, recursos de mídia, Material Design e mais. Ele também dá dicas sobre como estudar os tópicos, como fazer download dos projetos de exemplo e seguir as implementações no Android Studio.
1. O documento discute técnicas para escalar aplicações React e TypeScript, incluindo estrutura de projetos, boas práticas de código, testes e monitoramento.
2. O autor tem experiência desenvolvendo sites com milhões de visitas diárias e discute como projetos podem crescer rapidamente sem problemas de desempenho ou manutenibilidade.
3. Escalabilidade envolve estruturar o código e projeto para que novos desenvolvedores possam entender facilmente, adicionar novas funcionalidades rapid
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Rogério Moraes de Carvalho
O documento apresenta uma sessão sobre programação assíncrona com C# 5 no Visual Studio 2013. A agenda inclui padrões assíncronos no .NET Framework 4.5.1, o padrão Task-based Asynchronous Pattern (TAP) e os operadores async e await. Duas demonstrações são apresentadas, cobrindo TAP, async e await, além de cancelamento e progresso.
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/android-studio-instalacao-configuracao-e-otimizacao
Neste conjunto de slides vamos passo a passo estudar o Android Studio. Sua origem, o que era utilizado anteriormente, a instalação e configuração deste IDE, otimização para máquinas menos robustas e um primeiro projeto Android.
➙ Para receber os conteúdos do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
1. O Subversion é um sistema de controle de versão desenvolvido para substituir o CVS.
2. Atualmente está na versão 1.8, lançada em junho de 2013.
3. O Subversion usa uma arquitetura centralizada enquanto o Git usa uma arquitetura distribuída.
Este documento fornece informações sobre:
1) Linguagem dinâmica Groovy, arquitetura MVC, mapeamento objeto-relacional Hibernate e convenção sobre configuração no Grails;
2) Princípios do Grails como DRY, YAGNI e KISS;
3) Grails como uma plataforma full-stack que fornece servidor web e banco de dados.
1) O documento descreve o software Visualg 2.0, um editor e interpretador de algoritmos desenvolvido por Cláudio Morgado de Souza para auxiliar no ensino de programação.
2) A interface do Visualg possui menu, barras de ferramentas, editor de texto, visualizador de variáveis e simulador de saída para depurar programas passo a passo.
3) O software foi desenvolvido para oferecer um ambiente simples e didático para iniciantes em programação exercitarem conceitos básicos sem a complexidade de linguagens reais.
Este documento apresenta um livro sobre fundamentos de engenharia reversa de software. O livro é destinado a iniciantes na área e cobre conceitos básicos necessários para compreender como programas de computador funcionam sem ter acesso ao seu código-fonte. O documento também discute áreas de aplicação da engenharia reversa como análise de malware e vulnerabilidades.
O documento discute estratégias para automação de testes em aplicativos Android, incluindo como lidar com testes "flaky" e dependências externas através de mocks e isolamento. Ele também aborda diferentes camadas de testes e ferramentas como Espresso e UIAutomator para testes de interface do usuário.
Annotation Span Para Estilização de Texto no AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/annotation-span-para-estilizacao-de-texto-no-android
Neste conjunto de slides nós vamos, passo a passo, estudar a Annotation Span, API utilizada principalmente em aplicativos que atendem a mais de um idioma e têm estilos complexos em Strings estáticas.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
O documento discute o papel do QA na transformação ágil, identificando anti-patters como realizar testes em fases separadas e focar em testes manuais. Propõe que QA trabalhe em conjunto com outros papéis desde o início, com teste automático, feedback rápido e treinamento para apoiar a transformação.
Essa apresentação aconteceu no 12º Encontro do JUG. Nela falamos sobre os primeiros passos para quem gostaria de debugar com Java utilizando a IDE Eclipse.
Parse Push Notification - O Lado negro da forçaRudson Lima
O documento fornece instruções passo a passo para configurar notificações por push em aplicativos móveis usando as plataformas Parse e Google Cloud Messaging (GCM). Ele explica como criar projetos no console do Parse e Google, gerar chaves de API, e integrar as configurações no código de um aplicativo existente ou de exemplo.
O documento resume as principais mudanças e novidades do .NET Framework 4.0, incluindo melhorias na compatibilidade, computação paralela, DLR, Code Contracts, Entity Framework 4 e WPF/WCF.
O documento discute a integração de sistemas usando a tecnologia XML-RPC, apresentando um ambiente onde Java é usada como plataforma de serviços consumidos por clientes em Delphi e .NET. O autor também descreve como implementou um servidor Java com diversos serviços e clientes em Delphi e .NET para consumi-los via XML-RPC.
SelectionTracker Para Seleção de Itens no RecyclerView AndroidVinícius Thiengo
1. A biblioteca SelectionTracker fornece uma maneira fácil de implementar funcionalidade de seleção de itens no RecyclerView.
2. São necessárias as implementações das classes ItemKeyProvider, ItemDetailsLookup e ItemDetails para permitir que a SelectionTracker acesse os itens e suas informações.
3. Após adicionar a biblioteca e implementar essas classes, é possível inicializar um objeto SelectionTracker, vinculá-lo ao RecyclerView e gerenciar a seleção de itens.
Observable Binding Para Atualização na UI AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/observable-binding-para-atualizacao-na-ui-android
Neste conjunto de slides vamos ao estudo dos tipos observáveis da biblioteca Data Binding. Você notará a facilidade de atualização dos elementos em tela quando utilizando esses tipos.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=OBSERVABLE_BINDING&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Preparar o ambiente para desenvolvimento angularNize Costa
O documento explica os passos para configurar o ambiente de desenvolvimento Angular 4 com TypeScript, incluindo a instalação do Node.js, NPM e Angular CLI. Também mostra como criar um projeto Angular usando o comando "ng new" e iniciar o servidor local com "ng serve".
Como Impulsionar o App Android - Compartilhamento NativoVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/como-impulsionar-o-app-android-compartilhamento-nativo
Neste conjunto de slides vamos estudar como compartilhar conteúdos em aplicativos Android utilizando APIs nativas, mais precisamente, utilizando Intent e IntentFilter.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Android DevConference - Automatizando testes sem sofrimentoiMasters
O documento discute testes automatizados de software, apresentando:
1) A importância da automação de testes para garantir qualidade e evolução rápida de produtos;
2) O histórico de implementação de testes no PagSeguro utilizando ferramentas como Calabash, Robotium e Espresso;
3) Técnicas como mocks, injeção de dependências e testes end-to-end para simular diversos cenários de teste.
Este documento fornece uma lista de conteúdos recomendados para estudar Android, incluindo IDEs, layouts, recursos de mídia, Material Design e mais. Ele também dá dicas sobre como estudar os tópicos, como fazer download dos projetos de exemplo e seguir as implementações no Android Studio.
1. O documento discute técnicas para escalar aplicações React e TypeScript, incluindo estrutura de projetos, boas práticas de código, testes e monitoramento.
2. O autor tem experiência desenvolvendo sites com milhões de visitas diárias e discute como projetos podem crescer rapidamente sem problemas de desempenho ou manutenibilidade.
3. Escalabilidade envolve estruturar o código e projeto para que novos desenvolvedores possam entender facilmente, adicionar novas funcionalidades rapid
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Rogério Moraes de Carvalho
O documento apresenta uma sessão sobre programação assíncrona com C# 5 no Visual Studio 2013. A agenda inclui padrões assíncronos no .NET Framework 4.5.1, o padrão Task-based Asynchronous Pattern (TAP) e os operadores async e await. Duas demonstrações são apresentadas, cobrindo TAP, async e await, além de cancelamento e progresso.
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/android-studio-instalacao-configuracao-e-otimizacao
Neste conjunto de slides vamos passo a passo estudar o Android Studio. Sua origem, o que era utilizado anteriormente, a instalação e configuração deste IDE, otimização para máquinas menos robustas e um primeiro projeto Android.
➙ Para receber os conteúdos do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
1. O Subversion é um sistema de controle de versão desenvolvido para substituir o CVS.
2. Atualmente está na versão 1.8, lançada em junho de 2013.
3. O Subversion usa uma arquitetura centralizada enquanto o Git usa uma arquitetura distribuída.
Este documento fornece informações sobre:
1) Linguagem dinâmica Groovy, arquitetura MVC, mapeamento objeto-relacional Hibernate e convenção sobre configuração no Grails;
2) Princípios do Grails como DRY, YAGNI e KISS;
3) Grails como uma plataforma full-stack que fornece servidor web e banco de dados.
1) O documento descreve o software Visualg 2.0, um editor e interpretador de algoritmos desenvolvido por Cláudio Morgado de Souza para auxiliar no ensino de programação.
2) A interface do Visualg possui menu, barras de ferramentas, editor de texto, visualizador de variáveis e simulador de saída para depurar programas passo a passo.
3) O software foi desenvolvido para oferecer um ambiente simples e didático para iniciantes em programação exercitarem conceitos básicos sem a complexidade de linguagens reais.
Este documento apresenta um livro sobre fundamentos de engenharia reversa de software. O livro é destinado a iniciantes na área e cobre conceitos básicos necessários para compreender como programas de computador funcionam sem ter acesso ao seu código-fonte. O documento também discute áreas de aplicação da engenharia reversa como análise de malware e vulnerabilidades.
O documento discute estratégias para automação de testes em aplicativos Android, incluindo como lidar com testes "flaky" e dependências externas através de mocks e isolamento. Ele também aborda diferentes camadas de testes e ferramentas como Espresso e UIAutomator para testes de interface do usuário.
Annotation Span Para Estilização de Texto no AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/annotation-span-para-estilizacao-de-texto-no-android
Neste conjunto de slides nós vamos, passo a passo, estudar a Annotation Span, API utilizada principalmente em aplicativos que atendem a mais de um idioma e têm estilos complexos em Strings estáticas.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
O documento discute o papel do QA na transformação ágil, identificando anti-patters como realizar testes em fases separadas e focar em testes manuais. Propõe que QA trabalhe em conjunto com outros papéis desde o início, com teste automático, feedback rápido e treinamento para apoiar a transformação.
Essa apresentação aconteceu no 12º Encontro do JUG. Nela falamos sobre os primeiros passos para quem gostaria de debugar com Java utilizando a IDE Eclipse.
Parse Push Notification - O Lado negro da forçaRudson Lima
O documento fornece instruções passo a passo para configurar notificações por push em aplicativos móveis usando as plataformas Parse e Google Cloud Messaging (GCM). Ele explica como criar projetos no console do Parse e Google, gerar chaves de API, e integrar as configurações no código de um aplicativo existente ou de exemplo.
O documento resume as principais mudanças e novidades do .NET Framework 4.0, incluindo melhorias na compatibilidade, computação paralela, DLR, Code Contracts, Entity Framework 4 e WPF/WCF.
O documento discute a integração de sistemas usando a tecnologia XML-RPC, apresentando um ambiente onde Java é usada como plataforma de serviços consumidos por clientes em Delphi e .NET. O autor também descreve como implementou um servidor Java com diversos serviços e clientes em Delphi e .NET para consumi-los via XML-RPC.
Acelerando sites e aplicações Web com uma CDNJose Papo, MSc
O documento discute como usar uma rede de distribuição de conteúdo (CDN) para acelerar sites e aplicações web. Ele mostra que melhorias na velocidade podem aumentar a receita em até 12% e atrair 50% mais visualizações de páginas. A Amazon CloudFront é apresentada como uma CDN flexível que pode deixar sites até 70% mais rápidos ao distribuir conteúdo estático e dinâmico de forma global a partir de bordas de rede.
O documento discute como usar uma rede de distribuição de conteúdo (CDN) como a Amazon CloudFront para acelerar sites e aplicações web, tornando-os até 70% mais rápidos. Uma CDN armazena cópias de conteúdo estático e dinâmico em locais de borda ao redor do mundo para fornecer conteúdo aos usuários de forma mais rápida. Isso pode aumentar a receita de um site em até 12% ao melhorar o tempo de resposta, e reduzir a carga nos servidores originais. A CloudFront
Arquitetura Serverless para Machine LearningFelipe Santos
Nesta apresentação, trazemos uma jornada de análise de arquiteturas serverless para se utilizar com machine learning. Analisamos vários pontos, mostrando os prós e contras de cada solução.
O documento contém as respostas para uma lista de exercícios sobre redes de computadores. Aborda tópicos como protocolos de transporte UDP e TCP, números de porta, conexões, temporizadores, checksums e técnicas de recuperação de erros como retransmissão seletiva e volta-N.
O documento descreve como a GetNinjas usa GraphQL para acessar dados de outros sistemas durante a execução de processos de negócio (BPMNs). O GraphQL é usado para consultar dados de sistemas externos como Kitana e Gaara durante a execução dos BPMNs no Camunda. O Gaara contém um administrador onde são cadastradas tarefas e queries de GraphQL para serem executadas pelo Camunda.
Relatório analytics de mula tempo de execução usando splunkJeison Barros
Este documento fornece instruções para configurar um Mule Runtime para enviar métricas e logs para o Splunk, incluindo registrar um agente, configurar uma porta de entrada no Splunk, e construir dashboards e relatórios no Splunk para monitoramento. Ele descreve os três passos principais: configurar o Mule Runtime com o agente mais recente, configurar o Mule Runtime para relatar métricas para o Splunk, e construir dashboards e relatórios no Splunk.
O documento descreve quatro protocolos de rede importantes: DHCP fornece endereços IP dinâmicos para dispositivos de rede; DNS mapeia nomes de domínio para endereços IP; SMTP é usado para envio de email; e NTP sincroniza os relógios dos dispositivos de rede.
A palestra tem como objetivo apresentar os principais erros cometidos pelas pessoas ao utilizar sites de relacionamento. Serão apresentados os principais dados publicados, os riscos envolvidos na divulgação de informações pessoais e profissionais em redes sociais, como estes dados são utilizados por criminosos. Abordaremos ainda como as empresas podem se prevenir deste tipo de problema, evitando que um descuido de um funcionário se torne um risco para a organização. Será apresentado o projeto HCF-Hackers Construindo Futuros o qual pretende mudar este cenário.
A palestra tem como objetivo apresentar os principais erros cometidos pelas pessoas ao utilizar sites de relacionamento. Serão apresentados os principais dados publicados, os riscos envolvidos na divulgação de informações pessoais e profissionais em redes sociais, como estes dados são utilizados por criminosos. Abordaremos ainda como as empresas podem se prevenir deste tipo de problema, evitando que um descuido de um funcionário se torne um risco para a organização. Será apresentado o projeto HCF-Hackers Construindo Futuros o qual pretende mudar este cenário.
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoRenato Groff
Renato Groffe é um desenvolvedor .NET, autor técnico e palestrante. Ele fornece treinamento sobre Azure e é organizador do Canal .NET e do .NET São Paulo. O documento apresenta uma agenda sobre ASP.NET Core, incluindo visão geral, dicas, exemplos de APIs REST, injeção de dependências, suporte a JSON e XML, acesso a dados e documentação de APIs.
O documento descreve o que é COMET e como ele pode ser usado para fornecer atualizações em tempo real de um servidor para um cliente web mantendo uma conexão persistente. Ele discute como COMET funciona, exemplos de implementação e como frameworks como CometD e DWR facilitam seu uso.
Este documento resume discussões sobre métricas e estimativas de projetos de software. Contém informações sobre:
1) Como contar manutenções em requisitos não funcionais para estimativas de esforço;
2) Faixas típicas de produtividade (horas/ponto de função) para diferentes linguagens;
3) Métodos para calibração de fórmulas de estimativa de prazo baseadas em métricas históricas.
RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02Wise Systems
O documento fornece uma introdução ao Rational Team Concert (RTC) focando em suas funcionalidades de controle de versão (Jazz SCM). Apresenta conceitos como change sets, streams, componentes, workspaces local e remoto, baselines, entre outros. Também inclui exemplos práticos de uso dessas funcionalidades e exercícios para aplicação dos conceitos apresentados.
1. O documento discute como planejar testes e capacidade para MOSS 2007, incluindo como determinar a taxa de transferência necessária e criar ambientes e casos de teste.
2. É destacada a importância de se definir claramente os objetivos dos testes e de se saber o que medir para atingir esses objetivos.
3. Ferramentas como VSTT e SPTDataPop são apresentadas para auxiliar na criação de ambientes e casos de teste personalizados.
O documento discute redes multimídia, incluindo requisitos de serviço para aplicações de áudio e vídeo, protocolos como RTSP e RTP, e como a Internet pode evoluir para melhor suportar aplicações multimídia. É apresentada uma visão geral de aplicações de áudio e vídeo armazenados, em tempo real e interativas, além de discussões sobre como aproveitar o melhor esforço da Internet e possíveis caminhos para a evolução da rede.
REST e GraphQL são duas APIs populares. REST usa métodos HTTP como GET e POST para recuperar e enviar dados, enquanto GraphQL permite que os clientes solicitem exatamente os dados de que precisam através de uma única consulta. Embora GraphQL elimine problemas como over-fetching, REST tem vantagens como cache e monitoramento mais fácil.
A nova arquitetura do DataSnap permite disponibilizar regras de negócios através de Server Methods, esta arquitetura facilita a integração com frameworks de testes, com isso podemos automatizar os testes a cada nova versão dos servidores DataSnap, durante esta apresentação vamos aprender como implementar testes em projetos DataSnap.
Semelhante a True Time API Para Data e Horário NTP no Android (20)
Android: Qual Tecnologia de Desenvolvimento Utilizar?Vinícius Thiengo
➙ Conteúdo completo, texto, em: https://www.thiengo.com.br/android-qual-tecnologia-de-desenvolvimento-utilizar
Neste conjunto de slides vou dar minha opinião sobre qual tecnologia utilizar para o desenvolvimento de aplicativos Android. Minha opinião. E, acredite, não vou "puxar sardinha" para o Kotlin - e nem para nenhuma outra tecnologia.
Certamente o conteúdo deste artigo será de maior valia àqueles que estão indecisos sobre o que utilizar no desenvolvimento de apps Android.
Confesso que também aguardo a sua opinião na área de comentários, pois hoje, com a quantidade de caminhos disponíveis para seguir no dev Android, essa acaba sendo uma das principais discussões.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
7 Livros Que Não São de TI, Mas Que Um Programador Deveria LerVinícius Thiengo
O documento resume 7 livros que um programador deveria ler fora da área de TI. O primeiro livro é "Me Poupe!" sobre finanças pessoais. O segundo é "Mostre seu trabalho" sobre compartilhar a criatividade online. O terceiro é "Seja foda!" um livro motivacional. O quarto é "A Sutil Arte de Ligar o Foda-se" sobre lidar com situações fora do controle. O quinto é "Quem pensa enriquece" sobre desenvolvimento pessoal. O sexto é "O Milagre da Manhã" sobre um
5 livros que não são de TI, mas que um desenvolvedor deveria lerVinícius Thiengo
O documento recomenda 5 livros que não são sobre TI, mas que podem ser úteis para o desenvolvimento pessoal e profissional de desenvolvedores de software. São eles: 1) Roube como um artista, sobre criatividade; 2) Mindset, sobre psicologia do sucesso; 3) Mais rápido e melhor, sobre produtividade e foco; 4) A lógica do Cisne Negro, sobre riscos e eventos improváveis; 5) Antifrágil, sobre como se beneficiar do caos. O autor recomenda ler Roube como um artista primeiro
Android About Page API Para Construir a Tela SobreVinícius Thiengo
O documento descreve como usar a biblioteca Android About Page API para criar uma tela Sobre em aplicativos Android de forma rápida. A biblioteca permite adicionar informações básicas, imagens, contatos e redes sociais com poucas linhas de código, apesar de ter limitações de customização. O documento também mostra como personalizar elementos da tela e adicionar itens customizados para contornar limitações da API.
PhotoView Android Para a Completa Implementação de ZoomVinícius Thiengo
A PhotoView API é uma simples API Android que permite implementar funcionalidade de zoom em imagens de forma fácil. A API oferece listeners para diferentes eventos de toque, métodos para controlar escala de zoom e rotação de imagens, e é compatível com APIs populares de carregamento de imagens como Picasso.
Utilizando Intenções Para Mapas de Alta Qualidade no AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/utilizando-intencoes-para-mapas-de-alta-qualidade-no-android
Neste conjunto de slides vamos estudar, passo a passo, as Intenções específicas do Google Maps Android para a apresentação de mapas em alta qualidade, incluindo apresentações complexas que envolvem rotas com WayPoints e tecnologia "turn-by-turn".
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=INTENTS_GOOGLE_MAPS&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Trabalhando Análise Qualitativa em seu Aplicativo AndroidVinícius Thiengo
SDKs de análise de dados como o AppSee fornecem análises quantitativas e qualitativas para ajudar desenvolvedores a melhorar aplicativos no longo prazo. A análise qualitativa usa gravações de tela para fornecer insights sobre onde os usuários abandonam fluxos e como melhorar a experiência. O AppSee oferece um plano gratuito e requer apenas uma linha de código para fornecer esses benefícios aos desenvolvedores.
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/chips-android-quando-e-como-utilizar
Neste conjunto de slides vamos, passo a passo, ao estudo completo do componente chip do Material Design. Junto ao estudo vamos também trabalhar a API MaterialChipsInput.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
BottomNavigationView Android, Como e Quando UtilizarVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/bottomnavigationview-android-como-e-quando-utilizar
Neste conjunto de slides vamos, passo a passo, ao estudo completo do widget BottomNavigationView, um dos componentes visuais mais atuais do Android, porém já muito utilizado.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Este documento fornece uma lista de conteúdos recomendados para estudar o desenvolvimento Android, incluindo IDEs, layouts, persistência de dados, recursos de rede e mais. O modo recomendado de estudo é baixar os projetos de exemplo e segui-los no Android Studio à medida que o leitor aprende cada novo tópico.
Android: Avaliação do Pré-projeto Agenda CulturalVinícius Thiengo
O documento descreve um protótipo de aplicativo para agenda cultural. O protótipo inclui uma tela principal para apresentação de eventos. O mapa mental do projeto é analisado e vários problemas e sugestões de melhoria são apontados, incluindo a estruturação de nós, regras de negócio e componentes das telas. O desenvolvedor é alertado para corrigir esses pontos antes de prosseguir com o desenvolvimento do aplicativo.
ViewModel Android, Como Utilizar Este Componente de ArquiteturaVinícius Thiengo
O documento discute o ViewModel como um componente de arquitetura Android. O ViewModel representa a camada de negócios e é responsável por manter os dados e fazer chamadas para as camadas inferiores. O ViewModel mantém os dados em memória quando a Activity ou Fragment são reconstruídos. O documento também discute outras APIs de arquitetura como Lifecycle, LiveData, Room e como elas se relacionam com o ViewModel e a arquitetura recomendada pelo Android.
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/freelancer-android
Neste conjunto de slides vamos a uma entrevista detalhada com um profissional Android que também trabalha como freelancer dessa plataforma.
Com as perguntas e respostas você terá um norte em como prosseguir sendo um freelancer Android.
➙ Para receber os conteúdos do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
O documento descreve as etapas para atualizar as famílias de fontes de um aplicativo Pokédex para Android. Inicialmente, o aplicativo usa apenas fontes Roboto. O processo envolve baixar e inserir as fontes Pokémon Hollow e Solid, identificar quais trechos podem ser atualizados via XML e quais requerem programação, e a ordem para realizar as atualizações considerando o que é mais fácil primeiro. O objetivo é aplicar as fontes Pokémon de forma consistente em diferentes componentes do aplicativo para melhorar a experiência do usuário
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/fontes-em-xml-android-o-configuracao-e-uso
Neste conjunto de slides vamos estudar a nova API de fontes do Android, digo, o novo tipo de recurso disponível desde o preview do Android 8, ou Android Oreo, API 26.
➙ Para receber os conteúdos do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/material-design
Apresentação da linguagem de design do Google: Material Design.
Vamos abordar: o que era utilizado anteriormente, origem, lançamento, objetivos, regras a serem seguidas, principais características e o que esperar para o futuro do Material Design.
➙ Para receber os conteúdos do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
*Obs. : os GIFs animados não funcionam no LinkedIn SlideShare.
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoMateusTavares54
Quer aprender inglês e espanhol de um jeito divertido? Aqui você encontra atividades legais para imprimir e usar. É só imprimir e começar a brincar enquanto aprende!
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24, Pr Henrique, EBD NA TV, Lições Bíblicas, 2º Trimestre de 2024, adultos, Tema, A CARREIRA QUE NOS ESTÁ PROPOSTA, O CAMINHO DA SALVAÇÃO, SANTIDADE E PERSEVERANÇA PARA CHEGAR AO CÉU, Coment Osiel Gomes, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, de Almeida Silva, tel-What, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique, https://ebdnatv.blogspot.com/
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, Betel, Ordenança para exercer a fé, 2Tr24, Pr Henrique, EBD NA TV, 2° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, ORDENANÇAS BÍBLICAS, Doutrina Fundamentais Imperativas aos Cristãos para uma vida bem-sucedida e de Comunhão com DEUS, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Bispo Abner Ferreira, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 11, Central Gospel, Os Mortos Em Cristo, 1Tr24, Pr Henrique, EBD NA TV, Revista ano 11, nº 1, Revista Estudo Bíblico Jovens E Adultos, Central Gospel, 2º Trimestre de 2024, Professor, Tema, Os Grandes Temas Do Fim, Comentarista, Pr. Joá Caitano, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
2. Network Time Protocol - NTP
O Network Time Protocol (NTP), ou Protocolo de Tempo para Redes, é o protocolo que
permite a sincronização dos relógios de dispositivos que se conectam a Internet.
O NTP é extremamente importante para qualquer dispositivo que se conecta a rede, um
forte indício disso é que qualquer aparelho computacional que adquirimos já vem com a
configuração de obtenção de data e hora em: atualização automática.
A discussão detalhada sobre o funcionamento do NTP você consegue no site oficial NTP.br
mantido pelo Comitê Gestor da Internet (CGI).
Estou indicando o CGI para mais informações, pois o estudo por completo do NTP tende a
não ser de grande importância a um profissional de desenvolvimento, principalmente
porque o dispositivo que receberá o software desenvolvido certamente já tem nele toda a
tecnologia de requisição de data e horário a servidores NTP.
O que é importante ao profissional de desenvolvimento de software é saber se o domínio
do problema atualmente trabalhado por ele exige, ou não, o gerenciamento de data e hora
exatos, independente da data e horário fornecidos pelo próprio aparelho.
Isso, pois o aparelho não é uma entidade confiável em termos de "data e hora exatos”,
principalmente porque o usuário pode mudar estes dados para atender a alguma
necessidade dele, por exemplo: adiantar o horário em dez minutos para sempre conseguir
sair ao menos dez minutos antes aos compromissos.
3. Simple Network Time Protocol - SNTP
O Simple Network Time Protocol (SNTP), ou Protocolo Simples de Tempo para
Rede, é uma versão simplificada do NTP, versão que não exige, por exemplo, a
complexidade de obter informações de tempo de um determinado servidor,
informações como: deslocamento, dispersão e variação.
Resumidamente, o SNTP permite: consultar o tempo em um servidor e ajustar o
relógio local de tempos em tempos. O NTP vai mais além, como, por exemplo:
obter os dados de tempo (data e hora) da fonte mais confiável dentre todas as
pesquisadas.
Para ficar mais claro: se em seu domínio é necessária uma requisição a um
servidor qualquer para então obter a data e horário desse servidor como fonte de
atualização de relógio, essa foi uma atualização utilizando o protocolo SNTP.
Agora se em seu domínio do problema houve a requisição a uma série de
servidores de data e hora, incluindo o trabalho de escolha da melhor resposta. Isso
já se caracteriza como fluxo de uso do protocolo NTP.
A biblioteca que estudaremos neste conjunto de slides trabalha com a versão
completa do NTP, mesmo ela exigindo poucas linhas de código.
4. Quando o NTP é importante para um desenvolvedor
Android
Certamente você deve estar se perguntando: Para desenvolvedores Android, qual a
utilidade do conhecimento de alguma API NTP?
A importância deste conhecimento fica evidente principalmente quando trabalhando
em domínios de problema onde há necessidade de comunicação remota com
servidores Web e também à exigência de trabalho offline, o app continua
funcionando (de maneira limitada) mesmo quando não há conexão com a rede.
Aplicativos de comércio eletrônico, por exemplo, exigem inúmeros dados que serão
utilizados na aplicação de inteligência em negócios, para assim decisões acertadas
serem tomadas, decisões de promoções em determinadas regiões, por exemplo.
Conhecer o tempo exato da maioria das interações dos usuários de seu aplicativo
de compras online provavelmente trará maior precisão nas tomadas de decisões.
Note que o conjunto de domínios de problemas que exigem exatidão em data e
horário, uso de API NTP, não é tão extenso quanto o conjunto de domínios que
exigem o trabalho com alguma API de carregamento de imagens remotas, mas
certamente os domínios para NTP também existem em grande número e até o
momento da construção destes slides nós, desenvolvedores Android, temos
somente uma API open source que permite requisição a servidores NTP.
6. Biblioteca (ou API) True Time
A biblioteca True Time Android foi desenvolvida para o simples fornecimento de
uma data e horário confiáveis, obtidos de servidores NTP.
O projeto é open source e tem muita aceitação da comunidade de desenvolvedores
Android. Até o momento da construção deste conteúdo eram mais de 690 estrelas
de recomendação no GitHub, algo surpreendente para uma API específica de
domínio.
A True Time API atende a partir do Android API 14, Ice Cream Sandwich, e apesar
de algumas limitações encontradas, se o desenvolvedor Android souber trabalhar
com entidades como AsyncTask e LocalBroadcastManager, certamente ele vai
conseguir o máximo possível da True Time.
7. Instalação da API
A biblioteca está disponível no Jitpack, este que é um repositório de pacotes de
projetos JVM e Android. Logo, no Gradle Project Level, adicione a referência a este
repositório como a seguir (bloco maven):
Então, no Gradle App Level, adicione:
8. No código do anterior, do Gradle App Level, estamos referenciando a versão Rx
(ReactiveX) da True Time API.
Na documentação há também a versão vanilla, versão que não exige o
conhecimento da sintaxe do RxJava quando trabalhando com a True Time.
Porém na mesma documentação ainda é recomendado o uso da versão Rx, pois
ela é a versão que implementa a requisição NTP completa e não somente
requisição SNTP, como acontece com a versão vanilla.
Devido a isso, aqui estudaremos somente a versão Rx. Fique tranquilo se você
ainda não conhece o RxJava, a interface da True Time API é simples de entender e
de utilizar, ou seja, este "não conhecimento" não lhe atrapalhará.
9. Configuração inicial para requisição a servidores NTP
O código de requisição da True Time API deve entrar no método onCreate() de
uma classe Application. Veja o código a seguir:
10. Comentando o código anterior, temos:
- build(): retorna um objeto TrueTimeRx. Note que build() invoca é a
implementação do padrão Singleton, ou seja, sempre estaremos utilizando o
mesmo objeto TrueTimeRx;
- withSharedPreferences( this ): indica que o resultado retornado, de algum
dos servidores NTP, deve ser colocado em cache, cache gerenciado pela
própria biblioteca e utilizando a API SharedPreferences. O contexto,
argumento, sempre é o da aplicação;
- initializeRx( "time.apple.com" ): definição do conjunto, pool de servidores,
NTP para a obtenção da data e horário confiáveis;
- subscribeOn( Schedulers.io() ): método que permite que nós
desenvolvedores especifiquemos em qual operador de comunicação e thread a
entidade observável trabalhará. Aqui a entidade observável é o "algoritmo de
requisição a servidores NTP", onde o resultado dessa requisição deve ser
enviado a todos os observadores (inscritos via método subscribe(), por
exemplo). Segundo a documentação Rx da True Time API, o operador deve ser
o Schedulers.io().
11. - subscribe(…): assina uma entidade observadora para resultado positivo (sem
erro em tempo de execução), primeiro argumento. E assina uma entidade
observadora para resultado negativo, com erro em tempo de execução,
segundo argumento. Qualquer resultado é transmitido via operador definido em
subscribeOn(). A origem do resultado é uma entidade observável, aqui o
"algoritmo de comunicação com servidores NTP". Há sobrecargas de
subscribe(), mas a versão apresentada anteriormente tende a ser a utilizada
em todos os domínios da True Time API. Fizemos uso da versão Lambda, ou
literal de função, de implementações de Consumer, como na documentação
oficial da True Time.
Se o método withSharedPreferences() não for invocado com o argumento correto,
não será possível reaproveitar a data e horário já retornados por um servidor NTP.
O dado em cache, devido ao uso de withSharedPreferences(), permanecerá em
disco até o momento que houver o reboot do aparelho. Após o reboot, assim que o
aplicativo for aberto será necessária uma nova conexão NTP para obter novamente
a data e horário corretos.
12. Apesar das explicações sobre os métodos subscribeOn() e subscribe(), pode ser
que você queira se aprofundar ainda mais, logo, ao terminar este conteúdo, entre
nos links a seguir:
- Explicação de subscribeOn() no site ReactiveX (em inglês);
- Explicação de subscribe() no site ReactiveX (em inglês).
Pode lhe estar surgindo a dúvida sobre a necessidade de uso dos métodos
subscribeOn() e subscribe() somente para uma simples requisição a servidores
NTP. Segundo meus testes, se não houver a definição destes métodos, não haverá
requisição.
13. Agora, para que a requisição do código TrueTimeRx funcione, ainda é preciso
algumas configurações no AndroidManifest.xml:
14. Obtendo o objeto Date
Além do uso do primeiro argumento de subscribe() para obter o objeto do tipo
Date, objeto que contém data e horário corretos de servidores NTP, também
podemos utilizar o método now() em qualquer trecho de nosso projeto:
É importante o uso de um bloco try{} na invocação de now(), pois caso ainda não
haja uma resposta válida de TrueTimeRx, mesmo que em cache, uma exceção
será gerada.
Ok, mas não há algum método que nos auxilie em saber se já há ou não algum
dado em memória que possibilite a segura invocação de now()?
Até o momento da construção deste conjunto de slides não havia algum método na
API que permitisse essa verificação de cache.
15. Formatando a saída e o fuso horário
A data e horário retornados vão estar dentro do fuso horário do aparelho, mas há
inúmeras APIs Java e Kotlin que permitem a mudança disso em tempo de
execução.
O código a seguir é um exemplo de como obter a data e horário formatados e em
diferente fuso horário:
Para uma lista completa de Greenwich Mean Time (GMT), entre em GeoIPs
TimeZones.
16. Evitando novas invocações de TrueTimeRx.build()
Pode ser que você escolha não realizar mais invocações a TrueTimeRx.build()
depois de já ter no aparelho uma data e horário retornados por servidores NTP.
Para isso, ao invés do uso de isInitialized() que somente verifica se
TrueTimeRx.build() já foi iniciado, utilize um código try{}catch{} como a seguir:
17. Estude bem o domínio do problema do aplicativo em desenvolvimento para então
poder definir com total certeza se o código de segurança anterior é necessário.
Digo isso, pois depois que a data e horário são retornados de algum servidor NTP,
a API True Time utiliza o clocktick do aparelho para poder correr também o relógio
dos dados em cache, data e horário.
Devido a "não exata" precisão do clocktick do aparelho, depois de um tempo o
relógio ou fica adiantado, ou fica atrasado.
Tendo em mente o que foi discutido nos parágrafos anteriores, se seu aplicativo
continuar fazendo uso da data e horário armazenados pela True Time API e
também tiver com o código de bloqueio de novas invocações de
TrueTimeRx.build(), com um tempo a sua lógica de negócio estará trabalhando
com a data e hora errados.
Na documentação não há código de bloqueio. Alias, nos códigos de exemplo,
assim que o aplicativo é aberto, há novas requisições TrueTimeRx.build().
Com isso, o máximo que recomendo é que: se o código de bloqueio for necessário,
então trabalhe com um timer interno para que ao menos uma nova requisição seja
realizada a cada semana.
18. Uma possível limitação em withSharedPreferences()
Quando você for realizar seus testes de código de bloqueio, da seção anterior,
notará que o código em catch() somente não é invocado quando o aplicativo é
aberto em um estado onde ele já estava em background.
Segundo um dos mantenedores da biblioteca True Time, até o momento da
construção deste conjunto de slides: isso é problema de versão de Android /
aparelho em uso, pois nos testes dele o método withSharedPreferences()
funciona sem problemas.
Bom... agora é aguardar a evolução da API para que withSharedPreferences()
funcione para qualquer uma das versões do Android e aparelhos a partir da versão
mínima de API suportada pela True Time.
Tenha em mente que esta limitação não é muito crítica, pois novas requisições a
servidores NTP são sim recomendadas.
19. Se a apresentação de alguma data e horário for realmente necessária, então você
pode tentar algo como:
No projeto de exemplo do artigo que acompanha este conjunto de slides
utilizaremos um código de segurança como o anterior, além de APIs como
AsyncTask e LocalBroadcastManager, para obter o melhor da biblioteca True
Time.
20. Thread Principal (UI) bloqueada
Dependendo da versão da True Time API que você estiver utilizando, assim que
invocar o método TrueTimeRx.now() notará que a interface do usuário vai travar.
Isso acontece até mesmo quando a invocação de now() ocorre em uma thread
secundária.
A versão mais atual da API apresenta este problema. Na época da construção
deste conteúdo a versão mais atual era a 3.3:
21. A solução, encontrada nas issues da API no GitHub, é utilizar a versão
09087b6a6e, versão que a principio nos atende tão bem quanto as versões
posteriores a ela, porém com o adendo de não ter o travamento da thread principal:
Agora é acompanhar as novas versões da API para ver se o problema de trava de
thread UI é resolvido definitivamente.
22. Configurações extras
Ainda é possível o trabalho com outros métodos de RxJava, além de métodos de
configuração nativos da API. Veja o código a seguir:
23. Sendo um conhecedor de Rx, você também consegue utilizar os métodos
observeOn() e subscribeWith(), como no exemplo a seguir, direto da classe
Application, customizada e em Java, da documentação oficial:
24. Servidores NTP
Segundo a documentação oficial da API em estudo e também segundo meus
testes, o melhor pool de servidores NTP a consultar é o da Apple: time.apple.com
Na doc também há alguns exemplos com o pool de servidores NTP do Google:
time.google.com
Você pode tentar definir algum outro de seu conhecimento. Na documentação não
há restrições quanto ao uso de outros servidores, ao menos de maneira explicita
não há essa restrição.
Em meus testes eu não testei a precisão de cada pool de servidores NTP, mas
notei que o da Apple é o mais eficiente em termos de "devolver uma resposta",
rapidamente há o retorno da data e horário requisitados.
25. Pontos negativos
- A documentação, incluindo os códigos de exemplo, não condiz 100% com o
que há disponível de interface pública na biblioteca True Time. O método
withSharedPreferencesCache() de um dos códigos de exemplo, quando
invocado em código, mesmo com a versão 3.3 da API, não é reconhecido;
- O problema de trava de thread principal ainda não foi resolvido na versão
mais atual da API, 3.3;
- O método withSharedPreferences() não tem efeito algum se o aplicativo for
removido da memória primária, pilha de apps em background;
- Não há um simples método de verificação para saber se há ou não alguma
data e horário já obtidos de uma fonte NTP e salvos em disco;
- A versão vanilla da API ainda é apresentada na documentação mesmo
quando somente a versão Rx vem sendo evoluída.
26. Pontos positivos
- Apesar dos problemas, a sintaxe de uso é simples e realmente uma data e
horário exatos são obtidos;
- Os mantenedores da API respondem as issues, facilitando o encontro de
soluções de problemas ainda presentes na True Time.
27. Conclusão
Mesmo com a série de problemas ainda presentes na True Time API, ainda é
possível obter o melhor dela quando trabalhando junto a outros componentes de
linguagem de programação, componentes como o bloco try{}catch{}.
A simplicidade na requisição e retorno de um objeto Date válido faz com que não
tenhamos de depender de um algoritmo nosso ou até mesmo de um servidor
remoto, em nossa gerência, para o trabalho com uma data e horário NTP.
Necessitando da True Time API em algum de seus projetos, não deixe de
continuar acompanhando as issues e a evolução desta biblioteca. Os
mantenedores da True Time são bem ativos e vêm evoluindo ela.
28. Fontes
Conteúdo completo, em texto e em vídeo, no link a seguir:
- https://www.thiengo.com.br/true-time-api-para-data-e-horario-ntp-no-android
Fontes:
- https://tech.instacart.com/offline-first-introducing-truetime-for-swift-and-
android-15e5d968df96
- https://github.com/instacart/truetime-android
- https://ntp.br/ntp.php
29. Para estudo
- Treinamento oficial:
- Prototipagem Profissional de Aplicativos Android.
- Meus livros:
- Receitas Para Desenvolvedores Android;
- Refatorando Para Programas Limpos.
- Redes:
- Udemy;
- YouTube;
- Facebook;
- LinkedIn;
- GitHub;
- Twitter;
- Google Plus.
- Blog App.
30. True Time API Para Data e Horário
NTP no Android
thiengo.com.br
Vinícius Thiengo
thiengocalopsita@gmail.com