tcc html e javascript para vÁrios dispositivos

57
0 CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE MAUÁ RODRIGO ILTON CARUSO STELLZER HTML E JAVASCRIPT PARA VÁRIOS DISPOSITIVOS MAUÁ/SÃO PAULO 2014

Upload: rodrigo-ilton-caruso-stellzer

Post on 22-Dec-2015

31 views

Category:

Documents


0 download

DESCRIPTION

HTML E JAVASCRIPT PARA VÁRIOS DISPOSITIVOSMonografia apresentada à FATEC Mauá como parte dos requisitos para obtenção de Título de Tecnólogo em Informática para Gestão de Negócios.

TRANSCRIPT

0

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA

FACULDADE DE TECNOLOGIA DE MAUÁ

RODRIGO ILTON CARUSO STELLZER

HTML E JAVASCRIPT PARA VÁRIOS DISPOSITIVOS

MAUÁ/SÃO PAULO

2014

1

RODRIGO ILTON CARUSO STELLZER

HTML E JAVASCRIPT PARA VÁRIOS DISPOSITIVOS

Monografia apresentada à FATEC Mauá como parte dos requisitos para obtenção de Título de Tecnólogo em Informática para Gestão de Negócios.

Orientador: Prof. M. Sc. Osmil Aparecido Morselli.

MAUÁ/SÃO PAULO

2014

2

Stellzer, Rodrigo Ilton Caruso.

HTML e Javascript para vários dispositivos. Rodrigo Ilton Caruso Stellzer, 57 p.; 30 cm. TCC (Trabalho de Conclusão de Curso). CEETPS/FATEC Mauá/SP, 1º Sem. 2014. Orientador: Prof. M.Sc. Osmil Aparecido Morselli. Referências: p. 53. Palavras-chave: HTML, Javascript, Web, dispositivos, smartphone.

3

RODRIGO ILTON CARUSO STELLZER

HTML E JAVASCRIPT PARA VÁRIOS DISPOSITIVOS

Monografia apresentada à FATEC Mauá, como parte dos requisitos para obtenção do Título de Tecnólogo em Informática para Gestão de Negócios.

Aprovação em: 21 maio 2014.

____________________________________

Prof. M. Sc. Osmil Aparecido Morselli

FATEC Mauá

Orientador

____________________________________

Prof.ª M. Sc. Nizi Voltarelli Morselli

FATEC Mauá

Avaliadora

____________________________________

Prof. M. Sc. Ivan Carlos Pavão

FATEC Mauá

Avaliador

4

Dedico este trabalho ao meu pai que

nunca desistiu de mim, apesar de repetidos

retrocessos. Dedico, também, à minha

esposa, que esteve firme ao meu lado em

toda a luta do entre meu déficit de atenção

contra o ensino universitário e ao Instituto de

psiquiatria da Universidade de são Paulo,

que me mostrou que não sou obrigado a ser

alguém que nunca realiza, apesar de saber

fazer.

5

AGRADECIMENTO

Aos meus colegas que me lembraram dos prazos de minhas atividades

quando me faltava a memória (comorbidade) e aos que colaboraram nos trabalhos

em grupo.

Em especial ao meu orientador, Prof. M. Sc. Osmil Aparecido Morselli,

sempre atencioso com minha falta de organização e me livrando de armadilhas.

Aos outros professores os quais foram para a sala de aula pensando em

meu futuro e de meus colegas, tanto quanto com suas próprias carreiras e ganhos

pessoais.

6

"Eduquem as crianças e não será

necessário castigar os homens."

(PITÁGORAS, 500 a.C.)

7

RESUMO

Este trabalho trata sobre os diversos tipos de dispositivos utilizados para acesso à

Internet nos dias atuais. Em seguida, encarrega-se de definir as linguagens de

programação usadas e interpretadas por navegadores de Internet do lado cliente,

como HTML, Javascript e o Javascript AJAX. Apresenta-se de forma esclarecedora

sobre um projeto que transforma HTML em aplicativos para dispositivos móveis

chamado Apache Cordova. São apresentados estudos de dois casos envolvendo

HTML e Javascript como solução para problemas de desenvolvimento diferentes da

utilização dos mesmos no cotidiano para sítios de Internet, e como foram de uso

essencial para atender as necessidades apresentadas.

Palavras-chave: HTML, Javascript, Web, dispositivos, smartphone.

8

LISTA DE ILUSTRAÇÕES

Figura 1 - Mensagem de correio eletrônico transmitida pela ARPANET. .................. 21

Figura 2 - Exemplo de documentos ligados por Hipertexto. ..................................... 23

Figura 3 - Exemplo de código em linguagem HTML. ................................................ 24

Figura 4 - Tags, atributos e valores........................................................................... 24

Figura 5 - Jogo em HTML5 - Front Invaders. ............................................................ 28

Figura 6 - Visualização de CSS em vários arquivos HTML. ..................................... 29

Figura 7 - Trocando vínculo com arquivo CSS de um arquivo HTML. ...................... 30

Figura 8 - Calculadora funcional em HTML e Javascript. ......................................... 31

Figura 11 - Exemplo de botões de ação em Javascript. ........................................... 36

Figura 12 - Comportamento de requisições em AJAX .............................................. 38

Figura 14 - Sistema de chamadas inicial. ................................................................. 43

Figura 15 - Sistema Web de chamados. ................................................................... 47

Figura 16 - Jogo de robôs em navegador de Internet. .............................................. 48

Figura 17 - Comandos de programação dos robôs. ................................................. 50

Figura 18 - Exemplo de programação de robô. ........................................................ 51

9

LISTA DE ABREVIATURAS E SIGLAS

Lista de Abreviaturas

Esp. - Especialista.

M.Sc. - Mestre.

Prof. - Professor.

Lista de Siglas

ECMA - European Computer Manufacturers Association.

HTML - Hypertext Markup Language.

ISO - International Organization for Standardization.

10

SUMÁRIO

1 INTRODUÇÃO ....................................................................................................... 12

1.1 Desenvolvendo para vários dispositivos .............................................................. 12

1.2 Justificativa .......................................................................................................... 14

1.3 Objetivo ............................................................................................................... 14

1.4 Metodologia ......................................................................................................... 15

1.5 Estrutura da monografia ...................................................................................... 15

2 DISPOSITIVOS QUE ACESSAM A INTERNET ..................................................... 17

2.1 Computador de mesa e notebook/laptop............................................................. 17

2.2 Dispositivos móveis ............................................................................................. 18

2.3 Tablet ................................................................................................................... 19

2.4 Televisores .......................................................................................................... 20

2.5 Consoles de videojogo ........................................................................................ 20

3 AS LINGUAGENS DA INTERNET .......................................................................... 21

3.1 A linguagem HTML .............................................................................................. 22

3.1.1 As versões da HTML ........................................................................................ 25

3.1.2 A HTML5 ........................................................................................................... 26

3.1.3 Mudanças presentes na HTML5 ...................................................................... 27

3.2 A Linguagem CSS ............................................................................................... 28

3.3 A linguagem Javascript ........................................................................................ 30

3.3.1 Criação da linguagem Javascript ..................................................................... 32

3.3.2 Normas que padronizam Javascript ................................................................. 32

3.3.3 Características da linguagem ........................................................................... 34

3.3.4 AJAX ................................................................................................................. 37

3.3.4.1 A página HTML como aplicação cliente ......................................................... 37

4 CONHECENDO O APACHE CORDOVA ................................................................ 40

5 ESTUDOS DE CASO ............................................................................................. 42

5.1 Painel de chamadas de hospital .......................................................................... 42

5.1.1 Problemas do projeto de software .................................................................... 43

5.1.2 Problemas na instalação de nova tela .............................................................. 44

5.1.3 O desafio de programação ............................................................................... 45

5.1.4 A solução e funcionamento do painel ............................................................... 45

11

5.2 Jogo criado com Apache Cordova ....................................................................... 47

5.2.1 O Tema do jogo ................................................................................................ 48

5.2.2 Animação em HTML5 ....................................................................................... 50

5.2.3 Biblioteca oCanvas ........................................................................................... 51

5.2.4 Resultados ....................................................................................................... 52

12

1 INTRODUÇÃO

Esse capítulo contém as seguintes subseções: Desenvolvendo para vários

dispositivos, onde será apresentado o campo de exploração deste trabalho,

Justificativa que motivou a tomada de decisão pelo assunto abordado, Objetivos

deste trabalho, Metodologia que explicará como será feita a pesquisa e a subseção

de Estrutura que explicará como foi dividida e construída esta monografia.

1.1 Desenvolvendo para vários dispositivos

O conceito de dispositivo envolve diferentes categorias de aparelhos que

acessam à Internet, como computadores pessoais, laptops, tablets, telefones móveis

e inteligentes, aparelhos de GPS (Global Positioning System), computadores de

bordo, televisores inteligentes e até relógios inteligentes.

Infelizmente, as plataformas tecnológicas de dispositivos atuais são muito

