Anda di halaman 1dari 52

FACULDADES ADAMANTINENSES INTEGRADAS FAI

APLICAO ANDROID PARA ORAMENTO EM VIDRAARIAS

RENATO SYLVESTRINO ALVES PEREIRA

Bacharel em Cincia da Computao

ADAMANTINA SP 2012

RENATO SYLVESTRINO ALVES PEREIRA

APLICAO ANDROID PARA ORAMENTO EM VIDRAARIAS

Trabalho Acadmico apresentado as Faculdades Adamantinenses Integradas FAI, no ano de 2012, como pr-requisito para obteno do grau de bacharel, sob orientao do Prof. Ms. Andr Mendes Garcia.

ADAMANTINA SP 2012

II

RENATO SYLVESTRINO ALVES PEREIRA

APLICAO ANDROID PARA ORAMENTO EM VIDRAARIAS

Folha de Aprovao

Adamantina,

de

de 2012.

Assinaturas

______________________________________ Orientador: Prof. Ms. Andr Mendes Garcia

____________________________________________ Examinador: Prof. Ms. Marcio Roberto Rizzatto

____________________________________________________ Examinador: Prof. Ms. Sergio Pegorari Carvalho

III

Dedicatria

Dedico este projeto aos meus pais, que sempre me apoiaram em todos os momentos de minha vida. Aos professores pela orientao geral e fora para a concluso de mais uma etapa da vida. E aos nossos amigos, que, juntamente comigo, batalharam pelo conhecimento e experincia.

IV

Agradecimentos

Agradeo primeiramente a Deus, pela concesso da vida, para me fazer capaz de superar os obstculos encontrados para concluso deste projeto, de tal maneira, que nenhum acontecimento far com que me esquea. Aos meus pais, que renunciaram aos seus sonhos para que muitas vezes pudesse realizar os meus e que toleraram pacientemente minha ausncia como filho. Ao professor Ms. Andr Mendes Garcia e demais professores, que me encorajaram atravs da partilha de seus conhecimentos e experincias, mesmo diante de minha fraqueza e ingenuidade. Aos amigos, que tambm contriburam para o enriquecimento de meu conhecimento e a todos aqueles que direta ou indiretamente me auxiliaram, me apoiaram e deram fora para a concretizao deste projeto.

Lista de Figuras

Figura 1: Janela 2 folhas com 1 fixa e 1 de correr ...................................................................... 4 Figura 2: Porta 4 folhas com 2 fixas e 2 de correr ...................................................................... 5 Figura 3: Estudo inicial das principais telas do aplicativo ....................................................... 16 Figura 4: Pacote contendo os recursos da aplicao no Eclipse ............................................... 17 Figura 5: Criando um pacote de desenvolvimento ................................................................... 19 Figura 6: Inserindo um Button ................................................................................................. 20 Figura 7: Importando biblioteca Button ................................................................................... 21 Figura 8: Teste do evento onClick............................................................................................ 23 Figura 9: Intenes da activity.................................................................................................. 25 Figura 10: Exemplo de spinner ................................................................................................. 33 Figura 11: Modelo de ListView................................................................................................ 34 Figura 12: Layout layout_orcamento_produto ......................................................................... 35 Figura 13: Calculo em aplicativo ............................................................................................. 37 Figura 14: Calculo no software de gesto ................................................................................ 38

VI

Lista de Quadros

Quadro 1: Clculo errado da rea do vidro................................................................................. 5 Quadro 2: Clculo correto da rea do vidro ............................................................................... 5 Quadro 3: Nomeando Id de objeto ........................................................................................... 20 Quadro 4: Declarando button na activity.................................................................................. 21 Quadro 5: Inicializando componentes na activity .................................................................... 22 Quadro 6: Evento onClick do Button ....................................................................................... 22 Quadro 7: Teste do evento onClick .......................................................................................... 23 Quadro 8: Extendendo a classe activity.................................................................................... 24 Quadro 9: Declarando mtodo ChamarTela ............................................................................. 25 Quadro 10: Estrutura de dados da tabela produto .................................................................... 28 Quadro 11: Estrtutura de dados tabela orcamento_produto ..................................................... 28 Quadro 12: Iniciando base de dados ......................................................................................... 29 Quadro 13: Mtodo Mensagem ................................................................................................ 30 Quadro 14: Criao de tabela ................................................................................................... 30 Quadro 15: Comando SQL de incluso de registros ................................................................ 31 Quadro 16: Trabalhando com cursor ........................................................................................ 31 Quadro 17: Formato decimal .................................................................................................... 32 Quadro 18: Utilizando o spinner .............................................................................................. 32 Quadro 19: Atribuindo valores a um ListView ........................................................................ 34 Quadro 20: Atribuindo evento onClick a um ListView ........................................................... 35 Quadro 21: Atribuindo imagem a um ImageView ................................................................... 36

VII

Resumo Com o grande avano da tecnologia, os dispositivos mveis esto se tornando mais poderosos com relao s suas capacidades de armazenamento, de processamento e de comunicao. Com o decorrer da evoluo tecnolgica, maior so os recursos oferecidos, e menores so os custos para aquisio de um aparelho, tornando-se mais acessveis aos consumidores. Hoje h cerca de 1,5 bilhes de televisores no mundo, um bilho de pessoas com acesso Internet e quase trs bilhes de pessoas possuem um dispositivo mvel, tornando-se este um dos produtos mais promissores do mundo. Nessa expanso dos aparelhos de dispositivos mveis, um software em particular se destaca, este o Android, que oferece recursos e informaes necessrias de forma rpida, na palma da sua mo. A partir desse software desenvolveu-se este trabalho que tem por objetivo criar um aplicativo mvel, que auxilia e agiliza o trabalho em uma vidraaria, tornando mais eficiente e eficaz o processo de clculo dos custos dos produtos oferecidos por ela.

Palavras-chave: Android. Tecnologia. Dispositivo Mvel. Mobilidade.

VIII

Abstract With the great advances in technology, mobile devices are becoming more powerful in relation to their storage capacities, processing and communication. In the course of technological change, the more resources are available, and the lower the costs for the purchase of a device, making it more accessible to consumers. Today there are about 1.5 billion televisions in the world, a billion people with Internet access and nearly three billion people have a mobile device, this became one of the most promising products in the world. In this expansion of mobile devices, software in particular stands out, this is Android, which provides resources and information they need quickly, in the palm of your hand. From that software developed in this paper which aims to create a mobile application that helps and makes working in a glazing store, making it more efficient and effective the process of calculating the cost of products offered by it.

Keywords: Android. Technology. Mobile Device. Mobility.

Sumrio Lista de Figuras .......................................................................................................................... v Lista de Quadros ........................................................................................................................ vi Resumo .....................................................................................................................................vii Abstract ....................................................................................................................................viii 1 INTRODUO ....................................................................................................................... 1 1.1 Objetivos ........................................................................................................................... 2 1.2 Escopo e Delimitao do Trabalho ................................................................................... 3 2 REVISO BIBLIOGRFICA ................................................................................................ 4 2.1 Dispositivos Mveis ......................................................................................................... 6 2.2 Plataformas de desenvolvimento ...................................................................................... 7 2.3 O Android ......................................................................................................................... 7 2.4 Histria.............................................................................................................................. 8 2.5 Verses ............................................................................................................................ 10 2.6 Empresas parceiras da OHA .......................................................................................... 10 3 AMBIENTE DE DESENVOLVIMENTO ............................................................................ 13 3.1 Eclipse ............................................................................................................................. 13 3.2 Java ................................................................................................................................. 13 3.3 Android SDK .................................................................................................................. 14 3.4 Android AVD ................................................................................................................. 14 4 DESENVOLVIMENTO........................................................................................................ 15 4.1 Primeiros passos ............................................................................................................. 16 4.2 Criando Boto ................................................................................................................. 19 4.3 Adicionando um novo layout ao projeto ......................................................................... 23 4.4 Chamando um novo layout ............................................................................................. 25 4.5 Componentes de interface do Android ........................................................................... 26 4.6 Base da dados SQLite ..................................................................................................... 26 4.7 Estrutura das principais tabelas do trabalho.................................................................... 28 4.8 Comandos SQLs ............................................................................................................. 28

