Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Criando aplicativos móveis com PHP

Recommended Posts

Há um bom tempo, quando eu comecei a programar, PHP era a escolha óbvia para as minhas necessidades. Ele estava disponível em todos os servidores web virtuais, tinha excelente documentação, e conseguia lidar com tudo que eu precisava fazer (e muito mais!). Essas coisas são ainda mais verdadeiras hoje, e o PHP ainda é meu middleware de escolha. No entanto, eu notei que a maneira que eu uso o PHP mudou nos último anos.

Há cerca de 3 anos atrás eu construía sites inteiramente com PHP. Durante uma solicitação típica de página, o PHP fazia coisas como começar uma sessão, consultar um banco de dados, processar alguns dados, e, finalmente, gerar uma tonelada de métricas de HTML que seriam retornadas para o browser do usuário. Em outras palavras, toda a interface do usuário era gerada no lado do servidor pelo PHP. Ocasionalmente, eu incluiria o prototype.js ou jQuery para fazer um pouco de validação de formulário, ou uma lista dropdown com um campo para ?auto-completar?, mas geralmente eu evitava o JavaScript. Eu costumava ser cético com as técnicas Ajax, e preferia uma que funcionasse bem em todos os navegadores.

 

Mas então veio o iPhone...

Em 2007, o iPhone deu início a uma onda de interesse em computação móvel. Como milhares de desenvolvedores, eu estava maravilhado por aquele pequeno dispositivo mágico que colocou a web no meu bolso. Sempre conectado, navegadores excelentes, interação de toque intuitiva ? é de fato incrível, e eu queria entrar nessa de cabeça.

Quando o iPhone foi anunciado pela primeira vez, Steve Jobs pediu ao desenvolvedores terceirizados que construíssem aplicativos web se eles quisessem programar para o iPhone. E fiquei estático com isso, por que:

  • Eu era um desenvolvedor web, não um desenvolvedor Mac;
  • Eu percebi que isso levaria a uma rápida inovação de navegadores, por exemplo, uma melhoria da API JavaScript em todos os recursos legais que o iPhone oferecia.

Claro que Jobs acabou voltando atrás menos de um mês depois, com o anúncio do Cocoa Touch e a iTunes App Store. E a guerra santa entre ?web apps? e ?apps nativos? nasceu. O Cocoa Touch é um framework incrível, mas como um desenvolvedor web, eu não me interesso em desenvolver para uma plataforma especifica. Portanto, ao invés de mergulhar em Xcode e iOS, eu me dediquei em encontrar maneiras de criar uma experiência de web app em disposivitivos móveis que competissem com a experiência do app nativo e fosse para múltiplas plataformas. 

E o que isso tem a ver com PHP?

Minha abordagem de ?vai-e-volta? baseada no desenvolvimento web se tornou insustentável. É simplesmente muito caro re-enviar toda  a UI para um cliente mobile com cada pedido. E quando eu digo caro, eu quero dizer tanto no sentido figurado, quanto no literal ? certamente existe um lag chato de desempenho associado com uma viagem completa de ida e volta ao servidor, mas um problema potencialmente maior é que você está gastando desnecessariamente a banda mensal do usuário. Eu precisava me lançar no Ajax, e de uma forma significante.

 

Volte para os dias de hoje. Para a minha felicidade, agora temos a convergência de novas tecnologias que tornam a construção de web apps ? móveis e outros ? muito mais fácil. jQTouch, Sencha Touch, e mais recentemente, jQuery Mobile tornaram a vida mais fácil para escrever JavaScript para browsers móveis. O CSS3 nós dá transformações, transições e animações que nos permitem facilmente adicionar efeitos visuais sofisticados. E, mais drasticamente, o HTML5 define uma enorme quantidade de novos recursos ?? ?geolocalização, canvas, sockets, workers, armazenamento de dados do lado do cliente, suporte a cache offline da aplicação, cross-origin resource sharing, e por aí em diante.

 