heterogêneas, possuindo hardware com diferenças colossais. Métodos de entrada

de dados e manipulação podem ser extremamente variados desde um teclado

completo às telas sensíveis ao toque ou apenas uma dezena de botões. Resoluções

de telas distintas, proporções de tela variantes e métodos de armazenamento de

dados totalmente diferentes tornam quase impossível a criação de uma ferramenta

unificada de desenvolvimento.

O desenvolvimento de software se encontra altamente segregado. De

acordo com McCracken(2008), houve uma empresa que excluiu intencionalmente a

compatibilidade de seus produtos para se tornarem o único canal de criação ou

distribuição e controlar o desenvolvimento para sua plataforma. Desenvolver uma

vez, para usar em diversos dispositivos e sistemas operacionais traz inúmeras

vantagens, mas cada solução para vários dispositivos pode ter suas vantagens e

desvantagens.

Um forte candidato para desenvolvimento para vários dispositivos são as

aplicações Web que, independentemente da linguagem ou ferramenta de

programação, permitem que a simples existência de um navegador de Internet

permita a compatibilidade.

13

Uma aplicação Web é uma aplicação cliente-servidor que (geralmente) utiliza o navegador Web como cliente. Navegadores enviam solicitações para os servidores, e os servidores geram respostas e as retornam para os navegadores. Elas diferem de aplicações cliente-servidor mais antigas porque elas fazem uso de um programa cliente comum, chamado o navegador Web. (SHKLAR; ROSEN, 2003, p. 202)

O primeiro telefone móvel com conectividade com a Internet foi o Nokia 9000

Communicator lançado na Finlândia, em 1996. A viabilidade dos serviços de acesso

à Internet era limitada até que os preços caíram neste modelo e provedores de rede

começaram a desenvolver sistemas e serviços convenientemente acessíveis em

telefones. NTT DoCoMo, no Japão, lançou o primeiro serviço de Internet móvel, i-

mode, em 1999, e este é considerado o nascimento de serviços de Internet para

telefones móveis. (HJELMEROOS HELI et al., 1999)

As restrições computacionais iniciais nos dispositivos e redes móveis foram

o que criaram as tentativas de adaptar a Internet aos dispositivos. Apesar de

revolucionário o modelo não vingou, por não ser exatamente a experiência desejada

pelos usuários finais, mas marcou a união de telefones móveis e acesso à Internet

de forma definitiva.

Um fenômeno que se constata atualmente é que a Internet é uma tecnologia

que não necessita mais avançar para alcançar os dispositivos, na verdade os

dispositivos é que buscam alcançar o nível de experiência já existente nos

computadores pessoais, como é dito no anúncio do navegador Firefox para Android

na loja de aplicativos da Google, apresentado a seguir.

"[O] Navegador Web da Mozilla, Firefox, traz o melhor da navegação do seu

computador ao seu telemóvel. É rápido, fácil de usar e personalizável, com as

últimas funcionalidades de segurança e privacidade para o manter seguro."

Entre alguns navegadores de Internet ainda existentes problemas de

compatibilidade, que o organizações que padronizam a Internet têm como objetivo

eliminar, há uma compatibilidade crescente entre estes aplicativos para tornar a

experiência de navegação homogênea. Este fato tem como conseqüência o

aumento da compatibilidade de aplicações Web.

Onde era necessário um computador pessoal caro e acesso à Internet

oneroso, hoje é possível acessar com dispositivos de baixo custo com opções de

acesso cada vez mais abrangentes, rápidas e diferenciadas. Estes novos clientes de

14

acesso a sistemas Web ampliam o campo de possibilidades e posicionam

desenvolvedores em áreas inexploradas.

Dessa maneira, é cada vez mais viável conceber sistemas, que antes eram

de predomínio de software local, utilizando as tecnologias da Internet, mesmo que

não se opere, necessariamente, de maneira permanentemente conectada, como

será estudado neste documento.

1.2 Justificativa

Na área acadêmica de desenvolvimento de software há muita divulgação da

geração de software nativo à máquina, talvez porque seja a metodologia mais antiga

e divulgada para o ensino de programação de computadores.

Como o autor, outros alunos podem vir a descobrir no decorrer de suas vidas

profissionais que a Internet oferece possibilidades muito mais amplas do quê lhes foi

ensinado nas instituições que têm foco pesado em aplicações nativas ao sistema

operacional ou plataforma.

Trazer resultados de pesquisas sobre a HTML (HyperText Markup

Language) voltados a vários dispositivos poderá ser útil para os alunos terem

contato com a idéia de utilizar a Web de forma alternativa à simples portadora de

conteúdos como é taxada.

Este trabalho pode servir de base à solução e tomada de decisão em futuras

estratégias de software.

1.3 Objetivo

Analisar e levantar dados sobre a popularização dos navegadores de

Internet nas mais diversas plataformas, e como pode ser útil aos desenvolvedores,

abrindo-lhes portas para o desenvolvimento em novos dispositivos com o total

reaproveitamento de tecnologias as quais já poderiam dominar e que são comuns a

todos estes dispositivos.

15

1.4 Metodologia

Será analisada a proposta de aplicativos Web, independente da linguagem

de programação no servidor. Foge do escopo deste trabalho discutir estas

tecnologias, pois em sua grande maioria elas apenas servem para gerar conteúdo

HTML e Javascript de maneira automática.

O foco é estudar o navegador e seu rico mundo de aplicabilidade. Tais

propostas serão dispostas de forma a expor casos em que foi preferida a tecnologia

HTML (junto com sua parceira Javascript) a aplicativos nativos, interpretados ou

compilados que exerçam a mesma função para obtenção, justificando-se tal escolha.

Através da revisão dos diferentes dispositivos disponíveis para uso nas

aplicações. Da análise de viabilidade de acesso a recursos de software e hardware

comumente acessados por aplicativos e cenários de soluções reais e outros

perfeitamente possíveis, será possível trazer à tona novas visões e respostas sobre

a viabilidade da Web como ferramenta para desenvolvimento em vários dispositivos.

Casos de uso e experiência no desenvolvimento de sistemas a clientes reais

serão apresentados, mostrando como soluções Web se destacaram em cenários

atuais e como atenderam a necessidade destes clientes.

1.5 Estrutura da monografia

Esta monografia contém 5 capítulos, a saber:

• Capítulo 1 Introdução;

• Capítulo 2 Dispositivos que acessam a Internet;

• Capítulo 3 As linguagens da Internet;

• Capítulo 4 Conhecendo o Apache Cordova;

• Capítulo 5 Estudos de caso.

O primeiro capítulo será responsável por ambientar o leitor na realidade que

levou à produção desta monografia, bem como delimitar o campo de atuação da

mesma. O segundo capítulo irá explicar quais dispositivos eletrônicos são usados

para acessar à Internet, e como se categorizam. No terceiro capítulo, são

16

apresentadas as linguagens de códigos que são usadas para construir os conteúdos

da Internet. Um projeto inovador chamado Apache Cordova será explicado no quarto

capítulo. Ao final, no quinto capítulo, serão apresentados estudos de caso

vivenciados pelo autor da monografia que exploram o uso das tecnologias

pesquisadas neste trabalho com a finalidade de trabalhar com o tema do mesmo.

17

2 DISPOSITIVOS QUE ACESSAM A INTERNET

No ano de 2008, o número de dispositivos conectados à Internet excedeu o

número de pessoas que os utiliza, de acordo com Gasston (2013), e estes

dispositivos não mais são limitados aos computadores pessoais como computadores

de mesa e notebooks.

Não mais estamos limitados a navegar na Web com computadores de mesa ou laptop. Tantas categorias de dispositivos existem agora - incluindo telefones inteligentes, tablets, e consoles de videojogo - que estou ficando sem dedos para contá-los. (GASSTON, 2013)

Este cenário é apelidado de Internet das coisas, o quê traz novos desafios

aos desenvolvedores de conteúdo para Internet que devem adequar seus produtos

aos navegadores presentes nestas tais coisas para que tudo seja experimentado da

forma esperada. (Id., 2013)

Nem tudo são problemas, pois o aumento do alcance de dispositivos à

Internet também abre novas possibilidades para os desenvolvedores em campos

que são abertos para novos nichos de mercado. (DAWSON, 2012).

Gasston (2013) e Dawson (2012) fornecem uma inestimável lista e ótimas

definições dos dispositivos mais comuns que acessam a Internet, atualmente.

2.1 Computador de mesa e notebook/laptop

O computador de mesa e o notebook/laptop são conhecidos por disporem

de telas de tamanho razoável, terem ótima capacidade de processamento para

navegação na Internet, e estarem, normalmente, conectados às redes de banda

larga cabeadas ou sem-fio fornecendo, assim, conexões confiáveis e de melhor

velocidade.

Possuem ampla gama de programas computacionais para acessar dados na

Internet, superando outros dispositivos neste quesito, até porque a Internet foi

inicialmente idealizada para atendê-los.

Apesar de serem conhecidos como os dispositivos com melhores