4.8.1 Criao da base de dados ......................................................................................... 29 4.8.2 Criando Tabela ......................................................................................................... 30 4.8.3 Exibindo Valores ...................................................................................................... 31 4.9 Spinner ............................................................................................................................ 32 4.10 ListView........................................................................................................................ 33 4.11 ImageView .................................................................................................................... 35 5 RESULTADOS ..................................................................................................................... 37 Concluso ................................................................................................................................. 39 Referncias Bibliogrficas ........................................................................................................ 40

1 INTRODUO

fcil reparar que hoje a tecnologia se torna ultrapassada em um curto perodo de tempo, mesmo que seja obtido um celular, computador ou notebook de ltima gerao, dentro de poucos meses lanado um aparelho que o supera. O estopim de tanta evoluo a necessidade da clientela, que utiliza cada vez mais esses aparelhos para a realizao de seus servios, e outra a concorrncia entre as empresas, que para se manterem vivas no mercado, precisam revisar, inovar e evoluir suas tecnologias, para que satisfaa a necessidade do cliente e conquiste no mercado.

Os dispositivos mveis oferecem conectividade e facilidades para o dia a dia, e poder de uso a qualquer lugar e em qualquer momento, tornando-se importantes, tanto para uso pessoal, quanto profissional. Com o uso cada vez maior de dispositivos mveis, a demanda para aplicaes pessoais ou profissionais cresce, e o nmero de plataformas e ambientes de desenvolvimento tambm.

A escolha de uma plataforma ideal para o desenvolvimento de um projeto significa optar por uma soluo que fornea os melhores benefcios, em termos de custos, eficincia e tempo de desenvolvimento esperados para a finalizao do projeto. Podendo-se dizer que a ferramenta mais apropriada para se desenvolver, aquela que resolve o problema.

Este trabalho apresenta o desenvolvimento de um software mbile para a plataforma especfica Android, onde sua funo principal facilitar o calculo de produtos oferecidos em uma vidraaria. De acordo com a anlise realizada nesta vidraaria, notou-se que a maioria desses profissionais, os vidraceiros, no possui ferramentas suficientes para a exatido dos clculos, sendo vulnerveis ao erro, podendo prejudicar a conquista de venda, levando assim a empresa ao prejuzo.

Muitos so os softwares de prateleiras utilizados por essas empresas, que possuem apenas os cadastros bsicos, como clientes, fornecedores, usurios, controle de compras/vendas, contas a pagar/receber, controle de caixa. Esses cadastros so importantes para o gerenciamento e controle da empresa, porm este software necessrio, mas no suficiente. preciso ainda de um software que garanta a exatido dos clculos dos produtos utilizados para um determinado oramento, que faa o controle de venda, custos, matrias primas e mo de obra. Atualmente estes clculos so feitos em planilhas eletrnicas, que so muito passveis ao erro, pois qualquer deslize pode-se alterar a frmula da planilha ou digitar o preo do produto errado, levando assim a um resultado inesperado. Dessa forma, o vidraceiro acaba no tendo o lucro esperado, podendo entregar ao cliente um oramento barato, porm este teria um valor superior ao que foi calculado de maneira indevida, contribuindo assim para o insucesso da empresa.

Uma forma de solucionar este problema a utilizao de um programa que fornea esse clculo automaticamente, atravs das instrues do vidraceiro, o programa se alimenta dos dados inseridos e fica apto a obter o custo de qualquer produto oferecido pela vidraaria. Uma forma mais automatizada seria o uso de um aplicativo mvel, onde o vendedor pode calcular o custo do produto no prprio local da obra do cliente, ou outro lugar que necessite do servio.

1.1

Objetivos

Apresentar uma aplicao para dispositivos mveis, que visa auxiliar e assegurar o clculo do custo dos produtos oferecidos pela vidraaria. Criar um mecanismo que carregue informaes de produtos e matrias armazenados remotamente para o dispositivo mvel. Criar um mecanismo para o clculo de oramento, valor total, descontos e validade. Criar um mecanismo para sincronizar e integrar as informaes oradas e a atualizao de custos e produtos, no dispositivo mvel com o software da loja, que faz o controle e o gerenciamento os oramentos.

Boa parte das vidraarias tem como modelo atual do clculo de oramento, o uso de planilhas eletrnicas, podendo ocorrer erros que prejudicam o valor real do oramento. Posteriormente, esses valores so passados para um editor de texto, para ento apresentar um relatrio

aceitvel ao cliente. Com o processo de automao desses clculos, atravs de um dispositivo mvel, alm de minimizar falhas e tornar o clculo mais gil, ainda gera um relatrio com todos os dados necessrios, e se preciso envia um email ao cliente.

1.2

Escopo e Delimitao do Trabalho

Existem diferentes categorias para dispositivos mveis, tais como Smartphones, PDAs e Tablets. Existe tambm uma variada disponibilidade de plataformas de desenvolvimento para estes dispositivos, dentre as quais citam Android, iOS, Windows Phone, Symbiam, webOS entre outras. O fato do escopo deste trabalho focar no desenvolvimento de uma aplicao, para funcionar em um dispositivo especfico (Smartphone), baseado em uma plataforma especfica (Android), constitui-se em uma das restries deste trabalho.

2 REVISO BIBLIOGRFICA

O clculo de cada produto de uma vidraaria varia de acordo como os materiais utilizados, para ter um clculo eficiente e fiel, necessrio conhecer e entender o problema. Basicamente o clculo composto por trs elementos principais: vidros, ferragens e acessrios.

O custo do vidro calculado atravs da rea, mas deve-se tomar alguns cuidados, pois no basta apenas encontrar a rea e multiplicar pelo custo do vidro, e necessrio primeiro verificar se o vidro ter vo, se tiver deve primeiro adicionar o valor do vo ao comprimento do vidro, para assim encontrar a rea e ento ter um valor do custo real.

Figura 1: Janela 2 folhas com 1 fixa e 1 de correr Fonte: Renato S. A. Pereira, 2012 Como se observa na Figura 1, supondo que o custo por m do vidro seja R$ 90,00, ao realizar o clculo sem adicionar o valor do vo o resultado ser o presente no Quadro 1:

Quadro 1: Clculo errado da rea do vidro rea = 1m x 2m = 2m Custo = rea x R$ 90,00 = R$ 180,00 Fonte: Renato S. A. Pereira, 2012 E o valor correto o apresentado no Quadro 2: Quadro 2: Clculo correto da rea do vidro rea = 1m x 2,15m = 2,15m Custo = rea x R$ 90,00 = R$ 193,50 Fonte: Renato S. A. Pereira, 2012 Obteve uma diferena de R$ 13,50, ou seja, incorreto fazer o clculo apenas com rea. Existem produtos que possuem mais de um vo, isso varia de acordo com o nmero de folhas de vidro, um exemplo a Figura 2, apresenta quatro folhas que por sua vez ter trs valores de vo.

Figura 2: Porta 4 folhas com 2 fixas e 2 de correr Fonte: Renato S. A. Pereira, 2012

O custo da ferragem calculado de acordo com o comprimento ou altura do produto, atravs de uma tabela. Primeiro encontrada o Kg/m (Quilo por metro) de cada tipo de ferragem, tendo ento o Kg/m e o custo por quilo, o prximo passo encontrar o custo da ferragem. Em um produto utilizado vrios tipos de ferragens, e cada ferragem possui um Kg/m diferente.

Em cada produto pode se adicionar acessrios, como fechaduras, puxadores, travas, trincos, materiais para a concluso do produto tais como silicone, fitas, colas, e tambm adicionado o valor da mo de obra.

Encontrado o custo do vidro utilizado, o peso total da ferragem utilizada, e os acessrios e mo de olha, torna-se fcil o clculo do custo do produto, bastando apenas somar os custos parciais.

2.1 Dispositivos Mveis

