Série AngularJS: Atualizando versão do AngularJS via Yeoman

yeoman

Olá Pessoal,

No post de hoje vamos ver como dizer para o Yeoman usar uma versão específica do angularJS.

Lets go…

Atualizando AngularJS via Yeoman

Por default, o Yeoman na versão 1.0 vem com o AngularJS 1.0.7, mas se precisamos usar a versão mais recente ou uma específica, como atualizar? É bem simples.

Note: vou considerar que você criou seu projeto via yeoman.

Step 1

Abra o arquivo bower.json

Step 2

Altere as dependências a seguir para a versão desejada:

"angular": "~1.2.9",
"angular-resource": "~1.2.9",

 "devDependencies":

{

    "angular-mocks": "~1.2.9",

    "angular-scenario": "~1.2.9"

  }

  Step 3

Digite bower update e aguarde atualização

bowerupdateversion

Step 4

Agora execute:

bower install --save angular-route

 Step 5

Precisamos atualizar o arquivo Karma.conf.js  no array files adicione:

'app/bower_components/angular-sanitize/angular-route.js',

 Step 6

Abra o arquivo apps.js  e atualize. Adicione ngRoute ficando assim:

angular.module('webappApp', [

  'ngCookies',

  'ngResource',

  'ngSanitize',

  'ngRoute'

])

Step 7

Abra o arquivo index.html dentro de app/index.html e adicione a linha a seguir no bloco de script/modules.js

<script src="bower_components/angular-route/angular-route.js"></script>

Pronto. Veja que a estrutura do projeto foi alterada de acordo com a versão escolhida do AngularJS. Sabemos que a partir da versão 1.2 tivemos mudanças que são incompatíveis com projetos na versão 1.0.x, como já citei aqui no blog.

Vou ficando aqui e espero que tenham gostado do post.

Abraços, see ya!

AngularJS: Primeira aplicação a gente nunca esquece

Olá pessoal,

O post de hoje é mais para compartilhar com você a minha primeira aplicação com angularJS.  Como dizem: “a primeira vez a gente nunca esquece”, e comigo não foi diferente. Apesar da aplicação não seguir boas práticas, eu não quis apagar da minha vida,pelo contrário.

Lets go..

Movie Vote

É uma aplicação que exibe aos usuários opções de filmes e no final mostra o mais votado.  A combinação nunca pode repetir o mesmo filme na pergunta, ou seja, não posso perguntar: “Qual seu filme favorito?”.

  1. Batman
  2. Batman

Desenvolver essa aplicação simples na época me ajudou a entender muitas coisas básicas do framework que não conhecia bem ou não entendia quando fazia de maneira isolada. Juntar as peças e comunicação entre controller, view etc, faz a diferença no aprendizado, e certamente vamos errar, ter exceções na tela, mas não vamos desmotivar e desistir. Quando criei essa aplicação o objetivo mesmo era praticar o básico do básico do framework, sem ainda estar preocupado com as boas práticas etc. Deixei isso para o segundo tempo do jogo.  Depois de ter desenvolvido, aprendi como internacionalizar apps com angularJS e coloquei em prática  testando no movie-vote.

Onde quero chegar?

Sem prática, não tem como aprender. Parece óbvio, mas é preciso exercitar, criar, dar trabalho para você mesmo, e não necessariamente criar algo complexo; pode ser simples. Esse simples, pode acreditar que vai dar um certo trabalho de fazer quando você está usando uma tecnologia nova. E o melhor de tudo: não se envergonhe daquilo que fez quando estava aprendendo, tenha orgulho, pois quando você olha para o passado e vê o presente saberá se evoluiu ou continua escrevendo e pesando da mesma forma que começou.

Vou ficando por aqui. Segue o link da aplicação movie-vote https://github.com/camilolopes/workspaceAngularJs

Abraços, see ya! 

Série AngularJS: Usando Yeoman com AngularJS

yeoman

Olá Pessoal,

No post de hoje vamos ver como usar o Yeoman com AngularJS.  Eu falei sobre o Yeoman rapidamente nesse post.

Lets go…

Step 1

Para o ambiente Windows, você pode ter o Gitbash instalado com suporte a execução de comando linux/unix. Instale também o NodeJS.

Step 2

Agora abra o Gitbash e digite o comando

npm install -g yo

 

yoemaninstall

 

Ao terminar

yoemanfinishedinstall

 

Step 3

Para ter suporte à criação de projetos com o angular, precisamos instalar o generator para o framework.

npm install -g generator-angular

yoemaninstallangular

 Crie uma pasta algo como yeomandemo. Entre nela e digite

 yo

 

 Responda Y

 

E escolha a opção:

yo angular

 

E vá respondendo às perguntas.