capacidades para acesso aos sítios da Internet, não se pode deixar de considerar

18

que uma parcela deles pode estar totalmente desatualizados no conceito de

programas computacionais, ou recursos como tamanho de tela ou velocidade de

conexão com à Internet. Assim, deve-se ter em mente que estes tipos de

dispositivos variam muito em limitações, além de se conhecer o público-alvo dos

sítios desenvolvidos.

2.2 Dispositivos móveis

Esta categoria foi definida por Gasston (2013) especialmente para telefones,

desde os mais simples telefones que podem acessar a Internet, passando pelos

telefones medianos que não são inteligentes, ou smartphones, que possuem

navegadores aprimorados, mas ainda limitados, até os smartphones de preço

elevado que podem inclusive disputar capacidades com computadores de mesa em

inúmeras situações.

Vinte e sete por cento do mercado global de vendas de telefones

corresponde a vendas de smartphones, e se estima que há, no mundo, um bilhão de

smartphones em uso no final do ano de 2012. Em 2015, são esperados dois bilhões

destes smartphones sendo usados pela população mundial.

Diversos sistemas operacionais móveis são utilizados para manter estes

dispositivos inteligentes, desde aqueles que não vão além de funções básicas de

telefone celular e não possuem um sistema operacional padrão ou capacidades

plenas de navegação, conhecidos como feature phones, até aparelhos com

sistemas operacionais completos que suportam instalação de programas e a própria

atualização de versões do sistema operacional pelo próprio usuário. (GASSTON,

2013)

Dentre os sistemas operacionais móveis há alguns concorrentes que se

destacam, como o Sistema Android da Google, o iOs do iPhone da Apple e o

Windows Phone da Microsoft.

Muitos dos sistemas operacionais móveis possuem um navegador baseado

no motor de navegação chamado Webkit, que abastece versões ligeiramente

diferenciadas, mas de forma geral com boa interoperabilidade. (GASSTON, 2013)

19

Com telas menores do que os computadores pessoais e, apesar de haverem

exceções à esta regra, de maneira generalista os dispositivos móveis possuem

capacidade de memória e processamento inferior aos computadores pessoais, pois

ambos estão em avanço constante.

Em alta tendência no mercado, os comandos baseados em toques com os

dedos na tela são uma linha de dispositivos diferenciados que deve ser lembrada ao

desenvolver páginas interativas, já que podem haver problemas em botões de

tamanho diminuto ou funções acessíveis somente ao sobrepor o cursor de um

mouse, o qual não está presente nos sistemas operacionais móveis mais

conhecidos citados acima.

Também, exigem constante busca por novidades no setor pelos

desenvolvedores, uma vez que centenas de novos dispositivos surgem anualmente

apenas pelos maiores fabricantes.

De acordo com Stark (2012), a principal característica que diferencia um

dispositivo móvel é a capacidade de permitir a mobilidade do usuário. Isto pode, nas

determinadas situações, ser tratado como superioridade aos computadores

pessoais. Sua substituição é também entre 12 a 18 meses, segundo o mesmo.

Smartphones são na verdade mais poderosos do quê computadores pessoais em diversas maneiras. Eles são altamente pessoais, estão sempre ligados, sempre conosco, geralmente conectados e diretamente endereçáveis. Mais ainda, eles estão por aí com poderosos sensores que podem detectar a (sua própria) localização, movimentos, aceleração, orientação, proximidade, condições ambientais e mais. STARK (2012).

2.3 Tablet

Computadores em formato de tablete, ou simplesmente tablets, tiveram sua

explosão com o lançamento do iPad da Apple, em 2010. Existem tablets com

sistema Android com telas mais comuns de 7 polegadas e se estima que, em 2015,

haverá 390 milhões de tablets em uso no mundo, cifra que dificilmente pode ser

ignorada.

Possuem tamanhos de tela maiores que os telefones e, em grande parte,

são utilizados conjuntamente à banda-larga sem-fio interna disputam funções e

utilizações com os notebooks e laptops, se encaixando em lacunas entre a

20

portabilidade de um smartphone e as capacidades com falta de mobilidade de um

computador pessoal ou notebook.

Os navegadores disponíveis seguem muito de perto as características dos

citados para smartphones.

2.4 Televisores

Estas telas geralmente passivas ganham novas utilidades com o lançamento

de televisores inteligentes que se conectam à grande rede. Apesar de contarem com

aplicações dedicadas, a funcionalidades para assistir conteúdo, como aplicativos

para assistir vídeos gratuitos e por assinatura, também acompanham navegadores

de Internet e formas do usuário digitar os dados de navegação diretamente do sofá

da sala. (GASSTON, 2013)

Apesar de toda inteligência agregada ao dispositivo, uma pesquisa recente

(Nielsen Company) revelou que 77 por cento dos espectadores de televisores já

estão simultaneamente em outro dispositivo enquanto assistem, ou tentam assistir,

ao televisor. (Id., 2013) Características relevantes são que não acompanham um

sistema muito eficiente de entrada de dados pelo usuário, com controles remotos

pouco práticos para navegação equivalente a um computador pessoal. Outro ponto

negativo é que o televisor é potencialmente de uso comum de várias pessoas,

perdendo a questão de ser pessoal e nem sempre é possível realizar tarefas de

interesse exclusivo já que outros podem desejar utilizá-lo simultaneamente, forçando

um uso impessoal que agrade a maioria no momento. (Id., 2013)

2.5 Consoles de videojogo

Existem menções aos consoles conhecidos como Xbox 360 da empresa

Microsoft e ao Playstation 3 da Sony além do Wii U que possuem navegadores que

são especificações variantes do já citado Webkit. Apesar disso são citados pelo

autor como de menor freqüência de uso e menos relevantes nas decisões dos

desenvolvedores atualmente. (DAWSON, 2012)

3 AS LINGUAGENS DA INTERNET

No início a ARPANET, a rede que deu origem à Internet,

tráfego de documentos

simples. De acordo com

Wikipédia (2013), não havia um indexador como as ferramentas de pesquisa atuais

ou aplicação do conceito de livre navegação

demonstra a Figura 1.

Figura 1 - Mensagem de correio eletrônico transmitida pela ARPANET.

Fonte: Astrosurf (2013).

Na década de 1990,

a localização de documentos e possibilitar formatos avançados de texto, pois os

aplicativos atuais não facilitavam a busca por informações e arquivos na rede

2013)

Novas ferramentas de uso da rede foram então desenvolvidas.

ferramentas se utilizavam de novas linguagens para

Esse capítulo se dedica a descrever as linguagens utilizadas pelos navegadores de

Internet, que são os aplicativos utilizados para exibir e navegar

AS LINGUAGENS DA INTERNET

ARPANET, a rede que deu origem à Internet,

tráfego de documentos e mensagens de correio eletrônico em texto de formato

De acordo com a lista de aplicações de rede da ARPANET presente na

ão havia um indexador como as ferramentas de pesquisa atuais

o conceito de livre navegação que só surgiria em 1996, como

Mensagem de correio eletrônico transmitida pela ARPANET.

Na década de 1990, com a explosão de uso da rede, foi necessário melhorar

a localização de documentos e possibilitar formatos avançados de texto, pois os

aplicativos atuais não facilitavam a busca por informações e arquivos na rede

Novas ferramentas de uso da rede foram então desenvolvidas.

ferramentas se utilizavam de novas linguagens para se criar conteúdo navegável.

e capítulo se dedica a descrever as linguagens utilizadas pelos navegadores de

nternet, que são os aplicativos utilizados para exibir e navegar em suas páginas

21

ARPANET, a rede que deu origem à Internet, era perfeita para o

em texto de formato

a lista de aplicações de rede da ARPANET presente na

ão havia um indexador como as ferramentas de pesquisa atuais

que só surgiria em 1996, como

, foi necessário melhorar

a localização de documentos e possibilitar formatos avançados de texto, pois os