H pouco tempo atrs, qualquer pessoa que possusse um aparelho celular, por mais simples que fosse, ela j teria inmeros benefcios proporcionados pelo aparelho, o principal que a comunicao, o envio de mensagens e outros que so muito teis ao dia-a-dia, tais como alarmes, lembretes, agendas, bloco de notas, calculadoras. Isso j facilitava, e muito, a vida de todos. As indstrias de tecnologia, sempre estimaram isso, fornecer acessibilidade para seus clientes, hoje essa tecnologia evoluiu de uma maneira assustadora, agora o acesso a informao instantneo, independente do momento ou local o usurio pode contar com suas informaes pessoais ou corporativas. Isso faz parte do cotidiano da maioria das pessoas, e proporciona uma forma rpida e eficiente de contatar suas fontes de informao.

O smartphone uma ferramenta rica em diversos recursos, e traz grandes facilidades, tanto ao desenvolvedor, quando ao prprio cliente, alm dos recursos j disponibilizados pelo equipamento, tais como acesso a internet, conexes Wi-fi, Bluetooth, o prprio equipamento j oferece leitura e envio de emails, visualizao e edio de vrios tipos de arquivos (*.pdf, *doc, *xls, *txt), possvel tambm baixar diversos aplicativos que de uma maneira acaba facilitando em algum problema do dia-a-dia, dentre outros recursos, que so inmeros. Ento o smartphone em si, j uma ferramenta extremamente poderosa, e pode ser ainda mais, porque possvel criar qualquer aplicao, para resolver qualquer problema, possvel fazer

aplicaes para controle de vendas, compras, controle financeiro, ferramentas de auxlio didtico, jogos, entretenimento e vrios outros. (JOHNSON, 2007)

O desenvolvedor de softwares para dispositivo mvel tem que tomar certa ateno em alguns pontos, como por exemplo, aplicaes que exijam muito processamento de dados e hardware hoje seriam inviveis, pois o aparelho pode no suportar, mas daqui alguns anos, isso no ser mais problema, pois como disse anteriormente, a evoluo acontece de uma maneira assustadora, hoje voc pode comprar um smartphone topo de linha, e daqui seis meses lanado outro que o supera.

2.2 Plataformas de desenvolvimento

Os sistemas operacionais no esto presentes apenas em computadores ou celulares, esto presentes tambm em carros, televisores, cmeras... Existem tambm vrias plataformas e linguagens para o desenvolvimento desses sistemas operacionais, e o mesmo acontece para as aplicaes mveis. (JAVA, 2012)

A plataforma promissora e centro das atenes de curiosos e novos desenvolvedores mbile o Android, que hoje a plataforma mais utilizada no mundo, segundo o instituto Nielsen. Por esse motivo foi feita a escolha desta plataforma para o desenvolvimento do programa, e tambm por outras como:

uma plataforma open-source Desenvolvimento baseado em Java, que tem uma grandiosa comunidade de desenvolvedores e um grande volume de dados para consultas Esta disponvel em vrios modelos e marcas diferentes de dispositivos, atendendo a necessidade e custo de investimento do usurio.

2.3 O Android

Android um sistema operacional mvel que roda sobre o ncleo Linux. Sua caracterstica ser aberto a desenvolvedores, permitindo que eles escrevam software na linguagem de programao Java controlando o dispositivo via bibliotecas desenvolvidas pela Google, hoje o

Android totalmente gratuito e no esta presa a algum hardware especifica, cresce em progresso geomtrica, e os usurios e desenvolvedores crescem a mesma escala.

A quantidade de fabricantes que esto adotando o Android como sistema operacional em seus aparelhos smartphones, tablets e outros dispositivos mveis so grandes, alm disso, eles formam uma comunidade chamada Open Handset Alliance que conta com empresas como a prpria Google, LG, Samsung, HTC, Motorola, Sony Ericsson, NVidia, Intel e etc, que dentre suas atividades colaboram para a evoluo e disseminao desse sistema operacional. O Android apareceu para revolucionar o mercado de dispositivos moveis, pois no existe nenhuma barreira, como geralmente alguns fabricantes empoem a fora do Android junto com o Google e a Open Handset Alliance, se resume em benefcios concretos para usurios e desenvolvedores. Disponvel em: <http://androidtech.com.br/o-que-e-o-android-2>. Acesso em: 09 jun. 2012.

2.4 Histria O Android foi um projeto inicialmente desenvolvido por um startup1 americana do Vale do Silcio chamada Android Inc. que fazia pequenos sistemas para celulares. At ento havia rumores que o Google queria lanar um aparelho com servios baseados em localizao, mas que eles no tinham a plataforma para isso ainda. Foi da que surgiu a oportunidade de compra da Android.

Essa pequena empresa foi adquirida pelo Google no ano de 2005, que por sua vez tratou de amadurecer o projeto e o tornou pblico em meados de 2007 com o objetivo de apresentar a primeira plataforma open source de desenvolvimento para dispositivos mveis. Durante dois anos, muitas especulaes foram feitas que o Google fosse ingressar no mercado mvel, mas no tinha nada de concreto por algum momento. E ento em 5 de Novembro de 2007 o Google anunciou o nascimento do Android como uma plataforma. A Open Handset Alliance (OHA) foi criada, em juno do Google e mais 33 empresas parceiras na poca.

startup - uma empresa nova, at mesmo embrionria ou ainda em fase de constituio, que conta com projetos promissores, ligados pesquisa, investigao e desenvolvimento de idias inovadoras.

Uma semana depois, em 12 de Novembro de 2007, o Android SDK foi mostrado a vrios desenvolvedores, mas nessa poca o Android ainda no era Open Source. Ento em 21 de Outubro de 2008 o Android tornou-se Open Source, com seu cdigo sendo publicado como AOSP (Android Open Source Project). Essa no a data de aniversrio, apenas a data que ele virou pblico.

Para estimular a inovao, o Google patrocinou duas sries do "Android Developer Challenges," onde milhes de dlares foram envolvidos nas melhores participaes. Neste caso, em 11 de Nov. 2007, Sergey Brin, co-fundador e atual presidente de Tecnologia da Google, alega:
Temos algumas aplicaes que construmos. Mas as melhores aplicaes ainda no esto aqui. Isso porque elas vo ser escritas por voc e muitos outros desenvolvedores, exatamente como voc. Gostaramos de recompensar esses desenvolvedores e reconhec-los, tanto quanto possvel. Ento ns reservamos US $ 10 milhes, que vamos doar para as pessoas que desenvolverem as melhores aplicaes utilizando o Android. Estamos ansiosos para ver algumas realmente grandes aplicaes e tambm para ver todo o seu trabalho. Sergey Brin, co-fundador e atual presidente de Tecnologia do Google, 11 de nov. 2007. Disponvel em: <http://www.youtube.com/watch?feature=player_embedded&v=1FJHYqE0RDg>. Acesso em 09 jun. 2012

Em 22 de Outubro de 2008 foi lanado o primeiro aparelho celular com Android, o HTC G1, sendo vendido por $179,99. Foi aqui que comeou a repercusso pelo mundo.

Alguns meses depois do G1, o Android Market foi lanado, permitindo que os usurios navegassem e fizessem o download de aplicativos diretamente em seus telefones.

Atualmente o Android mantido pela OHA, que formado por mais de 40 empresas das quais figuram o prprio Google e outras de importncia nos ramos de telefonia (Telefnica), fabricao de semicondutores (Intel) e fabricao de celulares (Motorola), dentre outras. Disponvel em: < http://pplware.sapo.pt/google/a-historia-do-android/ >. Acesso em: 01 jun. 2012.

10

2.5 Verses

As diferentes verses de Android tm desde a verso 1.5, nomes de sobremesas ou bolos (em ingls) e seguem uma lgica alfabtica. (CURA, 2011) 1.5: Cupcake (Abril de 2009, com a ltima reviso oficial a maio de 2010) 1.6: Donut (Setembro de 2009, com a ltima reviso oficial a maio de 2010) 2.1: Eclair (Janeiro de 2010, com a ltima reviso oficial a maio de 2010) 2.2: FroYo (Frozen Yogourt - Maio de 2010, com a ltima reviso oficial a julho de 2011) 2.3-2.4: Gingerbread (verso atual lanada a 6 de dezembro de 2010) 3.0-3.2: Honeycomb (Lanada especialmente para tablets em Janeiro de 2011) 4.0: Ice Cream Sandwich (Anunciada oficialmente em 19 de outubro de 2011) 4.1: Jelly Bean (Anunciada oficialmente em 21/06/2012) 4.2: Jelly Bean (Anunciada oficialmente em 29/10/2012)

