segunda-feira, 11 de janeiro de 2016

Explicando o mundo AngularJS

Muitas pessoas hoje me perguntam porque usar angularjs, como aprender a usar uma framework baseada em client side e javascript?

Hoje vou apresentar o que angularjs tem como usar para iniciantes, e alguns cursos gratuitos.

Cursos gratuitos

 O próprio Google libera o code School para uso e aprendizado free para aprender o AngularJS, tem também a especificação da API para aprendizado, segue abaixo:

  • http://campus.codeschool.com/courses/shaping-up-with-angular-js/intro
  • https://quizzpot.com/courses/introduccion-a-angular-js
  • https://docs.angularjs.org/guide/introduction

 E o AngularJS, quero conhece-lo.!

 Para usar o angularjs primeiramente deve-se importar a biblioteca para seu projeto, ele que te dará a chave para o universo AngularJS.

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>

Agora vem o grande feito do AngularJS.

O acesso a todo o DOM do HTML e usar o binding das diretivas do AngularJS.

As principais:

O ng-app que da acesso ao módulo que você criou para sua aplicação.

O ng-model que cria uma instância ou variável para acessar o valor do input, entre outras tags html.

O ng-controller que da acesso ao controller criado da controller do AngularJS.

Exemplo de código:

- Criando um módulo

var myApp = angular.module('myApp');

 <body ng-app="myApp">
        <div ui-view></div>
    </body>

O método module cria um módulo para sua aplicação, ele te da acesso ao universo do DOM do HTML, para manipulação e uso entre sua camada view.

A criação de uma controller para manipular os dados e criação de métodos de acesso, segue exemplo:

myApp.controller('loginController', ['$scope', 'loginService', '$state',
    function($scope, loginService, $state){

                               /*
                                               Method when authetications for user approved
                               */
                $scope.loginAcess = function(email, pass){
                                               $state.go("exemplo");
                               };

                              
}]);

A chamada do método e declaração da controller:

<form ng-controller="loginController">

E a chamada:

<input type="button" value="Entrar" class="button button-positive" ng-click="loginAcess(email,pass)">

Mas como consigo ter acesso aos valores digitados?

Segue a resposta:

<div class="margin">     
                    <input type="email" required placeholder="Email" min="20" maxlength="100" id="email" ng-model="email">
                </div>
   
                <div class="margin">     
                    <input type="password" required placeholder="Senha" min="6" maxlength="12" id="pass" ng-model="pass">
                </div>

Lembre-se que o ng-model eu crio uma variável de chamada para aquele input e com isso consigo manipular os dados.

Essa diretivas listadas, são as básicas, temos mais diretivas de uso, vou listar mas não vou detalhar, tem na documentação da API a descrição e ensinando como usar. Site: https://docs.angularjs.org/guide/introduction

- ng-bind
- ng-class
- ng-click
- ng-animate
- ng-view
- ng-repeat

Entre outras...

E porque usar?

Hoje vejo o motivo de usar o AngularJS pois facilita o uso e manipulação do DOM do HTML. Facilita e separa as camadas para que camada frontend seja frontend e backend fica totalmente backend. E não renderiza no servidor fica totalmente client side.

Caso tenham algo a acrescentar deixe um recado.

quinta-feira, 7 de janeiro de 2016

Arquitetura Mobile Hibrida

O objetivo do artigo é mostrar um pouco do conhecimento que adquiri com arquitetura mobile e porque decidi me aprofundar mais em um estilo que é a arquitetura hibrida.

O que foi usado


Após pesquisas eu cheguei a decisão de usar o Cordova com Ionic para uso juntamente com o AngularJS. E transformar toda minha parte negocial com o uso da arquitetura de micro serviços.

Html5 + css3 + Ionic + AngularJS


A ideia de usar todo o frontend na camada de webview do celular e deixá-lo de forma que pudesse ser reaproveitado, foi a grande jogada que eu decidi e escolhi.


O uso do html5, css3, ionic e angularjs facilitou a criação da estrategia das páginas, sua navegação e facilidade na criação das rotas das páginas.


Arquitetura de Microservices


Como já possuía conhecimento em Java decidi continuar com Java para a minha aplicação, usando RestEasy do Jax-RS, e juntamento com as minhas controllers de rotas, usei para minha camada negocial EJB 3.1 e na camada de persistência JPA com Hibernate.

A disponibilização dos meus métodos em formato de URI ajudou bastante, pois todo o consumo é feito via HTTP 1.1 com o retorno do meu JSON na minha camada de visão da aplicação.

A premissa da minha aplicação era ter acesso a internet e que pudéssemos ter um reaproveitamento de código, para que dessa forma pudesse ter um controle melhor das minhas alterações e a fonte fosse em um único repositório.


Conforme imagem a a ideia é ter um melhor aproveitamento de tudo, para que a arquitetura de microservice esteja bem empregado e consiga liberar um catalogo de todos os métodos e URI.

Compilação


Com o Cordova eu solicitava a compilação e já executava diretamente no emulador da framework e o aplicativo para ser testado no meu Android.

Conclusão


O sucesso eu obtive ao optar por uma arquitetura mobile hibrida, pois consegui encurtar o tempo, obtive dinâmica no meu código fonte, manutenção ficou mais e fácil e consegui atingir todas as premissas do projeto.