aplicativos atuais não facilitavam a busca por informações e arquivos na rede. (Id.,

Novas ferramentas de uso da rede foram então desenvolvidas. Estas

se criar conteúdo navegável.

e capítulo se dedica a descrever as linguagens utilizadas pelos navegadores de

em suas páginas.

22

3.1 A linguagem HTML

HTML é uma sigla que na língua inglesa significa Hypertext Markup

Language, ou em português: Linguagem de Marcação de Hipertexto. (FERREIRA;

EIS, 2010)

É uma linguagem para publicar conteúdo digital, ou seja, mais do quê

apenas textos simples sem formatação. É possível utilizar HTML para publicar textos

com alto nível de formatação, como cores, tamanhos e posicionamentos diversos.

Também é permitido publicar imagens, vídeo, áudio e outros formatos multimídia na

Internet. (Id., 2010)

O Hipertexto é o conceito de onde tudo surgiu. É utilizado para definir

diferentes documentos presentes na Internet, como imagens e textos, possam ser

organizados e encontrados. Eles não estão conectados de maneira linear como os

conteúdos de um livro, com os assuntos em um volume, que são dispostos em certa

ordem. (Id., 2010)

Trafegar por entre os conteúdos de hipertexto pode ser feito seguindo

ilimitados trajetos dentro os caminhos oferecidos. É possível dispor conteúdos para

se trafegar linearmente como em um livro, mas também é possível permitir que a

pessoa navegando pelo conteúdo escolha o caminho como bem desejar. Isso é

possível, pois um documento possui atalhos para deixar o documento que se lê e

trafegar para outro, continuando assim o percurso. (Id., 2010)

A Figura 2 busca apresentar o conceito básico de hipertexto.

23

Figura 2 - Exemplo de documentos ligados por Hipertexto.

Fonte: Autor do trabalho (2013).

Segundo Shklar; Rosen (2003) e também informado por Ferreira; Eis (2010),

o autor original da HTML é Tim Berners-Lee, que tinha o intuito de criar uma

linguagem universal para disposição de conteúdo em documentos de hipertexto.

Foi popularizado na década de 1990, junto com o navegador (programa de

computador utilizado para acessar documentos de hipertexto) chamado Mosaic,

quando ganhou força. Este sucesso levou outros desenvolvedores adotarem a

linguagem HTML em seus programas, iniciando um processo de adoção do padrão.

(Id., 2010)

É uma linguagem que parte do formato inicial de um texto em fluxo normal

como dos editores de texto sem formatação convencionais, mas que utiliza de

códigos especiais para torná-los ricos em formatos e interação. Este códigos que

não pertencem ao significado texto, mas estão presentes para modificarem o

comportamento da exibição do texto inicial e criarem possibilidades de navegação

para outros documentos. (Id., 2010)

24

Os textos adicionais na HTML são mostrados na Figura 3.

Figura 3 - Exemplo de código em linguagem HTML.

Fonte: Autor do trabalho (2013).

Todos os códigos que estão cercados pelos caracteres menor < e maior >

são considerados tags (tag é um tipo de marcação, ou etiqueta identificadora) como

informado por Duckett (2010).

Algumas dessas tags possuem um início e um fim, dessa forma cercam uma

quantidade de textos ou códigos, significando que afetam tudo que está contido

entre as tags de abertura e de fechamento, delimitando assim sua região de efeito,

como ilustra a Figura 4. (Id., 2010)

Figura 4 - Tags, atributos e valores.

Fonte: Autor do trabalho (2013).

25

3.1.1 As versões da HTML

Silva (2010) afirma que o sucesso da HTML foi tamanho que se desejou

enriquecer a linguagem, aumentando seus usos e possibilidades. Somente entre os

anos de 1993 e 1995 surgiram três novas versões: HTML+, HTML 2.0 e HTML 3.0.

Apesar da alta adoção e popularidade, a HTML não era tratada como um

padrão até 1997, sendo apenas uma sugestão de especificação que não era

totalmente respeitada por todos os implementadores de navegadores de Internet.

(Id., 2010)

Linha do tempo de versões da linguagem HTML:

• HTML 2.0 - Em 24 de novembro de 1995, foi publicada como IETF

(Internet Engineering Task Force) RFC (Request for Comments) 1866 .

Posteriores publicações adicionaram:

o 25 de novembro de 1995, RFC 1867 (upload de arquivos em

formulário);

o Maio de 1996, RFC 1942 (tabelas);

o Agosto de 1996. RFC 1980 (mapas de imagem do lado cliente);

o Janeiro de 1997, RFC 2070(internacionalização).

• HTML 3.2 - em janeiro de 1997, publicada como recomendação;

• HTML 4.0 - em dezembro de 1997, publicada como recomendação e

oferecia três variações:

o Estrita, na qual elementos depreciados não eram permitidos;

o Transicional, na qual elementos depreciados eram permitidos;

o Frameset, onde somente elementos depreciados de frame eram

permitidos.

• HTML 4.0 - em abril de 1998, foi resubmetida com menores edições sem

incrementar seu número de versão;

• HTML 4.01- em dezembro de 1999, foi publicada como recomendação

oferecendo as três versões que a HTML4.0 do ano de 1997;

26

• ISO HTML - em maio de 2000, foi publicada como um padrão

internacional totalmente baseado na HTML 4.01 estrita;

• HTML5 - em janeiro de 2008, foi publicada como rascunho para ser

aprimorado.

A HTML foi conceituada para ser independente de plataformas, navegadores

e plataformas. Seu objetivo era que o criador de conteúdo escrevesse um código

que seria acessível por diversos meios sem qualquer necessidade de adaptação.

Isto permitiu que a Internet crescesse livre de padrões proprietários, ou encontrasse

limitações e problemas de incompatibilidade. A publicação sem barreiras foi o foco

de seus criadores. (FERREIRA; EIS, 2010)

3.1.2 A HTML5

Em 2004, desenvolvedores de empresas como Mozilla, Apple e Opera não

estavam satisfeitos com os rumos das versões da HTML e a versão chamada

XHTML (Extended HTML) que o Grupo W3C (World Wide Web Consortium), que a

principal organização de padronização da WWW (World Wide Web), estava

desenvolvendo. (FERREIA; EIS, 2010)

Diferente da ideia original, estas versões da HTML estavam altamente

segmentadas e várias versões disputavam popularidade sem qualquer

homogeneidade. Tais empresas se juntaram e resolveram fundar o Web Hypertext

Application Technology Working Group (WHATWG), responsável por realizar o que

se conhece, hoje, por HTML5. (Id., 2010)

A iniciativa do WHATWG foi divulgada mundialmente, chegando a chamar a

atenção do Grupo W3C, de forma que o W3C reconheceu a iniciativa e o trabalho

desempenhado até então. Em 2006, Tim Berners-Lee anunciou que trabalharia

juntamente com o WHATWG na criação do HTML5, ao invés de investir no XHTML.

Assim, a XHTML2 foi descontinuada, em 2009, devido ao sucesso da HTML5. (Id.,

2010)

27

3.1.3 Mudanças presentes na HTML5

Em 2010, Ferreira; Elcio informaram que a HTML5 teve como objetivo

padronizar e facilitar a escrita de código HTML, diminuir o volume de código,

padronizar necessidades que antes eram feitas de maneiras diversas, mas geravam

o mesmo resultado.

Propõe código interoperável, preparado para possíveis dispositivos que

acessarão o código no futuro. Conteúdos que necessitavam de plugins (executáveis

suportados por alguns navegadores que estendem sua capacidade com novas

funcionalidades) para certos conteúdos, mas tais plugins não estavam disponíveis

para todas plataformas de maneira homogênea e acabavam por limitar o quê certas

plataformas eram capazes de acessar. (Id., 2010)

Uma facilidade intencional na HTML5 é melhorar a forma de acesso aos

elementos por desenvolvedores que queiram acessar seus objetos ou estrutura,

definindo um padrão para classificar seções do documento, como cabeçalho,

conteúdo, menus e rodapé. Sendo mais fácil de interpretar e estender os códigos

das páginas da Internet usando linguagens de programação.

A Figura 5 demonstra a melhora de acesso aos elementos pelos

desenvolvedores.

28

Figura 5 - Jogo em HTML5 - Front Invaders.

Fonte: End3r (2013).

3.2 A Linguagem CSS

Cascating Style Sheets (livremente traduzido como Folhas de Estilo em

Cascata) é uma linguagem de formatação de conteúdo que define uma série de

regras para definir como será a exibição de elementos da HTML. (DUCKETT, 2010)

Possuem configurações para cores, tamanhos de textos, fontes de texto,

posicionamento de elementos, tamanho de elementos visuais entre muitos outras.

O propósito de sua existência é separar as configurações de exibição das

marcações presentes na HTML, facilitando entendimento e reuso de códigos. Dessa

maneira, foi criada permitindo o mais alto nível de separação dos códigos CSS em

um arquivo separado do arquivo HTML em si. (Id., 2010)

Dentro de um arquivo HTML é permitido vincular um ou mais arquivos CSS e

dessa forma vincular todas as configurações presentes nos mesmo sem criar um

volume desnecessário dentro do arquivo HTML. É possível inclusive reutilizar o

mesmo arquivo CSS para várias páginas HTML, o quê facilita muito quando se

deseja alterar um estilo de exibição em todos os arquivos HTML que vinculam este

arquivo CSS, como mostra a Figura 6

Figura 6 - Visualização de CSS em vários arquivos HTML.

Fonte: Autor do trabalho (2013)

O uso inverso é também utilizado, que seria possuir diversos arquivos CSS

que mudam totalmente a aparência do mesmo arquivo HTML, assim sendo,

temas de exibição para um mesmo arquivo HTML são simples de se criar

ilustra a Figura 7.

alterar um estilo de exibição em todos os arquivos HTML que vinculam este

, como mostra a Figura 6. (DUCKETT, 2010)

Visualização de CSS em vários arquivos HTML.

do trabalho (2013)

O uso inverso é também utilizado, que seria possuir diversos arquivos CSS

que mudam totalmente a aparência do mesmo arquivo HTML, assim sendo,

temas de exibição para um mesmo arquivo HTML são simples de se criar

29

alterar um estilo de exibição em todos os arquivos HTML que vinculam este

O uso inverso é também utilizado, que seria possuir diversos arquivos CSS

que mudam totalmente a aparência do mesmo arquivo HTML, assim sendo, vários

temas de exibição para um mesmo arquivo HTML são simples de se criar, conforme

Figura 7 - Trocando vínculo com

Fonte: Autor do trabalho (2013)

3.3 A linguagem Javascript

As linguagens HTML e CSS são conhecidas como linguagens de marcação,

pois apenas delimitam áreas a serem formatadas em um texto e como será esta

formatação, permitindo livre montagem de informações em uma página HTML.

Infelizmente, as linguagen

programação, pois não permitem que a página HTML seja modificada, sendo assim

criam páginas estáticas sem permitir sua mudança perante diferentes circunstâncias

ou modificações por interação do usuário que navega

A linguagem de programação Javascript

orientada a objetos e geralmente

capaz de receber ações do usuário em um documento HTML para permitir ao

programador responder com ações de programação, modificando a apresentação da

página. O que antes era apenas um documento estático

aplicativo com uma calculadora

com arquivo CSS de um arquivo HTML.

do trabalho (2013).

Javascript

As linguagens HTML e CSS são conhecidas como linguagens de marcação,

pois apenas delimitam áreas a serem formatadas em um texto e como será esta

formatação, permitindo livre montagem de informações em uma página HTML.

Infelizmente, as linguagens de marcação diferem das linguagens de

pois não permitem que a página HTML seja modificada, sendo assim

criam páginas estáticas sem permitir sua mudança perante diferentes circunstâncias

ou modificações por interação do usuário que navega. (SHKLA; ROSEN, 2003)

A linguagem de programação Javascript, de acordo com S

objetos e geralmente está embutida nos navegadores de

capaz de receber ações do usuário em um documento HTML para permitir ao

sponder com ações de programação, modificando a apresentação da

antes era apenas um documento estático, hoje pode conter um

aplicativo com uma calculadora totalmente funcional, por exemplo.

30

As linguagens HTML e CSS são conhecidas como linguagens de marcação,

pois apenas delimitam áreas a serem formatadas em um texto e como será esta

formatação, permitindo livre montagem de informações em uma página HTML.

s de marcação diferem das linguagens de

pois não permitem que a página HTML seja modificada, sendo assim

criam páginas estáticas sem permitir sua mudança perante diferentes circunstâncias

ROSEN, 2003)