Como resultado, eu me vejo criando minha própria UI com HTML estático, CSS e documentos JavaScript que conversam com uma API do lado do servidor construída com PHP. Esta abordagem baseada em API pode minimizar, de fato, a quantidade de dados enviados através do fio, porque eu consigo esconder os arquivos estáticos localmente, e somente requisitar atualizações de dados relativamente pequenos do PHP (normalmente na forma de JSON). Isso também tem grandes vantagens secundárias. Aqui estão as três maiores:

1. Divisão de trabalho:

Uma vez que você tem configurado uma API do lado do servidor, você pode facilmente ter seu trabalho de design do aplicativo no front end sem saber o mínimo de PHP, linguagens de templates, ou qualquer outra tecnologia do lado do servidor. Você não tem nem que dar acesso ao servidor para o designer ? ele pode codificar contra a API com os arquivos no seu desktop.

2. Clientes múltiplos

O cenário da informática está sob massivo crescimento e transformação. Estamos vendo telas tão pequenas quanto cartões de credito, e tão grandes quanto um outdoor. E está acontecendo também uma grande separação entre dispositivos que suportam entrada de toque, de mouse e, em menor número, de voz.

 

Diferenças no tamanho físico, modos de interação e capacidades do dispositivo exigem que forneçamos experiências otimizadas ao usuário para o terminal em questão. Expor uma API do lado do servidor, construída em PHP, possibilita o suporte a clientes front end, sejam eles clientes menores, construídos em HTML, CSS, e JavaScript, ou maiores, construídos com frameworks nativos.

Os benefícios dessa abordagem têm sido demonstrados pelo Google, Yahoo, e, talvez, mais dramaticamente pelo Twitter, que documentou e lançou uma API simples para a comunidade de desenvolvedores. Graças a isso, todos os clientes do Twitter encontraram seu caminho no mundo digital. Começando com uma API que permite esse tipo de flexibilidade, que parece infinita, estou certo de que ela contribuiu imensamente para a aceitação do Twitter.

3.  À prova do futuro

 O cenário da informática está evoluindo e é muito difícil prever o que vem a seguir. Muitas pessoas inteligentes estão trabalhando em novas tecnologias que irão mudar a maneira com que interagimos com computadores, e mais importante, um com o outro. Tudo, desde projeções holográficas de eventos de esporte ao vivo , até entradas das ondas cerebrais dos usuários  estão em jogo. Na minha opinião, a melhor maneira de se manter flexível à vista de novos desenvolvimento é fornecer uma API robusta para lidar com o máximo do levantamento do back end possível. 

Comece com sua API

Atualmente, eu praticamente começo cada projeto definindo a API. Eu, particularmente, sou fã da abordagem RESTful, mas na prática eu normalmente uso a minha mesmo, porque é muito fácil fazer com PHP. Provavelmente, existe uma ótima biblioteca REST para PHP por aí, mas eu ainda não tive a necessidade de procurar por uma.

Para trabalho web front end, você vai querer se familiarizar com a nova maravilha que é o  HTML5 e o CSS3, e mais importante, aprender JavaScript! É uma sintaxe muito parecida com PHP e ela deveria parecer bem familiar para você (existe até um artigo do PHP Advent sobre isso). No entanto, existem muitas diferenças importantes entre PHP e JavaScript que você realmente precisa entender antes de se auto intitular um especialista. Eu realmente recomendo o livro JavaScript: The Good Parts, de Douglas Crockford. Se você programa para a web, deve lê-lo.

 

Para finalizar, eu gostaria de dizer que nunca houve um momento melhor para ser um desenvolvedor web. A convergência de uma conectividade ubíqua, serviços de cloud e telas de toque interativa estão criando um ambiente onde qualquer um pode construir experiências do usuário convincentes que tenham um alcance massivo com uma barreira de entrada muito pequena. Então volte para seu editor de texto e comece a codificar: o intervalo acabou!

***

 

Texto original disponível em http://phpadvent.org/2010/building-mobile-apps-with-php-by-jonathan-stark

 

 

http://imasters.com.br/artigo/22665/php/criando-aplicativos-moveis-com-php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.