FULLSTACK API – Ou o que aprendi com o MEAN.

Muito se ouve falar de API’s, e termos como API First, ou Offline API. É um conceito muito bacana, do qual não vou entrar em detalhes aqui pois basta você pesquisar um pouco e achará centenas de artigos falando sobre isso, em Portuguêsem Inglês, ou qualquer outra língua. Não só porque tem muito material já disponível, mas porque esse material disponível já descreve muito bem sobre isso, então eu só quero detalhar um pouco do que eu aprendi, sabendo que talvez não acrescentará em nada, mas pode ajudar quem esteja começando, assim como eu.

Eu sou uma pessoa que estuda pouco, porém sobre muitas coisas, e só entro em mais detalhes quando preciso. Então muita gente me acha inteligente, mas sou apenas curioso, e foi assim que, há um tempo atrás eu precisei/quis aprender NodeJS e AngularJS. Foi quando eu descobri a STACK (conjunto de tecnologias para se desenvolver determinada solução) MEAN (MongoDB, ExpressJS, AngularJS e NodeJS).

Esse termo (MEAN) é muito conhecido, basta você “googlar” e verás. Mas o que está por trás dessa ideia, eu (e creio que todo mundo que estudou o MEAN) descobri rapidinho: trabalhar com API. Mas que diabos é trabalhar com API? Também não vou entrar em detalhes, mas basicamente, nesse contexto que estamos inseridos, ao trabalhar com API, você cria um conjunto de rotinas/funções/métodos padrão, e isso vai ser o núcleo (core) do seu sistema. A partir de então, você desenvolve um elo entre o usuário e o core do seu sistema, esse elo é chamado de Cliente. Se sua API está online (de novo, no contexto desse artigo, presumiremos que sim), então você pode fazer vários tipos de clientes para acessá-la, como, cliente web, para Android, iOS, para Windows, Linux etc.

api first

Esse negócio de se trabalhar com API começou com grandes softwares. Eu vi, pela primeira vez, em redes sociais, como Twitter e Facebook. Isso foi testado e aprovado por programadores, que foram passando essa experiência ao longo dos anos e hoje em dia é uma tendência altíssima trabalhar dessa forma. Sendo assim, vamos somente recapitular, alguns benefícios de se construir o seu software no formato API:

  • Multiplataforma: também pode ser entendido como generalismo. É muito mais fácil criar uma versão de seu software para uma outra plataforma, pois o core do seu software já está pronto, de forma genérica, basta criar o cliente na plataforma desejada, para conversar com ele.
  • Consistência: Existe um padrão, único, no seu software, e todos os objetos e a arquitetura do seu software já estão bem definidos.
  • Modularidade: É muito mais fácil dividir seu software em módulos, ou em níveis de acesso, e distribuir essa divisão entre os clientes, pois você praticamente alterará somente um lugar

Voltando ao MEAN, você acha facilmente artigos para aprender essas tecnologias, eu particularmente gosto desse artigo da Caelum. Mas se você parar para pensar, o que é o MEAN?

  1. Um banco de dados (MongoDB)
  2. Uma biblioteca para obtenção, tratamento, roteamento etc, das requisições dos clientes (ExpressJS)
  3. Uma biblioteca para se construir seu cliente, nesse caso, web (AngularJS)
  4. Um servidor web (NodeJS)

Então porque o MEAN ficou tão famoso? Pelo fato de que, ao se trabalhar com qualquer uma dessas tecnologias, você só precisa ter conhecimento JavaScript, pois tudo o que mencionei é baseado nessa linguagem. Mas para trabalhar com API, não necessariamente você precisa pegar uma STACK pronta, você pode adaptar o que você já está acostumado à ideia de API.

Pensando nisso, eu peguei as tecnologias mais comuns (LAMP – Linux, Apache, MySQL e PHP) e adaptei à ideia de API. Transcrevendo a ideia do MEAN, o Apache preenche o item 4, o PHP preenche o item 2, o MySQL preenche o item 1 e o item 3 pode ser preenchido por qualquer biblioteca cliente que você quiser, inclusive o próprio AngularJS. Então meu MEAN virou um MPAA (MySQLPHPAngularJS, Apache).

Nessa ideia, eu criei uma webapp que faz a mesma coisa que o exemplo do artigo da Caelum, e disponibilizei para qualquer um poder estudar e aprimorar a ideia. Segue os links:

  1. Exemplo de aplicativo usando MEAN;
  2. Exemplo de aplicativo usando MPAA;