2.6 Empresas parceiras da OHA

Aplix (www.aplixcorp.com) Ascender Corporation (www.ascendercorp.com) Audience (www.audience.com) Broadcom (www.broadcom.com) China Mobile (www.chinamobile.com) eBay (www.ebay.com) Esmertec (www.esmertec.com) Google (www.google.com)

11

HTC (www.htc.com) Intel (www.intel.com) KDDI (www.kddi.com) Living Image (www.livingimage.jp) LG (www.lge.com) Marvell (www.marvell.com) Motorola (www.motorola.com) NMS Communications (www.nmscommunications.com) Noser (www.noser.com) NTT DoCoMo, Inc. (www.nttdocomo.com) Nuance (www.nuance.com) Nvidia (www.nvidia.com) PacketVideo (www.packetvideo.com) Qualcomm (www.qualcomm.com) Samsung (www.samsung.com) SiRF (www.sirf.com) SkyPop (www.skypop.com) SONiVOX (www.sonivoxrocks.com) Sprint Nextel (www.sprint.com) Synaptics (www.synaptics.com) TAT The Astonishing Tribe (www.tat.se) Telecom Italia (www.telecomitalia.com) Telefnica (www.telefonica.es)

12

Texas Instruments (www.ti.com) T-Mobile (www.t-mobile.com) Wind River (www.windriver.com)

Disponvel em: < http://www.openhandsetalliance.com/oha_members.html>. Acesso em: 01 jun. 2012.

13

3 AMBIENTE DE DESENVOLVIMENTO

Para o desenvolvimento em Android, so necessrios trs softwares instalados para oferecer os recursos necessrios criao de aplicativos, o principal o Java, linguagem onde desenvolvido o Android, depois necessria ter instalado a IDE de desenvolvimento, o trabalho desenvolvido em Eclipse IDE, e por ltimo deve ser instalado o pacote de desenvolvimento da Android, o Android SDK, com esses trs softwares instados possvel criar qualquer aplicao em Android.

3.1 Eclipse

Eclipse um IDE desenvolvido em Java, seguindo o modelo open source de desenvolvimento de software. O projeto Eclipse foi iniciado na IBM que desenvolveu a primeira verso do produto e doou-o como software livre para a comunidade. O gasto inicial da IBM no produto foi de mais de 40 milhes de dlares. Hoje, o Eclipse o IDE Java mais utilizado no mundo. Possui como caractersticas marcantes o uso da SWT e no do Swing como biblioteca grfica, a forte orientao ao desenvolvimento baseado em plug-ins e o amplo suporte ao desenvolvedor com centenas de plug-ins que procuram atender as diferentes necessidades de diferentes programadores. Disponvel em: < http://www.eclipse.org/downloads/>. Acesso em: 20 mai. 2012.

3.2 Java

Java uma linguagem de programao e uma plataforma de desenvolvimento. a tecnologia que capacita muitos programas da mais alta qualidade, como utilitrios, jogos e aplicativos corporativos, entre muitos outros, por exemplo. O Java executado em mais de 850 milhes de computadores pessoais e em bilhes de dispositivos em todo o mundo, inclusive telefones celulares e dispositivos de televiso. E para desenvolvimento em Android, ter o Java instalado obrigatoriedade, pois sem ele no possvel programar, pois a plataforma de

14

desenvolvimento do Android Java. Disponvel em: < http://www.java.com/pt_BR/>. Acesso em: 20 mai. 2012.

3.3 Android SDK

Kit de desenvolvimento para Android. Possibilita ao desenvolvedor um rico conjunto de ferramentas, que incluem bibliotecas, depuradores, emuladores, cdigo de exemplos, documentaes, tutoriais. Disponvel em: < http://developer.android.com/sdk/ index.html>. Acesso em: 20 mai. 2012.

3.4 Android AVD

Dispositivo Virtual Android (AVD), o emulador do Android. O AVD pode emular qualquer verso ou modelo de celular existente, basta baixar o seu pacote e instal-lo, isso possibilita que os desenvolvedores no tenham que comprar um dispositivo especfico para test-lo, basta apenas criar um AVD, onde configurado adequadamente pode imitar o comportamento de diferentes dispositivos e identificar incompatibilidades. Disponvel em: <

http://developer.android.com/adv/ index.html>. Acesso em: 20 mai. 2012.

15

4 DESENVOLVIMENTO

O seguinte trabalho visa funcionar da seguinte maneira, na tela inicial so listados todos os oramentos que esto pendentes, podendo eles ser confirmados ou arquivados. Ao adicionar um novo oramento o usurio ter que selecionar um cliente, caso esse cliente no esteja cadastrado, basta escolher a opo novo cliente e cadastr-lo, depois de selecionado o cliente, o usurio devera incluir os produtos do oramento, esses produtos j estaro cadastrados no smartphone, pois eles so importados atravs de um software de controle da vidraaria, que oferece esse recurso e tambm cuida de todo o sistema gerencial da vidraaria. Selecionado o produto o vendedor tem que informar suas medidas, e salv-lo. Pode-se orar mais de um produto por oramento, finalizando o vendedor grava o oramento, informa ao cliente o valor total e aguarda para que o oramento seja confirmado ou arquivado, casa seja arquivada, ele no aparecer mais na tela inicial, podendo ser resgatado posteriormente, caso seja confirmado, o vendedor deve selecionar o oramento e export-lo para o software de controle da vidraaria.

A Figura 3 mostra as principais telas do sistema 1) Exibio dos oramentos pendentes; 2) Tela de oramento, listando o cliente e seus produtos orados; 3) Tela de incluso/alterao dos produtos.

16

Figura 3: Estudo inicial das principais telas do aplicativo Fonte: Renato S. A. Pereira, 2012 Depois de cadastrado o oramento o sistema pode interagir com a fonte de dados fixa atravs de Wi-Fi, gravando ou importando dados como oramento e cadastro de clientes, e tambm fazer a importao de novos produtos fornecidos pela vidraaria. O sistema est preparado para funcionar em dispositivos mveis com plataforma Android (verso 2.1 ou superior).

4.1 Primeiros passos

J com o Java, Eclipse, Android SDK instalados e configurados o ADV Manager, necessria criar um novo projeto, na verdade um pacote onde se encontra todos os recursos que sero utilizados.

17

Figura 4: Pacote contendo os recursos da aplicao no Eclipse Fonte: Renato S. A. Pereira, 2012 O nome do pacote desta aplicao vidraaria, portanto tudo que ser feito em relao a essa aplicao ter que pertencer a esse pacote, como mostra na Figura 4. Dentro do pacote existe varias pastas de controles, cujas principais so:

src: Guardam as Activity da aplicao, uma Activity representa uma codificao, e onde so inseridos todos os procedimentos e mtodos da aplicao, geralmente cada Activity representa um Layout, mas pode existir Activity para armazenas mtodos e funes que sero utilizadas, ou at mesmo a criao de uma classe; gen: Nunca modificada, mas importante comentar, nela esta armazenada o arquivo R.java, onde nesse arquivo atribudo um Id para todos os objetos existentes na aplicao, esse Id gerado automaticamente; res: Onde armazenas todos as imagens, telas e frases da aplicao. o A pasta drawable e onde contm todas as imagens, pode haver varias pastas de acordo com o tamanho da imagem, assim o Android pode selecionar a resoluo de imagem referente densidade de imagem do aparelho, s aceito imagens em letras minsculas e sem nmeros ou caracteres especiais.

18

