BOA GRAVIDEZ: APLICATIVO ANDROID PARAfateclins.edu.br/v4.0/trabalhoGraduacao/tEeTDocEWHoYAR78... ·...
Transcript of BOA GRAVIDEZ: APLICATIVO ANDROID PARAfateclins.edu.br/v4.0/trabalhoGraduacao/tEeTDocEWHoYAR78... ·...
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
ELISANGELA SANCHES PINHEIRO
MARIANA BONIFÁCIO NAVARRO
BOA GRAVIDEZ: APLICATIVO ANDROID PARA ACOMPANHAMENTO DE GESTAÇÃO
LINS – SP 2º SEMESTRE/2013
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
ELISANGELA SANCHES PINHEIRO
MARIANA BONIFÁCIO NAVARRO
BOA GRAVIDEZ: APLICATIVO ANDROID PARA ACOMPANHAMENTO DE GESTAÇÃO
Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnólogo em Banco de Dados.
Orientador: Prof. Dr. Paulo Augusto Nardi
LINS – SP 2º SEMESTRE/2013
ELISANGELA SANCHES PINHEIRO
MARIANA BONIFÁCIO NAVARRO
BOA GRAVIDEZ: APLICATIVO ANDROID PARA ACOMPANHAMENTO DE
GESTAÇÃO
Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Banco de Dados sob orientação do Prof. Dr. Paulo Augusto Nardi.
Data de aprovação:____/____/____
___________________________________ Orientador (Prof. Dr. Paulo Augusto Nardi)
___________________________________
Examinador 1
___________________________________
Examinador 2
Aos meus pais e irmã, que sempre estiveram presentes, incentivando e acreditando em meus sonhos. Ao meu namorado, Mauricio, por todo apoio, paciência, força e coragem, me auxiliando nos momentos de dificuldade e compartilhando de todas as conquistas.
Elisangela
Aos meus pais e irmão, que sempre me apoiaram em minhas decisões e não mediram esforços para que esse sonho se realizasse. Ao meu noivo, Daniel, por toda paciência e compreensão durante minha ausência.
Mariana
AGRADECIMENTOS
A Deus, que nos deu o dom da vida, nos capacitou e nos proporcionou a
oportunidade de realizar esse sonho, concluindo com êxito essa jornada.
Aos professores, Mário Pardo, Rodrigo Ayres, Adriana de Bortoli, Luciane
Noronha e Fábio Lúcio pela dedicação, paciência e amplo apoio. Queremos
agradecer especialmente ao nosso orientador Professor Doutor Paulo Augusto Nardi
pelo incentivo e ajuda tão necessária ao desenvolvimento e realização desse
trabalho.
Aos colegas de turma, que se tornaram parte integrante de nosso crescimento
pessoal e profissional. Aos grandes amigos conquistados durante a faculdade,
Leonardo, Márcio, Everaldo e Matheus, pela amizade e companheirismo.
Nossos agradecimentos a todos os professores, que foram tão importantes
em nossa vida acadêmica e no desenvolvimento deste trabalho.
Certamente iremos carregar as experiências aqui vividas para sempre. Iremos
praticar os conselhos e esbanjar do conhecimento que aqui foi adquirido.
RESUMO
O objetivo deste trabalho é desenvolver um aplicativo móvel que visa o acompanhamento da gravidez pela gestante. Esta fase é um estágio da vida da mulher no qual surgem dúvidas e expectativas. Desta forma procurou-se apresentar referências quanto aos aspectos biológicos de uma gravidez e o desenvolvimento do bebê, por meio de utilitários para uso da gestante. Devido à popularização da utilização de smartphones e tablets, optou-se por desenvolver um aplicativo Android para dispositivos móveis visando contribuir para trazer mais informações e até mesmo entretenimento à gestante. No presente trabalho é feita uma abordagem das fases do período gestacional e cuidados em uma gestação e apresentados aspectos sobre dispositivos móveis, com ênfase no sistema operacional Google Android OS, suas características e arquitetura. Para a implementação do aplicativo são utilizados as linguagens de programação Java combinada com Xtensible Markup Language (XML), bancos de dados SQLite e a API Graph do Facebook.
Palavras–Chave: gravidez, dispositivos móveis, aplicações móveis, Android.
ABSTRACT
The objective of this work is to develop an app (mobile application) aimed at monitoring the pregnancy by pregnant women. This is a stage of a woman's life where expectations and doubts arise, so we tried to give references to the biological aspects of pregnancy and baby's development through utilities for use by pregnant women. Due to the popularization of the use of smartphones and tablets, it was decided to develop an app Android for these mobile devices to contribute more information and entertainment to pregnant women. The present work displays a mapping of the pregnancy phases and care in a pregnancy and presents aspects of mobile devices, with an emphasis on operating system Google Android OS, its features and architecture. For the implementation of the application, the programming languages Java combined with Xtensible Markup Language (XML), SQLite databases and the Facebook Graph API are used. Keywords: pregnancy, mobile devices, mobile applications, Android.
LISTA DE ILUSTRAÇÕES
Figura 2.1 - Taxa de crescimento acessos via dispositivos móveis IVC........ 30
Figura 2.2 - Crescimento de mercado para tablets e notebooks................... 31
Figura 2.3 - Evolução de acessos à internet através de smartphones por
Sistema Operacional......................................................................................
33
Figura 2.4 - Evolução de acessos à internet através de tablets por Sistema
Operacional....................................................................................................
34
Figura 2.5 – Etapas Certificação Android....................................................... 36
Figura 2.6 – lustração da camada HAL ......................................................... 37
Figura 2.7 – Arquitetura do Android............................................................... 38
Figura 3.1 – Diagrama de Caso de Uso ........................................................ 51
Figura 3.2– Diagrama de Classes.................................................................. 52
Figura 3.3 – Diagrama Atividade. Manter Perfil............................................. 53
Figura 3.4 – Diagrama de Sequência. Manter Perfil...................................... 53
Figura 3.5 – MVC. Manter Perfil..................................................................... 54
Figura 3.6 – Diagrama de Atividades. Manter Enxoval.................................. 54
Figura 3.7 – Diagrama de Sequência. Manter Enxoval.................................. 55
Figura 3.8 – MVC. Manter Enxoval................................................................ 55
Figura 3.9 – Diagrama de Atividades. Manter Nomes Bebê.......................... 56
Figura 3.10 – Diagrama de Sequência. Manter Nomes Bebê........................ 57
Figura 3.11 – MVC. Manter Nomes Bebê...................................................... 57
Figura 3.12 – Diagrama de Atividades. Consultar Calendário Semanal ....... 58
Figura 3.13 – Diagrama de Sequência. Consultar Calendário Semanal........ 59
Figura 3.14 – MVC. Consultar Calendário Semanal...................................... 59
Figura 3.15 – Diagrama de Atividades. Manter Consulta Médica.................. 60
Figura 3.16 – Diagrama de Sequência Manter Consulta Médica................... 61
Figura 3.17 – MVC. Manter Consulta Médica................................................ 61
Figura 3.18 – Diagrama de Atividades. Consultar Dados da Gestação......... 62
Figura 3.19 – Diagrama de Sequência Consultar Dados da Gestação......... 62
Figura 3.20 – MVC. Consultar Dados da Gestação....................................... 63
Figura 3.21 – Diagrama de Dados................................................................. 64
Figura 3.22 – Mapeamento Relacional.......................................................... 64
Figura 4.1 – Tela de Cadastro........................................................................ 65
Figura 4.2 – Tela Principal............................................................................. 66
Figura 4.3 – Perfil – Informações da Gestante............................................... 66
Figura 4.4 – Perfil – Atualizar Dados.............................................................. 67
Figura 4.5 – Dados da Gestação................................................................... 67
Figura 4.6 – Consulta..................................................................................... 68
Figura 4.7 – Minhas Consultas....................................................................... 68
Figura 4.8 – Semana Atual Gestante............................................................. 69
Figura 4.9 – Semanal Geral........................................................................... 69
Figura 4.10 – Enxoval.................................................................................... 70
Figura 4.11 – Enxoval – Lista Geral............................................................... 70
Figura 4.12 – Enxoval – Novo Produto.......................................................... 71
Figura 4.13 – Enxoval – Lista Especial.......................................................... 71
Figura 4.14 – Nomes de Bebê....................................................................... 72
Figura 4.15 – Nomes de Bebê – Por sexo..................................................... 72
Figura 4.16 – Nomes de Bebê – Adicionar novo............................................ 72
Figura 4.17 – Nomes de Bebê – Favoritos..................................................... 73
Figura 4.18 – Facebook................................................................................. 73
LISTA DE QUADROS
Quadro 1.1 – Avaliação do estado nutricional da gestante acima de 19
anos, segundo índice de massa corporal por semana
gestacional.....................................................................................................
26
Quadro 1.2 – Ganho de peso recomendado (KG) na gestação, segundo
estado nutricional inicial.................................................................................
27
LISTA DE ABREVIATURAS E SIGLAS
3G – 3ª Geração
4G – 4ª Geração
ADV – Android Virtual Device
ADT – Android Development Tools
APK – Android Package File
APP – Mobile Application
ANATEL – Agência Nacional de Telecomunicações
AOSP – Android Open Source Project
API – Application Programming Interface
ARM – Advanced RISC Machine
DDL – Data Definition Language
DEV – Dalvik Executable
DML – Data Manipulation Language
DUM – Data da Última Menstruação
EN – Estado Nutricional
GSMA – Global para Comunicações Móveis
GPS – Global Positioning System
HAL – Hardware Abstraction Layer
IBM – International Business Machines
IDE – Integrated Development Environment
IMC – Índice de Massa Corpórea
IVC – Instituto Verificador de Circulação
IPV6 – Internet Protocol Version6
JDK – Java Runtime Environment
JVM – Máquina Virtual Java
MER – Modelo de Entidades e Relacionamentos
MP3 – MPEG-1/2 Audio Layer 3
MVC – Model-View-Controller
OHA – Open Handset Alliance
ONU – Organização das Nações Unidas
OMS – Organização Mundial da Saúde
OS – Operation System
PDA – Personal Digital Assistant
RIM – Research in Motion
SDK – Software Development Kit
SGBD – Sistemas de Gerenciamento de Banco de Dados
SO – Sistema Operacional
SQL – Structured Query Language
UML – Unified Modeling Language
USB – Universal Serial Bus
WI-FI – Wireless Fidelity
XML – Xtensible Markup Language
LISTA DE SÍMBOLOS
% - Porcentagem
SUMÁRIO
INTRODUÇÃO.............................................................................. 17
1 GRAVIDEZ E DISPOSITIVOS MÓVEIS.................................... 20
1.1 PERÍODO GESTACIONAL...................................................................... 20
1.1.1 Cuidados durante a gravidez................................................................ 21
1.1.2 A importância do pré-natal.................................................................... 22
1.1.3 Cálculo da idade gestacional................................................................ 24
1.1.4 Cálculo da data provável do parto......................................................... 24
1.1.5 Cálculo do IMC da gestante.................................................................. 25
1.2 VIABILIDADE E IMPORTÂNCIA DE APLICATIVO MÓVEL PARA
ACOMPANHAMENTO DE GRAVIDEZ..........................................................
27
2 CONCEITOS E TECNOLOGIAS UTILIZADAS PARA
DESENVOLVIMENTO DO APLICATIVO......................................
29
2.1 DISPOSITIVOS MÓVEIS......................................................................... 29
2.1.1 Conectividade/Mobilidade..................................................................... 29
2.1.2 Smartphones e tablets.......................................................................... 30
2.1.3 Principais sistemas operacionais para dispositivos móveis.................. 31
2.2 GOOGLE ANDROID OS.......................................................................... 32
2.2.1 Versões do Google Android OS para tablets........................................ 34
2.2.2 Portabilidade......................................................................................... 36
2.2.3 Arquitetura............................................................................................. 38
2.3 ANDROID SDK........................................................................................ 39
2.4 FACEBOOK SDK..................................................................................... 40
2.5 JAVA........................................................................................................ 40
2.6 XML.......................................................................................................... 41
2.7 ECLIPSE.................................................................................................. 41
2.8 SQLITE..................................................................................................... 41
2.9 ANDROID MARKET – GOOGLE PLAY................................................... 43
2.10 APLICATIVOS ANDROID PARA TABLETS.......................................... 43
3 ANÁLISE E PROJETO DE SISTEMA............................................... 47
3.1 ANÁLISE DE NEGÓCIO.......................................................................... 47
3.1.1 Instrução do problema........................................................................... 47
3.1.2 Análise de Mercado............................................................................... 48
3.1.3 Atores e Envolvidos no Processo.......................................................... 48
3.1.4 Descrição do Ambiente Atual................................................................ 49
3.2 VISÃO GERAL DO PRODUTO................................................................ 49
3.2.1 Perspectiva do Produto (Análise de Mercado)...................................... 49
3.2.2 Premissas e Dependências................................................................... 50
3.2.3 Características e Funcionalidades........................................................ 50
3.3 ANÁLISE DE REQUISITOS..................................................................... 51
3.3.1 Caso de Uso.......................................................................................... 51
3.3.2 Diagrama de Classes............................................................................ 51
3.3.3 Especificações de Histórias e Diagramas............................................. 52
3.3.3.1 Manter Perfil....................................................................................... 52
3.3.3.2 Manter Lista Enxoval.......................................................................... 54
3.3.3.3 Selecionar nomes de bebê................................................................. 56
3.3.3.4 Consultar Calendário Semanal.......................................................... 58
3.3.3.5 Manter Consulta Médica.................................................................... 60
3.3.3.6 Consultar Dados da Gestação........................................................... 62
3.3.3.7 Conexão com o Facebook................................................................. 63
3.3.4 Projeto de Banco de Dados.................................................................. 63
3.3.4.1 Diagrama de Dados (MER)................................................................ 64
3.3.4.2 Mapeamento para Modelo Relacional e Projeto Físico...................... 64
4 IMPLEMENTAÇÃO.................................................................... 65
4.1 TELA DE CADASTRO............................................................................. 65
4.2 TELA PRINCIPAL.................................................................................... 65
4.3 PERFIL..................................................................................................... 66
4.4 MEUS DADOS......................................................................................... 67
4.5 CONSULTA.............................................................................................. 67
4.6 MINHAS CONSULTAS............................................................................ 68
4.7 SEMANAS................................................................................................ 68
4.8 ENXOVAL................................................................................................ 69
4.9 NOMES DE BEBÊ.................................................................................... 71
4.10 FACEBOOK........................................................................................... 73
CONCLUSÃO............................................................................... 74
REFERÊNCIAS BIBLIOGRÁFICAS.............................................. 76
APÊNDICE A – Configuração do Ambiente.................................. 80
APÊNDICE B – Conexão com Facebook..................................... 86
APÊNDICE C – Código Listview .................................................. 105
17
INTRODUÇÃO
Pensar em processos e tarefas que não possam ser informatizados é quase
impossível, pois para todas as áreas de negócio existe algum tipo de software que
pode ser utilizado para trazer eficiência e qualidade. O uso de softwares para
melhorar processos pode compreender desde sistemas inteligentes para grandes
corporações, até o uso de uma planilha do Excel para controle de finanças pessoais.
O mundo tem passado por transformações nos últimos anos, principalmente
as ocasionadas pelo uso das tecnologias. A chegada das tecnologias da informação
e comunicação à casa das pessoas, a mobilidade proporcionada por elas e o meio
de acesso a uma vida com muito mais informação, tem transformado o pensar e o
viver de grande parte da população. (SANTAREM SEGUNDO, 2010)
De acordo com Lecheta (2012), estamos na década da mobilidade, na qual
smartphones e tablets farão cada vez mais parte de nosso dia a dia. Dessa maneira
existe uma grande necessidade por aplicativos comerciais e coorporativos para os
mais diversos setores, como varejo, saúde, economia e jogos.
Ainda segundo Lecheta (2012), diversas pesquisas apontam o Android como
o sistema operacional para smartphones que mais cresce no mundo. Sua arquitetura
simples, flexível e ao mesmo tempo poderosa permite com que ele seja a base para
muitos produtos, que se beneficiam de sua plataforma.
O setor da saúde apresenta diversos aspectos para os quais é possível a
utilização de aplicativos móveis. Um desses é o período gestacional, no qual surgem
muitas dúvidas sobre os sinais e sintomas, transformações no corpo da mulher,
alimentação e exercícios recomendados, entre outras mudanças que acontecem
com a gestante.
O ambiente e as situações que envolvem o contexto de cada gestação são
determinantes para o seu desenvolvimento, bem como para a relação que a mulher
e a família estabelecerão com a criança desde as primeiras horas após o
nascimento. Interferem, também, no processo de amamentação e nos cuidados com
a criança e com a mulher. Um contexto favorável fortalece os vínculos familiares,
condição básica para o desenvolvimento saudável do ser humano. (MINISTÉRIO,
2006)
Desta forma, neste trabalho, optou-se por desenvolver um aplicativo para
18
dispositivos móveis utilizando a plataforma Android, que permitisse o
acompanhamento de gravidez por uma gestante. O aplicativo não pretende substituir
o acompanhamento médico, ou fornecer qualquer tipo de diagnóstico; os objetivos
do aplicativo são oferecer referências quanto aos aspectos biológicos de uma
gravidez, como as mudanças no corpo da gestante e desenvolvimento do bebê,
oferecendo dicas e utilitários para as gestantes.
Com a possibilidade de ter um aplicativo móvel com utilitários e informações
para acompanhamento da gestação, as mulheres contariam com uma ferramenta
que as auxiliasse durante o período e as primeiras semanas de vida do bebê.
O aplicativo desenvolvido chama-se Boa Gravidez e possui um calendário
semanal com informações sobre o período da gestação, acompanhando a gestante
a cada semana que se passa e fornecendo dicas e sugestões para uma boa
gravidez. Isso é possível através do cálculo que fornece a previsão do nascimento
do bebê e a semana atual do período gestacional.
Possui também um utilitário para enviar mensagens e fotos para o Facebook,
isso é possível por meio de conexão com a rede social.
O Boa Gravidez traz um utilitário para facilitar o controle dos itens do enxoval,
sendo possível adicionar os itens pré-definidos a uma lista feita exclusivamente pela
gestante.
Também conta com uma lista pré-definida de nomes de bebês, separados por
sexo, podendo ser adicionados novos nomes a lista e, através do utilitário Favoritos,
é possível escolher os nomes preferidos da gestante.
Para o desenvolvimento deste trabalho foi utilizado o kit Android SDK,
disponibilizado pela Google. O kit contém as ferramentas e APIs necessárias para
desenvolver aplicações para a plataforma Android, utilizando a linguagem de
programação Java.
A metodologia utilizada foi revisão literária para obtenção de conhecimento do
domínio de aplicação e estudo da tecnologia. Para tanto foi utilizada referência
bibliográfica de LECHETA (2012), que aborda o desenvolvimento de aplicativos
Android para smartphones e tablets. As informações sobre período gestacional, e
desenvolvimento da gravidez são embasadas em publicações do Ministério da
Saúde do Brasil. (MINISTÉRIO, 2013) (MINISTÉRIO, 2006) (MINISTÉRIO 2004)
O presente trabalho está estruturado em quatro capítulos. No primeiro
capítulo, é feita uma abordagem das fases do período gestacional e cuidados em
19
uma gestação. Ainda nesse capítulo, é apresentada a relevância do
desenvolvimento de um aplicativo para acompanhamento do período gestacional por
uma gestante, bem como a descrição de suas funcionalidades.
No segundo capítulo, são abordados os conceitos e tecnologias necessárias
para o desenvolvimento do aplicativo e apresentação dos componentes do kit
Android SDK.
No terceiro capítulo, são descritas as análises e os diagramas utilizados para
o desenvolvimento do aplicativo.
No quarto capítulo são apresentadas as interfaces gráficas do aplicativo com
descrição de suas funcionalidades.
Por último, constam as considerações finais, seguidas das referências.
20
1 GRAVIDEZ E DISPOSITIVOS MÓVEIS
A gravidez é um estágio da vida da mulher no qual surgem diversas dúvidas e
expectativas e é uma fase carregada de sentimentos e momentos únicos.
Um aplicativo para acompanhamento de gravidez poderia contribuir para
trazer mais informação e até mesmo entretenimento à gestante.
Neste capítulo, é feita uma abordagem das fases do período gestacional e
cuidados em uma gestação. É apresentada a relevância do desenvolvimento de um
aplicativo para acompanhamento do período gestacional por uma gestante, bem
como a descrição de suas funcionalidades.
1.1 PERÍODO GESTACIONAL
A gestação é composta por quarenta semanas, aproximadamente nove
meses. O início do período é calculado de acordo com o primeiro dia de
sangramento do último ciclo menstrual.
De acordo com Ministério (2006), o diagnóstico de gravidez baseia-se na
história, no exame físico e nos testes laboratoriais. Na ocorrência de sintomas como
atraso, irregularidade menstrual e náuseas ou sinais, como aumento de volume
abdominal, deve-se suspeitar da possibilidade de uma gestação. A confirmação do
diagnóstico da gravidez pode ser feita por meio de um Teste Imunológico para
Gravidez, que é feito através da análise do sangue ou urina.
As fases do período gestacional mês a mês serão descritas a seguir de
acordo com o Ministério da Saúde. (MINISTÉRIO, 2013)
No primeiro mês, quando ocorre a união entre óvulo e espermatozoide dá-se
origem ao zigoto, que se instala no útero após uma série de divisões celulares até se
tornar um embrião. Nesse momento começa a se formar a placenta, envolvendo o
embrião com o liquido amniótico, que auxilia na sua alimentação e proteção. Ao fim
do primeiro mês, ele mede entre 0,4 cm e 0,5 cm.
No segundo mês, o coração bate de forma acelerada, sendo, nessa fase, que
se inicia a formação do sistema nervoso e dos aparelhos digestivo, circulatório e
respiratório. Os olhos, a boca, o nariz, os braços e as pernas também começam a se
desenvolver.
21
O embrião passa a ser considerado um feto no terceiro mês. É também nesse
mês que se inicia o desenvolvimento dos ossos e, ao final todos os órgãos internos
estarão formados.
No quarto mês, o bebê começa a se movimentar, sugar e engolir. Ele também
é capaz de perceber alterações de luz e diferenciar gostos amargos e doces.
A partir do quinto mês, nascem os primeiros fios de cabelo, os cílios e as
sobrancelhas. Formam-se as trompas e o útero nas meninas e os órgãos genitais
dos meninos podem ser vistos no exame de ultrassom. O bebê consegue realizar
movimentos como franzir a testa e chupar o dedo.
O bebê mede cerca de 32 cm no sexto mês e consegue reconhecer sons
externos, especialmente a voz e a respiração da mãe.
No sétimo mês, o bebê mede entre 35 e 40 cm. Dentro do útero, boceja, abre
os olhos, dorme e se movimenta. Os órgãos internos continuam crescendo e ele
ouve e reage a estímulos sonoros, como músicas e conversas.
Ao oitavo mês, o bebê mede entre 40 a 45 cm e começa a se preparar para
ficar em posição de parto, que é de cabeça para baixo. Para ajudar a manter a
temperatura do bebê depois do nascimento, uma camada de gordura se forma sob a
pele. Os pulmões estão quase prontos e os ossos ficam mais resistentes.
No último mês, todos os órgãos estão completamente formados, e em torno
da 40ª semana, o bebê está preparado para nascer.
1.1.1 Cuidados durante a gravidez
De acordo com Ministério (2013), para garantir uma boa gestação são
necessários alguns cuidados essenciais, como fazer o acompanhamento do pré-
natal e adotar um estilo de vida mais saudável, alimentando-se de forma balanceada
e praticando exercícios físicos. Após a confirmação da gravidez, o primeiro passo é
começar o acompanhamento do pré-natal, que é realizado periodicamente e, a
mulher passa por uma série de exames indispensáveis para uma boa gestação.
A alimentação da gestante também é primordial para um bom
desenvolvimento do feto. Para suprir as necessidades diárias do organismo durante
a formação do bebê é importante manter uma alimentação balanceada.
22
Durante a gravidez é necessário tomar muita água, pois todo o corpo
depende dela. Segundo o Instituto de Medicina, recomenda-se que as mulheres
grávidas tomem 3 litros diariamente (3,8 litros por dia durante a amamentação).
(IOM, 2011)
A prática de exercícios físicos também é recomendada durante a gestação e
é um grande benefício para o desenvolvimento do feto e para o suprimento de leite
na amamentação. Os exercícios devem ser leves e de baixo impacto, como
caminhadas, natação e hidroginástica.
Segundo Ministério (2013), é importante a consulta prévia com o médico, para
as grávidas que nunca realizaram atividades físicas anteriormente. Nesse caso,
recomenda-se iniciar a atividade após o primeiro trimestre de gravidez, período que
requer maior cuidado por conta da formação do embrião.
Ainda de acordo com Ministério (2013), outro ponto de atenção é evitar
situações de estresse, que podem ocasionar o parto prematuro e agravar casos de
hipertensão e diabetes.
Todos esses cuidados ajudam a garantir maior bem-estar e saúde para a mãe
e o bebê durante a gestação.
1.1.2 A importância do pré-natal
Segundo o Ministério de Saúde, o acompanhamento pré-natal é essencial
para garantir uma gestação saudável, um parto seguro e, também, para esclarecer
as dúvidas das futuras mães. (MINISTÉRIO, 2013)
A gestação, embora constituindo um fenômeno fisiológico que na maior parte dos casos tem sua evolução sem intercorrências, requer cuidados especiais mediante assistência pré-natal. Essa, por sua vez, tem como objetivo principal acolher e acompanhar a mulher durante sua gestação, período caracterizado por mudanças físicas e emocionais vivenciado de forma distinta pelas gestantes. (LANDERDAHL, M.C. et AL, 2007, p.106)
O período de acompanhamento pré-natal compreende a gestação, o parto, o
nascimento e o puerpério. O puerpério é o período de acompanhamento pós-parto
e, recomenda-se que a consulta ocorra até o 42º dia após a realização do parto.
O principal objetivo da atenção pré-natal e puerperal é acolher a mulher desde o início da gravidez, assegurando, no fim da gestação, o nascimento de uma criança saudável e a garantia do bem-estar materno e neonatal. (MINISTÉRIO, 2013)
23
O Programa de Humanização do Pré-Natal e Nascimento (PHPN) do
Ministério da Saúde, por exemplo, incentiva as gestantes a buscarem o Sistema
Único de Saúde (SUS) e estabelece que sejam realizadas, no mínimo, seis
consultas: uma no primeiro trimestre de gravidez, duas no segundo e três no
terceiro. Em todas elas, o médico deve medir a pressão arterial, o tamanho da
barriga, o peso da gestante e, também escutar o coração do bebê.
No acompanhamento pré-natal, a gestante recebe informações sobre
cuidados como aleitamento materno, alimentação balanceada e a prática de
exercícios físicos.
Segundo o Ministério de Saúde durante o período pré-natal, os exames
indicados para uma para uma gravidez sem complicações são os testes de sangue,
glicemia, urina, sorologia anti-HIV, sífilis, hepatites B e C, toxoplasmose, rubéola e
estreptococo. (MINISTÉRIO, 2013)
Durante o pré-natal, o médico também pode indicar a necessidade de a
grávida tomar vacinas contra hepatite, gripe e DT (dupla adulto contra difteria e
tétano) e realizar exames de sangue para verificar os níveis dos hormônios da
tireoide, que regulam o organismo da mãe e o desenvolvimento do feto.
No caso das gestantes com fator Rh negativo, também é importante realizar o
exame de sangue Coombs indireto, que verifica se há possibilidade de manifestação
de eritroblastose fetal. Eritroblastose fetal é uma doença hemolítica causada pela
incompatibilidade do sistema Rh do sangue materno e fetal, onde o organismo da
gestante Rh negativo passa a produzir anticorpos contra o sangue de bebês Rh
positivos. (VARELLA, 2013)
É possível ainda que sejam solicitados outros exames mais específicos, se a
gestação for de alto risco, ou seja, quando a mãe apresenta condições como
obesidade, diabetes e histórico de aborto, por exemplo. Segundo Ministério (2006),
nesses casos o pré-natal requer maior atenção e, solicitações de novos exames ou
procedimentos específicos devem ser avaliadas pelo médico.
Ainda, de acordo com Ministério (2006), é cada vez mais frequente a
participação do pai no pré-natal, devendo sua presença ser estimulada durante as
consultas. A gestação, o parto, o nascimento e o puerpério são eventos carregados
de sentimentos profundos, momentos de crises construtivas, com forte potencial
positivo para estimular a formação de vínculos e provocar transformações pessoais.
24
1.1.3 Cálculo da Idade Gestacional
Para o cálculo da idade gestacional, é necessário saber a data da última
menstruação (DUM), que corresponde ao primeiro dia de sangramento do último
período menstrual.
Os procedimentos técnicos descritos pelo Ministério da Saúde, para cálculo
da idade gestacional variam de acordo com a informação da gestante quanto a
DUM. (MINISTÉRIO, 2006)
Quando a DUM é conhecida e de certeza, nos casos de mulheres com ciclos
menstruais regulares e sem uso de métodos anticoncepcionais hormonais, o cálculo
pode ser feito de duas formas:
Calendário: somar o número de dias do intervalo entre a DUM e a data da
consulta, dividindo o total por sete - resultado em semanas;
Disco - gestograma: colocar a seta sobre o dia e mês correspondente ao
primeiro dia da última menstruação e observar o número de semanas
indicado no dia e mês da consulta atual.
Para os casos em que a DUM é desconhecida, mas se conhece o período do
mês em que ela ocorreu, deve-se verificar se o período foi no início, meio ou fim do
mês. A data da última menstruação será então considerada como nos dias 5, 15 e
25, respectivamente. Com a definição da data aproximada poderão ser utilizados os
mesmos métodos de calendário e disco já descritos.
Se a data e o período do mês não forem conhecidos, a idade gestacional será
determinada por aproximação, basicamente pela medida da altura do fundo do útero
e pelo toque vaginal, além da informação sobre a data de início dos movimentos
fetais, habitualmente ocorrendo entre 16 e 20 semanas.
Quando não for possível determinar a idade gestacional clinicamente, está
deverá ser feita através de exame de ultrassonografia obstétrica, por meio de
solicitação do médico.
1.1.4 Cálculo da data provável do parto
A data provável do parto é calculada levando-se em conta a duração média
da gestação normal, que compreende o período de 280 dias ou 40 semanas a partir
da DUM, mediante a utilização de calendário. (MINISTÉRIO, 2006)
25
Com o gestograma, deve-se colocar a seta sobre o dia e mês correspondente
ao primeiro dia da última menstruação e observar a seta na data, dia e mês,
indicada como data provável do parto.
Outra forma de cálculo é a utilização da Regra de Näegele: deve-se somar
sete dias ao primeiro dia da última menstruação e subtrair três meses ao mês em
que ocorreu a última menstruação, ou adicionar nove meses, se corresponder aos
meses de janeiro a março. Se o número de dias encontrado for maior do que o
número de dias do mês, passar os dias excedentes para o mês seguinte,
adicionando 1 ao final do cálculo do mês.
1.1.5 Cálculo do IMC da gestante
O cálculo e acompanhamento do Índice de Massa Corpórea (IMC) é uma
ferramenta utilizada na avaliação do estado nutricional e do ganho de peso
gestacional. De acordo com Ministério (2006), a avaliação irá contribuir na
prevenção e controle de agravos à saúde e nutrição.
Segundo MINISTÉRIO (2004), estado nutricional é o resultado do equilíbrio
entre o consumo de nutrientes e o gasto energético do organismo para suprir as
necessidades nutricionais. O estado nutricional pode ter três tipos de manifestação
orgânica: adequação nutricional, carência nutricional e distúrbio nutricional.
É recomendado que seja feito o cálculo do IMC da gestante na primeira
consulta pré-natal e após, nas consultas seguintes, seja feito o controle através de
um gráfico de acompanhamento nutricional da gestante.
Na primeira consulta de pré-natal, a avaliação nutricional da gestante permite
conhecer seu estado nutricional atual e estimar o ganho de peso até o final da
gestação.
Para cada situação nutricional inicial, que pode estar entre baixo peso,
adequado, sobrepeso ou obesidade, há uma faixa de ganho de peso recomendada.
Cada gestante deverá ter um ganho de peso de acordo com seu IMC inicial.
Desta forma, já na primeira consulta, podem-se estimar quantos gramas a
gestante deverá ganhar no 1º (primeiro) trimestre, assim como o ganho por semana
até o final da gestação.
Para o 1º (primeiro) trimestre, o ganho de peso é agrupado para todo período,
enquanto que, para o 2º (segundo) e o 3º (terceiro) trimestre, é previsto
26
semanalmente.
Quadro 1.1 – Avaliação do estado nutricional da gestante acima de 19 anos, segundo índice de massa corporal por semana gestacional
Semana Gestacional
Baixo Peso IMC ≤
Adequado IMC entre
Sobrepeso IMC entre
Obesidade IMC ≥
6 19,9 20,0 24,9 25,0 30,0 30,1 8 20,1 20,2 25,0 25,1 30,1 30,2
10 20,2 20,3 25,2 25,3 30,2 30,3 11 20,3 20,4 25,3 25,4 30,3 30,4 12 20,4 20,5 25,4 25,5 30,3 30,4 13 20,6 20,7 25,6 25,7 30,4 30,5 14 20,7 20,8 25,7 25,8 30,5 30,6 15 20,8 20,9 25,8 25,9 30,6 30,7 16 21,0 21,1 25,9 26,0 30,7 30,8 17 21,1 21,2 26,0 26,1 30,8 30,9 18 21,2 21,3 26,1 26,2 30,9 31,0 19 21,4 21,5 26,2 26,3 30,9 31,0 20 21,5 21,6 26,3 26,4 31,0 31,1 21 21,7 21,8 26,4 26,5 31,1 31,2 22 21,8 21,9 26,6 26,7 31,2 31,3 23 22,0 22,1 26,8 26,9 31,3 31,4 24 22,2 22,3 26,9 27,0 31,5 31,6 25 22,4 22,5 27,0 27,1 31,6 31,7 26 22,6 22,7 27,2 27,3 31,7 31,8 27 22,7 22,8 27,3 27,4 31,8 31,9 28 22,9 23,0 27,5 27,6 31,9 32,0 29 23,1 23,2 27,6 27,7 32,0 32,1 30 23,3 23,4 27,8 27,9 32,1 32,2 31 23,4 23,5 27,9 28,0 32,2 32,3 32 23,6 23,7 28,0 28,1 32,3 32,4 33 23,8 23,9 28,1 28,2 32,4 32,5 34 23,9 24,0 28,3 28,4 32,5 32,6 35 24,1 24,2 28,4 28,5 32,6 32,7 36 24,2 24,3 28,5 28,6 32,7 32,8 37 24,4 24,5 28,7 28,8 32,8 32,9 38 24,5 24,6 28,8 28,9 32,9 33,0 39 24,7 24,8 28,9 29,0 33,0 33,1 40 24,9 25,0 29,1 29,2 33,1 33,2 41 25,0 25,1 29,2 29,3 33,2 33,3 42 25,0 25,1 29,2 29,3 33,2 33,3
Fonte: Ministério, 2006, p.45
Os passos para calculo do IMC da gestante, de acordo com Ministério da
Saúde (2006) são:
Calcular o IMC por meio da fórmula:
Peso (kg)
Altura² (m)
27
Realizar o diagnóstico nutricional, utilizando o Quadro 1.1: calcular a semana
gestacional e após, localizar na primeira coluna do Quadro 1.1 a semana
gestacional calculada e, identificar em qual faixa está situado o IMC da
gestante;
Classificar o estado nutricional (EN) da gestante, segundo o IMC por semana
gestacional;
Estimar o ganho de peso para gestantes utilizando o Quadro 1.2.
Quadro 1.2 – Ganho de peso recomendado (KG) na gestação, segundo estado nutricional inicial.
Estado
nutricional
(IMC)
Ganho de peso
total (kg) no 1º
trimestre
Ganho de peso
semanal médio (kg) no
2º e 3º trimestres
Ganho de peso
total (kg)
Baixo Peso 2,3 0,5 12,5 – 18,0
Adequado 1,6 0,4 11,2 – 16,0
Sobrepeso 0,9 0,3 7,0 – 11,5
Obesidade - 0,3 7,0
Fonte: Ministério, 2006, p. 46
Para as consultas subsequentes deve ser iniciado um Gráfico de
Acompanhamento Nutricional da Gestante. O gráfico irá possibilitar analisar a curva
de índice de massa corporal de acordo com a semana de gestação, permitindo
acompanhar a evolução do ganho de peso e, examinar se esse ganho está
adequado em função do estado nutricional da gestante no início do pré-natal.
Para este trabalho, não será analisado o gráfico de acompanhamento
nutricional, pois o objetivo do aplicativo é apenas fornecer valores e referências para
a gestante, não apresentando qualquer tipo de diagnóstico médico.
1.2 VIABILIDADE E IMPORTÂNCIA DE APLICATIVO MÓVEL PARA
ACOMPANHAMENTO DE GRAVIDEZ
O aplicativo Boa Gravidez é voltado para a mulher que está aguardando a
chegada de um bebê. O mesmo possui dicas semanais, que são importantes para
uma boa gravidez, além de diversos utilitários. Dentre eles, é possível realizar uma
conexão com o Facebook, onde se pode enviar mensagens e fotos para a rede
social.
28
Esta ferramenta também possui uma lista pré-definida para os produtos que
são necessários na hora da chegada do bebê. A grávida poderá visualizar uma lista
geral com vários produtos, podendo adicionar novos itens ou criar uma lista com
apenas os produtos que ela selecionar. Este utilitário pode atender, por exemplo,
quem pretende fazer um chá de bebê, pois é possível criar uma lista com os
produtos que faltam ser comprados.
As informações mudam de semana a semana, mostrando dicas sobre a
semana atual de gestação, cuidados durante a gravidez, exames necessários, pré-
natal e desenvolvimento do bebê.
Acredita-se que pela fácil mobilidade dos smartphones e tablets, as grávidas
poderão ter acesso às informações a qualquer momento, por meio do uso do
aplicativo.
Este aplicativo poderá ser usado pelas gestantes que querem estar
conectadas com diversas informações. Acredita-se que com o aplicativo, as
mulheres contarão com uma ferramenta para que o período gestacional e as
primeiras semanas de vida do bebê possam ser conduzidos com tranquilidade.
29
2 CONCEITOS E TECNOLOGIAS UTILIZADAS PARA
DESENVOLVIMENTO DO APLICATIVO
Neste capítulo são apresentados alguns aspectos sobre dispositivos móveis,
com ênfase no sistema operacional Google Android OS, suas características e
arquitetura. Também são apresentados os conceitos e demais tecnologias utilizadas
para o desenvolvimento do aplicativo Boa Gravidez.
2.1 DISPOSITIVOS MÓVEIS
Os dispositivos móveis são pequenos, leves, portáteis e úteis, não só para se
comunicar, mas para ler, acessar internet, consumir aplicativos, jogar e acessar
redes sociais. (DISPOSITIVOS, 2010)
A popularização dos celulares, smartphones e tablets está ampliando as
possibilidades de negócios e lazer e, consequentemente, aumentando os usuários.
O crescimento dos serviços móveis é uma das principais tendências da década.
Nesta seção serão apresentados dados sobre o crescimento da conectividade
e mobilidade, uso de smartphones e tablets, além de descrever os principais
sistemas operacionais para estes dispositivos.
2.1.1 Conectividade/Mobilidade
A função primária de um dispositivo móvel é conectar as pessoas e/ou
sistemas e transmitir e receber informações. (LEE et al., 2005)
O mundo está mais dinâmico e exigente no que diz respeito à capacidade das
pessoas de se manterem conectadas e disponíveis o tempo todo.
O gráfico apresentado na figura 2.1 exibe um comparativo de taxa de
crescimento de acesso à Internet através de dispositivos móveis, divulgado pelo
Instituto Verificador de Circulação (IVC). (SILVA, 2013)
Pode-se observar que o crescimento de acesso a internet via dispositivos
móveis apresenta uma evolução expressiva em comparação com o acesso realizado
através de outros canais.
30
Figura 2.1 – Taxa de crescimento acessos via dispositivos móveis IVC Fonte: Silva, 2013
A Internet passa a ser indispensável para o uso de qualquer dispositivo móvel
e a expansão da conexão não para de aumentar. A tecnologia wireless foi
incorporada aos dispositivos móveis e, traz consigo maior mobilidade em relação ao
seu predecessor, as redes cabeadas. Atualmente vários modelos de smartphones e
tablets dispõem de tal tecnologia. (PINTO; GOMES, 2011)
Assim como a rede wireless teve uma grande incorporação nos dispositivos
móveis, houve também outras expansões em relação à conectividade, como por
exemplo, o uso da Internet 3G. Esta tecnologia, caracterizada como a 3ª geração,
proporciona serviços como transferência de dados com alta velocidade.
O futuro próximo no Brasil será a conexão 4G, a 4ª geração de telefone
móvel, que garante um aumento significante de velocidade comparada a outras
tecnologias.
Observa-se que a busca pela conectividade e mobilidade contribuiu para a
melhoria e crescimento da tecnologia para dispositivos móveis, além do
desenvolvimento e popularização de diversos aplicativos para smartphones e
tablets.
2.1.2 Smartphones e tablets
Os tablets e smartphones ganharam espaço no mercado por oferecer
inovação e interatividade a todo tipo de usuário, são fáceis de usar, rápidos e leves
para transportar.
31
Esta realidade traz um avanço tecnológico e uma gama de possibilidades
para as empresas, como novos canais de comunicação com seus clientes e
ferramentas de trabalho. (FLIP STUDIO, 2011)
As vendas de tablets no Brasil devem atingir o patamar de 5,1 milhões de
unidades este ano, o que representaria um crescimento de 67% sobre o
desempenho verificado em 2012, segundo projeção divulgada pela consultoria do
mercado de tecnologia IT Data. (DIAS, 2013)
O perfil dos consumidores de tablets é de pessoas que já possuem um
computador pessoal. Ou seja, elas não substituíram seu computador, e sim
compraram mais uma opção de produto tecnológico, por sua mobilidade. De acordo
com Dias (2013), os analistas preveem que a fatia de mercado dos notebooks
também ficará cada vez menor. A figura 2.2 ilustra o crescimento do mercado para
tablets e notebooks.
Figura 2.2 – Crescimento de mercado para tablets e notebooks Fonte: Dias, 2013
2.1.3 Principais sistemas operacionais para dispositivos móveis
Existem diversos sistemas operacionais para dispositivos móveis que serão
apresentados a seguir.
O Windows Phone é um sistema operacional para celulares baseado no
kernel do Windows CE6, foi desenvolvido pela Microsoft, e utiliza os mesmos
padrões de aplicações usadas na versão computador sendo compatível com os
aplicativos desenvolvidos a princípio para o Windows do computador, como por
exemplo, Word e Excel. (NÚCLEO TREINAMENTOS, 2011)
32
Outro sistema operacional disponível no mercado é o BlackBerry OS que foi
desenvolvido pela empresa Research in Motion, conhecida como RIM. Este sistema
integra diversas funções, como por exemplo, editor de texto, e-mail e tecnologia
Internet Protocol Version6 (IPv6). Suporta também todas as funções necessárias
para criar documentos, planilhas e apresentações. (BLACKBERRY, 2013)
Symbian OS é um sistema operacional para dispositivos móveis, com
bibliotecas associadas, interface, frameworks e implementações com referência em
ferramentas comuns. Ele descende do EPOC 32 da inglesa Psion e funciona
exclusivamente em processadores ARM. Originalmente nascido como um sistema
proprietário, após dez anos de parceria, em 2008, a Nokia que detinha 56,3% das
ações da empresa, comprou o restante da Symbian e anunciou a abertura do código
fonte e a transferência do desenvolvimento do Symbian para uma fundação neutra,
a Symbian Foundation. (BUDAG, 2010)
Existe também o Mac OS X, que originou o iOS, desenvolvido pela Apple.
Este sistema funciona somente em aparelhos da Apple como iPhone, iPad, iPod
Touch, iPod e Apple TV. Não é compatível com todos os tipos de aplicativos,
podendo instalar somente aplicativos disponibilizados pela Apple. (LOWE, 2010)
Dentre os sistemas operacionais, destaca-se o Google Android OS,
desenvolvido pela Google, que possui diversos aplicativos como leitores de e-books,
tocadores de mp3, bússolas digitais e inúmeros jogos. Conta também integração
com redes sociais e sistema multitarefas. (ANDROID 1.5, 2009)
2.2 GOOGLE ANDROID OS
Popularmente conhecido somente como Android, o Google Android OS
consiste em uma plataforma de desenvolvimento, baseada em um sistema
operacional Linux, com diversas aplicações já instaladas. (LECHETA, 2010)
De acordo com o mesmo autor, este sistema operacional foi baseado no
kernel 2.6 do Linux, e é responsável por gerenciar a memória, os processos, threads
e a segurança dos arquivos e pastas, além de redes e drivers.
Em 2005 a Google comprou a Android INC, uma pequena empresa onde
futuramente a Google começaria a trabalhar. O sistema Android foi inicialmente
lançado pela Google e posteriormente pela Open Handset Alliance (OHA).
33
A OHA é um grupo formado por empresas do mercado de telefonia celulares
liderados pela Google. Entre os integrantes estão HTC, LG, Motorola, Samsumg,
Sony Ericson, Toshiba, Sprint Nextel, China Mobile, T-Mobile, ASUS, Intel, Garmim,
entre outros.
No ano de 2008 foi apresentado pela Google o primeiro telefone móvel
comercialmente disponível para rodar a plataforma Android, o HTC Dream. Após
foram lançadas diversas versões, sempre com melhorias e novos recursos. Em 2011
foi lançado o primeiro tablet comercialmente disponível a utilizar o sistema Android
3.0, o Motorola Xoom nos Estado Unidos. (TECNOINFOBRASIL, 2011)
Pesquisa realizada pelo IVC representada pela Figura 2.3 e Figura 2.4
compreende dados de janeiro de 2011 a dezembro de 2012, e conclui que o sistema
operacional Android para smartphones assumiu a liderança e continua com trajetória
de crescimento. Já para os tablets, o iOS, da Apple ainda possui a liderança com o
iPad, porém os acessos via Android também já apresentam crescimento. (SILVA,
2013)
Figura 2.3 – Evolução de acessos à internet através de smartphones por Sistema Operacional Fonte: SILVA, 2013
34
Figura 2.4 – Evolução de acessos à internet através de tablets por Sistema Operacional Fonte: SILVA, 2013
De acordo com Lecheta(2010), o fato de o Android possuir código aberto
contribui para seu aperfeiçoamento, uma vez que desenvolvedores de todos os
lugares do mundo podem contribuir para seu código-fonte, adicionando novas
funcionalidades ou simplesmente corrigindo falhas.
A plataforma Android traz vantagens também para os fabricantes e o usuário
final. A licença é flexível e permite que cada fabricante possa realizar alterações no
código-fonte para customizar seu produto e, o usuário final tem a possibilidade de
encontrar diversos recursos em um único aparelho.
O crescimento de usuários que possuem um aparelho com o sistema
operacional Android motivou o estudo da tecnologia. Soma-se ainda a esta escolha
a característica de possuir código livre e, a licença para desenvolvimento possuir
somente uma taxa inicial de cadastro.
2.2.1 Versões do Google Android OS para tablets
Desde o Android 1.0, foram lançadas várias verses do Google Android OS. A
partir da versão 1.5, passaram a ser nomeadas com nomes de doces, cujas iniciais
seguem as letras do alfabeto. As versões do Android são: Android 1.0, Android 1.1,
Android 1.5 – Cupcake, Android 1.6 – Donut, Android 2.0 e Android 2.1 – Eclair,
35
Android 2.2 – Froyo, Android 2.3 – Gingerbread, Android 3.0 – Honeycomb, Android
4.0 – Ice Cream Sandwich, Android 4.1, 4.2 e 4.3 – Jelly Bean.
A primeira versão criada, em princípio, somente para tablets é a 3.0
Honeycomb. Não é embarcada em novos modelos, porém ainda existem alguns
modelos à venda no mercado.
Com a popularização dos tablets e a busca dos usuários por esses
equipamentos surgiu necessidade de otimizar e customizar o Android para que se
usufrua ao máximo do tamanho de tela disponível nesses aparelhos. (LECHETA,
2012)
As seções a seguir destacam alguns dos recursos adicionados, segundo
Honeycomb (2013):
Navegador: inclui novos recursos e navegação anônima. Favoritos e
históricos são apresentados e geridos em uma única visão unificada. Novo
suporte multitouch disponível para JavaScritp e plugins. Navegação em sites
não móveis com um zoom melhor;
Câmera: foi redesenhada para aproveitar uma tela maior;
Contatos: oferece melhor formatação de números de telefones
internacionais, tipo de usuários, com base no país de origem e em uma
biblioteca de análise de número internacional. As informações de contato são
apresentadas em um cartão como interface do usúario.
Segundo Monteiro (2012), a versão 3.0 introduziu novos recursos como a
ActionBar e os Fragments, que são componentes de interface gráfica modulares,
possuindo ciclo de vida próprio, criados para facilitar o desenvolvimento de
aplicativos com layouts diferentes para cada tipo de dispositivo. Para trazer alguns
destes recursos para as versões anteriores do Android, o Google lançou um pacote
de compatibilidade.
Após, foi lançada a versão Android 4.0 Ice Cream Sandwich, que visa unir as
plataformas de desenvolvimento dos smartphones e tablets e trazer novas API’s que
inicialmente estavam disponíveis apenas na versão Honeycomb para os
smartphones. (LECHETA, 2012)
De acordo com Monteiro (2012), a versão 4.0 do Android unificou a
plataforma para a sua utilização tanto em tablets como smartphones. Antes disso
havia a versão 3.x projetada especialmente para tablets e a versão 2.x amplamente
utilizada em smartphones e em alguns modelos de tablet.
36
A versão seguinte foi 4.1 JellyBean. As versões mais recentes para tablets
são a 4.2 e 4.3, que ainda usam o nome de JellyBean, porém com algumas
alterações e melhorias em relação à versão anterior.
2.2.2 Portabilidade
Como descrito, o Android é uma plataforma de desenvolvimento para
aplicativos móveis e contêm um sistema operacional baseado em Linux.
Outra característica é que os usuários do Android podem utilizar este sistema
operacional em diversos aparelhos, não sendo restrito somente um tipo de
smartphone, por exemplo. E assim, torna-se relevante citar a portabilidade.
Em virtude da aliança entre diversas empresas do ramo de telefônica, a OHA,
estudos e desenvolvimento em conjunto garantem que o Android seja um sistema
bastante acessível.
Porém, com o lançamento de novas versões são necessários alguns ajustes
para que o hardware dos aparelhos de smartphone e tablets adaptem-se ao novo
sistema operacional. Sendo assim, é realizada uma sessão de testes e a versão é
enviada a certificação, somente após a aprovação dos testes pode ser distribuída
para os consumidores. No Brasil é a Agência Nacional de Telecomunicações
(ANATEL) que concede a certificação.
Para exemplificar como são feitas as adaptações, é utilizado um modelo
baseado nos aparelhos da Sony durante a adaptação para uso do 4.0, o Ice Cream
Sandwich. (NILSSON, 2011)
Figura 2.5 - Etapas Certificação Android Fonte: Nilsson, 2011
37
O primeiro passo é integrar o mais recente código fonte Android disponível e
testar a compilação. Isso é feito pelas equipes de engenharia, que, além disso,
precisam confirmar que todas as ferramentas de teste e depuração estão
adequadas. Uma vez que se irá continuar a construir mais sobre esse conjunto
básico de código, a estabilidade do software é muito importante nesta fase.
Em segundo lugar, é necessário certificar e aprovar a nova versão do software
com todas as diferentes tecnologias, redes e hardware que um smartphone deve
trabalhar.
A primeira coisa a fazer é adaptar a Hardware Abstraction Layer (HAL), a
camada de abstração de hardware. Trata-se de uma camada de software que
realiza a integração das aplicações com os componentes de hardware e com os
processadores.
A HAL, conforme ilustra a Figura 2.6 é a camada principal de interação com
diversos componentes como: Wi-Fi, bluetooth, áudio, acelerômetro, giroscópio,
câmeras, GPS, componentes multimídia e gráficos. Se a HAL não for bem
configurada pode impactar na funcionalidade dos serviços do dispositivo.
Figura 2.6 lustração da camada HAL Fonte: Nilsson, 2011
38
Depois disso, é feita a integração dos patches do Android, fornecidos pelo
Android Open Source Project (AOSP) como, tratamento de erros, novas
atualizações, customizações, funcionamento dos players de vídeo e música, USB,
entre outros.
Quando todas as funcionalidades são adaptadas ao código, são iniciados
testes de estabilidade para garantir que o software execute de maneira estável em
todos os tipos de casos de uso. Além de testes de laboratório puro, são feitos testes
com usuários ativos, quando são relatados defeitos.
Por último, a Sony realiza os testes para garantir a estabilidade do SO com o
dispositivo, garantido o suporte local, ou seja, suporte nativo de todas as linguagens
do Android.
Feito o processo, a versão portada é levada para os testes de certificação e,
após ser aprovada, pode ser distribuída para os consumidores.
2.2.3 Arquitetura
A arquitetura do Android é flexível e é possível integrar aplicações nativas
com uma nova aplicação desenvolvida pelo programador, ou até mesmo substituir
qualquer aplicação nativa existente.
Figura 2.7 – Arquitetura do Android Fonte: Elaborado pelas autoras, 2013
Aplicações (Contatos, Câmera...)
Frameworks (Gerenciador de
Recursos/Notificações...)
Núcleo Linux
Bibliotecas
Máquina Virtual
PLATAFORMA ANDROID
39
Sua arquitetura é dividida em alguns componentes, de acordo com a figura
2.7:
Aplicativos: é a camada mais alta da arquitetura do sistema, composta pelo
conjunto de aplicativos nativos do sistema;
Framework nativo: disponibiliza aos desenvolvedores as mesmas
Application Programming Interface (APIs) usadas para criar as aplicações
originais do sistema. Este framework permite que o desenvolvedor tenha o
mesmo acesso ao sistema que os aplicativos da camada de aplicativos
possuem. Foi criado para abstrair a complexidade e simplificar o reuso de
procedimentos e funciona como um meio de ligação com a camada de
bibliotecas do sistema que serão acessadas através de APIs contidas no
framework;
Bibliotecas: provem funcionalidades para manipulação de áudio, vídeo,
gráficos, banco de dados e navegador, sendo acessadas pelo programador
via Java, através do framework do sistema;
Runtime android – Máquina Virtual Dalvik: permite que cada processo rode
sua própria instância da máquina virtual. Embora no desenvolvimento de
aplicativos seja utilizada a linguagem Java, as aplicações são executadas
em uma máquina virtual otimizada especialmente para dispositivos móveis.
Quando é realizada a compilação, os arquivos são convertidos para o
formato .dex, Dalvik Executable, que representa a aplicação do Android
compilada;
Kernel Linux: baseado no kernel 2.6 do Linux é responsável por gerenciar a
memória, os processos, threads e segurança.
A extensão que representa uma aplicação final Android, é a .apk (Android
Package File).
2.3 ANDROID SDK
O Android SDK fornece as bibliotecas da API e ferramentas de
desenvolvimento necessárias para construir, testar e depurar aplicativos para o
Android. (ANDROID DEVELOPERS, 2013)
É o software utilizado para desenvolver aplicações Android, possuindo um
emulador para simular o dispositivo móvel, ferramentas utilitárias e uma API
40
completa para a linguagem Java. (LECHETA, 2012)
Os requisitos de software e sistema para utilização do SDK são:
Sistemas operacionais suportados: Windows XP (32-bit), Vista (32 ou 64-
bit) ou Windows 7 (32 ou 64-bit), Mac OS X 10.5.8 ou posterior (somente
x86), Linux Ubuntu;
Ambientes de desenvolvimento suportados: Ecplise 3.5 (Galileo), Eclipse
3.6 (Helios) ou superior, utilizando o plugin Android Development Tools
(ADT), JDK 5 ou JDK 6.
2.4 FACEBOOK SDK
O Facebook disponibiliza um SDK oficial para ajudar os desenvolvedores a
integrar a sua aplicação web ou mobile com o Facebook. São disponibilizadas SDKs
oficiais para iOS, Android, PHP e JavaScript. Todos os SDK são open source e
podem ser baixados através do compartilhamento de projetos GitHub. (FACEBOOK
DEVELOPERS, 2013)
Segundo Catone (2008), Git é um sistema de controle de versão
descentralizado criado por Linus Torvalds, o criador do Linux. O GitHub é um dos
principais meios de compartilhamento de projetos disponíveis na internet, lá,
encontram-se desde projetos simples até projetos extremamente complexos, como o
kernel do Linux. (MARTINS, 2013)
2.5 JAVA
Quanto à linguagem de programação, o Android permite o desenvolvimento
de aplicativos na linguagem Java combinada com Xtensible Markup Language
(XML).
O Java é a base para praticamente todos os tipos de aplicações em rede e é
o padrão global para o desenvolvimento e distribuição de aplicações móveis, jogos,
conteúdo baseado na web e softwares corporativos. (JAVA, 2013)
Java é multiplataforma. Quando um programa Java é compilado um código
intermediário é gerado, chamado de bytecode. Este bytecode é interpretado pelas
Máquinas Virtuais Java (JVMs) para a maioria dos sistemas operacionais. A
máquina virtual é a responsável por criar um ambiente multiplataforma, ou seja, se
41
alguém construir um sistema operacional novo, basta criar uma máquina virtual Java
que traduza os bytecodes para código nativo. (PAMPLONA, 2013)
2.6 XML
XML trata-se de uma linguagem de marcação para representar qualquer tipo
de dados e, possibilita a troca desses dados entre qualquer tipo de aplicação. O
objetivo principal do XML é ser portável, não só quanto à plataforma como também
quanto à aplicação. Em outras palavras, um documento XML deve poder ser lido em
qualquer plataforma computacional e por qualquer aplicação capaz de ler e
processar texto. (PASSOS, 2009)
2.7 ECLIPSE
Eclipse é uma Integrated Development Environment(IDE) gratuita que serve
para a construção de programas de computador, usando diversas linguagens de
programação.
O projeto Eclipse foi originalmente criado pela IBM em 2001 e, apoiado por
um consórcio de fornecedores de software. (ECLIPSE, 2013)
Em 2004, com o objetivo de desvincular o projeto da IBM, foi criada a Eclipse
Foundation. Esta fundação é independente, não tem fins lucrativos, possui sua
própria equipe e é mantida através de doações das próprias organizações que dela
fazem parte como membros. (ARAÚJO, 2013)
Ainda de acordo com Araújo (2013), o Eclipse é um IDE conhecido
comumente para desenvolvimento em Java, no entanto, por meio de plug-ins, ele
pode ser usado para desenvolver aplicações em várias linguagens, como C/C++,
Python, PHP e inclusive para a plataforma Android. A SDK Android utiliza a IDE
Eclipse com o plugin ADT.
2.8 SQLITE
Um Sistema gerenciador de Banco de Dados (SGBD) consiste em um
conjunto de programas de computador responsáveis pelo gerenciamento de um
banco de dados. O principal objetivo é retirar da aplicação cliente a responsabilidade
42
de gerenciar o acesso, manipulação e organização dos dados. O SGBD disponibiliza
uma interface para que os seus clientes possam incluir, alterar ou consultar dados.
(VASCONCELOS, 2012)
No contexto de aplicações para dispositivos móveis, muitas tecnologias para
desenvolvimento se baseiam em arquivos para armazenar dados. A plataforma
Android possui suporte nativo ao SQLite.
O SQLite é um banco de dados relacional, cuja toda a estrutura é salva em
um único arquivo de extensão .db. Desta forma, o banco de dados pode ser
compactado e distribuído juntamente com a aplicação, não necessitando a
instalação de um servidor de banco de dados como ocorre em banco de dados
cliente-servidor. (DALL'OGLIO, 2007)
De acordo com Vasconcelos(2012), o SQLite é uma biblioteca de banco de
dados baseado em Structured Query Language (SQL) que atua como um SGBD em
miniatura, capaz de controlar diversos bancos de dados que podem conter diversas
tabelas.
O código para SQLite é de domínio público e, portanto, seu uso é livre para
qualquer fim, comercial ou privado. (SQLITE, 2013)
O uso do SQLite é recomendado onde a simplicidade da administração,
implementação e manutenção são importantes. É uma boa escolha para dispositivos
ou serviços que devem funcionar de forma autônoma e que possuem memória
limitada tais como: celulares, Personal Digital Assistant (PDA) e MPEG-1/2
AudioLayer3 (MP3) Players. (SQLITE, 2013)
É possível criar o banco de dados e as tabelas, assim como manipular seus
dados através dos comandos DDL (Data Definition Language) e DML (Data
Manipulation Language) do SQL padrão. Os serviços para persistência de dados são
fornecidos pelo SQLite. (VASCONCELOS, 2012)
Os tipos de dados suportados pelo SQLite são BLOB, REAL, INTEGER,
TEXT e NULL, possuindo as seguintes classes de armazenamento (SQLITE, 2013):
NULL: o valor é um valor NULL;
INTEGER: o valor é um inteiro, armazenadas em 1, 2, 3, 4, 6, ou 8 bytes,
dependendo da magnitude do valor;
REAL: o valor é um valor de ponto flutuante;
TEXT: o valor é uma cadeia de texto, armazenado usando a codificação do
banco de dados (UTF-8, UTF-16BE ou UTF-16LE);
43
BLOB: o valor é uma bolha de dados, armazenados exatamente como a
entrada de dado.
De acordo com SQLITE (2013), o SQLite não possui uma classe de
armazenamento para valores booleanos. Em vez disso, valores booleanos são
armazenados como inteiros 0 (falso) e 1 (verdadeiro). Também não há uma classe
de armazenamento reservada para datas ou horários. Em vez disso, o SQLite é
capaz de armazenar datas e horários como valores de texto, real ou inteiro.
2.9 ANDROID MARKET – GOOGLE PLAY
Para a distribuição das aplicações Android, foi criado o site Android Market,
que posteriormente denominou-se Google Play. É um site disponível ao público no
qual os desenvolvedores do Android podem ofertar produtos para dispositivos que
fazem uso do Google Android OS. É necessário adquirir e manter uma conta de
desenvolvedor válida. (GOOGLE PLAY, 2013).
De acordo com Lecheta (2012), o objetivo do site é fornecer aos
desenvolvedores de aplicativos um lugar comum para disponibilizar suas aplicações.
Para publicar uma aplicação, o desenvolvedor deve concordar com os termos de
uso e realizar o pagamento de uma taxa. Há uma taxa de registro de US$ 25
cobrados por uma conta de desenvolvedor do Google Play. De acordo com Google
Play (2013), a taxa é cobrada para incentivar produtos de alta qualidade, evitando,
por exemplo, produtos com spam.
Após a publicação, o aplicativo já pode ser instalado pelos usuários. Há
possibilidade de disponibilizar os aplicativos de forma gratuita ou paga. Segundo
Lecheta(2012), no caso de aplicativos pagos 70% dos lucros com os aplicativos
vendidos são repassados ao desenvolvedor.
Ainda de acordo com Google Play (2013), a distribuição dos aplicativos pelo
Google Play não é exclusiva. É possível distribuí-los por outros canais, porém as
versões publicadas no Google Play precisam estar em conformidade com todas as
políticas do site.
2.10 APLICATIVOS ANDROID PARA TABLETS
Para garantir qualidade aos aplicativos disponibilizados na Google Play são
44
recomendados vários critérios de qualidade para aplicativos. A Google disponibilizou
um checklist específico para desenvolvimento de aplicativos para tablets. (MOURA,
2013)
As recomendações para aplicativos desenvolvidos para tablets compreendem
(TABLETS, 2013):
Teste de qualidade básica do aplicativo tablet: conferir se o aplicativo
atende as principais diretrizes de qualidade da Google Play, como
desempenho e estabilidade, funcionalidade do aplicativo e projeto visual;
Otimização dos layouts para telas maiores: garantir um bom desempenho
do aplicativo nas telas dos tablets, fazer uso de layouts específicos para
telas com tamanho maior;
Aproveitamento da área de tela extra dos tablets: certificar-se de que está
utilizando ao máximo a área de tela extra; fazer uso de layouts
fragmentados (fragments), que podem resultar em um equilíbrio visual
melhor em telas de tablet, oferecendo mais utilidade e legibilidade;
Usar ícones e outros ativos que são projetados para telas de tablet:
fornecer ícones e outros ativos de bitmap para cada densidade na faixa
comumente suportada por tablets. O aplicativo deve, pelo menos, fornecer
uma versão de ícone para as densidade de tela de tablets mais comuns
hdpi, xhdpi, xxddpi;
Ajustar o tamanho da tela e componentes sensíveis ao toque: realizar
testes para certificar-se que o aplicativo apresenta facilidade para uso em
tablets. Certificar-se de que as marcações são de tamanho apropriado para
os elementos de interface do usuário, garantir que não há quebras de linha
inadequados em rótulos, títulos e outros elementos;
Ajustar tamanho de widgets da tela inicial: se o aplicativo contém um
widget na tela inicial, deve-se observar se altura e largura estão definidos
de forma adequada para telas de tablets;
Oferecer um conjunto completo de recursos do aplicativo para usuários de
tablet: certificar-se que todas as funcionalidades disponíveis para o
aplicativo em smartphones também estejam disponíveis para tablets. Caso
o aplicativo tenha alguma função que não poderá ser utilizadas nos tablets,
como telefonia, por exemplo, oferecer outras funcionalidades em
45
substituição ou, garantir que a chamada dessa funcionalidade não seja
acessível aos usuários de tablets.
Especificar as versões adequadamente: certificar-se que o aplicativo possui
declaração de suporte às versões do Android que suportam tablets. O
suporte inicial para tablets foi adicionado no Android 3.0(API nível 11); o
suporte unificado para tablets, telefones e outros dispositivos foi introduzido
no Android 4.0 (API nível 14) e é suportado em versões posteriores;
Declarar dependências de recursos de hardware corretamente: celulares e
tablets costumam oferecer suporte de hardware diferente para sensores,
câmeras, telefonia e outros recursos. Certificar-se de que o aplicativo não
declara requisitos de recursos de hardware que não estão normalmente
disponíveis em tablets. Podem-se declarar os recursos de hardware
como não obrigatório no manifesto do aplicativo, incluindo o atributo:
android: required = "false" (ANDROID, 2013);
Declarar suporte para telas de tablets: para garantir que o aplicativo seja
distribuído como um aplicativo com suporte para tablets é preciso declarar
a opção no manifesto como: android:largeScreens="true" e
android:xlargeScreens="true";
Apresentar o aplicativo no Google Play: certificar-se de permitir que os
usuários de tablets conheçam o aplicativo através de campanhas
promocionais, web site, mensagens sociais, anúncios, entre outras formas
de divulgação e marketing;
Seguir as práticas recomendadas para publicação no Google Play: o
Google Play oferece dicas de otimização para o aplicativo publicado; são
executas uma série de verificações para analisar os critérios básicos de
qualidade, caso seja encontrado algo em que o aplicativo pode ser
melhorado, o desenvolver é notificado e poderá adequar o item.
Se necessário, pode-se alternativamente, optar por publicar um APK para
cada tipo de hardware, porém é recomendado que fosse feito através de um único
APK, otimizado e adequado para atender diferentes tipos de resoluções de tela.
Por fim, é recomendado que sejam feitos quantos testes possíveis em
diferentes aparelhos para garantir a qualidade de performance do aplicativo. Não é
necessário que o desenvolvedor tenha acesso aos diferentes tipos de hardware, os
46
testes podem ser feitos através do emulador Android Virtual Device (AVD) que é
acessado através da IDE Eclipse no Android SDK.
Neste capítulo foram descritas as ferramentas e conceitos utilizados neste
trabalho. Nos próximos capítulos serão apresentadas as análises e projeto de
sistema, bem como a implementação.
47
3 ANÁLISE E PROJETO DE SISTEMA
Este capítulo apresenta as análises e os diagramas utilizados para o
desenvolvimento e implementação do aplicativo proposto. Foi utilizada a Unified
Modeling Language (UML).
De acordo com Guedes (2007), a UML é uma linguagem visual utilizada para
modelar softwares baseados no paradigma de orientação a objetos. É uma
linguagem de modelagem de propósito geral que pode ser aplicada a todos os
domínios de aplicação. Essa linguagem tornou-se, nos últimos anos, a linguagem-
padrão de modelagem adotada internacionalmente pela indústria de engenharia de
software.
3.1 ANÁLISE DE NEGÓCIO
A subseção apresenta os aspectos de mercado e análise de negócio em
relação ao aplicativo proposto.
O setor da saúde apresenta diversos aspectos para os quais é possível a
utilização de aplicativos móveis. Os serviços de saúde prestados por meio de
dispositivos móveis, como smartphones, podem chegar a 28,4 milhões de brasileiros
nos próximos quatro anos, segundo projeção que consta em pesquisa do Sistema
Global para Comunicações Móveis (GSMA), associação que representa as
operadoras de telefonia móvel no mundo. (PETRY, 2013)
De acordo com Bonome et. al. (2012), um dos principais setores atingidos
pelo uso crescente das tecnologias da informação e comunicação é o da saúde.
Essa intervenção tem modificado as estratégias de prestação de serviços gerais em
saúde por todo o mundo, de modo que seu potencial é reconhecido e incentivado
pela Organização das Nações Unidas (ONU) e Organização Mundial da Saúde
(OMS).
3.1.1 Instrução do problema
Durante o período gestacional, surgem dúvidas sobre os sinais, sintomas e
transformações no corpo da mulher, a necessidade de alimentação balanceada e
exercícios recomendados, entre outras mudanças que acontecem com a gestante.
48
Para que as gestantes tenham acesso às informações sobre as
transformações da gravidez, desenvolvimento do bebê e acompanhamento da
gestação propôs-se desenvolver um aplicativo para dispositivos móveis, voltado
para dispositivos móveis.
Pela fácil mobilidade dos tablets e smartphones, a proposta é que as grávidas
tenham acesso às informações a qualquer momento, por meio do uso do aplicativo.
Desta forma, um aplicativo para dispositivos móveis que permita o
acompanhamento de gravidez por uma gestante, poderá ser uma ferramenta de
auxílio durante o período gestacional e as primeiras semanas de vida do bebê.
3.1.2 Análise de Mercado
Os tablets e smartphones ganharam espaço no mercado por oferecer
inovação e interatividade a todo tipo de usuário, são fáceis de usar, rápidos e leves
para transportar. Esta realidade traz um avanço tecnológico e uma gama de
possibilidades para as empresas, como novos canais de comunicação com seus
clientes e ferramentas de trabalho.
Sendo assim, o aplicativo visa atender diretamente às gestantes que desejam
estar conectadas com informações sobre o período gestacional e, acompanhar
dados de seu histórico de consultas médicas.
Poderá também ser utilizado como ferramenta para empresas como
consultórios médicos, operadoras de planos de saúde, entre outros seguimentos na
área, que poderão customizar o aplicativo de modo a atender as necessidades do
tipo de negócio.
Ressalta-se que o aplicativo não pretende substituir o acompanhamento
médico, ou fornecer qualquer tipo de diagnóstico; os objetivos do aplicativo são
oferecer referências quanto aos aspectos biológicos de uma gravidez e
desenvolvimento do bebê oferecendo dicas e utilitários para as gestantes.
3.1.3 Atores e Envolvidos no Processo
A gestante será a usuária do aplicativo e responsável por fornecer
informações sobre a data de última menstruação para que o aplicativo seja iniciado.
Deverá também registrar os dados de consulta médica, através do qual será gerado
o histórico da gestação.
49
3.1.4 Descrição do Ambiente Atual
Durante o período gestacional, são realizadas consultas de acompanhamento
pré-natal. As consultas são feitas em horários agendados e em consultório médico.
Todo o histórico da gestação é registrado em documento ou sistema próprio
pelo médico, o qual tem acesso aos dados em seu consultório. A gestante agenda
sua consulta e, na data marcada, é atendida pelo médico para acompanhamento e
esclarecimento de dúvidas.
Para saber mais informações sobre mudanças no corpo, desenvolvimento dos
bebês ou mesmo alimentação, a gestante pode utilizar de informações em folhetos,
livros ou revistas na área, ou ainda, realiza busca na internet.
Caso queira verificar algum dado referente à sua consulta ou seu histórico da
gestação, a gestante deve possuir algum local com anotações para fazer o
acompanhamento, ou, salvo em casos de urgência médica, aguardar a próxima
consulta com o médico.
3.2 VISÃO GERAL DO PRODUTO
Nesta subseção são apresentadas as características e funcionalidades do
aplicativo como produto.
O aplicativo Boa Gravidez possui dicas semanais, além de diversos utilitários,
que são importantes para o desenvolvimento de uma gravidez saudável.
Possui, também, uma lista pré-definida para os produtos que são necessários
na hora da chegada do bebê. A gestante poderá marcar os produtos que ela já
possui e quais ainda não, tendo maior controle do que falta comprar. Este utilitário
pode atender, por exemplo, quem pretende fazer um chá de bebê, pois é possível
criar listas e, inclusive adicionar itens que não estão pré-cadastrados.
As informações sobre a gestação mudam de semana a semana, mostrando
sempre as dicas sobre a semana atual de gestação, informando sobre cuidados
durante a gravidez, os exames necessários, o pré-natal e desenvolvimento do bebê.
3.2.1 Perspectiva do Produto (Análise de Mercado)
O aplicativo é totalmente autônomo e independente, ou seja, não depende de
outro sistema, é realizada somente interação com a API Facebook.
50
A proposta é que o aplicativo seja disponibilizado aos usuários Android através
da publicação no Google Play.
3.2.2 Premissas e Dependências
Para utilização de aplicativos Android, o usuário deverá possuir um
smartphone ou tablet com o sistema operacional Google Android.
Como premissa para o desenvolvimento deste protótipo, foi considerado que
não será necessário estar conectado com a Internet para utilização do aplicativo,
porém é necessário que se faça uso da conexão para realizar o download. Para tal,
o usuário deve possuir uma conta cadastrada na Play Store, a loja on-line de
aplicativos para Android, disponibilizada pela Google.
Observa-se que, para este trabalho foi desenvolvido apenas o protótipo do
aplicativo, desta forma o aplicativo apresentado ainda não se encontra disponível na
Play Store.
3.2.3 Características e Funcionalidades
O aplicativo visa atender as gestantes que utilizam da tecnologia de
dispositivos móveis. Através do aplicativo espera-se que a gestante possa ter maior
tranquilidade e informação durante o período gestacional, além de entretenimento
com o uso das funcionalidades de escolha do nome do bebê, listas de enxoval e
conexão com o Facebook.
Funcionalidades do aplicativo:
Perfil da Gestante: visualizar e manter o perfil cadastrado da gestante;
Calendário Semanal: permite visualizar informações sobre a gestação
semana a semana;
Consulta Médica: cadastro de consultas realizadas com o médico;
Histórico das consultas: funcionalidade onde será possível visualizar dados
referentes às consultas médicas de acordo com os dados registrados pela
gestante;
Nomes de bebês: possui listas pré-definidas de nomes de bebês do sexo
feminino e masculino, com a possibilidade de selecionar nomes que sejam
51
favoritos pela gestante;
Lista Enxoval: funcionalidade que possui lista pré-definida com itens para
enxoval; prevê a possibilidade de inserção de novos produtos na lista;
Conexão com o Facebook: permite enviar uma mensagem ou uma foto ao
Facebook.
3.3 ANÁLISE DE REQUISITOS
De acordo com Guedes (2007), os diagramas da UML dividem-se em
diagramas estruturais e diagramas comportamentais. Os diagramas estruturais
abrangem os diagramas de classes, de estrutura composta, de objetos, de
componentes, de implantação e de pacotes, enquanto os comportamentais
englobam os de casos de uso, atividade, máquina de estados, sequência,
comunicação, visão geral de interação e tempo.
Para este trabalho foram desenvolvidos os diagramas: caso de uso, classes,
atividades, sequência e o MVC.
3.3.1 Caso de Uso
Figura 3.1 – Diagrama de Caso de Uso Fonte: Elaborado pelas autoras, 2013
3.3.2 Diagrama de Classes
52
Figura 3.2– Diagrama de Classes Fonte: Elaborado pelas autoras, 2013
3.3.3 Especificações de Histórias e Diagramas
Esta subseção apresenta abstrações de pequenas histórias narrativas
envolvendo a interação entre a gestante e o aplicativo, representado as
funcionalidades do aplicativo. Apresenta também os diagramas de atividade,
sequência e MVC respectivos.
3.3.3.1 Manter Perfil
Para possuir acesso ao aplicativo, a gestante precisa fazer um cadastro
prévio, preenchendo um formulário com algumas informações relacionadas ao seu
perfil. Com essas informações o aplicativo autentica os dados, e realiza os cálculos
necessários, como por exemplo, o cálculo da semana gestacional.
53
Figura 3.3 – Diagrama de Atividade. Manter Perfil Fonte: Elaborado pelas autoras, 2013
Figura 3.4 – Diagrama de Sequência. Manter Perfil Fonte: Elaborado pelas autoras, 2013
54
Figura 3.5 – MVC. Manter Perfil Fonte: Elaborado pelas autoras, 2013
3.3.3.2 Manter Lista Enxoval
A gestante pode visualizar os itens previamente cadastrados ou adicionar
novos itens de produtos na lista de enxoval. O aplicativo atualiza a lista de enxoval
conforme os itens escolhidos pela gestante.
Figura 3.6 – Diagrama de Atividades. Manter Enxoval Fonte: Elaborado pelas autoras, 2013
55
Figura 3.7 – Diagrama de Sequência. Manter Enxoval Fonte: Elaborado pelas autoras, 2013
Figura 3.8 - MVC. Manter Enxoval Fonte: Elaborado pelas autoras, 2013
56
3.3.3.3 Selecionar nomes de bebê
O aplicativo fornece uma lista com diversos nomes, separados em femininos
e masculinos e a gestante pode adicionar novos nomes, ou selecionar os que mais
gostar, adicionando-os como favoritos.
Após os nomes serem adicionados como favoritos, o aplicativo fornece uma
tela exclusivamente com os nomes que a gestante adicionou. Caso a gestante
exclua algum nome que esteja nos favoritos, o aplicativo atualizará a lista.
Figura 3.9 – Diagrama de Atividades. Nomes Bebê Fonte: Elaborado pelas autoras, 2013
57
Figura 3.10 – Diagrama de Sequência. Manter Nomes Bebê Fonte: Elaborado pelas autoras, 2013
Figura 3.11 – MVC. Manter Nomes Bebê Fonte: Elaborado pelas autoras, 2013
58
3.3.3.4 Consultar Calendário Semanal
A partir do perfil da gestante, é possível saber em qual semana gestacional a
gestante se encontra, direcionando-a para a data em que ela está e com as
informações da semana atual. Toda semana o aplicativo fornece novas informações,
novas dicas e recomendações.
Também é possível acessar uma lista com todas as semanas, caso a
gestante queria obter informações de outras semanas.
Figura 3.12 – Diagrama de Atividades. Consultar Calendário Semanal Fonte: Elaborado pelas autoras, 2013
59
Figura 3.13 – Diagrama de Sequência. Consultar Calendário Semanal Fonte: Elaborado pelas autoras, 2013
Figura 3.14 – MVC. Consultar Calendário Semanal Fonte: Elaborado pelas autoras, 2013
60
3.3.3.5 Manter Consulta Médica
A gestante pode adicionar as consultas médicas, através de um cadastro de
datas, horários e descrição. O aplicativo armazena as informações e fornece
relatórios. É necessário sempre atualizar esses dados, pois a gestante tem um
aumento de peso constante, sendo necessários novos cálculos para que o aplicativo
possa ser eficaz e exato.
Figura 3.15 – Diagrama de Atividades. Manter Consulta Médica Fonte: Elaborado pelas autoras, 2013
61
Figura 3.16 Diagrama de Sequência Manter Consulta Médica Fonte: Elaborado pelas autoras, 2013
Figura 3.17 – MVC. Manter Consulta Médica Fonte: Elaborado pelas autoras, 2013
62
3.3.3.6 Consultar Dados da Gestação
O aplicativo fornece informações detalhadas a gestante, tais como IMC atual
e o IMC ideal, média de peso da gestante e última consulta realizada.
. Figura 3.18 – Diagrama de Atividades. Consultar Dados da Gestação Fonte: Elaborado pelas autoras, 2013
Figura 3.19 – Diagrama de Sequência Consultar Dados da Gestação Fonte: Elaborado pelas autoras, 2013
63
Figura 3.20 - MVC. Consultar Dados da Gestação Fonte: Elaborado pelas autoras, 2013
3.3.3.7 Conexão com o Facebook
O aplicativo interage com o Facebook, possibilitando a gestante de enviar
mensagens e fotos diretamente para a rede social. Essa interação é feita acessando
uma API disponibilizada pelo Facebook SDK. (APÊNDICE B)
3.3.4 Projeto de Banco de Dados
Nesta subseção é apresentada a organização dos dados inseridos no banco
de dados do sistema. São apresentados os diagramas de dados (MER) e o
mapeamento para modelo relacional.
64
3.3.4.1 Diagrama de Dados (MER)
Figura 3.21 – Diagrama de Dados Fonte: Elaborado pelas autoras, 2013
3.3.4.2 Mapeamento para Modelo Relacional e Projeto Físico
Figura 3.22 – Mapeamento Relacional Fonte: Elaborado pelas autoras, 2013
65
4 IMPLEMENTAÇÃO
Este capítulo apresenta as interfaces gráficas da aplicação. Para o
desenvolvimento deste protótipo foram utilizadas referências de Lecheta(2010),
Lecheta(2012), além de tutorais disponíveis na internet que serão referenciados nos
tópicos seguintes deste capítulo.
4.1 Tela de Cadastro
A figura 4.1 representa a tela contendo o ícone do aplicativo Boa Gravidez e a
tela de cadastro da gestante.
Ao inicializar o aplicativo por meio do ícone será exibida a tela de cadastro da
gestante, essa tela é exibida somente na primeira vez que acessa o aplicativo, pois
não há necessidade da gestante efetuar seu cadastro toda vez que acessar o
aplicativo.
Figura 4.1 – Tela de Cadastro Fonte: Elaborado pelas autoras, 2013
4.2 Tela Principal
A figura 4.2 apresenta todas as funcionalidades do aplicativo, contém um
menu com vários botões que redireciona o usuário para a funcionalidade desejada.
66
Figura 4.2 – Tela Principal Fonte: Elaborado pelas autoras, 2013
4.3 Perfil
A figura 4.3 exibe as informações da gestante: nome, data da última
menstruação, data provável do parto, nome do bebê, altura e peso da gestante. Os
dados de nome e data da última menstruação são preenchidos na tela inicial de
cadastro figura 4.1; a data provável do parto é calculada e apresentada pelo
aplicativo a partir dos dados iniciais. As demais informações devem ser cadastradas
ao acessar o perfil pela primeira vez, clicando na opção atualizar dados, conforme
figura 4.4.
Figura 4.3 – Perfil – Informações da Gestante Fonte: Elaborado pelas autoras, 2013
67
Figura 4.4 – Perfil – Atualizar Dados Fonte: Elaborado pelas autoras, 2013
4.4 Meus Dados
A figura 4.5 mostra os dados da gestação. Essas informações são geradas a
partir de cálculos realizados com as informações da gestante cadastradas no perfil e
com informações referentes à última consulta realizada pela gestante.
Figura 4.5 – Dados da Gestação Fonte: Elaborado pelas autoras, 2013
4.5 Consulta
A gestante pode cadastrar todas suas consultas, tanto as realizadas como as
somente agendadas, conforme figura 4.6.
68
Figura 4.6 – Consulta Fonte: Elaborado pelas autoras, 2013
4.6 Minhas Consultas
A figura 4.7 exibe todas as consultas cadastradas da gestante, sendo possível
editar ou excluir qualquer consulta.
Figura 4.7 – Minhas Consultas Fonte: Elaborado pelas autoras, 2013
4.7 Semanas
A figura 4.8 apresenta informações referentes à semana gestacional atual.
Caso a gestante queira visualizar informações referentes a outras semanas, é
69
possível visualizar uma lista com as semanas do período gestacional e escolher a
semana desejada de acordo com a figura 4.9. Os dados fornecidos foram obtidos de
Gravidez (2013).
Figura 4.8 – Semana Atual Gestante Fonte: Elaborado pelas autoras, 2013
Figura 4.9 – Semanal Geral Fonte: Elaborado pelas autoras, 2013
4.8 Enxoval
A figura 4.10 apresenta um submenu de enxoval, que possui um utilitário no
qual a gestante pode visualizar uma lista geral conforme figura 4.11, com diversos
produtos previamente cadastrados, como também é possível adicionar novos
70
produtos de acordo com a figura 4.12. A figura 4.13 apresenta uma lista especial da
gestante, nessa lista são apresentados todos os produtos selecionados pela
gestante através da lista geral, figura 4.12, sendo possível remover esses produtos
desta lista especial.
Para desenvolvimento do layout da tela ilustrada na figura 4.11 foram
utilizadas referências dos tutoriais de Gupta(2013) e Montebugnoli(2012), que tratam
do uso do componente ListView. (APÊNDICE C)
Figura 4.10 – Enxoval Fonte: Elaborado pelas autoras, 2013
Figura 4.11 – Enxoval – Lista Geral Fonte: Elaborado pelas autoras, 2013
71
Figura 4.12 – Enxoval – Novo Produto Fonte: Elaborado pelas autoras, 2013
Figura 4.13 – Enxoval – Lista Especial Fonte: Elaborado pelas autoras, 2013
4.9 Nomes de Bebê
O aplicativo possui submenu de nomes, conforme figura 4.14. Exibe vários
nomes de bebê, separados por sexo e previamente cadastrados no banco de dados,
conforme figura 4.15. A gestante pode adicionar um novo nome, como exibe na
figura 4.16 e também pode selecionar todos os nomes favoritos e gerar uma lista
especial de favoritos contendo todos os nomes selecionados pela gestante, de
acordo com a figura 4.17.
72
Figura 4.14 – Nomes de Bebê Fonte: Elaborado pelas autoras, 2013
Figura 4.15 – Nomes de Bebê – Por sexo Fonte: Elaborado pelas autoras, 2013
Figura 4.16 – Nomes de Bebê – Adicionar novo Fonte: Elaborado pelas autoras, 2013
73
Figura 4.17 – Nomes de Bebê – Favoritos Fonte: Elaborado pelas autoras, 2013
4.10 Facebook
A figura 4.17 representa a conexão com o aplicativo e a API Facebook, sendo
possível publicar uma mensagem ou uma foto diretamente para o perfil Facebook da
gestante. Para desenvolvimento dessa funcionalidade foram obtidas referências de
FACEBOOK DEVELOPERS(2013), além dos tutoriais de Leal(2012) e
Medeiros(2013). (APÊNDICE B)
Figura 4.18 – Facebook Fonte: Elaborado pelas autoras, 2013
Ao finalizar este capítulo, foram relatadas todas as etapas de
desenvolvimento deste trabalho e a seguir são apresentadas as conclusões.
74
CONCLUSÃO
Os dispositivos móveis ganharam o mercado, abrindo assim mais um nicho
de oportunidades para os desenvolvedores de softwares. Por ser uma plataforma
única e de código aberto, que tem com responsáveis um grupo de desenvolvedores
contando com o Google e a OHA, o Google Android OS apresenta-se como um
sistema operacional flexível e confiável.
O Android pode ser utilizado em diferentes tipos de hardware para
dispositivos móveis e essa característica contribuiu para aprimoramento do sistema
operacional e popularização no mercado.
Este trabalho teve como objetivo o desenvolvimento de um aplicativo móvel
para gestantes, levando em consideração o uso em smartphones e tablets.
Para o desenvolvimento de aplicativos Android utiliza-se da linguagem de
programação JAVA e XML. O entendimento inicial da linguagem foi simples por se
tratar de linguagem já estudada durante o curso, porém o KIT SDK possui diversos
componentes nativos, e algumas regras específicas que requerem estudo. Um dos
componentes bastante utilizados é o ListView, que realiza o carregamento de dados
na tela através de um adaptador que pode ser nativo (SimpleAdapter) ou adaptado
pelo desenvolvedor (ArrayAdapter). O componente proporciona diversas
possibilidades, porém seu uso se torna trabalhoso quando utilizado com layouts
complexos. Também foi encontrada dificuldade quanto à utilização do modelo MVC,
pois grande parte das documentações e tutoriais disponíveis não conta com o uso
dessa ferramenta.
No aplicativo foi desenvolvido layout para que a gestante possa fazer uma
publicação com envio de mensagem e foto diretamente para seu perfil Facebook.
Para fazer a conexão com a rede social Facebook, foi utilizada a APIGraph do
Facebook que fornece elementos para que o aplicativo desenvolvido tenha acesso
aos dados públicos do perfil dos usuários da rede. Observa-se, porém que, apesar
das documentações fornecerem a base para o desenvolvimento, foi encontrada
dificuldade quanto a métodos que são retirados das APIs por serem considerados
obsoletos.
As adversidades encontradas foram superadas por meio de pesquisas, onde
se procurou referências em documentações oficiais e tutoriais disponibilizados na
75
Internet. Buscaram-se referências para utilização do modelo MVC, prevendo
reutilização do código e aplicação de boas práticas de desenvolvimento.
Acredita-se que o objetivo foi atendido, com a criação de um aplicativo
disponível tanto para uso em smartphones e tablets, contando com os utilitários
propostos para serem utilizados por uma gestante. Não foi realizada a publicação
oficial do aplicativo no Google Play, por este protótipo fazer uso de diversas fontes
quanto aos aspectos da gestação e uso de imagens que requerem de licenças de
uso.
Durante o desenvolvimento do trabalho, observou-se a possibilidade de
criação de alguns outros utilitários que serão estudados para implantação em versão
oficial e, que podem ser consideradas também para trabalhos futuros: interatividade
com site ou blog no qual a gestante possa ter interação com outras usuárias do
aplicativo, links para acesso a notícias sobre gestação, integração com câmera do
dispositivo para manutenção de álbum de fotos, notificação de datas de consultas
agendadas e utilização vídeos sobre as fases período gestacional.
76
REFERÊNCIAS BIBLOGRÁFICAS
ANDROID. Configurações do Android. Adobe AIR. Disponível em: <http://help.adobe.com/pt_BR/air/build/WSfffb011ac560372f-5d0f4f25128cc9cd0cb-7ffc.html>. Acesso em: 17 nov. 2013. ANDROID DEVELOPERS. 2013. Disponível em: <https://developer.android.com/sdk/index.html>. Acesso em: 01 set. 2013. ANDROID 1.5. Android 1.5 Platform Highlights. 2009. Disponível em: <http://developer.android.com/sdk/android-1.5-highlights.html> Acesso em: 30 julho. 2013. ARAÚJO, C. O IDE Eclipse. Java Magazine. 2013. Disponível em: <www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=24796>. Acesso em: 18 ago. 2013. BLACKBERRY. BlackBerry. TechTudo. Disponível em: <http://www.techtudo.com.br/tudo-sobre/blackberry.html>. Acesso em: 01 set. 2013. BONOME, K. S.et. al. Disseminação no uso de aplicativos móveis em atenção à saúde. 2012. CBIS: XIII Congresso Brasileiro em Informática em Saúde. BUDAG, D. Symbian Agora é 100% Open Source - Conheça um Pouco da História. 2010. Disponível em: <http://www.usuarionokia.com.br/symbian-agora-e-100-open-source-conheca-um-pouco-da-historia/> Acesso em: 01 maio 2013. DALL'OGLIO, P. Usando o SQLite. 2007. Disponível em: <http://pablo.blog.br/49>. Acesso em: 01 set. 2013. DIAS, T. M. Tablets superarão notebooks em 2013. Estadão, São Paulo, 08 jan. 2013. Disponível em: <http://blogs.estadao.com.br/link/tablets-superarao-notebooks-em-2013/>. Acesso em: 20 abr. 2013. DISPOSITIVOS. Dispositivos móveis: revolução e tendência – entrevista com Diretor de Comunicação da Associação de Marketing Móvel do Brasil. LG Sistemas, Goiânia. 09 set. 2010. Disponível em: <http://www.lg.com.br/canais/mais-ti/entrevistas/dispositivos-moveis-revolucao-e-tendencia>. Acesso em: 21 mar. 2013. ECLIPSE. 2013. Disponível em: <www.eclipse.org>. Acesso em: 08 ago. 2013. FACEBOOK DEVELOPERS. 2013. Disponível em: <https://developers.facebook.com/docs/sdks/>. Acesso em: 01 set. 2013. FLIP STUDIO. Tablets e smartphones: como será seu próximo computador?. 2011. Disponível em: <www.flipstudio.net/site/tablets-e-smartphones-como-sera-seu-prox imo-computador/>. Acesso em: 21 maio 2013.
77
GOOGLE PLAY. Registro de desenvolvedores. 2013. Disponível em: <https://support.google.com/googleplay/android-developer/answer/113468?hl=pt>. Acesso em: 24 nov. 2013. GRAVIDEZ. Gravidez. Bebe.com.br. 2013. Disponível em: <http://bebe.abril.com.br/gravidez>. Acesso em: 12 out. 2013. GUEDES, G. T. A. UML 2: guia prático. 1. ed. São Paulo: Novatec, 2007. GUPTA, A. Android Listview with CheckBox and a button to get the selected option. Android Application Development. 2013. Disponível em: <http://amitandroid.blogspot.com.br/2013/03/android-listview-with-checkbox-and.html>. Acesso em: 17 nov. 2013. HONEYCOMB. Android Developers. 2013. Disponível em: <http://developer.android.com/about/versions/android-3.0-highlights.html>. Acesso em: 21 maio 2013. IOM. Dietary Reference Intakes (DRIs): Recommended Dietary Allowances and Adequate Intakes, Total Water and Macronutrients. 2011. Disponível em: <http://www.iom.edu/Activities/Nutrition/SummaryDRIs/~/media/Files/Activity%20Files/Nutrition/DRIs/5_Summary%20Table%20Tables%201-4.pdf>. Acesso em: 21 maio 2013. JAVA. 2013. Disponível em: <http://www.java.com/pt_BR/about/>. Acesso em: 08 ago. 2013. LANDERDAHL, M.C. et al. A percepção de mulheres sobre atenção pré-natal em uma Unidade Básica de Saúde. Escola Anna Nery Revista de Enfermagem, v. 11, n. 1, p. 105-11, Mar. 2007. Disponível em: <http://www.scielo.br/pdf/ean/v11n1/v11n1a15.pdf>. Acesso em: 02 mar. 2013. LEAL, N. G. V. Facebook API no Android. 2012. Disponível em: <http://nglauber.blogspot.com.br/2012/05/facebook-api-no-android.html>. Acesso em: 01 set. 2013. LECHETA, R. R. Google Android: aprenda a criar aplicações para dispositivos móveis com o Android SDK. 2. ed. São Paulo: Novatec, 2010. LECHETA, R. R. Google Android para tablets: aprenda a desenvolver aplicações para o Android: de smartphones a tablets. 1. ed. São Paulo: Novatec, 2012. LEE, V. et. al. Aplicações Móveis: arquitetura, projeto e desenvolvimento. São Paulo: Pearson, 2005. LOWE, S. WWDC 2010 Keynote Live Blog. 2010. Disponível em: <http://www.ign.com/articles/2010/06/07/wwdc-2010-keynote-live-blog>. Acesso em: 15 maio 2013.
78
MARTINS, W. Criando páginas para seus repositórios com o GitHub Pages. 2013. Tableless. Disponível em: <tableless.com.br/criando-paginas-web-para-seus-repositorios-com-o-github-pages/>. Acesso em: 16 dez. 2013. MEDEIROS, W. N. Integrando aplicações Android com o Facebook. Devmedia. Disponível em: <http://www.devmedia.com.br/integrando-aplicacoes-android-com-o-facebook/27567>. Acesso em: 01 set. 2013. MINISTÉRIO DA SAÚDE. Normas e Manuais Técnicos: Vigilância alimentar e nutricional - Sisvan: orientações básicas para a coleta, processamento, análise de dados e informação em serviços de saúde. Série A. Brasília, DF, 2004. 120 p. ______. Normas e Manuais Técnicos: pré-natal e Puerpério: atenção qualificada e humanizada – manual técnico. Série A. 3. ed. Brasília, DF, 2006. 163 p. ______. Maternidade: do pré-natal ao pós-parto, saiba como garantir a saúde das gestantes, mães e bebês. Disponível em: <http://www.brasil.gov.br/sobre/saude/maternidade>. Acesso em: 16 mar. 2013. MONTEBUGNOLI, T. C. Android - Aprendendo a utilizar o ListView. The Club. 2012. Disponível em: <http://www.theclub.com.br/Restrito/Revistas/201211/ANDR1112.AS PX>. Acesso em: 08 nov. 2013. MOURA, O. Google incentiva o desenvolvimento de Apps Android para tablets. TecnoDroid. 2012. Disponível em: <http://tecnodroid.com.br/noticias/google/google-incentiva-desenvolvedores-de-apps-android-para-tablets-629.html>. Acesso em: 17 nov. 2013. MONTEIRO, J. B. Google Android: crie aplicações para celulares e tablets. E-book. São Paulo: Casa do Código, 2012. NILSSON, T. Ice Cream Sandwich – from source code release to software upgrade. SonyMobile. 2011. Disponível em <http://developer.sonymobile.com/2011/12/07/ice-cream-sandwich-from-source-code-release-to-software-upgrade/>. Acesso em: 09/09/2012. NÚCLEO TREINAMENTOS. O que é Windows Phone 7 e por que ter um celular com ele. 2011. Disponível em: <http://www.nucleotreinamentos.com.br/novo/detalheNoticias.php?e=150> Acesso em: 20 julho. 2013. PAMPLONA, V. F. Tutorial Java: o que é Java?. JavaFree.org. 2013. Disponível em: <http://javafree.uol.com.br/artigo/871498/Tutorial-Java-O-que-e-Java.html>. Acesso em: 21 maio 2013. PASSOS, T. S. Android, Arquitetura e Desenvolvimento. 2009. Monografia (Bacharelado em Ciência da Computação). Curso de Ciência da Computação, Pontifícia Universidade Católica de Minas Gerais – Poços de Caldas. PETRY, R. Serviços de saúde por celular estão em alta. Estadão, 21 maio 2013, Disponível em: <http://blogs.estadao.com.br/link/servicos-de-saude-por-celular-
79
estao-em-alta/>. Acesso em: 08 ago. 2013. PINTO, P. M. T. N. L.; GOMES, A. R. C. Segurança na conectividade WIFI em dispositivos móveis: estudo de caso do Iphone. E-xacta. Belo Horizonte: Editora UniBH, v. 4, n. 3, p. 203-217. 2011. Disponível em: <www.unibh.br/revistas/exacta/>. Acesso em: 21 maio 2013. SANTAREM SEGUNDO, J. E. Representação Iterativa: um modelo para repositórios digitais. 2010. Tese (Doutorado em Ciência da Informação) – Faculdade de Filosofia e Ciências, Universidade Estadual Paulista, Marília. SILVA, P. Auditoria web do IVC constata recorde nos acessos de dispositivos móveis em janeiro. IVC Brasil. 2013. Disponível em: <http://www.ivcbrasil.org.br/artigoBlog.asp?Artigo=264>. Acesso em: 10 mar. 2013. SQLITE, About. SQLite. 2013. Disponível em: <http://www.sqlite.org/about.html>. Acesso em: 01 set. 2013. TABLET App Quality Checklist. Android Developers. 2013. Disponível em: <http://developer.android.com/distribute/googleplay/quality/tablet.html>. Acesso em: 17 nov. 2013. TECNOINFOBRASIL. Como surgiu o Android. 2011. Disponível em: <http://www.tecnoinfobrasil.com/2011/11/como-surgiu-o-android.html>. Acesso em: 18 ago. 2012. VARELLA, D. Problemas na gravidez: incompatibilidade sanguínea. Dr. Draúzio. 2013. Disponível em: <http://drauziovarella.com.br/mulher-2/gravidez/incompatibilidade-sanguinea/>. Acesso em: 01 maio 2013. VASCONCELOS, G. B. SQLite no Android. Web Mobile Magazine. Ed. 34. 2012. Disponível em: <http://www.devmedia.com.br/sqlite-no-android-artigo-web-mobile-34/19201>. Acesso em: 08 set. 2012.
80
APÊNDICE A - CONFIGURAÇÃO DO AMBIENTE
Para iniciar o desenvolvimento de aplicações para o Android, é necessário
instalar o SDK, que contém o emulador e todas as ferramentas necessárias para o
desenvolvimento.
1 INSTALAÇÃO JAVA DEVELOPMENT KIT(JDK)
O primeiro passo é verificar se o JDK já está instalado na máquina, para isso
acessar os seguintes passos:
Clicar no menu Iniciar e logo após em Executar;
Digitar ‘cmd’ e pressiona enter;
No prompt de comando digitar “java –version” e apertar enter.
Após os comandos, deve aparecer a versão do JDK instalada, caso contrário,
o JDK precisa ser baixado no seguinte endereço:
http://www.oracle.com/technetwork/java/javase/downloads/index.html.
2 INSTALAÇÃO DO SDK
O SDK do Android pode ser baixado neste endereço:
https://developer.android.com/sdk/index.html.
Deve-se escolher o pacote mais adequado de acordo com o sistema
operacional onde será instalado.
Depois de instalado o Android SDK, abra o SDK Manager, localizado na pasta
de nome SDK. O aplicativo buscará informações sobre as versões disponíveis e
trará a versão mais recente selecionada, conforme figura A1. Para o protótipo Boa
Gravidez foi baixado somente a versão 2.3.3.
Foi utilizada a versão 2.3.3, pois esta versão teve uma distribuição de 64,6%,
sendo considerada a versão mais utilizada nos dispositivos com o sistema
operacional Android, conforme ilustra a figura A2.
Desenvolvendo para esta versão, todos os smartphones ou tablets que
tiverem uma versão superior a essa podem executar o aplicativo. Esta será a versão
mínima necessária para a instalação do aplicativo.
81
Figura A1 - SDK Manager
Figura A2 - Versões Android
3 IDE ECLIPSE
É necessário uma IDE para auxiliar o desenvolvimento, a SDK Android utiliza
a IDE Eclipse com o plugin ADT.
4 EMULADOR
82
O emulador do Android simula completamente o sistema operacional real, e é
possível acessar a estrutura do emulador.
Para visualizar as aplicações instaladas foi utilizado o próprio plug-in do
Eclipse. Para acessar utilizando o plug-in do Eclipse deve-se seguir com os
seguintes passos:
Acesse o menu Window e em seguida clicar em Android Virtual Device
Manager. Abrirá a seguinte tela, conforme figura A3.
Figura A3 - Android Virtual Device Manager
Clique em New para adicionar um novo emulador; será exibida uma nova tela,
conforme figura A4. Selecione o nome desse emulador e em Device coloque a
resolução que deseja executar, depois clique em OK.
Figura A4 - Criando Emulador
Aparecerá o emulador criado, conforme figura A5. Clicar em Start para iniciar
83
o emulador.
Figura A5 - Emulador Criado
Nessa nova janela, conforme figura A6 pressione Launch e aguarde carregar
o emulador.
Figura A6 - Executar Emulador
Feitos os procedimentos, o emulador está pronto para uso, conforme ilustrada
execução na figura A7.
84
Figura A7 - Execução Emulador Android
Para a execução de um projeto específico que se está desenvolvendo, é
possível fazer a simulação através do emulador. Basta selecionar o projeto que
deseja executar, clicar com o botão direito do mouse sobre ele e em seguida
selecionar a opção Run As > Android Aplication, conforme figura A8. O emulador
será iniciado, acrescentando um ícone para acesso a aplicação em
desenvolvimento.
Figura A8 - Executar Projeto
85
Também é possível executar uma aplicação criada diretamente em um
dispositivo móvel que contenha o sistema operacional Android. Para isso, deve-se
habilitar o dispositivo com a opção de Depuração USB. Geralmente essa opção
pode ser habilitada em Configurar > Opções > Depuração USB. Alguns dispositivos
necessitam de uso de drivers ou plug-ins do fabricante.
Com um dispositivo conectado ao computador através de conector USB, a
SDK irá reconhecer o dispositivo e quando for selecionada a execução do projeto, a
IDE não irá chamar o Emulador, mas sim exibir uma tela com a opção para que seja
escolhido o dispositivo onde o projeto será executado, como ilustra a figura A9.
Onde se lê, Choose a running Android device será exibida a lista de
dispositivos conectados ao computador, onde o aplicativo será instalado e
executado. Onde se lê Launch a new Android Virtual Device, será exibida a lista com
os dispositivos virtuais criados via Emulador.
Figura A9 - Executando em um dispositivo móvel
Neste apêndice foi demonstrada a configuração do ambiente eclipse para uso
da SDK Android, o download dos requisitos necessários para utilização da IDE e
configuração do ambiente para testes do projeto através do Emulador Android.
Também foi demonstrada como é possível realizar a depuração em um dispositivo
real.
86
APÊNDICE B – Integrando o aplicativo ao Facebook
Como demonstrado, a interação do aplicativo Boa Gravidez com o Facebook
é feita por meio do acesso à API Facebook, possibilitando o envio de uma
mensagem e/ou foto para o perfil da gestante na rede social.
Para que possa ser realizada essa interação, primeiramente, é necessário
possuir uma conta de desenvolvedor e fazer o registro do aplicativo no Facebook.
Neste apêndice são demonstrados os passos para obtenção da conta de
desenvolvedor no Facebook, registro do aplicativo e o processo de criação das telas
e classes no protótipo desenvolvido. Foram utilizadas referências de Facebook
Developers (2013), Leal (2012) e Medeiros (2013).
1 CONTA DE DESENVOLVEDOR E REGISTRO DO APLICATIVO NO FACEBOOK
Para a criação de conta no Facebook, deve-se acessar:
www.facebook.com.br, e realizar o registro inserindo os dados solicitados na página
inicial, ilustrada na figura B1.
Figura B1 - Acesso ao Facebook
Para fazer o registro como desenvolvedor é necessário acessar o Facebook
Developer, pelo site https://developers.facebook.com/, e fazer o login com o e-mail e
senha cadastrados. Na página seguinte, selecionar Aplicativos > Registrar como
87
Desenvolvedor, como mostra a figura B2.
Figura B2 - Registro como Desenvolvedor
Após acessar a opção, irá aparecer uma tela como mostra a figura B3, deve-
se marcar a opção I accept the Facebook Platform Policy and the Facebook Privacy
Policy e em seguida clique em Continuar.
Figura B3 - Aceitar Termos Facebook
Para continuar o processo de registro será solicitado um número de celular
para que o Facebook possa enviar uma mensagem SMS, esse é um procedimento
de segurança para o Facebook. Após digitar o número do telefone, clicar em
continuar, como mostra a figura B4. Será enviada uma mensagem de texto com um
código para confirmação do número, esse código será solicitado para dar
prosseguimento ao registro.
88
Figura B4 - Verificação da conta
Após será aberta tela para seleção da linguagem na qual estará
desenvolvendo a aplicação, e a opção de tipo de aplicativo. Foram selecionadas as
opções Android e o tipo Saúde e Fitnnes para o aplicativo Boa Gravidez, como
ilustra a figura B5. Em seguida será exibida tela confirmando o registro de
desenvolvedor, ilustrada na figura B6.
Figura B5 - Seleção da linguagem e tipo de aplicativo
89
Figura B6 - Confirmação de registro de desenvolvedor
Dessa forma, é possível acessar novamente o item Aplicativos, e selecionar a
nova opção que será exibida Create a New App, figura B7. Na tela seguinte,
preencha as informações solicitadas de acordo com seu software e clique em
Continuar, como na figura B8.
Figura B7 - Criar um novo aplicativo Facebook
Figura B8 - Inserir dados do aplicativo
Clicar em Continuar, e após a validação dos nomes escolhidos, será exibida a
página de Painel de Controle do Aplicativo, ilustrada na figura B9.
90
Figura B9 - Painel de controle do aplicativo Fabebook
Serão gerados o ID do aplicativo e o App Secret; o ID é o código que irá
identificar o aplicativo ao fazer a chamada da API Facebook pelo aplicativo
desenvolvido.
Observa-se que devem ser configuradas solicitações de permissão para que
o aplicativo tenha o acesso ao perfil público do usuário. Para acessar as
configurações deve-se clicar em App Details e em seguida acessar Configure App
Center Permissions, conforme figura B10.
Figura B10 - Configuração das permissões do aplicativo
91
As permissões publish_stream e photo_upload são necessárias para que o
aplicativo Boa Gravidez possa fazer a publicação de mensagem e envio de fotos.
Devem-se declarar essas permissões, conforme figura B11.
Figura B11 - Declaração das permissões
Ainda, para que o aplicativo esteja disponível para os testes com o protótipo é
necessário torná-lo acessível ao público, selecionando Status & Review, e
habilitando a opção, como ilustra a figura B12.
Figura B12 - Habilitando o aplicativo para acesso ao público
Também é necessário que seja gerada uma Key Hash, que é uma assinatura
do projeto. A chave é usada pelo Facebook como uma verificação de segurança
para a autenticidade. Por padrão, o pacote do aplicativo é assinado com uma chave
de depuração específico da máquina. Ao publicar o aplicativo é normalmente
92
assinado com uma chave de liberação diferente.
Para geração da Key Hash, devem-se seguir os passos:
Baixar o OpenSSL: https://code.google.com/p/openssl-for-windows/;
Desempacotar o zip na pasta C:;
No prompt de comando digite a seguinte diretiva para adicionar o diretório
do OpenSSL ao path: set PATH=%PATH%;C:\openssl-0.9.8k_WIN32\bin;
Digitar o comando seguinte para geração do Key Hash: keytool -exportcert
-alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1
-binary | openssl base64;
Salvar a Key Hash gerada, para que seja salva nas configurações do
aplicativo criado no Facebook.
No Facebook, acessar Configurações na navegação à esquerda, em seguida,
clicar no botão Adicionar Plataforma (figura B13), e selecionar a plataforma Android
(figura B14). Na tela seguinte, adicionar a Key Hash de depuração gerada e clicar
em Salvar Alterações (figura B15).
Figura B13 - Configurações Facebook
Figura B14 - Seleção de Plataforma
93
Figura B15 - Adicionar Key Hash
Assim, foi realizado o registro do aplicativo no Facebook, o próximo passo é o
download do Facebook SDK, para que possa utilizado na aplicação.
2 DOWNLOAD DA API FACEBOOK PARA ANDROID E CONFIGURAÇÃO NO
AMBIENTE ECLIPSE
Após registrar a aplicação junto ao Facebook, deve-se acessar a
página https://developers.facebook.com/docs/android/ e fazer o download da API.
O SDK contém um projeto que será integrado ao projeto desenvolvido. Neste
trabalho foi utilizada a versão 3.5 da SDK Facebook.
Feito o download, deve-se criar um novo projeto na IDE Eclipse. Clicar em
File > New > Project > Android > Android Project from Existing Code. Clicar em
Browse e escolher o diretório onde foi salva a API do Facebook, que foi baixada.
Deve-se escolher a pasta facebook dentro do projeto e clicar em OK. Feito isso
clicar em Finish.
O próximo passo é importar a biblioteca android-support-v4.jar, ela está na
pasta libs do projeto do Facebook que foi baixado. Para importar a biblioteca, deve-
se adicioná-la ao Build Path. Para fazer isso, clicar com o botão direito sobre o
projeto e selecionar Build Path > Configure Build Path. Na janela que for exibida, na
aba Libraries, clicar no botão Add External JARs e, no diretório onde está salvo o
projeto do Facebook, acessar a pasta libs, selecionar o arquivo .jar e em seguida
clicar em Abrir, conforme ilustrado na figura B16.
94
Figura B16 - Seleção do arquivo .jar
Após esses procedimentos, o projeto da API Facebook está importado ao
ambiente eclipse. Na sequência será demonstrada como foi feita a conexão com o
projeto do protótipo Boa Gravidez.
3 INTEGRAÇÃO COM PROJETO BOA GRAVIDEZ
Para utilização do projeto Facebook, deve ser adicionado uma referência ao
projeto Facebook no projeto que se está desenvolvendo.
Para adicionar a referência ao projeto Facebook, deve-se clicar com o botão
direito sobre o projeto que está sendo desenvolvido, neste caso o projeto Boa
Gravidez. Após, selecionar Properties e na tela que será exibida, selecionar Android,
na parte inferior adicionar a referência ao projeto clicando em Add. Será exibida uma
tela com os projetos disponíveis, conforme ilustrado na figura B17, deve-se
selecionar o FacebookSDK que foi importado na etapa anterior.
95
Figura B17 - Adicionando referência ao projeto FacebookSDK
Ao fazer a referência ao projeto FacebookSDK, será possível ter acesso a
importação das classes deste para uso no projeto que se está desenvolvendo. Na
sequência, será demonstrado o projeto implementado para realização da publicação
de mensagem e/ou foto no perfil do usuário no Facebook por meio da aplicação Boa
Gravidez.
4 IMPLEMENTAÇÃO BOA GRAVIDEZ INTEGRAÇÃO FACEBOOK
Serão demonstrados os códigos usados para implementação; o código está
comentado para melhor entendimento do uso dos métodos. Neste protótipo foi feita
uma integração simples, sem a recuperação de dados do usuário.
Primeiramente, como será feito uso da Internet e acesso as imagens do
dispositivo que terá o aplicativo instalado, deve-se observar se constam as
declarações de permissão para acesso no arquivo de manifesto,
AndroidManifest.xml. As permissões necessárias são demonstradas na figura B18:
96
Figura B18 - Permissões AndroidManfest.xml
4.1 Tela do aplicativo
Para a tela do aplicativo que faz a conexão com o Facebook foi gerado o
seguinte XML, no qual foi criado um campo texto para digitação da mensagem
(EditText), um campo de imagem (ImageView), no qual será retornada a imagem
escolhida pelo usuário e um botão com ação ao clicar (Button).
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/fundo"
android:gravity="left"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:padding="12dp" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
97
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="O que você está pensando?"
android:textAppearance="?android:attr/textA
ppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Digite algo para seus amigos"
/>
<ImageView
android:id="@+id/imageView1"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:maxHeight="64dp"
android:maxWidth="64dp"
android:minHeight="64dp"
android:minWidth="64dp"
android:scaleType="fitXY" />
98
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="galleryButtonClick"
android:text="Buscar Imagem" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="updateStatusBotao"
android:text="Postar" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</LinearLayout>
4.2 Implementação dos métodos
Os trechos de códigos a seguir demonstram a implementação da classe
criada para enviar postagens ao Facebook, para isso será necessário utilizar o app
99
ID, que foi gerado pela API do Facebook para identificar a aplicação.
Foi declarada uma variável com o número identificador, conforme trecho
abaixo que mostra as variáveis declaradas na classe:
private static final String APP_ID = "776804079001458"; private static final String ACCESS_EXPIRES = "access_expires"; private static final String ACCESS_TOKEN = "access_token"; private Facebook facebook; private SharedPreferences prefs; private Bitmap fotoTirada; private ImageView imageView1; private File caminhoFoto; private Bitmap image; String[] salvarimg = new String[0]; String corpo; private int cont = 0;
Dentro do método onCreate(), foi implementada a chamada da tela do login
do Facebook, o código contem as descrições das funções chamadas nos
comentários.
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_facebook); facebook = new Facebook(APP_ID); prefs = getPreferences(MODE_PRIVATE); // Carrega a accessToken pra saber se o usuário já se autenticou. loadAccessToken(); // Caso não tenha se autenticado, abre o login if (!facebook.isSessionValid()) { // Chama a tela de login do facebook facebook.authorize(this, new String[] { "publish_stream" }, new DialogListener() { // Login com sucesso, salva o accessToken public void onComplete(Bundle values) { saveAccessToken(); } // Os métodos abaixo devem ser implementados para tratamento dos fluxos alternativos, respostas do acesso ao Facebook public void onFacebookError(FacebookError error) { } public void onError(DialogError e) {
100
} public void onCancel() { } }); this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //manter orientação da tela } imageView1 = (ImageView) findViewById(R.id.imageView1); }
Na sequência, estão demonstrados os métodos para buscar imagem na
galeria de imagens, identificar se será enviado apenas mensagem ou mensagem e
foto juntos, e os demais métodos de envio.
public void galleryButtonClick(View v) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, 0); cont++; } // Evento de clique do botão para atualizar o status public void updateStatusBotao(View v) { EditText edt = (EditText) findViewById(R.id.editText1);
if ((edt.getText().toString().trim().equals("")) || (edt.getText().toString() == null)) { Toast.makeText(this, "Ops!!!, Digite algo para seus amigos...", Toast.LENGTH_LONG).show(); }
else if ((edt.getText().toString().trim().equals("")) || (edt.getText().toString() == null) || cont > 0) {
corpo = edt.getText().toString(); sendPhoto(edt.getText().toString()); edt.setText("Digite algo para seus amigos..."); edt.setEnabled(false); } else if (cont == 0) { corpo = edt.getText().toString(); updateStatus(edt.getText().toString()); edt.setHint("Digite algo para seus amigos..."); } }
@SuppressWarnings("deprecation") private RequestListener requestListener = new RequestListener() {
101
public void onMalformedURLException(MalformedURLException e, Object state) {
showToast("URL mal formada"); } public void onIOException(IOException e, Object state) { showToast("Problema de comunicação"); }
public void onFileNotFoundException(FileNotFoundException e, Object state) {
showToast("Recurso não existe"); }
public void onFacebookError(FacebookError e, Object state) { showToast("Erro no Facebook: " + e.getLocalizedMessage()); }
public void onComplete(String response, Object state) {
showToast("Publicação realizada com sucesso"); }
}; // Método que efetivamente atualiza o status @SuppressWarnings("deprecation") private void updateStatus(String status) { @SuppressWarnings("deprecation")
AsyncFacebookRunner runner = new AsyncFacebookRunner(facebook);
Bundle params = new Bundle(); params.putString("message", status);
runner.request("me/feed", params, "POST", requestListener, null);
} // Método que efetivamente atualiza o status com imagem @SuppressWarnings("deprecation") private void sendPhoto(String status) { @SuppressWarnings("deprecation")
AsyncFacebookRunner runner = new AsyncFacebookRunner(facebook);
ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] bytes = baos.toByteArray(); Bundle params = new Bundle(); params.putByteArray("picture", bytes); params.putString("message", status);
runner.request("me/photos", params, "POST", requestListener, null);
}
102
private void showToast(final String s) { final Context ctx = FacebookActivity.this; runOnUiThread(new Runnable() { public void run() { Toast.makeText(ctx, s, Toast.LENGTH_SHORT).show(); } }); } private void saveAccessToken() { SharedPreferences.Editor editor = prefs.edit(); editor.putString(ACCESS_TOKEN, facebook.getAccessToken());
editor.putLong(ACCESS_EXPIRES, facebook.getAccessExpires());
editor.commit(); } private void loadAccessToken() { String access_token = prefs.getString(ACCESS_TOKEN, null); long expires = prefs.getLong(ACCESS_EXPIRES, 0); if (access_token != null) { facebook.setAccessToken(access_token); } if (expires != 0) { facebook.setAccessExpires(expires); } } @SuppressWarnings("deprecation")
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); if (cont == 0) { // A API do Facebook exige essa chamada para // concluir o processo de login. facebook.authorizeCallback(requestCode, resultCode, data); } else { if (resultCode == RESULT_OK) { switch (requestCode) { case 0: Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex); //filePath - caminho da imagem selecionada cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
imageView1.setImageBitmap(yourSelectedImage); image = yourSelectedImage;
103
break; case 1: fotoTirada = BitmapFactory.decodeFile(caminhoFoto.getAbsolutePath());
imageView1.setImageBitmap(fotoTirada); break; }// fim switch }//fim do if - result ok }// fim do cont==0 }// fim do onActivityResult
Foram demonstradas nesse tópico as declarações de permissão necessárias
para uso da funcionalidade no dispositivo onde será instalado o aplicativo, o layout
de tela XML e a classe com o código métodos para acesso aos métodos do projeto
Facebook.
Ressalta-se que alguns métodos utilizados neste protótipo encontram-se
obsoletos, pois durante o desenvolvimento desse trabalho foram lançadas novas
versões da SDK com métodos que foram substituídos ou atualizados, porém não foi
afetada a funcionalidade deste protótipo.
Recomenda-se que para criação de novos projetos sejam buscadas
referências quanto ao uso dos recursos mais recentes disponíveis.
5 UTILIZANDO A APLICAÇÃO
Após a implementação de todas as funcionalidades, serão demonstradas as
etapas do acesso por meio do aplicativo Boa Gravidez.
Ao selecionar o ícone na aplicação, será verificar se o usuário está logado.
Caso não esteja, será aberta a tela de login do Facebook para que o usuário faça o
acesso.
Depois de realizado o login no Facebook, será a tela que irá instalar o serviço
do Facebook no aparelho e de fato sincronizar a aplicação com a API Facebook.
Serão exibidas ao usuário as permissões que o aplicativo requer, e em sequência
será exibida a tela com o layout do aplicativo Boa Gravidez para que se faça a
publicação, conforme etapas ilustradas na figura B19.
104
Figura B19 - Demonstração do aplicativo integrado ao Facebook
Neste apêndice foram demonstrados como fazer o registro de um aplicativo
no Facebook, o download da API Facebook e configuração do ambiente eclipse para
uso do Facebook SDK, além da demonstração dos códigos utilizados para criação
da funcionalidade de postagens por meio do aplicativo Boa Gravidez.
105
APÊNDICE C – CÓDIGO LISTVIEW
Uma das dificuldades encontradas no desenvolvimento do protótipo foi o uso
do recurso ListView em um layout contendo a opção de seleção com checkbox.
Esse recurso foi utilizado nas telas de seleção de nomes de bebês e produtos de
enxoval, ilustrada na figura C1.
Segundo Montebugnoli(2012), o ListView é um grupo de exibição que mostra
uma lista de itens com possibilidade de rolagem. Os itens da lista são
automaticamente inseridos usando um adaptador que utiliza o conteúdo de uma
fonte, como uma listagem definida ou o retorno de uma consulta ao banco de dados,
convertendo cada item e resultando em uma visão que por fim é mostrado ao
usuário final.
Neste apêndice são descritos os códigos utilizados para essa solução
mostrando como exemplo a funcionalidade Enxoval; para tal foram utilizadas
referências de Gupta(2013) e Montebugnoli(2012).
Figura C1 - Tela Produtos Enxoval
1 Layouts XML
Foi criado um Listview padrão, que contém o fundo da tela. Este layout
poderá ser chamado para qualquer tela onde se faz uso da ListView.
Também foi criado o layout específico para a tela produtos, que conterá os
106
dados específicos desta tela, como o campo de texto e o checkbox.
1.1 XML com layout ListView padrão
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/fundo" android:gravity="left" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical" android:padding="10dp" > <ListView android:id="@+id/lvMain" android:layout_width="fill_parent" android:layout_height="wrap_content" android:footerDividersEnabled="true" android:headerDividersEnabled="true" > </ListView> </LinearLayout> </LinearLayout>
1.2 XML com layout específico para Lista de Enxoval
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/rosa_d" android:orientation="horizontal" > <CheckBox android:id="@+id/minhaLista" style="?android:attr/starStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <LinearLayout
107
android:id="@+id/linearLayout1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/nomeProduto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/branco" android:textSize="20sp" android:textStyle="bold" /> </LinearLayout> </LinearLayout>
2 Modelo Enxoval
Para utilização da funcionalidade Enxoval, foi criada uma classe Enxoval, que
irá receber o retorno dos dados armazenados em banco de dados.
2.1 Código fonte da classe Modelo Enxoval
public class ProdutosEnxoval { private Integer id; private String nome; private Boolean minhaLista; public ProdutosEnxoval() { }
public ProdutosEnxoval(Integer id, String nome, Boolean minhaLista) {
super(); this.id = id; this.nome = nome; this.minhaLista = minhaLista; } public Integer getId() { return id; } public void setId(Integer id) {
108
this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Boolean getMinhaLista() { return minhaLista; } public void setMinhaLista(Boolean minhaLista) { this.minhaLista = minhaLista; } public static final String TABELA = "produtos"; public static final String _ID = "_id"; public static final String NOME = "nome"; public static final String MINHA_LISTA = "minhaLista";
public static final String[] COLUNAS = new String[] { _ID, NOME,MINHA_LISTA };
}
3 ArrayAdapter
É necessário o uso de um adaptador que conterá os métodos a serem
utilizados pela Classe Enxoval. O Android possui o SimpleAdapter, CursorAdapter e
ArrayAdapter, que pode ser utilizados de acordo com a necessidade do
desenvolvedor. Para o Boa Gravidez foi utilizado ArrayAdapter.
3.1 Código fonte da classe ArrayAdapter
public class EnxovalListAdapter extends BaseAdapter { Context ctx; LayoutInflater lInflater; ArrayList<ProdutosEnxoval> objects; public EnxovalListAdapter(Context context, ArrayList<ProdutosEnxoval> produtosEnxoval) { ctx = context;
109
objects = produtosEnxoval; lInflater = (LayoutInflater) ctx .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return objects.size(); } @Override public Object getItem(int position) { return objects.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) {
view = lInflater.inflate(R.layout.activity_lista_enxoval_geral, parent, false);
} ProdutosEnxoval p = getProdutosEnxoval(position);
((TextView) view.findViewById(R.id.nomeProduto)). setText(p.getNome());
CheckBox cbMarcar = (CheckBox) view.findViewById(R.id.minhaLista);
cbMarcar.setOnCheckedChangeListener(myCheckChangList);
cbMarcar.setTag(position); cbMarcar.setChecked(p.getMinhaLista()); return view; } public ProdutosEnxoval getProdutosEnxoval(int position) { return ((ProdutosEnxoval) getItem(position)); } public ArrayList<ProdutosEnxoval> getBox() {
ArrayList<ProdutosEnxoval> box = new
110
ArrayList<ProdutosEnxoval>(); for (ProdutosEnxoval p : objects) { if (p.getMinhaLista()) box.add(p); } return box; }
OnCheckedChangeListener myCheckChangList = new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
getProdutosEnxoval((Integer) buttonView.getTag()).setMinhaLista(
isChecked); if (!getProdutosEnxoval((Integer) buttonView.getTag()).getMinhaLista()) {
ProdutosEnxovalDao produtosEnxovalDao = new ProdutosEnxovalDao(
ctx); produtosEnxovalDao.updateRemove(getProdutosEnxoval(
(Integer) buttonView.getTag()).getId());
} } }; }
4 Classe Enxoval
Por fim, foi criada a classe que será chamada quando o usuário acessar essa
funcionalidade. Essa classe irá carregar os XML dos layouts de telas e conterá os
métodos para acessar o ArrayAdapter criado.
4.1 Código fonte classe Activity Enxoval
public class EnxovalListaActivity extends Activity {
ArrayList<ProdutosEnxoval> enxoval = new ArrayList<ProdutosEnxoval>();
EnxovalListAdapter boxAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
111
setContentView(R.layout.activity_fundo_adapter); fillData(); boxAdapter = new EnxovalListAdapter(this, enxoval);
ListView lvMain = (ListView) findViewById(R.id.lvMain);
lvMain.setAdapter(boxAdapter); } void fillData() { ArrayList<ProdutosEnxoval> listEnxoval;
ProdutosEnxovalDao enxovalDao = new ProdutosEnxovalDao(this);
listEnxoval = enxovalDao.all(); for (int i = 0; i < listEnxoval.size(); i++) { enxoval.add(listEnxoval.get(i)); } } public void onDestroy() { super.onDestroy(); for (ProdutosEnxoval p : boxAdapter.getBox()) { if (p.getMinhaLista()) {
ProdutosEnxovalDao enxovalDao = new ProdutosEnxovalDao(this);
enxovalDao.update(p.getId()); } } } }
5 Classe DAO – acesso ao banco de dados
O banco de dados foi criado conforme Modelagem Relacional ilustrada neste
trabalho. Para que a Classe Enxoval possa ter acesso aos dados, foi criada a classe
DAO.
5.1 Código fonte classe DAO
public class ProdutosEnxovalDao { private Context context; private DatabaseHelper helper; private SQLiteDatabase db;
112
public ProdutosEnxovalDao(Context context) { this.context = context; helper = new DatabaseHelper(this.context); } private SQLiteDatabase getDb() { if (db == null) { db = helper.getWritableDatabase(); } return db; } public void close() { getDb().close(); db = null; } public void insert(ProdutosEnxoval cadastro) { ContentValues contentValues = new ContentValues();
contentValues.put(ProdutosEnxoval.NOME, cadastro.getNome());
contentValues .put(ProdutosEnxoval.MINHA_LISTA, cadastro.getMinhaLista());
try {
getDb().insert(ProdutosEnxoval.TABELA, null, contentValues);
} catch (SQLException e) {
Log.e("CADASTROPRODUTOSDAO", "Erro ao tentar inserir");
} finally { getDb().close(); } } public void update(Integer id) { ContentValues contentValues = new ContentValues(); contentValues.put(ProdutosEnxoval.MINHA_LISTA, 1); getDb().update(ProdutosEnxoval.TABELA, contentValues, "_id = " + id, null); getDb().close(); } public void updateRemove(Integer id) { ContentValues contentValues = new ContentValues(); contentValues.put(ProdutosEnxoval.MINHA_LISTA, 0);
getDb().update(ProdutosEnxoval.TABELA, contentValues, "_id = " + id, null);
113
getDb().close(); } public ArrayList<ProdutosEnxoval> all() {
ArrayList<ProdutosEnxoval> list = new ArrayList<ProdutosEnxoval>(0);
// busca no banco
Cursor cursor = getDb().query(ProdutosEnxoval.TABELA, null, null, null, null, null, null);
boolean status = cursor.moveToFirst(); if (status == false) { getDb().close(); return new ArrayList<ProdutosEnxoval>(0); } for (int i = 0; i < cursor.getCount(); i++) { // recebendo do banco Integer id = cursor.getInt(0); String nome = cursor.getString(1); Integer minhaLista = cursor.getInt(2); // colocando num objeto do tipo Enxoval
ProdutosEnxoval cadastro = new ProdutosEnxoval();
cadastro.setId(id); cadastro.setNome(nome); if (minhaLista == 0) { cadastro.setMinhaLista(false); } else if (minhaLista == 1) { cadastro.setMinhaLista(true); } // adiciona esse objeto na lista list.add(cadastro); // busca o proximo registro no banco cursor.moveToNext(); } // buscar um objeto do cursor cursor.close(); getDb().close(); return list; } }
Neste apêndice foram demonstrados os código fonte utilizados para a solução
de uso de ListView com layout contendo checkbox.