Nesta apresentação, conheceremos o que o Dagger 2 traz de novo em relação ao seu antecessor, e como ele pode ajudar a deixar a arquitetura da sua aplicação mais organizada de limpa. Além disso, poderemos explorar como ele ainda pode ajudar na testabilidade, fazendo com que o container de dependências possa ser facilmente substituído para injetar mocks em nossos testes. (Título inspirado na música Harder Better Faster Stronger do Daft Punk :D)
Android DevConference - Dagger 2: uso avançado em projetos AndroidiMasters
Rafael Toledo, Concrete Solutions, fala sobre Dagger 2: uso avançado em projetos Android no Android DevConference 2016. Saiba mais em: http://androidconference.com.br/
Android DevConference - Refactoring for RxJavaiMasters
O documento discute como refatorar um projeto para usar RxJava. Primeiro, ele explica as motivações para usar RxJava e algumas das suas funcionalidades. Depois, apresenta exemplos de como transformar código assíncrono existente em código reativo usando RxJava. Por fim, discute considerações sobre evoluir a arquitetura do projeto para aproveitar melhor os benefícios de RxJava.
Palestra Apresentada na The Developers Conference SP 2016.
Todos concordam que o teste de aplicações e soluções é fundamental para garantir a qualidade do produto para o usuário. Já a automação dos testes e do processo de qualidade da aplicação é um sonho que muitos times e desenvolvedores gostariam de atingir, então por que é tão difícil? Nesta palestra exploraremos dicas, ferramentas e práticas para começar a automatizar os testes de sua aplicação Android. Se você sempre quis fazer isso e não sabia por onde começar esta é a hora!
O documento descreve os principais conceitos da JPA, como mapeamento de entidades, relacionamentos, EntityManager e consultas. Ele também apresenta exemplos de anotações, métodos e testes unitários para validar o funcionamento da API.
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Caelum
O documento descreve como utilizar CDI (Contexts and Dependency Injection) em projetos Java para injeção de dependências, gerenciamento do ciclo de vida de objetos e desacoplamento de classes. CDI permite especificar dependências usando anotações como @Inject e @Produces e controla a criação e injeção desses objetos.
[1] O documento discute testes de unidade com o framework Junit, incluindo conceitos de testes de unidade, vantagens dos testes de unidade, como escrever testes com Junit e práticas recomendadas para testes de unidade. [2] Também aborda o uso de bibliotecas como EasyMock e DbUnit para isolar dependências e testar a camada de persistência e [3] discute o desenvolvimento guiado por testes (TDD).
O documento discute como o Lombok pode ser usado para reduzir código boilerplate em Java através de anotações como @Getter, @Setter e @Data. Essas anotações permitem gerar automaticamente getters, setters, construtores e outros métodos comuns de forma a simplificar o código. Exemplos mostram como modelar uma classe Produto de forma concisa usando Lombok.
Android DevConference - Elastic Search como ferramenta de busca em aplicações...iMasters
Thiago Barradas e Brunelli Cupello, MundiPagg, falam sobre Elastic Search como ferramenta de busca em aplicações Android no Android DevConference 2016. Saiba mais em:http://androidconference.com.br/
Android DevConference - Dagger 2: uso avançado em projetos AndroidiMasters
Rafael Toledo, Concrete Solutions, fala sobre Dagger 2: uso avançado em projetos Android no Android DevConference 2016. Saiba mais em: http://androidconference.com.br/
Android DevConference - Refactoring for RxJavaiMasters
O documento discute como refatorar um projeto para usar RxJava. Primeiro, ele explica as motivações para usar RxJava e algumas das suas funcionalidades. Depois, apresenta exemplos de como transformar código assíncrono existente em código reativo usando RxJava. Por fim, discute considerações sobre evoluir a arquitetura do projeto para aproveitar melhor os benefícios de RxJava.
Palestra Apresentada na The Developers Conference SP 2016.
Todos concordam que o teste de aplicações e soluções é fundamental para garantir a qualidade do produto para o usuário. Já a automação dos testes e do processo de qualidade da aplicação é um sonho que muitos times e desenvolvedores gostariam de atingir, então por que é tão difícil? Nesta palestra exploraremos dicas, ferramentas e práticas para começar a automatizar os testes de sua aplicação Android. Se você sempre quis fazer isso e não sabia por onde começar esta é a hora!
O documento descreve os principais conceitos da JPA, como mapeamento de entidades, relacionamentos, EntityManager e consultas. Ele também apresenta exemplos de anotações, métodos e testes unitários para validar o funcionamento da API.
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Caelum
O documento descreve como utilizar CDI (Contexts and Dependency Injection) em projetos Java para injeção de dependências, gerenciamento do ciclo de vida de objetos e desacoplamento de classes. CDI permite especificar dependências usando anotações como @Inject e @Produces e controla a criação e injeção desses objetos.
[1] O documento discute testes de unidade com o framework Junit, incluindo conceitos de testes de unidade, vantagens dos testes de unidade, como escrever testes com Junit e práticas recomendadas para testes de unidade. [2] Também aborda o uso de bibliotecas como EasyMock e DbUnit para isolar dependências e testar a camada de persistência e [3] discute o desenvolvimento guiado por testes (TDD).
O documento discute como o Lombok pode ser usado para reduzir código boilerplate em Java através de anotações como @Getter, @Setter e @Data. Essas anotações permitem gerar automaticamente getters, setters, construtores e outros métodos comuns de forma a simplificar o código. Exemplos mostram como modelar uma classe Produto de forma concisa usando Lombok.
Android DevConference - Elastic Search como ferramenta de busca em aplicações...iMasters
Thiago Barradas e Brunelli Cupello, MundiPagg, falam sobre Elastic Search como ferramenta de busca em aplicações Android no Android DevConference 2016. Saiba mais em:http://androidconference.com.br/
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute testes no Android, abordando conceitos como mocks, frameworks de teste, organização de testes e como testar dependências externas. Ele também fornece dicas sobre por onde começar a escrever testes e como garantir uma execução tranquila.
O Liferay Portal sempre foi uma aplicação rica em recursos, com milhares de funcionalidades e opções resultando em bilhões de cenários possíveis de implantação. Ainda assim, por trás de toda a configuração o núcleo central do Liferay é tudo ou nada. Vamos apresentar as estratégias que estão sendo utilizadas para introduzir modularidade no Liferay e melhorar a qualidade, facilitar a manutenção e ainda permitir que funcionalidades opcionais sejam completamente removidas ou facilmente atualizadas.
Liferay Symposium Brazil 2014
11 de Novembro de 2014
Desenvolvimento Dirigido por Testes com JunitAdolfo Neto
O objetivo desta palestra é apresentar como funciona o desenvolvimento dirigido por testes (TDD, do termo em inglês "test-driven development"), uma técnica de projeto de software utilizada principalmente em métodos ágeis para o desenvolvimento de software. Além disso, serão mostrados exemplos práticos de como desenvolver sofwtare utilizando TDD com o auxílio do framework open source JUnit (http://junit.sourceforge.net/).
O documento apresenta exemplos de código para aplicativos Android, incluindo o uso de atividades, recursos, câmera e serviços web REST. É explicado como criar interfaces com layouts XML, acessar recursos como imagens e capturar fotos usando a câmera do dispositivo ou aplicativo nativo. Também mostra como fazer requisições assíncronas para serviços web REST usando threads.
Aqui são apresentados conceitos básicos a plataforma Java. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Fazendo Injeção de dependência com Unity 1.2Giovanni Bassi
O documento discute injeção de dependência com o framework Unity. Ele explica os princípios da inversão de dependência e como Unity permite diferentes tipos de injeção como constructor, property e method call injection. Também mostra como configurar dependências no Unity e realizar testes utilizando mocks.
De a máxima cobertura nos seus testes de APIElias Nogueira
Palestra ministrada no Reginonal Scrum Gathering Rio 2019 no dia 27/06/2019 sobre como dar uma cobertura de testes para uma API além do teste unitário e de integração, com um foco totalmente prático e com execução em pipeline.
Aqui são apresentados as técnicas do framework JUnit
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
O documento fornece uma introdução sobre testes de unidade com JUnit, descrevendo: 1) o que é JUnit e suas funcionalidades; 2) os passos para criar e executar testes de unidade com JUnit; 3) como usar asserções e métodos auxiliares como setUp() e tearDown().
1) O documento apresenta o Java Persistence API (JPA) e como mapear classes de entidade para tabelas no banco de dados usando anotações. 2) É mostrado como fazer operações básicas como inclusão, alteração, exclusão e consulta de registros usando testes unitários com JUnit. 3) Também são demonstrados relacionamentos entre classes como herança, many-to-one e consultas.
O documento discute a configuração e execução de testes automatizados usando as ferramentas Robotium e Sikuli. Ele fornece instruções sobre como configurar o ambiente de testes para ambas as ferramentas no Windows, e descreve os conceitos e estruturas de testes de caixa branca e preta usando Robotium.
Este documento fornece uma introdução ao JavaFX, incluindo:
1) JavaFX é a nova toolkit de interface gráfica para aplicativos Java baseados em desktop, embarcados e móveis.
2) Fornece controles, layouts, gráficos 2D e 3D acelerados, suporte a áudio e vídeo e animações.
3) O SceneBuilder é um editor WYSIWYG para criar interfaces gráficas em JavaFX.
O documento descreve o Maven, uma ferramenta para automatizar o processo de construção de aplicações Java. Ele explica a terminologia do Maven, como criar projetos Maven e gerenciar dependências. Além disso, aborda conceitos como ciclos de vida, POM, repositórios e perfis.
1) O documento discute a simplificação do desenvolvimento Java/Java EE através da criação de frameworks como o Spring. 2) O Spring cria um container de inversão de controle e abstrações para bancos de dados e transações para tornar o desenvolvimento mais fácil. 3) O Spring MVC simplifica o desenvolvimento web, fornecendo mapeadores de URL, resoluções de visualização e controladores para lidar com requisições.
O documento discute a importância dos testes de unidade e apresenta a ferramenta JUnit para automatizar testes de unidade. Ele também fornece boas e más práticas para escrever testes de unidade e cobre tópicos como as anotações @Test, @Before, @After e @Rule do JUnit.
O documento discute as novidades da plataforma Java EE 7, incluindo o foco em serviços de computação em nuvem, auto provisionamento e multi-tenancy. A especificação Java EE 7 também trará melhorias em APIs existentes como JPA, JSF e JAX-RS e novas APIs como JSON-P e WebSocket. O lançamento está previsto para o primeiro semestre de 2013.
Design a arte de materializar as decisoes de negociostdc-globalcode
O documento não continha texto, apenas imagens e links. Não foi possível extrair informações essenciais ou de alto nível para resumir em 3 frases ou menos.
sap startup focus acelerando startus brasileiras com sap hanatdc-globalcode
A SAP lançou o SAP Startup Focus como uma iniciativa global para auxiliar Startups promissoras da área de Big Data, análise preditiva e em tempo real, a desenvolver novas aplicações em SAP HANA?, nossa revolucionária plataforma tecnológica de alta performance e banco de dados in-memory. Por meio do programa, a SAP oferece acesso irrestrito à tecnologia, além de suporte técnico na fase de desenvolvimento da solução da sua Startup e mentoria em negócios por parte de experts da indústria. Caso sua Startup passe para a fase final do programa, você terá acesso a mais de 250.000 clientes da base global da SAP para promover a sua solução e acelerar a tração de mercado. Venha conhecer o programa e fazer parte dessa rede que já conta com mais de 2000 Startups em 57 países.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute testes no Android, abordando conceitos como mocks, frameworks de teste, organização de testes e como testar dependências externas. Ele também fornece dicas sobre por onde começar a escrever testes e como garantir uma execução tranquila.
O Liferay Portal sempre foi uma aplicação rica em recursos, com milhares de funcionalidades e opções resultando em bilhões de cenários possíveis de implantação. Ainda assim, por trás de toda a configuração o núcleo central do Liferay é tudo ou nada. Vamos apresentar as estratégias que estão sendo utilizadas para introduzir modularidade no Liferay e melhorar a qualidade, facilitar a manutenção e ainda permitir que funcionalidades opcionais sejam completamente removidas ou facilmente atualizadas.
Liferay Symposium Brazil 2014
11 de Novembro de 2014
Desenvolvimento Dirigido por Testes com JunitAdolfo Neto
O objetivo desta palestra é apresentar como funciona o desenvolvimento dirigido por testes (TDD, do termo em inglês "test-driven development"), uma técnica de projeto de software utilizada principalmente em métodos ágeis para o desenvolvimento de software. Além disso, serão mostrados exemplos práticos de como desenvolver sofwtare utilizando TDD com o auxílio do framework open source JUnit (http://junit.sourceforge.net/).
O documento apresenta exemplos de código para aplicativos Android, incluindo o uso de atividades, recursos, câmera e serviços web REST. É explicado como criar interfaces com layouts XML, acessar recursos como imagens e capturar fotos usando a câmera do dispositivo ou aplicativo nativo. Também mostra como fazer requisições assíncronas para serviços web REST usando threads.
Aqui são apresentados conceitos básicos a plataforma Java. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Fazendo Injeção de dependência com Unity 1.2Giovanni Bassi
O documento discute injeção de dependência com o framework Unity. Ele explica os princípios da inversão de dependência e como Unity permite diferentes tipos de injeção como constructor, property e method call injection. Também mostra como configurar dependências no Unity e realizar testes utilizando mocks.
De a máxima cobertura nos seus testes de APIElias Nogueira
Palestra ministrada no Reginonal Scrum Gathering Rio 2019 no dia 27/06/2019 sobre como dar uma cobertura de testes para uma API além do teste unitário e de integração, com um foco totalmente prático e com execução em pipeline.
Aqui são apresentados as técnicas do framework JUnit
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
O documento fornece uma introdução sobre testes de unidade com JUnit, descrevendo: 1) o que é JUnit e suas funcionalidades; 2) os passos para criar e executar testes de unidade com JUnit; 3) como usar asserções e métodos auxiliares como setUp() e tearDown().
1) O documento apresenta o Java Persistence API (JPA) e como mapear classes de entidade para tabelas no banco de dados usando anotações. 2) É mostrado como fazer operações básicas como inclusão, alteração, exclusão e consulta de registros usando testes unitários com JUnit. 3) Também são demonstrados relacionamentos entre classes como herança, many-to-one e consultas.
O documento discute a configuração e execução de testes automatizados usando as ferramentas Robotium e Sikuli. Ele fornece instruções sobre como configurar o ambiente de testes para ambas as ferramentas no Windows, e descreve os conceitos e estruturas de testes de caixa branca e preta usando Robotium.
Este documento fornece uma introdução ao JavaFX, incluindo:
1) JavaFX é a nova toolkit de interface gráfica para aplicativos Java baseados em desktop, embarcados e móveis.
2) Fornece controles, layouts, gráficos 2D e 3D acelerados, suporte a áudio e vídeo e animações.
3) O SceneBuilder é um editor WYSIWYG para criar interfaces gráficas em JavaFX.
O documento descreve o Maven, uma ferramenta para automatizar o processo de construção de aplicações Java. Ele explica a terminologia do Maven, como criar projetos Maven e gerenciar dependências. Além disso, aborda conceitos como ciclos de vida, POM, repositórios e perfis.
1) O documento discute a simplificação do desenvolvimento Java/Java EE através da criação de frameworks como o Spring. 2) O Spring cria um container de inversão de controle e abstrações para bancos de dados e transações para tornar o desenvolvimento mais fácil. 3) O Spring MVC simplifica o desenvolvimento web, fornecendo mapeadores de URL, resoluções de visualização e controladores para lidar com requisições.
O documento discute a importância dos testes de unidade e apresenta a ferramenta JUnit para automatizar testes de unidade. Ele também fornece boas e más práticas para escrever testes de unidade e cobre tópicos como as anotações @Test, @Before, @After e @Rule do JUnit.
O documento discute as novidades da plataforma Java EE 7, incluindo o foco em serviços de computação em nuvem, auto provisionamento e multi-tenancy. A especificação Java EE 7 também trará melhorias em APIs existentes como JPA, JSF e JAX-RS e novas APIs como JSON-P e WebSocket. O lançamento está previsto para o primeiro semestre de 2013.
Design a arte de materializar as decisoes de negociostdc-globalcode
O documento não continha texto, apenas imagens e links. Não foi possível extrair informações essenciais ou de alto nível para resumir em 3 frases ou menos.
sap startup focus acelerando startus brasileiras com sap hanatdc-globalcode
A SAP lançou o SAP Startup Focus como uma iniciativa global para auxiliar Startups promissoras da área de Big Data, análise preditiva e em tempo real, a desenvolver novas aplicações em SAP HANA?, nossa revolucionária plataforma tecnológica de alta performance e banco de dados in-memory. Por meio do programa, a SAP oferece acesso irrestrito à tecnologia, além de suporte técnico na fase de desenvolvimento da solução da sua Startup e mentoria em negócios por parte de experts da indústria. Caso sua Startup passe para a fase final do programa, você terá acesso a mais de 250.000 clientes da base global da SAP para promover a sua solução e acelerar a tração de mercado. Venha conhecer o programa e fazer parte dessa rede que já conta com mais de 2000 Startups em 57 países.
Fundamentos de Akka.net para sistemas concorrentes e distribuidos usando o mo...tdc-globalcode
Akka.net vem popularizando o desenvolvimento de sistemas concorrentes e distribuídos em .NET. Ele está baseado no modelo de atores, que surgiu há mais de 40 anos, e que vem ganhando relevância crescente nos últimos anos. Nessa palestra, apresento o framework Akka.net. Discuto seus fundamentos através de exemplos simples, porém práticos, de aplicação. Prepare-se para uma palestra com muito código. Considere também "Considerações de arquitetura para sistemas concorrentes e distribuídos usando o modelo de atores" onde apresento aspectos arquiteturais para adoção do modelo.
O documento descreve a trajetória do autor na sua empresa de consultoria e treinamento em métodos ágeis. Ele fala sobre como começou a empresa em Maringá, a importância da precisificação do negócio e dos sócios, e como usaria essa experiência se abrisse uma nova empresa no futuro.
Encontre um problema que mereça ser resolvido. Entenda seu usuário, como ele pensa, se coloque no seu lugar. Desenvolva um MVP rápido mas com qualidade. Cause impacto no lançamento e encontre o melhor canal. Técnicas de divulgação no facebook. ASO (App Store Optimiztion). Inbound Sales + Marketing Digital. E agora? De 10.000 a 100.000?
O palestrante compartilha sua experiência com startups, incluindo os erros cometidos em suas primeiras tentativas e como aprendeu com eles. Ele destaca a importância de definir claramente os papéis e responsabilidades na terceira startup e obter apoio profissional no desenvolvimento do produto.
O documento discute a importância de se ter uma arquitetura robusta para aplicativos Android. Apresenta os princípios SOLID como uma forma básica de se ter uma boa arquitetura e fala sobre o padrão Repository Pattern e Dependency Injection para desacoplamento e injeção de dependências. Exemplifica algumas ferramentas de Dependency Injection como RoboGuice, Dagger 2 e Android Annotations.
This document discusses creating an Android app using Kotlin. It begins by explaining some of the limitations of using Java for Android development and how Kotlin addresses these issues. It then provides examples of Kotlin code showing functions, variables, parameter defaults, string templates, collections, lambdas, equality checks, destructuring, extension functions, null safety, smart casts, classes, interfaces, data classes, and delegated properties. It concludes by outlining steps for creating an Android app in Kotlin, including configuring the project, converting Java code to Kotlin, and initializing basic app components.
Reconstruindo a Torre de Babel com RequireJStdc-globalcode
O documento discute os desafios da internacionalização de software, incluindo a variedade de línguas, formatos, convenções culturais e como bibliotecas como RequireJS, Handlebars e FormatJS podem ajudar a internacionalizar aplicações web.
Repaint/Reflow/Dom/RenderTree - Renderizando uma página webtdc-globalcode
O documento descreve o processo de renderização de páginas web, incluindo a conversão de HTML em DOM, CSS em CSSOM, e a combinação desses modelos de objeto em uma árvore de renderização. A árvore de renderização é então usada para calcular layout e pintar a página renderizada. Mudanças no DOM ou CSSOM podem exigir repintes ou reflows para manter a sincronia.
introdução a pretotyping fazer a coisa certa mais do que fazer certo a coisatdc-globalcode
1) Pretotyping is a method for validating the market appeal and actual usage of a potential product quickly and with minimal investment by "faking" or simulating the product before fully developing it.
2) Pretotyping involves building very simple, temporary prototypes called "pretypes" to get customer feedback through techniques like surveys, interviews, or crowdtesting in just hours or days rather than the weeks or months of a full prototype.
3) The goal of pretotyping is to get customer feedback and data early in the design process to determine if a product idea is worth fully developing or should be changed or abandoned before significant resources are spent.
Instagram: que tipo de conteúdo o público prefere?tdc-globalcode
O Instagram é uma mídia social nativa mobile, o que significa que ela foi feita para ser usada exclusivamente através de dispositivos móveis. O usuário compartilha suas fotos pessoais com seus amigos, a partir da sua visão do mundo. Quando uma marca entra nesse ambiente publicando fotos hiper-editadas, de campanhas publicitárias, está subvertendo a proposta da mídia. Será que esse é o ambiente para compartilhar esse tipo de conteúdo ou as marcas devem ser mais verdadeiras ao usar mídias sociais mobile? Vamos bater um papo sobre isso!
cakephp 3.0 o bolo ainda serve muita gentetdc-globalcode
PHP em alta como nunca, frameworks cada vez mais em alta, componetização e tudo mais, sera que ainda tem lugar para o CakePHP? A resposta vocês vão saber nessa palestra, vamos conhecer a versão 3 desse framework que tem suas caracteristicas ageis e simplificadas, agora tentando se enquadrar no mercado dos gigantes.
Como impulsionar a sua carreira atraves das redes sociais?tdc-globalcode
Este documento fornece 5 passos para impulsionar a carreira através das redes sociais: 1) Defina sua marca pessoal com palavras-chave, interesses e objetivos de carreira. 2) Deixe que as pessoas te encontrem através de presença consistente nas redes. 3) Torne-se uma autoridade por meio de blogs, networking e constância. 4) Crie conexões interagindo e compartilhando conhecimento. 5) Monitore e reinvente sua marca pessoal continuamente.
Polo: Desenvolvendo os problemas de inconsistência de dados em projetos Railstdc-globalcode
Sabe aquele bug que só acontece em produção? Aquela tela que renderiza um pouco diferente porque tem aqueles dados diferentes que só existem no banco de dados de prod? Ou aquele usuário maluco que causou todos aqueles corner cases porque o input dele era muito diferente? Todo mundo já passou por esses problemas! E por que essas coisas acontecem? Uma das respostas é fácil: faltaram dados. Depois de muita dor de cabeça brigando com rake db:seeds, db:migrations, muito SQL e de abrir muito rails console em produção que eu resolvi que era hora de resolver esse problema de uma maneira diferente. Foi aí que eu criei o Polo. Uma ruby gem que automatiza a criação de dumps do seu banco de dados em produção e gera amostras pra você poder importar no seu ambiente de desenvolvimento. Não perca mais tempo quebrando a cabeça com dados inconsistentes, fazendo deploys para produção só pra testar um corner case, ou abrindo console do rails em produção e brincando com a morte.
A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...tdc-globalcode
Neste espaço vamos mostrar um pouco da caminhada da AGCO, uma das maiores fabricantes mundiais de máquinas e implementos agrícolas, na utilização de práticas ágeis. Em cada projeto repensamos em qual o próximo passo que nossos times podem adotar para melhorar a entrega dos projetos, seja na adoção de uma stack nova, um framework, uma ferramenta ou na melhoria de nossos processos.
Desta vez, definíamos adotar o BDD - Behaviour-drive development ? para apoiar na escrita e execução do TDD. Você já pensou em escrever testes antes e qualquer código? Já pensou em orientar o desenvolvimento a partir do comportamento dirigido por cada história de usuário? Se as respostas forem sim, estou certe que esta palestra pode ser uma ótima oportunidade para a troca de experiências
A empresa anunciou um novo produto que combina hardware e software para fornecer uma solução completa para clientes. O produto oferece recursos avançados de inteligência artificial e aprendizado de máquina para ajudar os usuários a automatizar tarefas complexas. Analistas acreditam que o produto pode ser um sucesso comercial se for fácil de usar e entregar resultados precisos como prometido.
Gerenciando o ciclo de vida de aplicações com AWS Elastic Beanstalktdc-globalcode
A AWS provê um ambiente para facilitar o gerenciamento de blue/green deployments com um bom custo-benefício e baixo risco. Aprenda como a AWS pode ajudar na automação de blue/green deployments de sua aplicação utilizando o serviço Elastic Beanstalk. Esta apresentação incluirá tópicos que definem como o AWS Elastic Beanstalk funciona e o apresentador irá fazer um demo com um blue/green deployment ao vivo em um ambiente web recém criado utilizando o próprio serviço.
O documento descreve conceitos sobre subalgoritmos (funções) em JavaScript, incluindo:
1) As vantagens de centralizar código em funções para evitar repetições e facilitar manutenção;
2) Como declarar e invocar funções, passando parâmetros e retornando valores;
3) Que as funções executam de forma independente do código que as invocou.
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
O documento discute a evolução de um framework PHP chamado Adianti Framework ao longo dos anos. Ele aborda desafios como aderir a padrões da comunidade, acrescentar novos componentes, melhorar a estrutura de diretórios e substituir tecnologias incorporadas.
O documento apresenta o DeltaSpike, um conjunto de extensões portáteis para CDI que fornecem funcionalidades úteis para aplicações Java que não são suportadas pela especificação CDI. O DeltaSpike inclui módulos para segurança, JPA, JSF, validação de beans, agendamento de tarefas e outros que facilitam o desenvolvimento com CDI. O DeltaSpike não é um framework completo, mas sim um conjunto de ferramentas que estendem as capacidades do CDI.
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
Julio Viegas é um engenheiro de software e instrutor com 15 anos de experiência trabalhando com tecnologia. Ele fala sobre o framework Spring, ferramentas como Spring Roo, Spring Tool Suite, Grails e CloudFoundry.
O objetivo desta apresentação é passar informações básicas sobre injeção de dependência, bem como alguns frameworks PHP existentes que nos trazem containers de injeção de depência.
O documento discute subalgoritmos em JavaScript, definindo-os como algoritmos dentro de algoritmos que resolvem uma tarefa específica. Explica que são identificados por um nome único e invocados através desse nome, podendo retornar ou não um valor. Demonstra a declaração de funções em JavaScript e como invocá-las, passando e usando parâmetros.
Este documento fornece uma introdução ao teste de aplicações Rails usando o framework RSpec. Resume as principais ideias apresentadas em 3 frases ou menos:
1) O documento introduz o framework RSpec para testes automatizados em aplicações Rails, descrevendo como configurar e gerar testes para modelos, controladores, helpers e views.
2) É enfatizado o workflow Red-Green-Refactor para escrever testes, começando com testes que falham e depois fazendo-os passar, além de apresentar exemplos passo-a-passo de
Este documento apresenta as principais novidades do PHP e do framework Zend Framework 2, incluindo namespaces, traits, servidor embutido, PSRs, Composer, funções anônimas, módulos, eventos, injeção de dependências e arquitetura MVC."
O documento discute subalgoritmos (funções) em JavaScript, explicando porque são uma boa prática ao centralizar código comum e facilitar manutenção. Descreve como declarar funções com parâmetros e valores de retorno, e como invocá-las para executar tarefas específicas.
O documento descreve os principais conceitos do framework Spring, incluindo Inversão de Controle e Injeção de Dependência. O Spring permite definir as dependências entre classes de uma aplicação Java através de um arquivo de configuração XML, facilitando o desenvolvimento de aplicações orientadas a objetos com baixo acoplamento entre classes.
O documento apresenta o framework VRaptor 4 para desenvolvimento web Java. Apresenta seus principais conceitos como MVC, CDI, controllers, views, validação, testes e plugins. Inclui também exemplos de código para controllers, formulários, redirecionamento, interceptação e serialização JSON/XML.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute conceitos e práticas de testes no Android, incluindo: 1) razões para escrever testes como garantir funcionamento e documentar comportamento; 2) tipos de testes como unitários e de interface do usuário; 3) ferramentas para testes como JUnit, Espresso e Mockito.
Este documento fornece um resumo de 3 frases sobre tecnologias para desenvolvimento de software:
1) Apresenta um curso sobre diversas tecnologias Java como Servlets, JSP, JSF, EJB e Spring. 2) Fornece detalhes sobre o instrutor Rafael Benevides e sua experiência com Java. 3) A agenda inclui discussões sobre Servlets, JSP, Hibernate e outros temas ao longo de 9 dias.
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
O documento discute conceitos de modularização, componentização e reutilização de código em programação. Apresenta como sistemas complexos podem ser desenvolvidos de forma mais rápida e com menos erros ao serem divididos em módulos menores. Discorre sobre os tipos de módulos em Java e como a modularização, abstração e ocultação promovem a independência funcional e reutilização de código.
O documento apresenta as plataformas JADE e Jena, discutindo a inicialização da plataforma JADE, passagem de objetos para agentes, criação de uma plataforma distribuída, ciclo de vida dos agentes, clonagem e movimentação de agentes. Em seguida, aborda o modelo interno da Jena, criação de ontologias, URIs, exemplos de inferência e validação. Por fim, demonstra a integração entre JADE e Jena.
O documento discute o Apache DeltaSpike, um conjunto de extensões portáteis para o CDI que fornece funcionalidades úteis para aplicações Java. O DeltaSpike inclui módulos como segurança, JPA, JSF e agendamento de tarefas. Ele permite injeção de dependência tipada, configuração de projeto, recursos injetáveis e internacionalização de mensagens. O DeltaSpike facilita o desenvolvimento Java usando o CDI sem ser um framework completo.
Apresentação feita no MeetUp do SouJava Campinas.
Nessa apresentação explicamos os conceitos básicos de Gradle utilizando diversos exemplos. No final apresentamos algumas características que fazem de Gradle uma ótima opção para usar no seu próximo projeto.
Exemplos disponíveis em: https://github.com/wrpinheiro/gradle-soujava-meetup
1) O documento descreve a linguagem de programação Java, incluindo sua história, características e como criar e executar programas Java.
2) É apresentado um exemplo de programa "Olá Mundo" em Java com explicações passo a passo.
3) São fornecidas instruções sobre como instalar o kit de desenvolvimento Java da Sun e escrever documentação JavaDoc.
O documento apresenta um adendo sobre o framework Spring Framework versão 2.5, com foco em anotações e integração com web. É apresentado o conceito de anotações no Java e no Spring Framework, com exemplos de uso de anotações para injeção de dependências e integração com JSF.
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
O documento discute o uso de visão computacional e inteligência artificial para aplicações médicas e industriais. Ele descreve como CPUs, GPUs e VPUs podem processar IA localmente e com baixo custo usando ferramentas como OpenVINO. Isso permitiria diagnósticos médicos remotos em tempo real com baixo consumo de energia.
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
O documento fornece um panorama geral da tecnologia e inovação em Santa Catarina, destacando:
1) O setor representa 5,6% da economia catarinense, com faturamento de R$15,53 bilhões;
2) As cidades de Florianópolis e Blumenau são os dois polos com maior crescimento de faturamento no estado;
3) Santa Catarina tem a maior proporção de startups no país, com 19,95% do total nacional.
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
The document discusses Intel Graphics Performance Analyzers (Intel GPA), a suite of graphics performance tools created by Intel to optimize games and real-time graphics applications. It describes Intel GPA's profiling workflow which involves analyzing frames to identify bottlenecks, determining if issues are CPU or GPU bound, and identifying hotspots. It then provides overviews of the tools in Intel GPA like the System Analyzer, Trace Analyzer, Frame Analyzer and their capabilities for profiling graphics performance.
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
O documento apresenta uma palestra sobre detecção de objetos em tempo real utilizando redes neurais convolucionais e o framework OpenVINO da Intel. É discutido o algoritmo YOLO para detecção de objetos em imagens e sua implementação no Intel AI Dev Cloud para treinamento. Também é mostrado como otimizar modelos de deep learning utilizando o OpenVINO para inferência em tempo real.
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
O documento apresenta uma palestra sobre OpenCV, biblioteca de código aberto para visão computacional. Aborda os fundamentos da visão computacional e aplicações da OpenCV, incluindo processamento de imagens, reconhecimento de padrões e diretrizes para melhor desempenho em processadores Intel. Também discute tópicos como aprendizado de máquina profundo, YOLO e conformidade com leis de privacidade como o GDPR.
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
This document discusses Intel's compiler optimizations and how they may differ depending on the microprocessor. It notes that:
- Intel's compilers may optimize differently for non-Intel microprocessors, including optimizations for SSE2, SSE3, and SSSE3 instruction sets.
- Intel does not guarantee the availability, functionality, or effectiveness of any optimization on non-Intel microprocessors.
- Microprocessor-dependent optimizations are intended for use with Intel microprocessors only. Certain non-Intel specific optimizations are also reserved for Intel microprocessors.
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
O documento discute a aplicação de bancos de dados orientados a grafos para análise de vínculos na segurança pública. Esses bancos permitem modelar dados de crimes e suspeitos como vértices e arestas em um grafo, possibilitando correlacionar informações de forma mais eficiente do que bancos relacionais. Isso pode identificar proximidades entre suspeitos e verificar vínculos de diferentes perspectivas em tempo real, auxiliando investigações criminais.
O documento apresenta os principais conceitos da programação funcional usando a linguagem F#, como imutabilidade, funções como valores, composição de funções, type providers e features como Option e unidades de medida. O objetivo é mostrar como F# oferece um paradigma diferente de programação e como seus recursos podem ser usados no desenvolvimento .NET.
This document summarizes the development of an API for addresses in Go. It describes using Beego and pure Go for scalability. It implemented middlewares for routing, error handling, authentication, and logging. It also integrated New Relic for metrics. The API routes and controllers are chained through the middleware handlers. In conclusion, the API was able to successfully provide address functionality and insights through integration of middlewares and third-party services.
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
O documento discute a importância da personalização e da relevância na web. Defende que sites devem entender os usuários individuais e fornecer experiências adaptadas às necessidades e desejos únicos de cada pessoa. Explica como o web mining, logs de servidor e clientes podem ser usados para analisar o comportamento dos usuários e melhorar a usabilidade e a relevância dos sites.
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
O documento descreve os princípios da arquitetura limpa em Go, dividindo o código em 4 camadas: entidades, casos de uso, controladores e frameworks/drivers. A arquitetura promove independência de frameworks, teste, interface gráfica e bancos de dados, além de permitir testes por camada. Um exemplo completo está disponível em um repositório no GitHub.
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
O documento discute as vantagens de usar a linguagem Go para testes de software, apresentando diversas ferramentas para testes com Go, como Godog para testes de aceitação baseados em BDD, Gomega para testes unitários e Ginkgo para execução de testes. Também cita empresas que usam Go em produção como Uber, Docker e Dropbox.
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
O documento discute (1) a tokenização como método seguro de armazenar dados de cartão, (2) as integrações com as APIs do Google Pay e Apple Pay para permitir pagamentos móveis dentro de aplicativos, e (3) a crescente tendência dos pagamentos digitais em carteiras móveis em todo o mundo.
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
O documento discute o Azure SignalR Service, um serviço gerenciado pela Microsoft que permite escalar aplicações em tempo real sem gerenciar a infraestrutura subjacente. O serviço oferece fallback automático entre protocolos de comunicação e permite 1000 conexões por unidade com SLA de 99,9%. O documento também fornece instruções sobre como adicionar o serviço a uma aplicação ASP.NET Core.
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
O documento discute a evolução do .NET, desde seu foco inicial em aplicativos empresariais para Windows até se tornar uma pilha multiplataforma de código aberto. Também compara o .NET Framework e o .NET Core, explicando quando cada um é mais adequado, e demonstra o SQL Server rodando no Linux.
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
This document discusses new features in C# 7 and 8, including pattern matching, tuples, out variables, discards, ref returns and locals, expression-bodied members, numeric literals, local functions, generalized async returns, default literals, non-trailing named arguments, leading separators for numeric literals, private protected access, reference semantics with value types using in, ref, and ref readonly. It also provides links to documentation and proposals for each feature.
1) A apresentação introduz Fernando Mendes e Mikaeri Ohana, arquiteto de software e desenvolvedor de software respectivamente, e descreve o tópico da palestra sobre obter métricas com TDD utilizando build automatizado e deploy no Azure. 2) A palestra discute os benefícios dos testes unitários, TDD e cobertura de código e faz uma demonstração. 3) As ferramentas xUnit, OpenCover e ReportGenerator são apresentadas para testes, cobertura e relatórios.
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
O documento apresenta a linguagem de programação funcional F# como parte do .NET, destacando que é fortemente tipada e permite programação funcional "impura" com interoperabilidade com o ecossistema .NET. Também menciona o apoio da Microsoft à linguagem e exemplos de onde ela pode ser usada.
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
O documento descreve o Blazor, um projeto experimental que permite criar SPAs usando C# e WebAssembly. Ele explica que o WebAssembly é um novo formato para compilação web e lista algumas vantagens do Blazor, como ser estável e usar ferramentas da indústria. Também menciona pré-requisitos para usar o Blazor e dicas de hospedagem.
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!
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Biblioteca UCS
A biblioteca abriga, em seu acervo de coleções especiais o terceiro volume da obra editada em Lisboa, em 1843. Sua exibe
detalhes dourados e vermelhos. A obra narra um romance de cavalaria, relatando a
vida e façanhas do cavaleiro Clarimundo,
que se torna Rei da Hungria e Imperador
de Constantinopla.
4. “Injeção de Dependência (ou Dependency
Injection, em inglês) é um padrão de
desenvolvimento de programas de
computadores utilizado quando é necessário
manter baixo o nível de acoplamento entre
diferentes módulos de um sistema. (...)”
@_rafaeltoledo
5. “Nesta solução as dependências entre os
módulos não são definidas
programaticamente, mas sim pela
configuração de uma infraestrutura de
software (container) que é responsável por
"injetar" em cada componente suas
dependências declaradas. A Injeção de
dependência se relaciona com o padrão
Inversão de controle mas não pode ser
considerada um sinônimo deste.”
Wikipedia, 2015
@_rafaeltoledo
39. Dagger 2
● Fork do Dagger, da Square, feito pela
Google
● Elimina todo o uso de reflections
● Construída sobre as anotações javax.
inject da especificação JSR-330
@_rafaeltoledo
40. Dagger 2
● Validação de todo o grafo de dependências
em tempo de compilação
● Menos flexível, se comparado ao Dagger 1 -
ex.: não possui module overriding
● Proguard configuration-free
@_rafaeltoledo
41. Dagger 2
● API enxuta!
● Código gerado é debugger-friendly
● Muito performático
● google.github.io/dagger
@_rafaeltoledo
42. public @interface Component {
Class<?>[] modules() default {};
Class<?>[] dependencies() default {};
}
public @interface Subcomponent {
Class<?>[] includes() default {};
}
public @interface Module {
Class<?>[] includes() default {};
}
public @interface Provides {
}
public @interface MapKey {
boolean unwrapValue() default true;
}
public interface Lazy<T> {
T get();
}
@_rafaeltoledo
43. // JSR-330
public @interface Inject {
}
public @interface Scope {
}
public @interface Qualifier {
}
@_rafaeltoledo
54. @Inject
● Parte da JSR-330
● Marca quais dependências devem ser
fornecidas pelo Dagger
● Pode aparecer de 3 formas no código
@_rafaeltoledo
55. public class TdcActivityPresenter {
private TdcActivity activity;
private TdcDataStore dataStore;
@Inject
public TdcActivityPresenter(TdcActivity activity,
TdcDataStore dataStore) {
this.activity = activity;
this.dataStore = dataStore;
}
}
1. No Construtor
@_rafaeltoledo
56. 1. No Construtor
● Todas as dependências vem do grafo de
dependências do Dagger
● Anotar uma classe dessa forma faz com que
ela também faça parte do grafo de
dependências (podendo ser injetada em
outras classes)
@_rafaeltoledo
57. 1. No Construtor
● Limitação: não podemos anotar mais que
um construtor com a anotação @Inject
@_rafaeltoledo
58. public class TdcActivity extends AppCompatActivity {
@Inject TdcActivityPresenter presenter;
@Inject SharedPreferences preferences;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
getComponent().inject(this);
}
}
2. Nos Atributos da Classe
@_rafaeltoledo
59. 2. Nos Atributos da Classe
● A injeção nesse caso deve ser manual, caso
contrários os atributos serão todos nulos
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
getComponent().inject(this);
}
● Limitação: os atributos não podem ser
privados!
@_rafaeltoledo
60. public class TdcActivityPresenter {
private TdcActivity activity;
@Inject
public TdcActivityPresenter(TdcActivity activity) {
this.activity = activity;
}
@Inject
public void enableAnalytics(AnalyticsManager analytics) {
analytics.track(this);
}
}
3. Em métodos públicos
@_rafaeltoledo
61. 3. Em métodos públicos
● Utilizado em conjunto com a anotação no
construtor da classe
● Para casos onde o objeto injetado
necessitamos da instância da própria classe
na dependência fornecida
@Inject
public void enableAnalytics(AnalyticsManager analytics) {
analytics.track(this);
}
@_rafaeltoledo
62. 3. Em métodos públicos
● O método anotado é chamado
automaticamente logo após o construtor
@_rafaeltoledo
63. @Module
● Parte da API do Dagger
● Utilizada para identificar classes que
fornecem dependências
@_rafaeltoledo
64. @Module
public class DataModule {
@Provides @Singleton
public OkHttpClient provideOkHttpClient() {
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectionTimeout(10, TimeUnit.SECONDS);
okHttpClient.setReadTimeout(10, TimeUnit.SECONDS);
okHttpClient.setWriteTimeout(10, TimeUnit.SECONDS);
return okHttpClient;
}
@Provides @Singleton
public RestAdapter provideRestAdapter(OkHttpClient client) {
return new RestAdapter.Builder()
.setClient(new OkClient(okHttpClient))
.setEndpoint("https://api.github.com")
.build();
}
} @_rafaeltoledo
65. @Module
public class DataModule {
@Provides @Singleton
public OkHttpClient provideOkHttpClient() {
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectionTimeout(10, TimeUnit.SECONDS);
okHttpClient.setReadTimeout(10, TimeUnit.SECONDS);
okHttpClient.setWriteTimeout(10, TimeUnit.SECONDS);
return okHttpClient;
}
@Provides @Singleton
public RestAdapter provideRestAdapter(OkHttpClient client) {
return new RestAdapter.Builder()
.setClient(new OkClient(okHttpClient))
.setEndpoint("https://api.github.com")
.build();
}
} @_rafaeltoledo
66. @Provides
● Utilizada nas classes anotadas como
@Module para identificar quais métodos
retornam dependências
@_rafaeltoledo
67. @Module
public class DataModule {
@Provides @Singleton
public OkHttpClient provideOkHttpClient() {
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectionTimeout(10, TimeUnit.SECONDS);
okHttpClient.setReadTimeout(10, TimeUnit.SECONDS);
okHttpClient.setWriteTimeout(10, TimeUnit.SECONDS);
return okHttpClient;
}
@Provides @Singleton
public RestAdapter provideRestAdapter(OkHttpClient client) {
return new RestAdapter.Builder()
.setClient(new OkClient(okHttpClient))
.setEndpoint("https://api.github.com")
.build();
}
} @_rafaeltoledo
68. @Module
public class DataModule {
@Provides @Singleton
public OkHttpClient provideOkHttpClient() {
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectionTimeout(10, TimeUnit.SECONDS);
okHttpClient.setReadTimeout(10, TimeUnit.SECONDS);
okHttpClient.setWriteTimeout(10, TimeUnit.SECONDS);
return okHttpClient;
}
@Provides @Singleton
public RestAdapter provideRestAdapter(OkHttpClient client) {
return new RestAdapter.Builder()
.setClient(new OkClient(okHttpClient))
.setEndpoint("https://api.github.com")
.build();
}
} @_rafaeltoledo
69. @Component
● É a anotação que liga os @Modules aos
@Injects
● É colocada em uma interface
● Define quais módulos possui, quem será
injetado
@_rafaeltoledo
70. @Component
● Precisa especificar obrigatoriamente seu
escopo (ciclo de vida de suas dependências)
● Pode publicar dependências
● Pode possuir outros componentes
@_rafaeltoledo
94. // Uso
@Inject
Map<String, String> map; // {um=primeiro valor, dois=segundo valor}
Por enquanto, só aceita Map e Set, e valores
do tipo String e Enumeradores
@MapKey
@_rafaeltoledo
96. O que eu ganho de fato com tudo isso?
@_rafaeltoledo
97. Grandes benefícios
● Código mais limpo e organizado
● Melhorias no gerenciamento de objetos
(melhor controle de singletons)
● Código mais fácil de TESTAR
@_rafaeltoledo
98. Dagger 2 e Testes
● Programar orientado a interfaces - mocks
● Sobrescrita de Componentes e Módulos
@_rafaeltoledo
99. Dagger 2 e Testes
@Module
public class TestMainModule {
@Provides // Poderíamos fazer com o Retrofit Mock!
public ApiService provideApiService() {
return new ApiService() {
@Override
public List<Repo> listRepos() {
return Arrays.asList(
new Repo("my-test-repo"),
new Repo("another-test-repo")
);
}
};
}
} @_rafaeltoledo
100. Dagger 2 e Testes
@Component(modules = DebugMainModule.class)
public interface TestMainComponent extends MainComponent {
}
@_rafaeltoledo
101. Dagger 2 e Espresso 2
@RunWith(AndroidJUnit4.class)
public class MainActivityTest {
// ...
@Before
public void setUp() {
Instrumentation instrumentation =
InstrumentationRegistry.getInstrumentation();
MainApplication app = (MainApplication)
instrumentation.getTargetContext().getApplicationContext();
app.setComponent(DaggerDebugMainComponent.create());
rule.launchActivity(new Intent());
}
}
@_rafaeltoledo
102. Dagger 2 e Robolectric 3
@RunWith(RobolectricGradleTestRunner.class)
@Config(sdk = 21, constants = BuildConfig.class)
public class MainActivityTest {
// ...
@Before
public void setUp() {
MainComponent component = DaggerDebugMainComponent.create();
MainApplication app =
((MainApplication) RuntimeEnvironment.application)
.setComponent(component);
}
}
@_rafaeltoledo
104. Para saber mais
● Site oficial - google.github.io/dagger
● Dagger 2 - A New Type of Dependency
Injection (Gregory Kick) - vai.la/fdwt
● The Future of Dependency Injection with
Dagger 2 (Jake Wharton) - vai.la/fdwy
● froger_mcs Dev Blog - frogermcs.github.io