yoemanangularsetup

Pronto, seu projeto foi criado. Para entender a estrutura há um post completo: http://www.sitepoint.com/kickstart-your-angularjs-development-with-yeoman-grunt-and-bower/

No meu github coloquei um exemplo do projeto demo que fiz com yoeman gerando o projeto com angular https://github.com/camilolopes/workspaceAngularJs

Abraços. See ya!!!

Experiência AngularJS + Java em Produção

divedoo

Olá Pessoal,

O post de hoje vou falar  um pouco sobre a experiência que tivemos aqui na ITSLabs com desenvolvimento de um produto usando AngularJS e hoje está em produção. O produto ainda é um MVP versão 1.0.0 e foi de desenvolvido em 45-50 dias.  Para quem acompanha o blog venho trabalhando com AngularJS no dia a dia a quase 1 ano e criei o grupo AngularJS-Brazil (https://groups.google.com/forum/#!forum/angularjs-brazil) no Google Groups e mais uma vez reforço para quem está chegando, quer aprender qualquer tecnologia? Saia do CRUD, só assim você vai poder aprender  de verdade.

Lets go…

 

ITSLabs

Antes de começar falando do projeto, deixa eu falar rapidamente da ITS. A ITS é uma start-up  voltada para criação de produtos web e mobile. Aqui buscamos resolver os problemas dos nossos clientes identificamos qual a tecnologia resolve melhor o problema. Portanto, a tecnologia nada mais é que apenas uma ferramenta para atingir o objetivo. Hoje temos projeto com AngularJS, NodeJS, Java etc.  Em breve assim que tiver um ok do cliente teremos mais um case que vou compartilhar aqui com vocês de um projeto NodeJS + AngularJS.  A ITSLabs não é consultoria, fabrica de software que tem o foco apenas em desenvolver software, vamos um pouco além, e precisamos entregar valor ao negócio do cliente e também trazer valor para nossa equipe técnica. Já rejeitamos projetos que financeiramente seria ótimo, mas valor entregue tecnicamente para nossa equipe seria quase zero. Nosso dia a dia é bem Agile, trabalhamos 95% remoto e pouco focado em horas trabalhadas ou que horas você entrou hoje e saiu ontem. Atender aos prazos com qualidade é o nosso maior ativo.

 

DiveDoo – www.divedoo.com

É uma plataforma que busca resolver o problema de quem  busca acessório, curso, equipamentos na área de mergulho, mas não sabe como e onde encontrar. Fazendo uma pesquisa no Google as informações estão espalhadas e alguns sites podem não ser confiáveis. Baseado nisso foi criado a plataforma pela mergulhadora Gabriela Galvão.

Nossa experiência com AngularJS          

Esse foi  o nosso terceiro projeto com AngularJS em produção, os dos primeiros eram projetos bem menores com relação ao DiveDoo.  Ter escolhido AngularJS foi  uma excelente escolha, por alguns motivos:

  • Manutenção do lado do cliente: ganhamos muito na organização de  js, css etc.  Isso foi fantástico e crucial  para o desenvolvimento;
  • Integração com back-end: ter o back-end e front 100% independente. É fantástico, podemos mudar para  qualquer outra tecnologia sem precisar tocar no código do cliente.
  • Ter programadores trabalhando em paralelo e separado sem bloqueios: isso ajudou bastante, alguns programadores back-end odeiam front-end (eu era um desses, mas deixei de ser graças ao AngularJS) e aqui podemos manter cada um trabalhando do seu lado e se comunicando apenas através de uma API REST.
  • IE: esse cara é uma dor de cabeça. Então se você pensa em querer dá suporte para versões antigas  como 8 ou inferior. Esquece de usar AngularJS, apesar que o pessoal da Google fala nas versões mais antigas do AngularJS que eles oferecem suporte e talz, algumas coisas não funcionam bem, e ainda depender do Windows com a versão do IE, pegamos incompatibilidade. É tenso o negócio, simplesmente consome um tempo enorme para tentar achar a solução e se encontrar.  Se você tem um projeto que vai dá suporte a esse camarada em versões antiga, pode ir buscando outro framework, pq o AngularJS não vai rolar. E o problema não é do AngularJS, na verdade ele nasceu sem vontade nenhuma em querer ajudar o browser da Microsoft :). A partir do IE9 as coisas já funcionam com uma compatibilidade melhor.

Tools