, de acordo com Silva (2010), é

embutida nos navegadores de Internet, sendo

capaz de receber ações do usuário em um documento HTML para permitir ao

sponder com ações de programação, modificando a apresentação da

, hoje pode conter um

, por exemplo.

31

É possível modificar todo tipo de tag do documento como, por exemplo,

modificar o arquivo CSS do documento dependendo do horário do computador que

está visualizando para exibir um tema de cores e imagens de fundo de dia e um

outro ao anoitecer.

Apenas com uma linguagem de marcação, como a HTML, seria possível

desenhar uma calculadora completa, mas impossível fazê-la efetuar os cálculos pois

os elementos visuais não se modificariam ao se apertar os botões e não haveria

inteligência dos cálculos programada no documento, como se mostra na Figura 8.

Outra funcionalidade praticada é a de verificar os formulários que são

preenchidos por quem navega nas páginas, assim se alerta a pessoa que digita que

digitou em um campo de texto, que deveria conter uma data, dados inválidos, ou que

se esqueceu de preencher um campo essencial para a função específica do

formulário.

Figura 8 - Calculadora funcional em HTML e Javascript.

Fonte: Uize (2013).

Javascript não é recomendada para lógicas muito sofisticadas, pois sofre

uma dependência muito forte de compatibilidade com o navegador que apresenta a

página. Para minimizar estes problemas, algumas vezes, desenvolvedores recorrem

a códigos adicionais que funcionam de maneira diferenciada dependendo do

navegador, aumentando a complexidade dos códigos de maneira a obter maior

compatibilidade. Embora, tenha suas limitações esta linguagem é conhecida por ser

também responsável por ótimos resultados de interação, como foi citado por Shklar;

32

e Rosen (2003):

"JavaScript é um pouco como um veneno orgânico—ele lhe matará em

grandes doses mas pode ser um cura inestimável se você usá-lo da forma certa"

3.3.1 Criação da linguagem Javascript

A linguagem JavaScript foi inventada por Brendan Eich, da Netscape, e a primeira versão da linguagem denominada JavaScript 1.0 foi introduzida no navegador Netscape 2.0 em 1996. Nesse mesmo ano, a Microsoft lançou sua versão com o nome JScript 1.0 e introduziu-a no então Internet Explorer 3.0. Àquela época, em plena guerra dos navegadores, as diferentes implementações das funcionalidades da linguagem nos dois navegadores não seguiam um padrão unificado, causando um verdadeiro martírio para o desenvolvedor implantar scripts para servir ambos os navegadores. SILVA (2010)

Criada com a intenção de tornar os conteúdos mais dinâmicos, sofreu muitas

mudanças em seu ciclo de vida, pois começou a ser segregada por empresas

desenvolvedoras de navegadores de Internet para atender necessidades próprias.

Mais adiante, ver-se-á que sua última versão sendo adotada se propõe a resolver

este conflito.

3.3.2 Normas que padronizam Javascript

A associação ECMA (European Computer Manufacturers Association),

fundada em 1961, é uma associação que se dedica à padronizar sistemas de

informação. (SILVA, 2010)

Tornada internacional em 1994, já padronizou a linguagem Javascript desde

o ano de sua concepção em 1996, chamando-a de ECMA-262, lançando em 1997 a

primeira edição da norma. A ISO (International Organization for Standardization)

reconheceu este trabalho oficialmente já em 1998. (Id., 2010)

A Figura 9 apresenta a evolução da linguagen Javascript.

33

Figura 9 - As versões do Javascript.

Fonte: Silva (2010).

Foi denominada linguagem de script, pois esse é o termo que se usa para

definir uma linguagem para estender um ambiente já construído, permitindo acesso

às funcionalidade já existentes. (SILVA, 2010)

Não significa que a linguagem seja inferior ou superior às outras linguagens,

apenas significa que ela depende deste sistema a qual foi projetada para estender.

O ambiente onde a linguagem Javascript, ou ECMAScript é executado é comumente

34

o navegador de Internet, oferecendo acesso à todas funcionalidades dos objetos do

documento HTML. (SILVA, 2010)

A Figura 10 ilustra como a linguagem Javascript é utilizada.

Figura 10 - Arquitetura de execução do Javascript.

Fonte: Silva (2010).

3.3.3 Características da linguagem

É capaz de trabalhar orientada à objetos, pois oferece suporte à criação de

objetos com propriedades e métodos, apesar de não estar totalmente de acordo com

o conceito computacional de OOP (Object-Oriented Programming), segundo Silva

(2010).

Suporta caixas de diálogo padrão para comunicação e alertas para o usuário

que navega na página. Permite manipular todas as tags do documento, modificando

seus atributos, enquanto o navegador de Internet se encarrega de redesenhar tudo

35

para o usuário que navega ver as modificações que o Javascript realiza na página.

(SILVA, 2010)

Pode-se modificar as propriedades dos elementos para reposicioná-los,

ocultá-los, modificar seus tamanhos e quaisquer propriedades dos textos como

cores e tamanhos. Como pode fazer uso das CSS, a linguagem Javascript modifica

tudo que o CSS é capaz de desenhar. (Id., 2010)

Existem comandos na linguagem que conseguem inserir mais código HTML

dentro do documento, permitindo que se escreva mais no documento mesmo após

completamente carregado, e este novo conteúdo gera novos objetos para serem

manipulados ou exibidos. (Id., 2010)

Javascript suporta diversos eventos, que são situações especiais que

disparam a execução de códigos de programação. O clicar do mouse em um botão

na página poderia disparar um bloco de código que exibe uma mensagem, ou

realiza uma operação de soma em uma calculadora feita em HTML com Javascript.

(Id., 2010)

Há eventos como o passar do cursor sobre um elemento, que poderia ser

usado para exibir uma versão maior de uma foto de um determinado produto em

uma loja virtual, facilitando assim ao cliente visualizar o produto sem ocupar espaço

permanentemente na página. (Id., 2010)

Há também temporizadores que podem disparar códigos em intervalos de

milissegundos determinados, podendo atualizar a hora a cada segundo para manter

uma miniatura de relógio em um certo canto da página. (Id., 2010)

A linguagem é sensível a digitação de palavras-chave (comandos exclusivos

da linguagem que definem o quê deve ser executado) em maiúsculas ou

minúsculas, de maneira que um comando deve ser digitado exatamente da maneira

que a documentação define ou ocorrerá erro ao executar o código. (Id., 2010)

Como outras linguagens a Javascript não faz distinção em excesso de

espaços entre os códigos, ter mais de um comando por linha, ou até mesmo um