o A pasta layout contm todas as telas da aplicao, cada layout corresponde a uma tela da aplicao, um fato interessante que o Android permite plotar (colocar) uma tela dentro de outra, ou ento um layout padro do Android em um layout da aplicao em desenvolvimento. o A pasta menu contm os menus da aplicao, que so nada mais que as opes que aparecem quando o usurio pressiona a tecla menu no dispositivo mvel utilizado. o Na pasta values, so guardados todas as frases e valores utilizados, por exemplo, ao criar uma layout, selecionamos seu titulo com uma frase que esta dentro de values, coloca o mesmo nome a mais dez layout, se for preciso alterar o titulo da aplicao, basta alterar o valor dentro da pasta values, que todos os layout sero alterados, um recurso que facilita bastante. o AndroidManifest.xml, o que controla a aplicao, nele possvel selecionar o tema, nome, descrio, permisso da aplicao, tambm nele que ocorre a ligao entre uma activity com um layout, possvel tambm adicionar as intenes de activity, pois se uma activity no tiver uma inteno ela no pode ser iniciada Com estas informaes entendidas, j possvel criar o pacote de desenvolvimento. Para isso, v ao eclipse, e em seguida File/New/Other..., logo depois expanda a pasta Android e selecione Android Application Project, se a pasta Android no aparecer porque o pacote SDK Android no foi instalado corretamente. (LECHETA, 2010)

Application Name: o nome do pacote de desenvolvimento; Project Name: o nome da aplicao; Package Name: ser o endereo onde as activitys sero guardadas; Build SDK: em qual verso do Android ser desenvolvido; Minimum Required SDK: a verso mnima do Android que a aplicao poder ser executada;

19

Figura 5: Criando um pacote de desenvolvimento Fonte: Renato S. A. Pereira, 2012 A Figura 5 um exemplo da criao de uma pasta de projeto em Android. Depois de informado o nome do projeto, basta pressionar Next at concluir com Finish. Com isso, o eclipse j apresenta um layout com uma tela de boas vindas e uma activity, O Android junto como o Eclipse trabalham com Java e XML, o desenvolvedor no precisa ser expert nas duas linguagens para poder desenvolver, o Eclipse possui uma ferramenta de recurso grfico, que facilita e muito a vida do desenvolvedor, portanto pratico o desenvolvimento, o usurio precisa apenas se preocupar com as activitys e ter uma noo da linguagem Java.

4.2 Criando Boto No layout que foi criado automaticamente, remova o TextView - Hello World!, adicione um Button na aba Form Widgets, como mostra a Figura 6. Disponvel em: < http://www.youtube.com/user/nerineitzke?feature=results_main>. Acesso em: 25 mai. 2012.

20

Adicionar

Remover

Figura 6: Inserindo um Button Fonte: Renato S. A. Pereira, 2012 Altere o id do Button, clicando duas vezes em cima do Button, em seguida altere o id do Button para @principal/BtNovo, como mostra o Quadro 3. necessrio fazer deste modo para poder se referenciar atravs dos vrios layouts que uma aplicao possa conter, no caso pode existir um outro BtNovo no layout cadastro, onde para referenci-lo, deve-se utilizar cadastro.BtNovo. Quadro 3: Nomeando Id de objeto
<Button android:id="@+principal/BtNovo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:text="@string/txt_cadastro" />

Fonte: Renato S. A. Pereira, 2012 Tambm possvel alterar o rotulo do Button clicando sobre o mesmo com o boto auxiliar do mouse, e selecionar a opo Edit Text, depois s criar um string, que ser gravada no XML em values/string, e posteriormente pode ser referenciada a qualquer outro Button, ou outro objeto, que necessite do mesmo rotulo.

Tudo que manipulado dentro do Android, precisa primeiramente ser instanciado (Quadro 4), para isso necessrio declarar o Button dentro da activity MainActivity, interessando criar

21

um mtodo que inicializa as variveis, para depois cham-lo no comeo da activity, ento primeiramente deve-se declarar a varivel Button dentro de public class MainActivity extends Activity.

Quadro 4: Declarando button na activity


public class MainActivity extends Activity { Button BtNovo;

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout. activity_main);

Fonte: Renato S. A. Pereira, 2012 Caso o Button apresente um tracejado de erro, porque a biblioteca referente a esse componente no foi includa ao projeto, para isso basta posicionar o cursor do mouse em cima da palavra Button, e em seguida clicar sobre Import Button (Android.widget), como mostra a Figura 7.

Figura 7: Importando biblioteca Button Fonte: Renato S. A. Pereira, 2012 Como a varivel BtNovo declarada, agora preciso inici-la, para isso necessita-se criar um mtodo no final da activity para iniciar o Button e os vrios outros componentes que sero adicionados posteriormente ao projeto. E logo em seguida depois de declarar o mtodo, devese inici-lo dentro de OnCreate.

22

OnCreate o mtodo que executado assim que a tela da aplicao criada, aps ser iniciado, todos os comando que esto presente dentro de OnCreate so executados, importante lembrar que todos so executados juntos, sem qualquer pausa. Quadro 5: Inicializando componentes na activity
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout. activity_main); IniciarComponentes(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public void IniciarComponentes(){ BtNovo = (Button)findViewById(R.principal. BtNovo); } }

Fonte: Renato S. A. Pereira, 2012 Note que o Button da activity foi referenciado ao layout atravs do comando findViewById(Quadro 6). Agora para inserir uma funo a varivel Button criada, precisa declarar o evento setOnClickListener do Button, faa como na imagem a seguir, e caso aparea alguns erros de importao, basta fazer a importao da biblioteca conforme a incluso do Button anteriormente.

Quadro 6: Evento onClick do Button


IniciarComponentes(); BtNovo.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub } });

Fonte: Renato S. A. Pereira, 2012 Tudo que for declarado dentro de public void (Quadro 7) ser executado assim que pressionado o Button. Para exemplificar, ao inserir a funo toast, dentro o evento do Button, que retorna uma mensagem dentro da aplicao Android como mostra a Figura 8.

23

Quadro 7: Teste do evento onClick


IniciarComponentes(); BtNovo.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), Mensagem exibida, Toast.LENGTH_SHORT).show(); } });

Fonte: Renato S. A. Pereira, 2012

Figura 8: Teste do evento onClick Fonte: Renato S. A. Pereira, 2012 Um grande passo j foi dado, a declarao, inicializao e execuo de todos os outros componentes, se baseiam de forma parecida com a do Button, mudando apenas o nome da classe, e os eventos que podem ser outros.

4.3 Adicionando um novo layout ao projeto

24

Vrios layouts podem ser criados, isso varia de acordo com a necessidade do projeto, um layout a tela apresentada na aplicao, ele o elo ligao entre o software e o usurio, a navegao entre telas no Android muito simples, existe a possibilidade de adiantar uma tela, voltar, criar uma mesma vrias vezes, criar uma nova ao fechar atual e vrias outras. Para adicionar um novo layout basta ir at a pasta layout dentro de res, clicar como o boto auxiliar do mouse, em seguida new/Other..., depois selecione Android XML File, d um nome ao novo layout, insira na extenso do arquivo o formato XML e finalize a incluso, pronto o layout j esta criado. Agora para dar uma vida a esse layout preciso criar um Activity para o mesmo e em seguida fazer a sua ligao dentro de AndroidManifest. Para adicionar uma Activity necessrio ir at a pasta de pacote de seu trabalho, presente em src, clicar como o boto auxiliar do mouse e em seguida escolha New Class, d um nome a activity, uma dica para fcil manipulao posteriormente, colocar o nome como Act + nome do layout referenciado, exemplo: ActOrcamento. Aps feito, o Eclipse abrir a Classe criada, ela ainda no uma activity, porque no esta estendida, deve ser feito ento a extenso a uma activity, adicionado extends (Quadro 8) na declarao pblica da classe. (LECHETA, 2010) Quadro 8: Extendendo a classe activity
package trabalho.com.vidro; import android.app.Activity; public class ActCadastro extends Activity{ }

Fonte: Renato S. A. Pereira, 2012 Pronto, a activity esta criada, agora preciso fazer a ligao com o layout. Dentro de AndroidManifest, selecione a guia Application, em seguida pressione o boto Add..., escolha a opo Create a new element at the top..., selecione Activity, e conclua a incluso. No campo Name*, insira primeiramente o caracter ponto(.), mais o nome da activity criada (.ActCadastro), e depois salve o projeto, agora preciso criar as intenes da activity, para isso clique com o boto auxiliar do mouse em cima da activity criada e selecione Add..., selecione Intent Filter, agora clique com o boto auxiliar do mouse em cima do Intent Filter criado, e selecione novamente Add..., agora selecione Action e precione ok, a propriedade Name*, localize a opo android.intent.action.MAIN e salve o projeto, e por ultimo preciso adicionar outra inteno, clicando novamente com o boto auxiliar do