Usar Yeoman  & Grunt é um fator de produtividade. Criamos uma estrutura do lado do back-end onde o desenvolver front-end consegue testar aplicação com back-end localmente e podendo sempre pegar o ultimo código que foi comitado. Separamos isso em módulos :

  • Web: aqui  é a versão que vai para o servidor remoto
  • Core: todo back-end
  • Webdev: aqui é onde o programador front-end trabalha e segue toda a estrutura do Yeoman. Se for preciso debugar um código local basta subir aplicação a partir desse modulo  usando o comando: grunt Server  e pronto.O Server vai subir em porta e IP diferente da aplicação que possui o back-end.  Quando o trabalho de front-end está concluído e precisa ser integrado com o back-end basta executar um grunt build e todo código do front é minificado e colocado no modulo de web  para ser deployed. Para quem está trabalhando no front-end isso é transparente.

Montamos essa estrutura, pois em projetos passados sofremos bastante com isso, a estrutura tudo em um único projeto funciona bem, quando temos um projeto que não é grande, ou seja, poucas funcionalidades. 

Aprendizado

Aprendemos que sem Yeoman é querer sofrer. Realmente é uma ferramenta poderosa e querer fazer tudo na mão, é perda de tempo, exceto se você está querendo aprender criando seus projetos house made. Mas, projeto que vai para produção, não recomendo. UI-Router  esse é o cara. Muito bom, e facilita bem o uso de rotas dentro do AngularJS. Quando você usa o UI-router que percebe a limitação que temos com as rotas default com AngularJS. Em breve vou fazer um post sobre  ele. Aprenda a separar as coisas, controller, services etc. Ter tudo organizado e separado é importante. Crie padrões de nomeação de arquivos para facilitar na hora que for buscar. Se você usa o Yeoman, ele ajuda em manter tudo organizado.  Use e abuse da injection dependecy que temos no angularJS, é fantástico. Lembro que quando comecei a estudar AngularJS demorei um pouco para pegar o core de usar injeção de dependência , a dica é leve o tempo que puder estudando, mas aprenda.  Não tenha medo de perguntar e não ache que você sabe tudo, esse é o maior erro achar porque fez algum CRUD que já aprendeu, pelo contrario é nesse momento que a brincadeira começa, todo dia  você vai aprender alguma coisa nova.

Conclusão

Hoje usamos fortemente AngularJS em nossos projetos aqui na ITS, há outros valores na tecnologia da Google que se fosse entrar nos detalhes  o post viraria um livro. Por falara nisso, em breve estarei lançando meu próximo livro que será sobre AngularJS, que nada mais vai ser o que aprendi nesse  quase 1 ano em três projetos completamente diferente e os erros que cometi, e acertos que também tive.

Vou ficando por aqui…

See ya!!!Abraços,

Treinamento in Company

 
Olá Pessoal,
 
O post de hoje é bem extra. Quero aproveitar e compartilhar com vocês um novo serviço que estamos oferecendo para empresas através da minha start-up (ITS), que é o Treinamento In Company.
 
Overview 
 
Desde dos 15 anos sempre atuei de maneira exporádica com treinamentos técnicos e sempre que posso estou ministrando algum treinamento com o objetivo de ajudar, compartilhar e aprender com quem está no mesmo caminho que um dia já estive. Nos últimos meses tenho recebido alguns convites para ministrar treinamentos (TDD, Agile, Scrum, AngularJS, etc) In Company, com o objetivo de ajudar as equipes de maneira prática compartilhando o que tenho aprendido com os projetos aqui na empresa. Para atender essa necessidade e evitar aqueles treinamentos triviais e chatos com bastente teoria, uso toda a experiência e conhecimento dos problemas que passamos nos projetos da ITS. Não conhece a ITS? É uma start-up  com foco em criação de produtos web e mobile para outras start-ups.
 
Mas como funciona o treinamento? 
 
O treinamento é realizado na empresa do cliente ou local escolhido pelo mesmo.
 
O que tem de especial no treinamento? 
 
O conteúdo do treinamento não é fixo. Antes de montarmos a carga horária e o conteúdo precisamos entender a necessidade do nosso cliente, entender como aquela tecnologia ou técnica que ele deseja o treinamento pode agregar valor no dia a dia da equipe e ao negócio. Então o treinamento é direcionado ao negócio específico de cada cliente.Todos os treinamentos são no modelo workshop.
 
Após o treinamento oferecemos mentoria sem custo ao cliente, ou seja, ao concluir o treinamento, caso o cliente deseje, o instrutor permanece por 2-3 dias acompanhando a equipe e fornecendo consultoria nos projetos reais da empresa e como aplicar o que foi aprendido no curso.
 
Quais treinamentos disponiveis? 
 
  •  Scrum com Team Remotos
  •  TDD na Prática
  • Iniciando AngularJS para Desenvolvedores Java
  • Continuous Integration com Jenkins
  • Mão na massa com Git
 
Quer mais detalhes?
 
Entre em contato através do e-mail contato@itscompany.com.br