• Nenhum resultado encontrado

Este capítulo tem como objetivo dar a conhecer as ferramentas utilizadas na construção do projeto, explicando a função de cada uma.

4.1 - Meraki e CMX

CMX (Connected Mobile Experiences) é uma característica da Meraki, sistema wireless com firmware baseado em Linux.

O CMX, representado na Figura 23 - Imagem de gráficos com dados sobre o tráfego na Meraki mostra as estatísticas da localização em tempo real para melhorar a relação dos clientes com a empresa, mantendo o cliente mais perto dos produtos e das novidades desta. A informação recolhida pelos pontos de acesso é sincronizada com a cloud da Meraki e automaticamente exibida no dashboard, revelando os comportamentos do cliente. (26)

Figura 23 - Imagem de gráficos com dados sobre o tráfego na Meraki Fonte: Documentação da Go Wi-Fi

4.2 – Android Studio

Android Studio é um ambiente de desenvolvimento integrado (Integrated Development Environment ou IDE) para desenvolver software para a plataforma Android. Foi lançada em dezembro de 2014 e é disponibilizado gratuitamente sob a Licença Apache 2.0.. (27)

Na escolha do IDE, foi decido desenvolver o código através do Android Studio em vez do Eclipse e do NetBeans por razões como:

 O Android Studio e os sistemas operativos Android são desenvolvidos pela Google;

O Eclipse e o NetBeans necessitavam de algumas configurações de plug-ins e SDKs (Software Development Kit) adicionais para conseguir começar a desenvolver uma app;

 O Android Studio é baseado no IntelliJ, a qual eu já me tinha familiarizado, que podemos ver na Figura 24 - Ecrã de edição de uma classe Java no Android Studio exibindo a edição de uma classe Java.

4.3 - Material design

Google Material design ou Quantum Paper é uma linguagem de design desenvolvida pela Google em 2014. Permite dar um uso mais liberal a layouts em grelha, animações e transições responsivas, margens e efeitos de profundidade, tais como a luz e a sombra, que podemos observar na Figura 25 - Alguns componentes do Material Design. (28)

Na criação desta linguagem, os funcionários da Google basearam-se em objetos reais de trabalho, como papel e tinta. O material é comparável a objetos físicos, pois tem superfícies e cantos, mas é mais maleável do que esses objetos, como no caso das expansões e reduções no tamanho. Está disponível desde a API 21 do Android. É utilizada para várias plataformas como Android e web, por exemplo) através de várias APIs.

Figura 25 - Alguns componentes do Material Design Fonte: (28)

4.4 – Git

Git é um sistema de controlo de versões distribuído e um sistema de gestão de código fonte,

feito para esta tarefa ser simples e ágil. O Git foi inicialmente projetado e criado para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros projetos.

Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central. (29)

Na Figura 26 - Git Shell, a linha de comandos Git, pode-se observar uma pasta do computador que está sob observação de alterações pelo Git. A mensagem ‘[master =]’ mostra que o conteúdo da pasta é igual ao do repositório.

Figura 26 - Git Shell, a linha de comandos Git

Tal como o Android Studio, o Git é um software livre, sob a versão 2 da GNU General Public License.

4.5 – GitHub

Em 2008, Tom Preston-Werner, Chris Wanstrath e PJ Hyett disponibilizaram a plataforma GitHub. Esta serve para alojar código-fonte de projetos. Estes projetos podem ser acedidos e manipulados utilizando uma linha de comandos Git e fazendo uso dos comandos da tecnologia. Os repositórios, onde são guardados os projetos dos clientes, são definidos como públicos (para Open Source) ou privados.

O site github.com também fornece funcionalidades semelhantes a uma rede social, como feeds, seguidores, wikis, gráficos de rede social para mostrar como os programadores trabalham nas suas versões (também designadas de forks) de repositórios e que ramo (branch) contém a versão mais recente. A Figura 27 - Exemplos de issues do estágio na plataforma GitHub mostra uma lista de issues, que são tarefas quanto ao desenvolvimento do código do repositório. Um utilizador tem de possuir uma conta para usufruir do serviço e para contribuir para a comunidade do website, mas os repositórios públicos, estão disponíveis na Internet e podem ser transferidos por todos. Com uma conta, os utilizadores podem discutir, gerir, criar repositórios, submeter contribuições para outros repositórios e rever alterações ao código. O software GitHub foi escrito em Ruby on Rails e Erlang. (30)

4.6 - APIs

Uma API (Application Programming Interface) é um conjunto de rotinas, protocolos e ferramentas para construir software. Uma boa API torna o trabalho do programador mais fácil, fornecendo todos os blocos de código, que são unidos por este.

As especificações da API podem tomar muitas formas, como rotinas, estruturas de dados, classes de objetos, variáveis, invocar procedimentos, etc. (31)

Uma API pode ser um sistema baseado em:

web;

 sistemas operativos;

 sistemas de bases de dados;

hardware;

software (libraries ou bibliotecas).

4.6.1 - Android API