Espero que esses links possam ajudá-lo nos seus estudos.

 

Lançado o Apache Flex 4.10

vitrine-lancado-apache-flex-4-10O Projeto Apache Flex,  desenvolvedores voluntários e todos os envolvidos no desenvolvimento do Framework anunciaram na ultima terça feira ( 3 de setembro de 2013) o lançamento do Apache Flex 4.10.0. Esse lançamento traz diversas melhorias com relação a versões anteriores do Apache Flex e Adobe Flex.

“Nós vemos interesse no desenolvimento aumentando rapidamente. Ele teve mais de meio milhão de visualizações nos último semestre, mais 9 mil downloads do Flex SDK no último trimestre, e por volta de 130 mil visitantes únicos no web site flex.apache.org. Desde o lançamento inicial do Apache Flex no final de 2012 o interesse no projeto vem crescendo constantemente” disse OmPrakash Muppirala, commiter e membro do Apache Flex PMC 

O que há de novo no Apache Flex v4.10.0?

O Apache Flex 4.10.0 SDK permite desenvolvedores de aplicativos a construir expressivas aplicações web e móvel usando leiaute MXML para e Action Script 3, uma linguagem baseada no ECMAScript para script do lado do cliente (client-side script).

A versão contém muitas melhorias que times de desenvolvimento profissionais irão gostar. Isso avança o frame. É verdade que se tornou um dos melhores linguagens multiplataformas para escrever aplicações que foram testadas e compiladas para várias plataformas tecnológicas de um único conjunto de código.

Os destaques do Apache Flex v4.10.0 incluem:

  • Suporte as últimas versões do Flash Player e AIR Runtimes. E ao mesmo tempo, nós temos tornado mais fácil para desenvolvedores que esperavam usufruir das vantagens dos avanços das mais recentes versões do Flash Runtime permitindo escolher a versão durante a instalação. O Apache Flex SDK Installer agora permite os desenvolvedores selecionar várias combinações do Flex SDK, Flash Player e AIR Runtimes. Todas essas configurações são tratadas durante a instalação, então o desenvolvedor pode já começar a programar
  • Melhoras no suporte a antigas versões do Flash Player. Ambientes corporativos tem necesidades mais estritas para atualizar a versão do Flash Player. Por isso nossas melhorias na retrocompatibilidade, esses clientes podem seguramente atualizar a versão do Flex SDK sem forçar a atualização dos Flash Players de seus usuários finais.
  • Adicionado cerca de 15 novos componentes Spark, matendo ou substituindo os análogos mx . O novos componentes garantem que os usuários possam se beneficiar dos avanços feitos na arquitetura Spark no processo de desenvolvimento.
  • Suporte a Telemetria Avançada permitindo desenvolvedores a monitorar suas aplicações para melhora de performance usando Adobe Scout.
  • Melhor localização para múltiplas línguas. Flex 4.10.0 é melhor agora ao tentar fazer aplicativos para múltiplos países e línguas.
  • Melhor suporte “internacional” para a formatação de datas, validações e o nos componentes DateField e DateChoose.
  • Melhoras na produtividade do desenvolvedor – menos Run Time Errors (RTEs)
  • Suporte a resolução/skn móvel de 480 dpi, o que quer dizer que agora o Flex SDK pode agora aponta para dispositivos de alta resolução como iOS Retina, etc.

O download do Código Fonte do Apache Flex está disponível para download http://flex.apache.org/download-source.html.

Se você é um desenvolvedor e deseja usar o SDK do Apache Flex no seus projetos, é recomenda-se que você instale usando o instalador da IDE do Apache Flex: http://flex.apache.org/installer.html

Quando baixado de um site espelho ( fica esquisito em português né?), lembre-se de verificar o Hash MD5 ou assinatura do arquivo.

Para maiores informações sobre o Apache Flex, visite a Home Page do Projeto: http://flex.apache.org/


Confesso que há muito não ouvia nada sobre o apache flex, e cheguei a advogar contra o Flex apontando frameworks como ExtJS como melhor opção, embora tenha gostado muito de trabalhar com Action Script + Flex por um tempo no passado não muito distante. De uma certa forma é bom saber que o projeto ainda está vivo, pena que não aconteceu o mesmo como Google Wave.

Links: