Parte 1: Resumo, arquitetura e tecnologias

Antes de iniciar a parte prática de nossa série, vamos focar no entendimento do cenário. Por isso, nesse artigo irei abordar desde o resumo do projeto, a arquitetura de comunicação até as tecnologias e seus respectivos papéis no nosso projeto.

RESUMO DO PROJETO

Como abordei no post anterior, nessa série de aulas-tutoriais, irei ensinar como criar um projeto multiplataforma – literalmente – onde teremos um aplicativo mobile que irá acessar informações que estão salvas em um servidor externo, mais precisamente em um banco de dados MySQL.

Em linhas gerais, irei mostrar como desenvolver um sistema que irá manipular e acessar uma base de dados de pessoas, simulando um sistema de gerenciamento de clientes.

Na camada web (servidor) teremos:

  • Banco de dados MySQL com a tabela de pessoas;
  • Tela de relatório de clientes;
  • API (Webservice) de consulta de clientes;

Na camada mobile teremos:

  • Aplicativo desenvolvido no Intel XDK que irá consumir a API – ou Webservice – e exibir os clientes cadastrados no banco de dados web.

ARQUITETURA

Uma vez que nosso projeto visa construir um aplicativo que acessa e consome dados que estão salvos em um servidor web, é importante você entender profundamente qual será a arquitetura necessária para realizar essa tarefa.

Basicamente, estaremos abordando um padrão de comunicação baseado na arquitetura cliente-servidor, onde o cliente será tanto o sistema web quanto o aplicativo mobile, que irão consumir as informações, o servidor, que será responsável pelo banco de dados e “entrega” das informações consumidas, através de uma API.

Para mais detalhes a respeito dessa arquitetura, deixo este artigo que explica detalhadamente o seu real funcionamento e modelagem.

IMPORTANTE: Como nosso projeto visa construir um sistema web, irei utilizar meu domínio (www.diegocavalca.com) para alocar os arquivos da camada web do projeto em questão. Neste domínio utilizo os serviços de hospedagem da Kinghost, em um plano convencional LINUX, que me permite rodar as tecnologias necessárias para este projeto, conforme veremos a seguir.

TECNOLOGIAS

Para realizar toda a comunicação abordada anteriormente, serão necessárias algumas tecnologias, nas quais apresento cada uma a partir de agora.

PHP

Utilizaremos o PHP para ser responsável pelo parte web de nosso sistema, utilizando esta para escrever os códigos que serão responsáveis por:

  • Construir uma interface na qual iremos cadastrar pessoas e nosso banco de dados;
  • Construir a API (Webservice) que fará a “ponte” entre nosso aplicativo mobile e o banco de dados, realizando a comunicação dos clientes com o servidor.

Para construir essa API, iremos utilizar um framework PHP chamado SlimFramework (, que irá agilizar a implementação de nosso Webservice e nos permite total controle sobre a entrega dos dados.

Mais informações e detalhes sobre o SlimFramework podem ser encontrados em http://www.slimframework.com/.

Mesmo que você nunca tenha visto nada sobre esse poderoso framework, durante os artigos ficará fácil entender como trabalhar com ele para a entrega de informações em nosso Webservice.

JSON

O Javascript Object Notation (JSON) é um padrão de comunicação baseado em string que possibilita o tráfego de informações baseado em “pacotes de textos”.

Em linhas gerais, o JSON pode ser comparado ao padrão  XML, pois ambos tem o mesmo propósito, mas o JSON nos últimos tempos vem sendo amplamente adotado por desenvolvedores e grandes empresas como Google e Facebook por ser extremamente flexível e fácil de manipular, independentemente da plataforma, além de outros benefícios que não irei entrar em detalhes neste artigo.

Mais detalhes sobre JSON você pode conferir no site http://json.org/json-pt.html.

O JSON em nosso projeto será utilizado como sendo o “pacote de informações” que será gerado pelo Webservice do sistema quando nosso aplicativo requisitar os clientes que estão cadastrados no banco de dados.

Aqui vale a mesma dica anteriormente citada: mesmo se você nunca trabalhou com JSON, irá ficar fácil entender sua aplicação no projeto durante os artigos. Mas vale a pena estudar as referências que deixo, pois irá facilitar ainda mais esse entendimento.

MySQL

Utilizaremos uma base de dados MySQL que irá ficar responsável por conter a tabela que irá guardas as informações dos clientes cadastrados.

Mais informações sobre o MySQL podem ser encontradas em http://www.w3schools.com/php/php_mysql_intro.asp

IMPORTANTE: Não irei explicar detalhadamente cada tecnologia (por isso deixo sempre as referências para mais estudos), pois irei me preocupar em como utilizar a combinação destas para criar nosso projeto.

Com isso, temos toda a base de conhecimento – conceitual e tecnológico – necessária para iniciar a implementação de nosso projeto, conforme veremos no próximo artigo.

Continue: Parte 2 – Criando e modelando o banco de dados

Written by Diego Cavalca

Graduado em Análise e Desenvolvimento de Sistemas pela UNILINS em 2012, atualmente Mestrando em Ciência da Computação na Universidade Federal de São Carlos (UFSCar).

  • Murilo Ribeiro

    Diego, parabéns pela iniciativa! Conteúdo muito relevante e artigo muito bem escrito.

  • Clenilton Alencar

    Diego, bom dia! Parabéns pelo post do curso. Estou me baseando neles para começar a adentrar na tecnologia mobile.
    Mas tenho uma dúvida. Você está construindo a aplicação com jSon, PHP e Mysql. Poderia, então, trabalhar com ASP em vez de PHP? Teria algum conflito?

  • Caio Ramos

    Obrigado! São atitudes como esta sua que fizeram a humanidade evoluir tanto em tão pouco tempo. Vou acompanhar o curso a partir de agora.