25

mouse em cima de Intent Filter e em seguida Add..., selecione agora Category, e selecione na propriedade Name* a opo android.intent.category.LAUNCHER, finalize salvando o projeto, pronto o layout esta criado, a activity estendida, e ligados no AndroidManifest, o novo layout deve ser igual ao apresentado na Figura 9.

Figura 9: Intenes da activity Fonte: Renato S. A. Pereira, 2012 4.4 Chamando um novo layout

Com dois layouts j criados e configurados, possvel fazer uma navegao entre eles, a navegao entre telas importante, pois a maneira mais fcil do usurio interagir e se localizar em que parte ou modulo ele est, deve-se tambm se preocupar com o que ser utilizado em cada layout, pois em aparelhos smartphones, o display do aparelho no consegue exibir muitos componentes de uma s vez.

Ento, para criar uma interao entre telas, recomendado criar um novo mtodo, para fazer a chamada de outra activity, o Quadro 9 mostra como chamado uma nova tela. Disponvel em: <

http://www.youtube.com/user/nerineitzke?feature=results_main>. Acesso em: 29 mai. 2012. Quadro 9: Declarando mtodo ChamarTela


public void ChamarTela(View v, Class janela) { Intent myIntent = new Intent(v.getContext(), janela); startActivityForResult(myIntent, 0); }

Fonte: Renato S. A. Pereira, 2012 Com o mtodo criado, basta colocar dentro o evento OnClick do Button sua chamada ChamarTela(v, ActCadastro.class);, isso significa que vai ser criada uma nova inteno, e essa inteno chamada com o comando start, abrindo o layout da activity referenciada, e fazendo com que o retorno aps finalizar ou voltar da nova tela, seja a view v que a invocou.

26

4.5 Componentes de interface do Android

Como em qualquer outra aplicao, no Android tambm necessrio trabalhar com componentes para compor uma interface com o usurio. As interfaces de aplicaes Android so constitudas de componentes grficos denominados widgets e que so subclasses da classe View. Existe uma ampla variedade destes componentes disponveis na plataforma Android, sendo que os bsicos so: TextView - representa o rtulo ou texto que inserido na tela. EditText utilizada para que o usurio possa inserir informaes para fazer a interao com o aplicativo. Button componente visto anteriormente, serve para executar uma ao ao ser pressionado, em suas propriedas pode-se alterar o tamanho, cor, formato, e o mais intereante a opo de incluir uma imagem ao boto. RadioButton componente que faz com que o usurio selecione apenas uma opo de uma lista apresentada. CheckBox componente que permite que o usurio selecione nenhuma, uma ou mais opes de uma lista apresentada. Spinner componente que encova uma lista suspensa, e faz com que o usurio selecione apenas uma opo de uma lista apresentada. ListView componente que lista valores, essas listas podem seguir um layout padro do Android, ou podem ser personalizadas pelo prprio desenvolvedor. ImageView exibio de imagem. LinearLayout componente que possibilita a ordenao de componentes, podendo auto ajust-los tanto em horizontal quando vertical, ou ainda uma posio fixa dentro do layout.

4.6 Base da dados SQLite

27

O aplicativo necessita de uma base de dados para armazenamento das informaes, o Android permite armazenamento na memria RAM, tambm existe a possibilidade da criao de arquivos armazenados no SDCard, e o mais operacional que uma biblioteca de banco de dados, nativa do Android, chamada SQLite.

SQLite um banco de dados Open Source, que incorporado em Android. SQLite suporta recursos padro de banco de dados relacionais, como a sintaxe SQL, transaes e instrues preparadas. Alm disso, requer apenas pouca memria em tempo de execuo (cerca de 250 Kbytes). SQLite suporta os tipos de dados TEXT (semelhante a String em Java), INTEGER e DOUBLE. Todos os outros tipos deve ser convertido em um desses campos antes de salvlos no banco de dados. SQLite em si no validar se os tipos de escritos para as colunas so, na verdade, do tipo definido, por exemplo, voc pode escrever um inteiro em uma coluna string e vice-versa. (SQLITE) Disponvel em: < http://www.sqlite.org/about.html>. Acesso em: 20 set. 2012. O SQLite utilizado no prprio servidor do dispositivo, lendo e escrevendo diretamente para si mesmo, no uma ferramenta de cliente usada para conectar com grandes bancos de dados.

SQLite est disponvel em todos os dispositivos Android. Usando um banco de dados SQLite no Android no requer qualquer configurao de banco de dados ou administrao. S necessrio definir os comandos SQL para a criao e atualizao do banco de dados. Depois disso, o banco de dados gerenciado automaticamente pela plataforma Android. Se o seu aplicativo cria um banco de dados, este banco de dados , por padro salvo no diretrio DATA / data / APP_NAME / databases / FILENAME .

Aps criado a base dados, e inseridos suas respecitivas tabelas, toda e qualquer utilizao de comandos SQLs devem ser feitas atravs de: Abertura da base de dados; Pesquisa ou incluso de registros; Fechamento da base de dados;

Liberando a memria do Android, para ser utilizado por outras aplicaes ou recursos.

28

4.7 Estrutura das principais tabelas do trabalho

O aplicativo possui varias tabelas, onde as essenciais para o calculo do oramento so as apresentadas no Quadro 10 e Quadro 11.

Quadro 10: Estrutura de dados da tabela produto Tabela produto _id nome Imagem ferragem_altura Integer (PK) Text Text Double

ferragem_comprimento Double vo adicional Fonte: Renato S. A. Pereira, 2012 Double Double

Quadro 11: Estrutura de dados tabela orcamento_produto Tabela orcamento_produto _id id_orcamento id_produto id_vidro comprimento altura quantidade venda margem Fonte: Renato S. A. Pereira, 2012 4.8 Comandos SQLs Integer (PK) Integer Integer Integer Double Double Integer Double Double

Uma maneira pratica, e mais eficiente de trabalhar com SQLs em Android, como em qualquer outro ambiente de desenvolvimento, e a criao de uma classe especifica, onde todos os

29

comandos so inseridos neste mesmo local, e posteriormente so invocados a partir de outras activity por meio da referencia da classe.

Para soluo, deve-se criar outra class, como na criao da ActCadastro, porem essa no ser ferenciada a algum layout, ela ser uma classe mesmo, onde pode-se colocar alem de comandos SQLs, comando de apoio tambm, que facilitam e muito na hora da programao, otimizando os resultados, e deixando um cdigo fonte mais enxuto.

4.8.1 Criao da base de dados Cria-se ento a classe Funcoes.class (Quadro 12). Para inicializao de um banco de dados, como qualquer outro componentes, deve-se cri-lo e inicializ-lo no Android. Para isso, temse que importar duas bibliciotecas do SQLite.

Quadro 12: Iniciando base de dados


import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class Funcoes { static SQLiteDatabase Banco = null; private static final String BANCO = "vidracaria"; public static void AbrirBanco(Context ctx){ try{ Banco = ctx.openOrCreateDatabase(BANCO, Context.MODE_WORLD_READABLE, null); }catch(SQLException e){ Funcoes.Mensagem("Erro Banco de Dados","No foi possvel criar o banco de dados!" + e, ctx); } } }

Fonte: Renato S. A. Pereira, 2012 Foi iniciada uma base esttica chamada Banco, tambm foi declarada uma string privada e esttica para guardar o nome do banco de dados, importante lembrar que o Eclipse diferencia caracteres maisculos de minsculos. O mtodo AbrirBanco, quando executado, abre ou cria a base de dados especificados na string BANCO. Repare que o comando esta dentro de um try, quando se trabalha com banco de dados, indispensvel utilizao deste recurso, pois ao travar uma aplicao em Android, a mesma fora o aplicativo a parar, perdendo assim todas as informaes coletadas, j o uso do try (Quadro 12), impede que o