comando estar distribuído em várias linhas de código, contanto que não se

interrompa ao meio suas palavras-chave. Todos os comandos em Javascript são

finalizados pelo caractere ponto-e-vírgula (;) e isso é o quê permite mais de um

36

comando por linha, desde quê sejam separados por este caractere. (SILVA, 2010)

A Figura 11 ilustra como os botões de interação são construídos no

Javascript.

Figura 9 Exemplo de botões de ação em Javascript.

Fonte: Autor do trabalho (2013).

É uma linguagem com suporte à arranjos lógicos de dados, ou arrays, que

são grupos de variáveis e que podem conter todo tipo de conteúdo, inclusive outros

arranjos. (Id., 2010)

Textos que devem ser tratados como literais, ou seja, não são comandos,

devem estar sempre entre aspas simples (') ou duplas ("). Esta é a forma de definir

conteúdo constante em variáveis e propriedades que contém textos, conhecidos

como string. Números são digitados sem aspas diretamente entre os códigos, e para

números decimais se usa a vírgula para separar as casas decimais. (Id., 2010)

37

3.3.4 AJAX

O AJAX combina tecnologias existentes para auxiliar desenvolvedores a dar a usuários da web uma mais avançada experiência de navegação. Utilizando XHTML, CSS, JavaScript, e XML, todas tecnologias testadas-e-comprovadas, ao curso com o objeto XMLHttpRequest, você pode transformar navegadores em plataformas de aplicações que bem de perto espelham aplicações de computadores de mesa. Esta capacidade está permitindo sítios web converter para sítios Web 2.0, enquanto incrementa o número de novas aplicações web que podem ser encontradas na Internet hoje. (HOLDENER, 2008)

O Javascript perdia terreno até meados de 2005, quando o AJAX

(Asynchronous Javascript and XML, que significa Javascript e XML assíncronos) foi

cunhado, segundo Holdener (2008).

Outras tecnologias e plugins estavam sobrepondo as funcionalidades do

Javascript, quando as requisições assíncronas do AJAX surgiram trazendo inovação

ao campo da Web. (Id., 2008)

Sua principal tarefa é obter informações de servidores Web sem a

necessidade de recarregar a página para isso. É como se o Javascript tivesse seu

próprio navegador interno, que é capaz de obter novas informações para o

programador trabalhar e exibir no documento HTML sem ter que obter e redesenhar

todo o documento em uma requisição do navegador. (Id., 2008)

3.3.4.1 A página HTML como aplicação cliente

A capacidade de se transmitir e obter dados sem se descartar a página atual

tendo que recarregá-la trabalha um conceito de tornar a página HTML como uma

aplicação cliente separada. Uma vez carregada a estrutura da página, carrega-se

apenas os dados necessários para atualizá-la. (HOLDENER, 2008)

De maneira simples, o primeiro acesso à página seria o ato de se receber a

aplicação-cliente em HTML com Javascript. Esta aplicação em HTML com Javascript

se encarrega de: (Id., 2008)

• Obter dos dados atualizados que a aplicação necessita;

• Desenhar na página os novos dados nos locais adequados;

• Enviar dados que devem ser transmitidos ao servidor.

38

A Figura 12 mostra como operam as requisições em AJAX.

Figura 10 - Comportamento de requisições em AJAX

Fonte: Autor do trabalho (2013).

Um exemplo seria um usuário de e-mails que carrega sua estrutura uma vez

que o usuário se autentica, então efetua uma requisição AJAX para trazer uma lista

das mensagens da primeira página da caixa de entrada. (HOLDENER, 2008)

Quando o usuário clica em uma mensagem, o Javascript obtém o seu

conteúdo e o exibe em uma caixa visual por sobre a lista de mensagens. Ao fechar

esta mensagem exibida, o Javascript apenas descarta esta caixa visual, deixando

novamente à vista a lista de mensagens. (Id., 2008)

De tempos em tempos, o Javascript verifica se há novas mensagens no

servidor e, se necessário, remonta a lista de mensagens com a(s) nova(s)

mensagem(ns). Quando o usuário decide escrever uma nova mensagem e clica no

botão correspondente, o Javascript então exibe caixas para digitação dos dados.

(Id., 2008)

Ao concluir e clicar no botão específico para enviar a mensagem, o

Javascript faz uma requisição enviando assim esses dados para o servidor, que

39

enviará a mensagem segundo os protocolos de envio de e-mails e retornará um

aviso se foi possível enviar ou não. Este aviso então é recebido pelo Javascript e

exibido ao usuário. (Id., 2008)

Comprovadamente, é possível afirmar que há uma diminuição no volume de

tráfego de dados, pois onde cada atualização exigia a transmissão de uma página

HTML completa, com AJAX somente as informações relevantes são solicitadas e

transmitidas, pois se considera que a estrutura básica já está presente e funcional

no navegador do usuário e retransmiti-la causa um efeito visual indesejado de

redesenho em que a página é apagada e rapidamente redesenhada. (Id., 2008)

40

4 CONHECENDO O APACHE CORDOVA

Apache Cordova é uma plataforma para construção de aplicações usando

HTML, CSS e JavaScript. É um projeto muito curioso que visa transformar o código

em HTML com Javascript em aplicativo nativo de várias plataformas, sendo bem

abrangente atualmente, segundo o próprio sítio do projeto, já cria aplicativos para:

• Android;

• Blackberry;

• iOS (Sistema Operacional do iPhone e iPad);

• Windows Phone;

• Windows 8 (para computadores);

• Tizen (utilizado em televisores inteligentes).

Tal abrangência é muito relevante na hora de escolher uma plataforma de

desenvolvimento, pois quem desenvolve quer atingir o maior público possível. Além

de fornecer tudo o que está disponível em um navegador corrente para o

desenvolvedor criar suas interfaces, possui acesso à novas bibliotecas de códigos

que permitem ao desenvolvedor trabalhar com características dos dispositivos como

acessar arquivos da memória do dispositivo, informações sobre os contatos de um

telefone inteligente, sensores, GPS, câmeras e tudo mais que o dispositivo permitir.

De acordo com a documentação do projeto, o segredo está em combinar no

aplicativo final um pequeno executável nativo que abre os códigos desenvolvidos em

HTML e Javascript com uma WebView, que é uma característica dos sistemas

operacionais de exibir conteúdo de Web nos dispositivos. (WARGO, 2013)

Dessa maneira, o conteúdo é aberto em tela cheia no dispositivo e o usuário

final nem toma conhecimento de que está utilizando algo feito com tecnologia Web

ao invés de tecnologia nativa. Para ele é apenas mais um aplicativo instalado em

seu dispositivo. (Id.,2013)

É possível criar um aplicativo à partir de uma pasta contendo um arquivo que

será a tela inicial do aplicativo, em formato HTML, que se deve chamar index.html.

A partir daí, pode-se incluir na pasta tudo que for necessário, como outras telas

feitas em HTML, imagens, arquivos CSS e de Javascript adicionais, subpastas e

41

tudo mais que o HTML suporta. Muitas aplicações em Javascript puras nem mesmo

necessitam de conversão ou adaptação, podendo simplesmente serem

empacotadas usando o software disponível no endereço virtual do projeto para a

plataforma desejada. É claro, que fica a cargo do desenvolvedor adaptar os

tamanhos de tela e de entrada de dados do usuário de acordo com a necessidade,

mas é algo que cada vez mais os desenvolvedores se acostumam devido ao imenso

número de dispositivos acessando os conteúdos que produzem. (Id., 2013)

42

5 ESTUDOS DE CASO

Nesse capítulo é apresentado dois casos: o painel de chamadas de hospital

e o jogo criado com Apache Cordova.

5.1 Painel de chamadas de hospital

Um conceituado hospital particular localizado na cidade de Mauá, Estado de

São Paulo, adquiriu de uma empresa terceirizada um software de painel de

chamadas para pacientes no início do ano de 2012, que se propunha a integrar-se

com o sistema de controle do hospital existente.

Dessa maneira os médicos chamariam os pacientes ao clicar em um botão.

Já existia a lista de pacientes em espera para serem atendidos no sistema de

controle padrão do hospital. O botão de chamada então chamaria uma rotina de

programação que insere o nome do paciente em um cadastro do sistema da tela de

chamada, como demonstra a Figura 13.

Figura 13: Tela de chamadas em painel do hospital.

Fonte: Autor do trabalho (2013).

Dois computadores foram instalados, cada um com diversos televisores de

43

quarenta e duas polegadas utilizados como monitor de imagem nas suas saídas de

vídeo, como um computador com várias telas espelhadas. Os sons provenientes

destes computadores também eram direcionados com cabos até os televisores. Um

executável, rodando nestes computadores, se encarregava de ler o cadastro de

pessoas a serem chamadas e exibir em todas suas telas, soando um alerta de

chamada semelhante a uma campainha, conforme a Figura 14.

Figura 11 Sistema de chamadas inicial.

Fonte: Autor do trabalho (2013)

5.1.1 Problemas do projeto de software

O projeto foi idealizado e implantado. A tela do sistema padrão do hospital já

dispunha do botão de chamadas de pacientes e os computadores de chamadas

estavam instalados corretamente.

Infelizmente, começaram a surgir diversos problemas com o software

adquirido da empresa terceirizada. Os problemas não ocorriam devido a escolha da

44

tecnologia Delphi, pois a mesma é capaz de atender os requisitos, mas não foi

desenvolvido de forma correta, e todas correções solicitadas demoravam a serem

entregues pela prestadora de serviços.

Meses depois da implantação, já no ano de 2013, ainda havia problemas

recorrentes e a equipe de suporte técnico constantemente era demandada para

sanar situações com correções como reiniciar o computador de exibição, o que

acarretava mais problemas, pois a lista de pacientes chamados desaparecia e os

médicos continuavam chamando sem saber que o sistema estava inoperante.

Algumas correções novas trouxeram problemas antigos e o problema se

estendia por mais de um ano. Nessa altura, os médicos do hospital já estavam

totalmente habituados a utilizar os painéis e não aceitavam mais voltar a chamar

com a voz os pacientes. A insatisfação do gestor era clara, ele havia adquirido algo

que se tornou necessidade, mas não podia confiar no produto.

5.1.2 Problemas na instalação de nova tela

No início de 2013, foi solicitada uma nova tela para a especialidade de

pediatria, que se esperava ser apenas levar cabos e instalar um novo televisor.

Infelizmente, mais de uma semana depois não havia sido possível concluir a

instalação. Aparentemente, interferências eletromagnéticas impediam a imagem de

chegar ao televisor, mesmo adquirido um novo cabo não foi possível levar a imagem

até o televisor localizado na pediatria.

Muito tempo e dinheiro foram gastos com as soluções lógicas, testando

combinações de cabos e saídas de vídeo diferentes que funcionavam para outros

televisores. Inclusive o televisor foi substituído sem sucesso. Assim, não foi possível

concluir a razão do sinal, pois todas as substituições possíveis de equipamentos

foram realizadas pela equipe de informática do hospital.

45

5.1.3 O desafio de programação

Visto o cenário, o autor deste trabalho, que trabalhava como desenvolvedor

de sistemas neste hospital, propôs ao seu superior imediato o desafio de criar,

rapidamente, um substituto para o sistema de chamadas usando HTML.

Em questão de horas, foi possível ter uma versão funcional de uma tela de

chamadas que se integrava completamente ao sistema existente, apenas com a

substituição da aplicação nos computadores que exibiam as telas de chamadas sem

modificar nada mais.

Foi desenvolvido em ASP.Net com linguagem C# que fabricava HTML e

Javascript como resultado.

Quando da compra dos últimos televisores para serem usados como painéis

de chamadas, o autor deste trabalho que trabalhava como desenvolvedor de

sistemas neste hospital à época, solicitou que fosse feita a compra de televisores

inteligentes, caso não afetasse o valor da compra de forma relevante.

A opção pelos televisores inteligentes foi feita pois pouco acarretavam no

cenário de custos de um novo painel, sendo os cabos e ligações mais caros do que

esta diferença.

Ao chegarem os televisores inteligentes adquiridos, foi necessária uma

pequena adaptação, que demorou menos um dia para ser descoberta, no trecho de

código que tocava o som, pois o televisor somente suportava no formato chamado

MP3 (MPEG Audio Layer 3) ao invés do padrão do HTML5 que é WAV (Wave) ou

OGG.

5.1.4 A solução e funcionamento do painel

Foi então colocado na pediatria um televisor inteligente rodando o sistema,

ligado apenas por um cabo de rede, o qual havia abundância e facilidade de

instalação no local. O televisor acessava o sítio de Web interno do hospital e obtinha

a tela com a lista dos pacientes, além de tocar os sons usando HTML5 e Javascript

e dar alertas visuais no paciente chamado.

46

Limitações do televisor inteligente levaram a uma revisão dos códigos, e ao

invés do ASP.Net AJAX da Microsoft foi remodelado para utilizar AJAX puro (de

codificação mais manual), ficando mais leve e confiável.

Nesta altura o código Javascript que era executado no televisor já era

avançado para detectar problemas na rede, e quando a rede falhasse, mostrava um

aviso até que o problema fosse solucionado, quando então o Javascript retomava a

chamada dos pacientes normalmente sem intervenção humana, uma vantagem que

o painel terceirizado estava longe de ter.

Até o momento somente um televisor inteligente se utilizava do painel Web.

Em meados de maio, um novo gerente de informática ordenou o teste do painel de

chamadas Web nos dois computadores que já existiam, e estavam ligados a todos

os outros televisores que funcionavam como painel chamadas.

O autor não mais trabalha neste local, mas foi informado por ex-colegas que

desde a implantação não houve qualquer tipo de problema, e apesar de verificar o

painel fazer parte da antiga lista de verificação de tarefas do setor, já se tornou

item obsoleto devido a completa falta de ocorrências e confiabilidade.

A Figura 15 esclarece a forma de operação do painel de chamadas Web.

47

Figura 12 - Sistema Web de chamados.

Fonte: Autor do trabalho (2013).

No televisor inteligente, que funciona sem computador, foi posteriormente

adicionado um equipamento de baterias chamando no-break que se encarrega de

alimentar o televisor em caso de quedas de energia de até cerca de vinte minutos.

Dessa maneira as telas de chamada tem funcionado em esquema de 24/7 por

meses sem necessitar qualquer manutenção humana.

5.2 Jogo criado com Apache Cordova

Como experimento prático, o autor decidiu desenvolver um jogo utilizando

Javascript para estudar como é o cenário de desenvolvimento em HTML5 seu novo

objeto Canvas (do inglês tela, que permite uma forma de pintura em um quadro de

imagem na página).

Os objetivos são desenvolver um jogo funcional em computadores e ter o

mesmo jogo sem alteração executando em dispositivos com Sistema Android que

48

são muito comuns e presentes na atualidade. Desejado também é estabelecer uma

base dos desafios encontrados para passar adiante.

5.2.1 O Tema do jogo

Selecionado o tema de jogo de controle de um robô através de cartas de

programação, baseado em um jogo de tabuleiro chamado Robo Rally, conforme a

Figura 16.

Este jogo foi criado por Richard Channing Garfield, que é Ph.D.

(Philosophiae Doctor) em matemática combinatória e muito conhecido por seu

principal jogo de cartas colecionáveis, Magic: The Gathering. (WIKIPÉDIA, 2013)

Decidido por uma versão simplificada, pois não haveria disponibilidade de

tempo para desenvolver um jogo online para vários jogadores em conjunto com

atividades acadêmicas, apesar de ser simples de realizar isto toma muito tempo

para testar, sincronizar e homologar.

Figura 13 - Jogo de robôs em navegador de Internet.

Fonte: Autor do trabalho (2013)

49

Uma versão de quebra-cabeças ou desafios foi a opção, permitindo o

exercício da programação de robôs com cartas. Funciona da seguinte maneira: há

um tabuleiro com casas quadriculares com vários obstáculos e um quadrado de

chegada, e o jogador deve programar seu robô para se mover da casa inicial até o

ponto de chegada.

O robô é programado escolhendo cinco cartas de programação dentro oito

disponíveis. Cada carta é executada sequencialmente na ordem de sua escolha.

Dessa forma, quando concluída a programação, o robô executará as cartas de

comando uma após a outra. Este processo se repete até que o robô chegue à casa

de final e, aí, se contabiliza o desempenho com quantas rodadas de

cartas/programação o jogador necessitou para chegar.

O robô sempre está com a frente apontada para uma das arestas de seu

quadrado, como se fosse a direção que o mesmo olha e considera sua frente. As

cartas possuem comandos que podem ser:

• Andar uma casa à frente;

• Andar duas casas à frente;

• Andar três casa à frente;

• Girar 90 graus na mesma casa (olha nova aresta) para direita;

• Girar 90 graus na mesma casa (olha nova aresta) para esquerda;

• Girar 180 graus na mesma casa (olha onde estava de costas);

• Andar uma casa para trás (sem mudar a direção que aponta).

A Figura 17 apresenta os comandos do robô.

50

Figura 14 - Comandos de programação dos robôs.

Fonte: Autor do trabalho (2013)

No tabuleiro há perigos que podem destruir o robô, como buracos e lasers,

forçando o jogador a iniciar todo o processo desde o início em um jogo totalmente

novo. Há também esteiras rolantes que não danificam, mas modificam a posição do

robô caso ele termine uma ação de movimento em cima das mesmas. Após ser

movido por uma esteira, se o robô for colocado em uma segunda esteira, não será

afetado por esta segunda esteira nesta rodada.

5.2.2 Animação em HTML5

Estudados livros de animação em HTML5, foram efetuados testes com

animação e redesenho diretamente com o objeto Canvas do HTML5. Após um par

de experimentos usando a tecnologia a sensação resultante foi que a tecnologia

funciona perfeitamente, mas como fornece objetos muito simples o experimento já

caminhava no sentido de construir um motor de animação.

51

Seria como construir uma biblioteca com as funcionalidades necessárias

para depois fazer uso da mesma. Como já existem diversos motores e bibliotecas

com esta função já prontas e gratuitas, não fazia sentido "reinventar a roda". O foco

voltou-se em escolher uma biblioteca agradável.

5.2.3 Biblioteca oCanvas

Em ferramentas de buscas foi possível localizar diversas bibliotecas e

motores de animação. Dentre todas, foi escolhida a oCanvas, disponível

gratuitamente em <http://ocanvas.org/>, por possuir o que seria necessário sem

exageros.

A documentação disponível no sítio do projeto é bem abrangente, e os

exemplos podem ser testados no próprio navegador. Inclusive há um teste de curvas

de aceleração de movimento, que tornam movimentos mais naturais, como mostra a

Figura 18.

Figura 15 - Exemplo de programação de robô.

Fonte: Autor do trabalho (2013)

Movimento de animação sem aceleração resulta em animação pobre, como

por exemplo uma carta de baralho se movendo ao seu destino com velocidade

constante é bem monótona. Um carro parado em um semáforo se acelera ao sair,

chega na velocidade desejada e desacelera antes de parar novamente. Uma pessoa

que se move segue o mesmo princípio em menor escala.

O ideal é efetuar alguma aceleração, como por exemplo que ela saia

52

rapidamente do topo do baralho e desacelere pouco antes do destino. Isso transmite

a sensação de uma carta real que desliza um pouco antes de parar ao ser jogada na

mesa. A biblioteca já suporta isto nativamente.

5.2.4 Resultados

O uso da biblioteca oCanvas foi quase perfeito, com pequenas

necessidades de redesenho da tela não atendidas pela tecnologia. Infelizmente o

desenvolvimento da mesma é muito lento frente à concorrentes como o EASELJS,

uma biblioteca em Javascript queinclui mais funcionalidades para animação em

HTML5, e provavelmente não é recomendado investir desenvolvendo na oCanvas

com risco de depreciação.

O desenvolvimento para navegadores em computadores pessoais ocorreu

sem qualquer problema, de forma agradável foi possível utilizar sem preocupações

as complexidades de animação. Os resultados são precisos e os navegadores

compatíveis com HTML5 apresentam sem problemas o mesmo resultado nos testes.

Já o desenvolvimento para dispositivos Android, apesar de funcionar

corretamente em sua mecânica básica, dificulta muito a exibição em diferentes

tamanho de telas limitadas. Pelo menos o uso do arquivo HTML direto no Apache

Cordova foi perfeito, funcionou como o esperado, colocando o HTML para executar

no dispositivo sem qualquer tipo de surpresas.

Tudo que funcionou no navegador do computador pessoal apresentou o

mesmo resultado em Android com o Cordova. Apenas configurações para não

permitir que a tela mude sozinha de horizontal para a vertical ao mover o dispositivo

já deixaram o resultado como esperado.

Embora, a dificuldade quanto a tamanhos de telas seja esperada em

dispositivos móveis, o autor sentiu falta nas bibliotecas de animação em Canvas de

uma funcionalidade para auto-dimensionar conteúdos 2D (2nd Dimension) com base

na escala do tamanho da de forma descomplicada. Isto poderia solucionar diversos

problemas e acelerar o desenvolvimento. Como o HTML5 ainda é relativamente

novo, é bem possível que isto seja alcançado por bibliotecas que se tornarão padrão

no futuro.

53

6 CONCLUSÃO

De acordo com os casos de uso experimentados, a tecnologia HTML é de

alta compatibilidade, com suas propriedades aumentando sem ser necessária

intervenção dos responsáveis pelo HTML, uma vez que os produtores de

dispositivos e navegadores é quem almejam compatibilizar com o padrão.

Desenvolver neste padrão irá facilitar muito o aprendizado, pois será uma linguagem

única para diversas tarefas, sem esquecer da mais comum que é desenvolver

portais de conteúdo e sítios Web.

A linguagem HTML5 certamente é promissora e não demonstra

possibilidade de substituição a curto prazo, mesmo respeitada a característica

instável dos padrões da informática em um mundo de atualização constante. Atingiu

um nível de adequação impecável e imensa abrangência ao fornecer as

capacidades que antes somente se encontrava em discutíveis ferramentas auxiliares

ao HTML, de forma a tornar obsoletos todos os complementos de programação

necessários que a tornavam segmentada e criavam incompatibilidade com certas

plataformas-alvo.

Nem tudo é perfeito, pois a especificação atual é apenas uma forma bruta

para os programadores, sendo necessário criar camadas adicionais de código para

utilização de forma eficiente. Isso abre campo para criação de bibliotecas

interoperáveis que facilitam as tarefas sem criar antigo problema, uma vez que as

funcionalidades básicas fazem parte do núcleo da linguagem e não se necessita dos

duvidosos plugins.

54

REFERÊNCIAS

CORDOVA. Projeto Apache Cordova. Disponível em: <http://cordova.apache.org>.

Acesso em: 15 nov. 2013.

COULOURIS, G. Sistemas distribuídos: conceitos e projeto. Porto Alegre, Brasil:

ARTMED, 2005.

DAWSON, A. Future-proof web design. USA: John Wiley & Sons Inc, 2012.

DOMINIQUE Hazael-Massieux. Combining the power of the Web with the

strengths of mobiles devices. Publicação em: 2012. Disponível em

<http://www.w3.org/Mobile/>. Acesso em: 27 nov. 2012.

DREDGE, Stuart. Social. TV and second-screen viewing: the stats in 2012.

Disponível em:

<http://www.theguardian.com/technology/appsblog/2012/oct/29/social-tv-second-

screen-research>. Acesso em: 22 set. 2012.

DUCKETT, J. Beginning HTML, XHTML, CSS, and JavaScript. USA: Wiley

Publishing, Inc., 2010.

EASELJS. Biblioteca Javascript EASELJS. Disponível em:

<http://www.createjs.com>. Acesso em: 12 out. 2013.

FERREIRA Elcio; EIS Diego. HTML5: Curso W3C. Escritório Brasil. Disponível em:

<http://www.w3.org/Mobile/>. Acesso em: 22 set. 2013.

GASSTON, Peter. The Modern Web: Multi-device Web development with hTML5,

CSS3 and JavaScript. São Francisco: No Starch Press, 2013.

HJELMEROOS, Heli et al. Coping with Consistency under Multiple Design

Constraints: The Case of the Nokia 9000 WWW Browser. Disponível em:

<http://www.dcs.glasgow.ac.uk/~stephen/workshops/mobile99/papers/hjelmeroos.pdf

>. Acesso em 25 out. 2013.

55

HOLDENER, A. Ajax: The Definitive Guide. USA: O’Reilly Media Inc, 2008.

MCCRACKEN, Harry. Apple Monopolistic? Maybe. Control Freaks? Definitely!

Disponível em: <http://technologizer.com/2008/09/07/apple-monopolistic-maybe-

control-freaks-definitely/>. Acesso em: 18 out. 2013.

MOZILLA. Navegador Mozilla para Android. Disponível em:

<https://play.google.com/store/apps/details?id=org.mozilla.firefox&hl=pt_PT>. Acesso

em: 27 nov. 2012.

NIELSEN. The Nielsen Company. The mobile consumer: A global snapshot.

Publicação em: 2013. Disponível em: <http://www.nielseninsights.it/wp-

content/uploads/2013/03/03.-global_mobile_report_02_25.pdf>. Acesso em: 22 set.

2013.

OCANVAS. Biblioteca Javascript oCanvas. Disponível em:

<http://www.ocanvas.org>. Acesso em: 07 jul. 2013.

SHKLAR, L. Web Application Architecture: Principles, protocols and practices.

USA: John Wiley & Sons Inc., 2003.

SILVA, M. JavaScript: Guia do Programador. São Paulo: Novatec, 2010.

TARTARUS. Tabuleiros alternativos de Robo Rally Disponível em:

<http://tartarus.org/gareth/roborally/boards/all>. Acesso em: 18 out. 2013.

WARGO, Johm M. Apache Cordova 3 Programming. USA: Pearson Education,

2013.

WHATWG. Web Hypertext Application Technology Working Group. Disponível

em: <http://www.whatwg.org/>. Acesso em: 14 nov. 2013.

WIKIPEDIA1. The free encyclopedia. History of the Internet. Disponível em:

<http://en.wikipedia.org/wiki/History_of_the_Internet>. Acesso em: 27 nov. 2012.

56

WIKIPEDIA1. The free encyclopedia. Wireless Application Protocol. Disponível

em: <http://en.wikipedia.org/wiki/Wireless_Application_Protocol>. Acesso em: 28 set.

2013.

WIZARDS. Robo Rally - Site oficial. Disponível em:

<http://www.wizards.com/default.asp?x=ah/prod/roborally>. Acesso em: 18 out.

2013.