A API da raiz do projeto é a própria Android API. Apesar de ser apenas conhecida como “Android”, possui bibliotecas repletas de variáveis e funções adequadas para o sistema operativo. Abaixo encontram-se exemplos das principais APIs utilizadas.

4.6.2 - Go Wi-Fi Python API

Esta API construída em Python foi desenvolvida pela Go Wi-Fi, de modo a tratar a informação que chega da Cisco Meraki. É executada sobre o Google App Engine e distribui a informação pelas bases de dados desejadas e trata-a da maneira como foi escrita para tal. Mais informação deste ciclo está ilustrada na Figura 2 - Funcionamento da Go WI-Fi Python API.

4.6.3 - Google Maps API

Em consequência da reflexão sobre a exibição de conteúdo ao utilizador da informação disponível, foi utilizada como solução esta API. Foi assim possível evitar mostrar os valores das coordenadas ao utilizador de forma mais cómoda, dado que se queria evitar a exibição destes valores devido ao facto de necessitar na grande maioria dos cassos, do auxílio de um mapa para saber a área definida.

Assim, a área da campanha é escolhida num mapa e também exibida num mapa, como mostra a Figura 28 - Ecrã exibindo um mapa através das coordenadas fornecidas, apesar de que, no lado do servidor e do programador, são apenas armazenadas as coordenadas dos cantos superior direito e inferior esquerdo deste.

4.7 – JSON

JSON (JavaScript Object Notation) é um formato de intercâmbio de dados. Foi concebido para ser legível por humanos e máquinas, sendo fácil para estas compilar e gerar código neste formato. É baseado numa norma de JavaScript e é completamente independente, mas apresenta algumas semelhanças em relação às linguagens de programação C, C++, C#, Java, JavaScript, Perl, Python e outras linguagens familiares aos programadores. Estas propriedades fazem do JSON a linguagem ideal para intercâmbio de dados.

O JSON assenta em duas estruturas:

uma coleção de pares nome/valor (ou chave/valor), que se assemelha a um array associativo;

 uma lista ordenada de valores, que se assemelha a um vetor.

Isto são estruturas de dados universais. Virtualmente todas as linguagens de programação modernas suportam-nas de uma forma ou outra. Faz sentido que o formato dos dados seja intercambiável com linguagens de programação baseadas nestas estruturas.

Em JSON, a informação é organizada de acordo com 5 tipos diferentes de variáveis:

object

array

value

string

number

O object é um conjunto de pares nome/valor não ordenados. Começa com ‘{‘ e acaba com ‘}’. Cada nome é seguido de ‘:’ e os pares nome/valor são separados por ‘,’.

Um array é uma coleção ordenada de valores. Começa com ‘[‘ e termina com ‘]’. Os valores são separados por ‘,’.

Um value pode ser uma string quando dentro de ‘ ” ’ (aspas), um número, true (valor verdadeiro), false (valor falso), null (valor nulo), um object ou um array. Estas estruturas podem ser encaixadas umas nas outras.

Uma string é uma sequência de zero ou mais caracteres Unicode, limitados por ‘ “ ‘ (aspas), usando escape de carácters com ‘\’. Um carácter é representado com uma string de carácter único. Semelhante às strings em C ou Java.

Um number é semelhante a um number em C ou Java, com a diferença que os formatos octal e hexadecimal não são utilizados.

O ‘ ‘ (espaço) pode ser inserido entre qualquer par de tokens. (32)

Foi necessário aprender a interpretar JSON neste projeto porque os POSTs trocados com a Go Wi-Fi Python API eram codificados nesta linguagem.

4.8 - Postman

Postman é uma aplicação que serve para auxiliar os programadores a desenvolverem APIs. É fácil de fazer pedidos HTTP através dele, guardar essa informação, partilhá-la, gerar código e documentá-lo. Contém também integração na Cloud. (33)

Neste projeto, foi utilizado para executar get requests e posts em JSON para a Go Wi-Fi Python API, como vemos na Figura 29 - Pedido GET a um URL da Go Wi-FI Python API.

Figura 29 - Pedido GET a um URL da Go Wi-FI Python API

Atualmente só está ainda disponível na Chrome Web Store, loja de extensões para o browser Google Chrome e como aplicação para OS X.

4.9 – Slack

Slack é uma ferramenta de comunicação para equipas baseada na cloud e co-fundada por Stewart Butterfield, Eric Costello, Cal Henderson, e Serguei Mourachov. O Slack começou como uma ferramenta para uso interno da empresa dos fundadores (TinySpeck) aquando o desenvolvimento do jogo de browser Glitch, agora encerrado. O nome, apesar de significado “preguiçar”, significa "Searchable Log of All Conversation and Knowledge" (Registo para Procurar Todas as Conversas e Conhecimentos). (34)

Foi utilizado durante o estágio para comunicação da equipa, em especial para troca de ficheiros multimédia e documentos em formato digital. O administrador criou um channel chamado

#android no servidor da equipa dedicado ao projeto aqui desenvolvido. Um conjunto de

mensagens do channel #android pode-se observar na Figura 30 - Imagem de conversa no channel dedicado a este projeto.

Documentos relacionados