30

aplicativo seja forado a fechar, dando assim uma chance ao usurio de gravar suas informaes.

Quadro 13: Mtodo Mensagem


public static void Mensagem(String tituloAlerta, String mensagemAlerta, Context ctx){ AlertDialog.Builder Mensagem = new AlertDialog.Builder(ctx); Mensagem.setTitle(tituloAlerta); Mensagem.setMessage(mensagemAlerta); Mensagem.setNeutralButton("Ok", null); Mensagem.show(); }

Fonte: Renato S. A. Pereira, 2012 O Quadro 13, mostra um mtodo auxiliar, presente em Funcoes.class, muito til para fazer a comunicao com o usurio atravs de mensagens, facilmente encovados a partir de outras activity, fazendo a chamada atravs de Funcoes.Mensagem().

4.8.2 Criando Tabela

Depois de criada a base de dados, preciso preencher o banco com as tabela do sistema ( Quadro 14), como todos os outros mtodos referentes base de dados, devem ser criados dentro da classe Funcoes.class, para um melhor comportamento de desenvolvimento. Quadro 14: Criao de tabela
private static final String BANCO_PRODUTO = "produto"; public static void BancoProduto(Context ctx) { try { Banco.execSQL("CREATE TABLE IF NOT EXISTS "+ BANCO_PRODUTO + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT, imagem TEXT, ferragem_altura DOUBLE, ferragem_comprimento DOUBLE," +" vao DOUBLE, adicional DOUBLE)"); }catch(SQLException e){ } }

Fonte: Renato S. A. Pereira, 2012 Depois de criado e iniciado o banco, o SQLite proporciona a execSQL() mtodo, que permite executar uma instruo SQL diretamente, comando muito til, pois basta inserir uma instruo SQL, e a instruo ser executada, sempre dentro de um try para evitar futuros casos inconvenientes. Agora fica fcil, fazer uma incluso, alterao ou excluso, basta colocar o comando SQL dentro de execSQL(Quadro 15).

Quadro 15: Comando SQL de incluso de registros

31

public static void BancoOrcamentoProdutoInserir(Context ctx, String id_orcamento, String id_produto , String id_vidro, Double altura, Double comprimento, Integer quantidade, Double margem, Double venda){ try{ AbrirBanco(ctx); BancoOrcamentoProduto(ctx); String SQL = "INSERT INTO "+BANCO_ORCAMENTO_PRODUTO+" (id_orcamento, id_produto, id_vidro, altura, comprimento, quantidade, margem, venda) VALUES ('" + id_orcamento + "','" + id_produto + "','" + id_vidro + "','" + altura + "','" + comprimento + "','" + quantidade + "','" + margem + "','" + venda + "')"; Banco.execSQL(SQL); }catch(Exception erro){ Funcoes.Mensagem("Erro Banco de Dados","Erro inesperado!" + erro, ctx); } finally{Banco.close();} }

Fonte: Renato S. A. Pereira, 2012 4.8.3 Exibindo Valores

O Android possui um interessante recurso denominado Cursor. Um Cursor representa o resultado de uma consulta e, basicamente, aponta para uma linha do resultado da consulta. Desta forma podem amortecer os resultados da consulta eficientemente, como ele no tem que carregar todos os dados na memria, ele pega as informaes que precisa e aloca em uma lista temporria, onde pode ser feita a navegao entre essa lista atravs de outros comandos. O Quadro 16 mostra a seleo de dados via SQL e a exibio dos resultados obtidos. (SMITH e FRIESEN, 2012)

Quadro 16: Trabalhando com cursor


Cursor cursor;

public void ExibirValores() { Funcoes.AbrirBanco(ctx); cursor = Funcoes.Banco.rawQuery("SELECT * FROM orcamento_produto WHERE _id = " + IdOrcamentoProduto, null); if (cursor.getCount() > 0) { cursor.moveToFirst(); Altura.setText(Funcoes.nfdecimal.format(Double.valueOf(cursor.getString(cur sor.getColumnIndexOrThrow("altura")).toString()))); Comprimento.setText(Funcoes.nfdecimal.format(Double.valueOf(cursor.getStrin g(cursor.getColumnIndexOrThrow("comprimento")).toString()))); Margem.setText(Funcoes.nfdecimal.format(Double.valueOf(cursor.getString(cur

32

sor.getColumnIndexOrThrow("margem")).toString()))); Total.setText(Funcoes.nfdecimal.format(Double.valueOf(cursor.getString(curs or.getColumnIndexOrThrow("venda")).toString()))); Quantidade.setText(cursor.getString(cursor.getColumnIndexOrThrow("quantidad e")).toString()); } }

Fonte: Renato S. A. Pereira, 2012 Como mostra no quadro Quadro 16: Trabalhando com cursor, o objeto cursor como todos os outros objetos (TextView: Altura, Comprimento, Magem...) tem que ser declarado, normalmente logo aps o inicio da activity, sempre que includo um novo objeto deve ser feita a importao da biblioteca, lembrando tambm que os TextView no caso j foram vinculados e iniciados atravs do mtodo IniciarComponente() com o recurso FindViewById.

Neste quadro, o cursor recebeu a lista de valores da SQL apresentada, que no caso retornou apenas um resultado, foi verificado se a lista calculada esta vazia ou no, no estando vazio o cursor apontado para o primeiro registro, sempre deve ser feito o apontamento, pois seno o cursor retorna vazio. Aps apontado o cursor possvel visualizar o seu contedo com a funo getColumnIndexOrThrow, e referenciando qual coluna deseja exibir.

A funo nfdecimal ( Quadro 17), foi criada dentro da classe Funcoes.class, para facilitar o formato padro de decimal da aplicao. Quadro 17: Formato decimal
public static NumberFormat nfdecimal = new DecimalFormat("0.00");

Fonte: Renato S. A. Pereira, 2012 4.9 Spinner Spinners fornecer uma maneira rpida para selecionar um valor a partir de um conjunto, como mostra a Figura 10, pagina 33. No estado padro, um spinner mostra seu valor selecionado. Tocando o spinner exibe um menu suspenso com todos os outros valores disponveis, a partir do qual o usurio pode selecionar um novo.

Quadro 18: Utilizando o spinner

33

public void ExibeSpinner() { if (cursor.getCount() > 0 ) { cursor.moveToFirst(); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdow n_item); spn1.setAdapter(dataAdapter); spn1.setSelection(posicao); } }

Fonte: Renato S. A. Pereira, 2012 Para a execuo perfeita deste comando, deve-se tomar as seguintes precaues, o cursor deve estar apontado a uma lista, o Spinner presente no layout deve ser referenciado e inicializado na activity, deve-se tambm importar as bibliotecas do ArrayAdapter e do Spinner. O Quadro 18 mostra a inicializao de um spinner. Disponvel em: <

http://developer.android.com/guide/topics/ui/layout/spinner.html>. Acesso em: 08 ago. 2012.

Figura 10: Exemplo de spinner Fonte: Renato S. A. Pereira, 2012 4.10 ListView

34

ListView um grupo de exibio que mostra uma lista de itens de rolagem. Os itens da lista so automaticamente inseridos na lista usando um adaptador que puxa contedo de uma fonte (Quadro 19), como uma consulta matriz ou banco de dados e converte cada item no resultado em uma viso de que colocado na lista. Disponvel em: <

http://developer.android.com/guide/topics/ui/layout/listview.html>. Acesso em: 10 ago. 2012. Quadro 19: Atribuindo valores a um ListView
public void ExibeListView() { lv.setAdapter(null); if (cursorProduto.getCount() > 0) { AdapterLista = new SimpleCursorAdapter(this, R.layout.layout_orcamento_produto , cursorProduto, CamposOrcamento, new int [] {R.layout_orcamento_produto.txt_produto,R.layout_orcamento_produto. txt_vidro, R.layout_orcamento_produto.txt_valor, R.layout_orcamento_produto. txt_id}); lv.setAdapter(AdapterLista); } }

Fonte: Renato S. A. Pereira, 2012

Figura 11: Modelo de ListView Fonte: Renato S. A. Pereira, 2012 O Android oferece a opo de fazer ListView, personalizados (Figura 11) ou lista prdeterminadas dentro da biblioteca do Android, no exemplo citado, foi feito uma lista personalizada, onde existe um layout chamado layout_orcamento_produto (Figura 12), onde contem apenas uma linha, de como ser exibido o ListView, e para copiar o layout basta

35

referenci-lo e tambm os seus TextView, presentes como mostra no exemplo citado. (SMITH e FRIESEN, 2012)

Figura 12: Layout layout_orcamento_produto Fonte: Renato S. A. Pereira, 2012 Como no evento onClick de um Button, necessrio indicar o evento na activity, com o ListView o mesmo caso, mas neste caso utilizado o comando setOnItemClickListener, como mostra o Quadro 20. Existe tambm o comando setOnItemLongClickListener, que consistir em executado aps o usurio manter pressionado um item no ListView, geralmente utilizado para excluso, ou exibio de um menu suspenso com varias opes. Quadro 20: Atribuindo evento onClick a um ListView
lv.setAdapter(AdapterLista); lv.setOnItemClickListener( new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Cursor cursor = (Cursor) lv.getItemAtPosition(position); //instrues } });

Fonte: Renato S. A. Pereira, 2012

4.11 ImageView Apresenta uma imagem arbitrria, como um cone ou figura. A classe ImageView pode carregar imagens de vrias fontes (tais como recursos ou provedores de contedo), cuida de

36

computar a sua medio da imagem de modo que ela pode ser usada em qualquer gerenciador de layout, e oferece diversas opes de exibio, como escala e de tingimento. Disponvel em: < http://developer.android.com/reference/android/widget/ImageView.html >. Acesso em: 15
ago. 2012.

Quadro 21: Atribuindo imagem a um ImageView


ImageView jpgView = (ImageView)findViewById(R.orcamento_add. img_fundo); String EnderecoImg = "/sdcard/vidracaria/imagens/" + <<Nome da Imagem>> BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; Bitmap bm = BitmapFactory. decodeFile(EnderecoImg, options); jpgView.setImageBitmap(bm);

Fonte: Renato S. A. Pereira, 2012 As imagens geralmente ficam armazenas dentro de uma pasta, em especial dentro do SDCard, para atribu-la a um ImageView, necessrio criar uma string e indicar o local onde a imagem esta armazenada, depois imprescindveis instanciar a imagem em um Bitmap e logo em seguida atribuir a ImageView vinculada no Activity, como mostra o Quadro 21.

37

5 RESULTADOS Foram feitos vrios testes, os resultados obtidos atravs do software de controle da vidraaria e o calculado atravs do software mvel, foram os mesmos, a importao para o sistema de gesto da vidraaria foi obtida com sucesso tambm. Como se nota na Figura 13 e Figura 14 mostra que os resultados foram os mesmo para o produto JANELA CORRER FIXA 1 FACE, com altura de 1m e o comprimento de 2m.

Figura 13: Calculo em aplicativo Fonte: Renato S. A. Pereira, 2012

38

Figura 14: Calculo no software de gesto Fonte: Renato S. A. Pereira, 2012

O aplicativo funciona, os clculos foram fiis nos dois sistemas envolvidos na vidraaria, promoveu agilidade no processo do clculo dos oramentos quando o vendedor vai at a obra ou local onde deve ser prestado o servio, permitindo o ganho de tempo e a certeza de um oramento verdadeiro e concreto.

39

Concluso Em geral, existem vidraarias que, optam por um software de prateleira, e no por um especfico, por costume e tambm por no abrir mo a novas tecnologias, acabam ficando parados, sendo em muitos casos utilizados mtodos poucos convenientes como anotaes e clculos em calculadores. A tecnologia existe para facilitar a vida das pessoas, quem no obtm vantagem por meio dela no contribui para a evoluo. Hoje, o acesso a informao e a opo de comprar por uma ferramenta tecnologia ampla, o mercado possibilita o acesso a qualquer tipo de situao financeira, e a opo por Android foi obviamente selecionada por conta desse fato, alm de conter inmeros recursos, esta acessvel a qualquer um, e qualquer pessoa que tenha um dispositivo Android em mos, pode ter uma ferramenta que lhe oriente no dia a dia, facilitando as tomadas de decises. A partir dessa motivao, esse trabalho apresentou uma abordagem focada na mobilidade, e conta como exemplo uma aplicao para oramentos em uma vidraaria, e tambm os primeiros passos para criar um aplicao em Android. O aplicativo comprovou cumprir seus objetivos, conforme avaliaes realizadas, calculando perfeitamente os produtos cadastrados em sua base de dados. Permitindo tambm a importao de produtos, e a exportao dos oramentos cadastros, mas uma delimitao do projeto e que a troca de informaes ainda se faz com uma conexo Wi-Fi em uma rede local, onde poderia ser feita em qualquer lugar atravs do 3G. Espera-se que esse trabalho possa ser uma alternativa de pesquisa til, as vidraarias que ainda no possuem um processo informatizado na gesto e automao de seus negcios, proporcionando uma forma mais gil e precisa nos clculos de oramentos.

40

Referncias Bibliogrficas

ANDROID

DEVELOPERS.

Componentes

Personalizados.

Disponvel

em:

<http://developer.android.com/guide/topics/ui/custom-components.html>. Acesso em: 20 mai. 2012. ANDROID DEVELOPERS. Android SDK. Disponvel em: <http://developer.android.com/ sdk/ index.html>. Acesso em: 20 mai. 2012. ANDROIDTECH. Histrio do Android. AndroidTech. Disponvel em: <http://androidtech. com.br/o-que-e-o-android-2>. Acesso em: 09 jun. 2012. CURA, H. A Histrio do Android. Sapo.pt, 2011. Disponvel em:

<http://pplware.sapo.pt/google/a-historia-do-android/>. Acesso em: 01 jun. 2012. DARCEY, L.; CONDER, S. Desenvolvimento de Aplicativos Wireless para Android. Rio de Janeiro: Cincia Moderna, v. 1, 2012. ECLIPSE Downloads. Eclipse.org. Disponvel em: <http://www.eclipse.org/downloads/>. Acesso em: 20 mai. 2012. EU ANDROID. Android. Disponvel em: <http://www.euandroid.com.br/geral/2010/11/ historia-do-android>. Acesso em: 02 jun. 2012. JAVA, 2012. Disponvel em: <http://www.java.com/pt_BR/>. Acesso em: 20 mai. 2012. JOHNSON, T. M. Java para dispositivos mveis. Desenvolvendo aplicaes com J2ME. So Paulo: Editora Novatec, 2007. LECHETA, R. R. Google Android: Aprenda a criar aplicaes para dispositivos mveis com o Android SDK. So Paulo: Novatec, 2010. LIST VIEW. Android Developers. Disponvel em: < http://developer.android.com/ reference/android/widget/ListView.html>. Acesso em: 20 mai. 2012. NEITZKE, N. Video Aulas de Android. You Tube, 2012. Disponvel em:

<http://www.youtube.com/user/nerineitzke?feature=results_main>. Acesso em: 25 mai. 2012. NIELSEN. Mercado de Smartphones: Qual o mais procurado? Disponvel em: <http://blog.nielsen.com/nielsenwire/?p=27418>. Acesso em: 20 mai. 2012. OPEN HANDSET ALLIANCE. Membros. Open Handset Alliance, 2012. Disponvel em: <http://www.openhandsetalliance.com/oha_members.html>.

41

PROGRAMAO ANDROID. YouTube. Disponivel em: <http://www.youtube.com/user/ lavai0?feature=watch>. Acesso em: 27 mai. 2012. SMITH, D.; FRIESEN, J. Receitas Android, uma abordagem para resuloo de problemas. Rio de Janeiro: Cincia Moderna, 2012. SPINNER. Android Developers. Disponvel em: < http://developer.android.com/reference/ android/widget/spinner.html>. Acesso em: 08 mai. 2012. SQLITE. Sobre o SQLite. Disponvel em: <http://www.sqlite.org/about.html>. Acesso em: 10 nov. 2012.

Anda mungkin juga menyukai