0% acharam este documento útil (0 voto)
107 visualizações41 páginas

Relatório Final de Estágio

1. O documento descreve o aprendizado de um estagiário em uma startup de saúde chamada Salvus Saúde que desenvolve soluções de TI para a área da saúde. 2. O estagiário auxiliou no desenvolvimento e evolução de softwares da empresa, no planejamento e desenvolvimento de front-end e back-end, e no suporte ao usuário sob supervisão. 3. A empresa Salvus Saúde desenvolveu soluções como o ATAS O2 para monitoramento de oxigênio medicinal e o ATAS-Temp para monitoramento de temper

Enviado por

Deyse Carneiro
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
107 visualizações41 páginas

Relatório Final de Estágio

1. O documento descreve o aprendizado de um estagiário em uma startup de saúde chamada Salvus Saúde que desenvolve soluções de TI para a área da saúde. 2. O estagiário auxiliou no desenvolvimento e evolução de softwares da empresa, no planejamento e desenvolvimento de front-end e back-end, e no suporte ao usuário sob supervisão. 3. A empresa Salvus Saúde desenvolveu soluções como o ATAS O2 para monitoramento de oxigênio medicinal e o ATAS-Temp para monitoramento de temper

Enviado por

Deyse Carneiro
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 41

1

1. INTRODUÇÃO

A Tecnologia da Informação se faz presente em diversas áreas, sendo esta uma área
meio que possibilita melhorias e inovação em vários nichos do mercado, desde o agronegócio
à saúde e bem-estar. No mercado brasileiro, a utilização de TI por empresas das mais diversas
é considerada um fenômeno de importância crescente nas organizações (ALBERTIN;
ALBERTIN, 2009).
A inovação vem trazendo benefícios imensuráveis nas operações de negócio e
comunicação nas organizações. No agronegócio o “agronegócio 4.0” tem trazido diversos
benefícios ao produtor e trabalhador rural, nos últimos a utilização mão de obra informal tem
diminuindo devido a incorporação de novas tecnologias no campo, mais intensivas e que
ampliaram a produtividade(Jornal da USP, 2018). Com o crescimento da procura pela
inovação, novas empresas surgiram com intuito de fornecer soluções de TI para o mercado.
Em conjunto a essa expansão pelo interesse na aplicação da TI, surgiram as Startups.
De acordo com Sebrae(2014), em termos leigos, uma startup pode ser compreendida
como uma empresa inovadora com custos de manutenção muito baixos, mas que consegue

crescer rapidamente e gerar lucros cada vez maiores. Porém, no entendimento dos
investidores e especialistas, uma empresa que se denomina startup, nada mais é que um grupo
de pessoas à procura de um modelo de negócios repetível e escalável, trabalhando em
condições de extrema incerteza(SEBRAE, 2014).
No mercado brasileiro, as empresas do gênero não param de crescer, estão registradas
no país cerca de 12 mil empreendimentos, de acordo com dados da Associação Brasileira de
Startups (CARRILHO, 2019). Em 2018, as primeiras startups brasileiras alcançaram o
cobiçado status de unicórnio (denominação dada às empresas avaliadas em mais de US$ 1
bilhão), como é o caso da 99, do PagSeguro e do Nubank(Forbes Brasil, 2019). Atualmente,
as Startups estão em vários nichos do mercado, tal como as Law Techs(área jurídica),
Fintechs(área financeira), Health Techs(área da saúde) e etc.
Outro movimento que tem impulsionado este aumento pelo interesse de inovar é o
crescimento do acesso à informação por meio da Internet. Em 2019, segundo a Brigatto
(2019), o número de usuários de internet no Brasil chegou a 134 milhões, ou 74% da
população acima de 10 anos de idade, com 71% dos domicílios com acesso à rede. Também,
segundo a Brigatto (2019), os smartphones são os principais dispositivos para acessar a
2

internet, usado pela quase totalidade dos usuários da rede (99%), sendo que cerca de 58% dos
brasileiros acessam a Internet exclusivamente pelo telefone móvel.
Além de ser um facilitador para o acesso a informação, a Internet tem sido aplicada
em vários meios para monitorar serviços antes supervisionados exclusivamente por mãos
humanas. O IoT, ou a Internet das Coisas(Internet Of Things), de acordo com a PROOF
(2021), é o modo como os objetos físicos estão conectados e se comunicam entre si e com o
usuário, através de sensores inteligentes e softwares que transmitem dados para uma rede.
Como se fosse um grande sistema nervoso que possibilita a troca de informações entre dois
ou mais pontos.
Logo, com essa oportunidade trazida por essa nova tecnologia é possível o
gerenciamento e monitoramento em diversos setores do mercado. Essa automação das
“coisas” há a diminuição do fator humano em muitas atividades de repetição, que podem
causar problemas e imprecisão de dados. Muitos desses sistemas estão ligados a sistemas que
possuem interfaces WEB amigáveis, podendo os dados serem acessados por profissionais
habilitados de forma intuitiva.
As Health Techs, já citadas anteriormente, podem se aproveitar do IoT para construir
soluções, desde o monitoramento dos leitos dos pacientes, controle e monitoramento de
geladeiras de medicamentos, além do armazenamento de dados que posteriormente podem ser
usados como histórico.O seguinte documento tem como objetivo relatar o aprendizado
profissional de um aluno estagiando em uma Healthtech, participando do planejamento e
desenvolvimento de soluções de TI para saúde de forma a agregar valores aos clientes.
A partir desta Introdução, este trabalho está organizado da seguinte forma: no Capítulo
1 é feita uma apresentação da empresa e do local de trabalho, destacando as atividades
realizadas pela empresa ou outras informações relevantes, no Capítulo 2 são apresentados
objetivos gerais e específicos do estágio de acordo com o plano de trabalho definido, no
Capítulo 3 está a fundamentação teórica das atividades desenvolvidas (conhecimento técnico
do assunto) com a descrição dos materiais e métodos utilizados nas atividades do estágio, no
Capítulo 4 contém uma descrição detalhada de todas as atividades específicas realizadas no
estágio. No Capítulo 5, há um cronograma de desenvolvimento das atividades do estágio,
capitulo 6 são apresentados as impressões pessoais do estagiário no estágio, os pontos
positivos e dificuldades encontradas, aproveitamento obtido e eventuais sugestões. e por fim,
no Capítulo 7 há a relação das fontes bibliográficas utilizadas para elaboração do texto (livros,
normas técnicas, revistas científicas, sites e artigos etc.).
3

2. HISTÓRICO DA EMPRESA

A Salvus Saúde é uma startup fundada em 2016, que passou por um processo de
incubação no CESAR(Porto Digital) e aceleração com Startup Brasil, terminando estes
processos e se estabeleceu na FOZ, centro de inovação da FPS(Faculdade Pernambucana de
Saúde). A empresa tem como foco o desenvolvimento de softwares e hardwares voltados a
soluções para a área da saúde.
De início a empresa direcionou seus esforços para o desenvolvimento de uma solução
voltada a pacientes de DPOC(Doença Pulmonar Obstrutiva Crônica), doença que provoca a
limitação do fluxo de ar provocada por resposta inflamatória a toxinas inalatórias
frequentemente fumaça de cigarro, sendo esta composta pelas infecções como efisema
pulmunar e a bronquite crônica. Os pacientes que são acometidos por esta doença têm como
parte de seu tratamento, além de broncodilatadores, corticoides e antibióticos, o uso de
oxigênio medicinal em casos mais graves (WISE, 2018).

Figura 1 -ATAS O2

Fonte: Unzelte, 2021

O ATAS O2 (Figura 01), solução produzida pela Salvus que visa ajudar o
monitoramento e gerenciamento de oxigênio medicinal, de modo que a empresa fornecedora
4

possa receber em tempo real informações sobre o fluxo e quantidade de oxigênio em cada
cilindro que utiliza o dispositivo. Logo, essa solução possibilita a segurança na manutenção
do tratamento de pacientes com problemas como DPOC e outras graves doenças respiratórias,
prevenindo a falta de oxigênio e o uso descontrolado por parte de quem ministra o
medicamento, tal como o uso de doses altas que com o passar do tempo causarão piora no
quadro do paciente.

Figura 2 - Funcionamento do ATAS O2

Fonte: Startupi (2020)

Posteriormente, a empresa decidiu apostar em outras soluções para a área da saúde. O


ATAS-Temp, solução de monitoramento e gerenciamento da temperatura de geladeiras e
câmaras frias que são usadas para armazenar medicamentos que necessitem de controle de
temperatura. Outra solução é SALVUS HOMECARE(anteriormente Saúde Residência),
serviço que possui plataforma web e móvel que procura melhorar o gerenciamento do
atendimento domiciliar de pacientes que estão no regime de home care.

Figura 3 - Tela Salvus Homecare Web


5

Fonte: Salvus Saúde

Figura 4 - Telas Salvus Homecare App


a) Tela de Login; b) Tela de Listagem Visitas; c) Tela de Visita

Fonte: Google Play


6

3. OBJETIVOS DO ESTÁGIO

O Seguinte estágio teve como objetivos principais:

- Auxiliar No Processo De Desenvolvimento E Evolução De Software Da Empresa

- Auxiliar No Planejamento E Desenvolvimento Em Front-end E Back-end

- Auxiliar No Suporte E Manutenção Ao Usuário Sob Supervisão


7

4. REVISÃO BIBLIOGRÁFICA

4.1 Metodologias Ágeis

As atividades executadas durante o estágio foram desempenhadas usando a


metodologia ágil, mais especificamente o Scrum. A metodologia ágil é composta por técnicas
e práticas para gestão de projetos que oferecem mais rapidez, eficiência e flexibilidade. Tendo
como seu objetivo inicial agilizar o desenvolvimento de softwares, depois de diversas falhas
nas metodologias tradicionais. Atualmente, esses métodos são aplicados à gestão de empresas
de todas as áreas(PATEL, 2021). Entre suas principais características, destacam-se:
● Desenvolvimento incremental, ou seja, de melhoria contínua(ver Figura 5)
● Cooperação entre equipe e cliente (ciclo de feedback constante)
● Entregas rápidas e de alta qualidade
● Flexibilidade de escopo do projeto
● Criação de valor progressiva e de acordo com as necessidades do cliente
● Adaptabilidade às mudanças e alto nível de inovação

Segundo IEEP(2019), as metodologias tradicionais se baseiam, em etapas mais rígidas


e controladas, enquanto as metodologias ágeis se fundamentam na flexibilidade e
adaptabilidade das estratégias.

Figura 5 - Comparação ilustrativa das entregas da metodologia ágil para a metodologia tradicional(cascata)

Fonte: IEEP
8

Tabela 1 - Comparação Metodologia ágil vs Métodos Tradicionais(Cascata)

Características Metodologia Ágil Cascata

Hierarquia A estrutura é dividida em equipes Há uma figura central no


multidisciplinares que possuem monitoramento das demandas,
autonomia para a tomada de certas sendo este o líder da área e quem
decisões. responde por todo o processo e
delega as atividades

Rigidez x Modelo mais flexível, onde Modelo mais rígido, ou seja,


flexibilidade existem entregas parciais que existem etapas predefinidas que
facilitam a gestão de mudanças devem ser cumpridas de maneira
que podem ocorrer durante o sequencial para que o projeto seja
projeto. concluído.

Controle do Na metodologia ágil, é possível O orçamento é definido a longo


orçamento administrar o custo do projeto a prazo, desde o planejamento do
partir do desenvolvimento de cada projeto e sem que haja uma grande
etapa, identificando oportunidades ruptura em seu desenvolvimento –
para reduzir custos ou mesmo o que, de alguma forma, pode
fazer investimentos que possam limitar seu sucesso.
trazer resultados mais perceptíveis.

Documentação No ágil, se coloca mais valor na A metodologia tradicional se


entrega do que na elaboração de baseia em uma estratégia
documentação. essencialmente documentada, na
qual o planejamento define toda a
ordem do desenvolvimento do
projeto.

4.1.1 Scrum

Segundo Sabbagh(2014), o scrum existe desde o início dos anos 1990, mas foi só na
década seguinte que ganhou o mundo, desbancando métodos tradicionais e se tornando a
forma mais comum de se gerenciar em projetos de desenvolvimento de software. Porém,
Scrum é apenas uma ferramenta que pode trazer diversos benefícios em comparação a outras
formas de se conduzir projetos, mas somente se bem utilizada.
O Scrum reduz os riscos de insucesso, agrega valor mais rápido e desde cedo as
entregas devido a flexibilidade com as mudanças de escopo, o que traz vantagem competitiva
às empresas que o adotam. Scrum é um framework simples e pequeno e, assim, funciona bem
em cada contexto se for utilizado em conjunto com outras técnicas e práticas a serem
experimentadas e adaptadas. Sendo este embasado no empirismo e utiliza uma abordagem
9

iterativa e incremental para entregar valor com frequência e, assim, reduzir os riscos do
projeto (SABBAGH, 2014).

Segundo o site FlowUp (2021a), os benefícios no uso do Scrum incluem:


● Entregas Frequentes De Retorno Ao Investimento Dos Clientes;
● Redução Dos Riscos Do Projeto;
● Maior Qualidade No Produto Gerado;
● Mudanças Utilizadas Como Vantagem Competitiva;
● Visibilidade Do Progresso Do Projeto;
● Redução Do Desperdício;
● Aumento De Produtividade.

No Scrum, existem três papéis importantes:

● Product Owner (PO): determina quais soluções devem ser desenvolvidas ao


longo do projeto. Pensando no desenvolvimento de um software, ele lista as
funcionalidades da ferramenta que farão parte do todo. Essas funcionalidades
são alocadas na Product Backlog, a qual será desmembrada em atividades
menores, chamadas Sprints.
● Scrum Master (SM): orienta o Time Scrum, mas este não se trata de gerente de
projetos porque não “manda” na equipe. Ele está lá para motivar os
profissionais e eliminar qualquer barreira que possa impedir o Time Scrum.
● Time Scrum (TS): equipe de profissionais multidisciplinares, especialistas na
área em que o projeto está inserido.

4.1.1.1 Ciclo Scrum

O Product Owner se reúne com os stakeholders a fim de alinhar expectativas e


entender as reais necessidades do cliente, nascendo assim o Product Backlog que corresponde
a uma lista de requisitos que o projeto deve contemplar. Quando o Product Backlog é
definido, o cliente junto com o Product Owner alinham quais os requisitos prioritários que
agregam mais valor ao produto. Logo, após a definição de prioridades, aqueles considerados
mais importantes são colocados na Sprint Backlog As funcionalidades baseadas nos requisitos
10

listados no Sprint Backlog devem ser entregues ao cliente ao final de cada ciclo de vida
Scrum, também chamado de Sprint.
Uma vez que o Product Backlog tenha sido definido, o cliente e o Product Owner
alinham quais requisitos são mais prioritários, quais possuem mais valor ao cliente. Os
requisitos prioritários são selecionados e cada um deles é transportado para o Sprint Backlog,
para que façam parte da Sprint. Uma Sprint mão tem um tempo determinado, sendo o mais
comum durar de 15 a 30 dias. Este ciclo se repete quantas vezes for necessário.
O Scrum também conta com cerimônias que visam acompanhar o projeto. A principal
reunião é a Sprint Planning, onde é mostrado o Sprint Backlog e o Time Scrum escolhe as
atividades que poderão ser feitas na Sprint. Durante a Sprint são feitos encontros diários com
cerca de 15(quinze) minutos, essas reuniões são chamadas de Daily Meeting, nestas o Time
Scrum diz como vai o progresso das atividades da Sprint. Ao final de cada Sprint é feita a
cerimônia de Sprint Review, dentro destas acontece a revisão das atividades da Sprint, e é
verificado se as atividades realmente foram finalizadas e atingiram seus objetivos (FLOWUP,
2021b).

Figura 6 - Ciclo de Vida do Scrum

Fonte: Scrum - Gestão Ágil Para Projetos De Sucesso


11

4.2 Sistema de Banco de Dados


Sistema de banco de dados é um sistema computadorizado de manutenção de
registros; em outras palavras, é um sistema computadorizado cuja finalidade geral é
armazenar informações e permitir que os usuários busquem e atualizem essas informações
quando as solicitarem(DATE, 2004) . O banco de dados pode ser considerado um eletrônico
de um armário de arquivamento, sendo ele um repositório para uma coleção de arquivos de
dados computadorizados.
Neste sistema os usuários podem realizar diversas operações envolvendo tais arquivos,
por exemplo:
● Acrescentar novos arquivos ao banco de dados
● Inserir dados em arquivos existentes
● Buscar dados de arquivos existentes
● Excluir dados de arquivos existentes
● Alterar dados em arquivos existentes
● Remover arquivos existentes do banco de dados

4.2.1. Banco de Dados Relacionais


De acordo com Date (2004), um sistema de banco de dados relacional é aquele no qual
seus dados são percebidos pelo usuário como tabelas, e que tem operadores à disposição do
usuário (por exemplo, para busca de dados). O termo relacional é usado devido ao termo
tabela, matematicamente pode ser considerado sinônimo a palavra relação ou relacionamento.
Em um banco de dados relacional, cada linha na tabela é um registro com uma ID
exclusiva chamada chave. As colunas da tabela contém atributos dos dados e cada registro
geralmente tem um valor para cada atributo, facilitando o estabelecimento das relações entre
os pontos de dados
São operadores que geram tabelas “novas” a partir de tabelas “antigas”. Por exemplo,
há um operador restrição* para extrair um subconjunto das linhas de uma dada tabela, e outro
operador, projeção, que extrai um subconjunto das colunas como visto na Figura 7 abaixo.

Figura 7 - Estrutura de dados e operadores em um sistema relacional (exemplos).


12

Fonte: Date, 2004

4.2.2. SQL

SQL é a linguagem padrão para se lidar com bancos de dados relacionais, e é aceita
por quase todos os produtos existentes no mercado. A SQL foi desenvolvida originalmente na
IBM Research no início da década de 1970. SQL significa Standard Query Language,
literalmente a linguagem padrão para realizar queries(pedido de uma informação ou de um
dado). Esta linguagem inclui operações de definição de dados e operações de manipulação da
SQL.

● Subconjuntos da Linguagem SQL:


○ Linguagem de Manipulação de Dados ou DML (Data Manipulation
Language): é utilizada para Selecionar(SELECT), Inserir(INSERT),
Atualizar(UPDATE) e Apagar(DELETE).
○ Linguagem de Definição de Dados ou DDL (Data Definition Language):
permite ao usuário a manipulação de tabelas e elementos associados. Os
principais comandos são CREATE, DROP, ALTER.
○ Linguagem de Controle de Dados ou DCL (Data Control Language):
controla os aspectos destinados a autorização de dados e licenças de usuários
para manipulação de dados dentro do BD. Alguns comandos comuns são
GRANT(dá privilégios para usuários), REVOKE (revoga privilégios de
13

usuários), COMMIT(em resumo grava dados no BD) e ROLLBACK(descarta


dados existentes desde o último COMMIT).
○ Linguagem de Consultas de Dados ou DQL (Data Query Language): existe
somente um comando(SELECT) que é o mais utilizado, principalmente para
consultas parametrizadas. Também temos:
■ Cláusulas: (FROM, WHERE, GROUP BY, HAVING, ORDER BY,
DISTINT);
■ Operadores Lógicos (AND, OR, NOT);
■ Operadores de Comparação (<, >, <>, <=, =, >=, BETWEEIN,
LIKE);
■ Funções de Soma (AVG, COUNT, SUM, MIN, MAX).

4.2.3.SGDB

Segundo Date (2004), existe uma camada de software, conhecida como gerenciador de
banco de dados ou servidor de banco de dados ou, mais frequentemente, como sistema de
gerenciamento de bancos de dados (SGBD). Todas as requisições de acesso ao banco de
dados são tratadas pelo SGBD. Uma função geral fornecida pelo SGBD seria a de isolar os
usuários do banco de dados dos detalhes no nível de hardware (assim como os sistemas de
linguagens de programação isolam os programadores de aplicações dos detalhes no nível de
hardware). Logo, o SGBD oferece aos usuários uma visão do banco de dados um tanto
elevada acima do nível de hardware, e ele admite operações do usuário que são expressas em
termos dessa visão de nível mais elevado. Exemplos de SGBDs são: Oracle, SQL Server,
DB2, PostgreSQL, MySQL, este último será tratado mais a frente.

Figura 8 - Representação simplificada de um sistema de banco de dados.


14

Fonte: Date, 2004

4.2.4 MySQL

MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto


(RDBMS) baseado em Structured Query Language (SQL), sendo este executado em
praticamente todas as plataformas, incluindo Linux, UNIX e Windows. Embora possa ser
usado em uma ampla variedade de aplicativos, o MySQL é mais frequentemente associado a
aplicativos da web.
Originalmente concebido pela empresa sueca MySQL AB, o MySQL foi adquirido
pela Sun Microsystems em 2008 e pela Oracle quando comprou a Sun em 2010. Hoje, o
MySQL é o RDBMS por trás de muitos dos principais sites do mundo e de inúmeros
aplicativos corporativos e voltados para o consumidor, incluindo Facebook, Twitter e
YouTube.
Este SGBD é baseado em um modelo cliente-servidor. O núcleo do MySQL é o
MySQL Server, que lida com todas as instruções (ou comandos) do banco de dados. O
MySQL Server está disponível como um programa separado para uso em um ambiente de
rede cliente-servidor e como uma biblioteca que pode ser incorporada (ou vinculada) em
aplicativos separados. O MySQL opera junto com vários programas utilitários que oferecem
suporte à administração de bancos de dados, tal qual MySQL Workbench. Os comandos são
enviados ao MySQL Server por meio do MySQL Client, que é instalado em um computador.
15

Originalmente desenvolvido para lidar com grandes bancos de dados rapidamente.


Embora seja normalmente instalado em apenas uma máquina, ele é capaz de enviar o banco
de dados para vários locais, já que os usuários podem acessá-lo por meio de diferentes
interfaces de cliente MySQL. Essas interfaces enviam instruções SQL para o servidor e, em
seguida, exibem os resultados (Moore, 2018).

4.2.5 SQLite

SQLite é uma biblioteca em linguagem C que implementa um mecanismo de banco de


dados SQL pequeno, rápido, independente, de alta confiabilidade e recursos completos. Sendo
conhecido por está integrado em todos os telefones celulares e na maioria dos computadores,
e vem empacotado em inúmeros outros aplicativos que as pessoas usam todos os dias
(SQLite, 2021).
Sendo este um banco de dados relacional que, diferentemente de outras ferramentas do
tipo, não armazena informações em um servidor. Essa independência acontece porque ele
consegue colocar os seus arquivos dentro de si próprio. Essa base de dados é de código aberto
e gratuita, sendo muito utilizada em aplicações mobile, com foco no sistema Android.
Ao mesmo tempo em que dispensa um servidor, o SQLite também não demanda
nenhum tipo de configuração. Um dos grandes diferenciais que compõem a lista de
qualidades do SQLite é o fato de que ele suporta um grande número de linguagens, algo em
torno de 30.
O SQLite se diferencia do MySQL a começar pela arquitetura, enquanto o SQLite não
precisa de um servidor, o MySQL é totalmente dependente. Quanto ao domínio, o MySQL,
apesar de código aberto, pertence à Oracle, enquanto o SQLite é público. Outra diferença
principal é a compatibilidade de dados, muito mais ampla no MySQL. Enquanto que no
SQLite trabalha de forma limitada. Em relação ao armazenamento, MySQL trabalha com um
servidor de 600MB e SQLite disponibiliza 250KB em sua biblioteca. São diferenças
marcantes, mas que também indicam por que SQLite costuma ser usado para aplicações
mobile(SOUZA, 2020).

4.3 API

API (Application Programming Interface) é a interface que um programa de software


apresenta a outros programas, para humanos e, no caso de APIs da web, para o mundo via a
16

Internet (SHEVAT et al., 2018). De acordo com Shevat et al. (2018), no desenvolvimento de
uma a escolha de um paradigma de API certo é importante. Um paradigma API define como a
interface irá expor os dados de backend (servidor da aplicação) de um serviço para o frontend
(cliente da aplicação). Ao longo dos anos, vários paradigmas de API surgiram. REST, RPC,
GraphQL, WebHooks e WebSockets são alguns dos mais populares padrões hoje.
O REST (Representational State Transfer) ​é atualmente a escolha mais popular para
desenvolvimento de API. O paradigma REST é usado por provedores como Google, Stripe,
Twitter e GitHub. O padrão REST está diretamente relacionado aos recursos (resources), um
recurso é uma entidade que pode ser identificada, nomeada, endereçada ou tratada na web. As
REST APIs expõem dados como recursos e usam métodos HTTP para representar transações
como criar, ler, atualizar e excluir nesses recursos.
Entre as regras gerais que as APIs REST estão:
● Os recursos fazem parte dos URLs
● Para cada recurso, dois URLs são geralmente implementados: um para a coleção, e um
para um elemento específico.
● Substantivos são usados ​em vez de verbos para recursos.
● Métodos HTTP como GET, POST, UPDATE e DELETE informam o servidor sobre a
ação a ser executada.
○ CREATE (CRIAR): usa-se o POST para criar novos recursos.
○ READ (LER): usa-se GET para ler recursos. Solicitações GET nunca alteram
o estado do recurso, sendo o GET é importante.
○ UPDATE (ATUALIZAR): usa-se PUT para substituir um recurso e PATCH
para atualizações parciais dos recursos existentes.
○ DELETE (EXCLUIR): usa-se DELETE para excluir recursos existentes.

Ao final das transações, chamadas de requisição, os códigos de status de resposta


HTTP são retornados pelo servidor indicando sucesso ou falha. Geralmente, códigos no 2XX
intervalo indicam sucesso, códigos 3XX indicam que um recurso foi alterado, e os códigos na
faixa 4XX indicam um erro do lado do cliente (como um parâmetro obrigatório ausente ou
muitas solicitações). Códigos na faixa 5XX indicam erro do lado do servidor.
APIs REST podem retornar respostas JSON ou XML. Dito isto, devido à sua
simplicidade e facilidade de uso com JavaScript, JSON tem se tornar o padrão para APIs
modernas. (XML e outros formatos ainda podem ser suportados para facilitar a adoção para
clientes que já estão trabalhando com esses formatos usando APIs semelhantes.)
17

4.4 Desenvolvimento Móvel com Aplicativos Híbridos e Cross-platform

Como dito pela Technology Rivers (2021), o desenvolvimento mobile com


Aplicativos Híbridos permite que os desenvolvedores implementem aplicações para diferentes
plataformas móveis, sem a necessidade de trabalhar com código nativo. O desenvolvimento
cross-platform envolve a criação de aplicativos móveis que são compatíveis com muitos
sistemas operacionais diferentes e são capazes de funcionar sem problemas em qualquer
plataforma que o usuário preferir. No mercado existe diversos frameworks voltados ao
desenvolvimento cross-platform, entre elas estão:

● React Native – framework open-source de desenvolvimento móvel criado pelo


Facebook.
● Google Flutter – framework open-source de desenvolvimento móvel criado pelo
Google, para criar aplicações móveis, web, e desktop a partir de um único código
fonte.
● Xamarin – plataforma open-source de desenvolvimento de aplicações Android, IOS,
tvOS, watchOS, macOS e Windows com .NET e C#.
● NativeScript – framework open-source para criação de aplicações mobile com
Angular, Vue.js , nas linguagens TypeScript ou Javascript.
● Ionic Framework – SDK(Software Development Kit) open-source para desenvolver
aplicações móveis híbridas.
● Apache Cordova (antes PhoneGap) – framework desenvolvimento de aplicações
hibridas open-source com HTML, CSS & Javascript

4.4.1 Ionic Framework v1

Assim como citado anteriormente, o Ionic Framework se trata de uma SDK que tem
como objetivo o desenvolvimento de aplicações híbridas. De acordo com o site do Ionic
(2021), se trata de uma toolkit open source para desenvolvimento de interfaces para
aplicações de alta qualidade, trazendo consigo experiências aplicações nativas cross-platform
e web com a rapidez de um único código fonte em Javascript. Sendo, possível a
implementação das chamadas Progressive Apps, que são executadas em qualquer navegador
web e de aplicações direcionadas para sistemas operacionais móveis.
18

Atualmente, o Ionic Framework devido a ser baseado em sua totalidade na linguagem


javascript (e em seu superset o typescript), tornou compatível com diversas bibliotecas e
frameworks de desenvolvimento front end web, tais como React, Angular e Vue.js, facilitando
o desenvolvimento e se adaptando às demandas do mercado.
As aplicações desenvolvidas com Ionic Framework usam softwares chamados de
native runtimes que simulam o ambiente nativo a partir de diversos plugins, podendo assim
haver interações com a câmera, acesso a localização e outras funções nativas do sistema
operacional no qual está sendo executada a aplicação. Hoje em dia, é usado um software
próprio do Ionic chamado de Capacitor, mas em versões mais antigas esta função era
desempenhada pelo Cordova.
A arquitetura de uma aplicação Ionic é dividida em pelo menos quatro camadas. A
camada de interface do usuário que mostra componentes nativos do framework, uma segunda
camada que é onde está rodando o código fonte em javascript ou typescript com HTML 5 e
CSS. E por fim duas camadas que interagem com a parte nativa do smartphone e sustentam
toda aplicação de modo que ela possa parecer com uma aplicação nativa, nesta parte que
native runtimes trabalham( ver Figura 9).
As versões mais antigas do Ionic, tal qual o Ionic v1, contavam com recursos
limitados, só sendo compatível com AngularJS (as primeiras versões do angular) e com
Cordova. Além disso, esta versão não é compatível com os novos recursos visuais mais
próximos dos nativos.

Figura 9 - Camadas de uma Aplicação do Ionic Framework


19

Fonte: Ionic Framework, 2021

4.4.2 React Native

Como visto durante esse tópico existem diversas bibliotecas e frameworks que tem
como foco a implementação de aplicações mobile cross-platform, que possam ser executadas
em diversos sistemas operacionais móveis utilizando o mesmo código de fonte.
O React Native é uma biblioteca baseada em Javascript criada pelo Facebook. É usada
para desenvolver aplicativos para os sistemas Android e iOS de forma nativa, diferentemente
do Ionic Framework o React Native é focado estritamente no desenvolvimento de aplicativos
móveis sem suporte a Web Apps (React Native, 2021).
Segundo Khoroshulia (2021), a arquitetura desta biblioteca se baseia em uma camada
de interface do usuário feita com React (biblioteca javascript dedicada a aplicações front end)
que é traduzida para linguagem javascript, e outra camada chamada bridge (ponte, em
português) que “traduz” em tempo real de execução o código fonte gerado anteriormente em
javascript para código nativo do sistema operacional, esse processo é executado toda vez que
é renderizada uma funcionalidade para aplicação. Por causa desta tradução, que é feita em
tempo real, a performance do React Native com aplicativos que envolvam grande volume de
dados pode ser um pouco mais lenta devido ao delay causado por ela. A arquitetura é
exemplificada na Figura 10 abaixo.

Figura 10 - Arquitetura do React Native

Fonte: Khoroshulia, 2021


20

4.5. Desenvolvimento Web

4.5.1. Node.js

O Node.js é um ambiente de execução Javascript server-side, ou seja, é possível criar


aplicações Javascript para rodar como uma aplicação standalone, não dependendo de um
browser para a execução. De acordo com Lenon (2018), Desde que a linguagem Javascript
foi criada em 1995, e se tornou a linguagem padrão dos browsers e consequentemente da Web
para o desenvolvimento client-side. Houveram várias tentativas de implementar sua execução
server-side, todavia muitas delas fracassaram, haja vista à sua performance ser extremamente
baixa comparado com as linguagens usadas no desenvolvimento server-side, como o PHP ou
Java.
Com a evolução da Web nos últimos anos, a linguagem Javascript passou por diversas
melhorias, nesta essa nova fase no uso do Javascript, aplicações server-side passaram a ser
desenvolvidas, e em 2009 foi criado o O Node.js. Sendo este o primeiro ambiente de
execução Javascript. A principal característica do Node.JS, devido a sua linguagem padrão,
seria sua single-thread, ou seja, apenas uma thread executa o código fonte da aplicação, sendo
que em outras linguagens voltadas para execução de server-side são multi-thread (LENON,
2018).
A execução de cada requisição, em um ambiente multi-thread, são demandados
recursos computacionais. Quando há a limitação de recursos, se este for atingido as threads
param de ser criadas, logo as requisições futuras terão que esperar até que os recursos sejam
estabelecidos novamente.

No single-thread, apenas uma thread é responsável por tratar as requisições, sendo


essa thread chamada de Event Loop, ela tem esse nome pois cada requisição é tratada como
um evento. O Event Loop fica em execução esperando novos eventos para tratar, e para cada
requisição, um novo evento é criado (ver Figura 11).

Figura 11 - Modelo single-thread do Node.js vs Modelo multithread tradicional


21

Fonte: LENON, 2018

4.5.2 React

Como dito pelo site do criador, o React é uma biblioteca JavaScript para criar
interfaces de usuário. Sendo uma biblioteca declarativa, baseada em componentes e que tem
como lema "Aprenda uma vez, use em qualquer lugar". A biblioteca surgiu em 2011, no
Facebook, e passou a ser utilizada na interface do mural de notícias da rede social. No ano
seguinte, passou a integrar também a área de tecnologia do Instagram e de várias outras
ferramentas da empresa.
Segundo Roveda (2016), esta biblioteca usa como base a linguagem Javascript,
HTML e CSS. O React tem como principal base os componentes, que são partes isoladas de
qualquer parte da página que podem ser reutilizadas em outras páginas. Os componentes
22

possuem dois atributos importantes: as props e o state. As props são objetos com informações
que são passadas para os componentes, já os states são objetos que são criados dentro do
componente, e diferentes das props, eles são mutáveis.
No React, os componentes são renderizados na tela pelo Virtual DOM, que é uma
representação de um DOM (Document Object Model) de uma interface. O DOM é uma
interface de programação para documentos HTML, XML e SVG, ele fornece uma
representação estruturada do documento como uma árvore (MDN WEB DOCS, 2021). Virtual
DOM atua como memória cache do React, quando uma página que usa essa tecnologia é
atualizada o React salva as alterações nesta memória cache. Sendo assim, a atualização de
partes da páginas se torna mais rápida pois não existe alteração direta no DOM.

4.5.2.1 Redux E React

Como foi dito o React tem como atributo o state, essa propriedade serve para trabalhar
com o gerenciamento de estados de um componente. Porém, o React sozinho não é capaz de
compartilhar estados entre diversos componentes ou com o todo de uma aplicação. Com isso,
o React necessita de outras bibliotecas para gerenciar os seus estados e armazená-los de modo
que estejam acessíveis aos demais componentes de uma aplicação.
O Redux é uma arquitetura de fluxo de dados de aplicativo, foi criado por Dan
Abramov por volta de junho de 2015, inspirado no Flux do Facebook e na linguagem de
programação funcional Elm. Redux se popularizou muito rapidamente por causa de sua
simplicidade, tamanho pequeno (apenas 2 KB) e sua documentação. Esta pequena biblioteca
tem três partes principais: actions, store e reducers (BACHUK, 2016).
● Actions: Em suma, ações são eventos. As ações enviam dados do aplicativo
(interações do usuário, eventos internos, como chamadas de API e envios de
formulários) para a store. A store obtém informações apenas de ações.

● Store: é o objeto que mantém o estado do aplicativo e fornece alguns métodos


auxiliares para acessar o estado, despachar ações e registrar listeners. Todo o estado é
representado por uma única store. Qualquer ação retorna um novo estado por meio de
reducers. Isso torna o Redux muito simples e previsível

● Reducers: são funções (puras) que pegam o estado atual da aplicação e uma ação e
então retornam um novo estado. Compreender como os redutores funcionam é
23

importante porque eles realizam a maior parte do trabalho. Aqui está um redutor muito
simples que pega o estado atual e uma ação como argumentos e, em seguida, retorna
ao próximo estado.

4.6 Visual Code

Segundo a Heller (2019), Visual Studio Code é um editor de código-fonte leve, mas
poderoso, que é executado em sua área de trabalho e está disponível para Windows, MacOS e
Linux. Ele vem com suporte integrado para JavaScript, TypeScript e Node.js e tem um rico
ecossistema de extensões para outras linguagens (como C ++, C #, Java, Python, PHP e Go) .
Além disso, o VS Code possui autocompletar de código para variáveis, importação
métodos e módulos; depuração gráfica; linting, edição com multi cursores, dicas de parâmetro
e outros recursos de edição poderosos; navegação de código elegante e refatoração; e controle
de código-fonte integrado, incluindo suporte a Git. Muito disso foi adaptado da tecnologia do
Visual Studio.
O VS Code apropriado é construído usando o shell Electron, Node.js, TypeScript,
sendo atualizado mensalmente. As extensões são atualizadas com a frequência necessária. A
riqueza do suporte varia entre as diferentes linguagens de programação e suas extensões,
desde o realce de sintaxe simples e correspondência de colchetes até depuração e refatoração.
O código no repositório do Visual Studio Code é open source sob a licença MIT. O
produto VS Code em si é fornecido sob uma licença de produto padrão da Microsoft, pois tem
uma pequena porcentagem de personalizações específicas da Microsoft. É gratuito, apesar da
licença comercial.

4.7 Git flow

De acordo com Panzolini (2018), o Git Flow é um modelo de conjunto de diretrizes


que as equipes de desenvolvimento podem seguir para organizar as branches no
versionamento de código. Git Flow estabelece padrões de nomes e funções para cada tipo de
branch, são eles:
● master: contém código de produção, todo o código que estar em desenvolvimento, em
algum momento será “juntado” com essa branch
24

● develop: contém o código do nosso próximo deploy, isso significa que conforme as
features vão sendo finalizadas elas vão sendo juntadas nesta branch para
posteriormente passarem por mais uma etapa antes de ser juntada com a master
● feature/*: são branches para o desenvolvimento de uma funcionalidade específica, por
convenção elas tem o nome iniciado por feature/, por exemplo:
feature/cadastro-usuarios. Importante ressaltar que essas branches são criadas sempre
à partir da branch develop
● hotfix/*: são branches responsáveis pela realização de alguma correção crítica
encontrada em produção e por isso são criadas à partir da master. Importante ressaltar
que essa branch deve ser juntada tanto com a master quanto com a develop
● release/*: tem uma confiança maior que a branch develop e que se encontra em nível
de preparação para ser juntada com a master e com a develop (caso alguma coisa tenha
sido modificada na branch em questão).
25

5. DESCRIÇÃO DAS ATIVIDADES REALIZADAS NO ESTÁGIO

Dentre as atividades acompanhadas durante o estágio, estão relacionadas ao


desenvolvimento web (banco de dados, frontend, backend, apis, etc) e desenvolvimento
móvel dentro de projetos usando metodologia ágil e gerenciamento de versões de código.

5.1 Conhecendo Ferramentas de Desenvolvimento Padrão

Nesta etapa, foram repassadas as diretrizes do processo de desenvolvimento de


software da empresa. Primeiramente, foi apresentado o framework de gerenciamento de
projeto ágeis usado pela empresa, o Scrum. Como seriam feitas as reuniões e como seriam
documentadas as atividades via uma ferramenta de monitoramento. Também, foram
apresentadas as ferramentas do ambiente de desenvolvimento: Node.js, Visual Studio Code,
React, MySQL.
Após a introdução ao ambiente de desenvolvimento, foram repassados os repositórios
do código fonte com os sistemas desenvolvidos pela empresa. Os sistemas foram o ATAS
TEMP e SYS HOME CARE (posteriormente chamado de SALVUS HOME CARE), estes
estavam separados em código de backend e frontend, totalizando quatro repositórios que
deveriam ser clonados para nosso ambiente de desenvolvimento. Tanto o ATAS TEMP como
o SYS HOME CARE tinham a mesma arquitetura de código, porém o último apresentava
uma maior magnitude, tendo diversas funcionalidades e interações com um aplicativo
específico que demandava alguns consertos.
Logo, foram passadas atividades de estudo do backend e frontend do sistema ATAS
TEMP, que apresentava uma menor complexidade. O backend era baseado em Node.js e
algumas bibliotecas para REST APIs, sendo escrito inteiramente em linguagem Javascript. O
projeto é composto pelas pastas database, src e alguns arquivos de configuração. Foi visto que
a pasta database que tem scripts para criação da base de dados, enquanto a pasta src guarda
pastas com recursos (fontes, templates, arquivos de constantes e arquivos de migração) e
pastas arquivos do código fonte.

Figura 12 - Estrutura das pastas principais

a) Estrutura Pasta Raiz do Projeto b) Estrutura pasta src


26

Fonte: Autor

Dentro da pasta src, na pasta server com mais pastas:


● api: código com a implementação das funções acionadas pelos métodos
chamados pela REST API;
● config: código de configuração do ambiente de desenvolvimento;
● lib: código fonte de funções utilitárias;
● middleware: scripts para intermediar as requisições da REST API com
headers e token;
● routes: código com as rotas para manipulação dos recursos das entidades

Figura 13 - Estrutura pasta server

Fonte: Autor
27

O frontend do sistema ATAS-TEMP se baseia em React, biblioteca citada


anteriormente, e outras bibliotecas relacionadas como o Redux. Na pasta raiz do projeto há
duas pastas (public e src) e alguns arquivos de configuração.

Figura 14 - Estrutura do frontend do ATAS-TEMP

Fonte: Autor

Na pasta public há arquivos padrão que são comuns para qualquer site na Internet, por
exemplo:
● favicon.ico: ícone do site, este é exibido em diversos outros lugares, como ao
lado do endereço de um site, no histórico de navegação e na lista de sites
favoritos, apenas para citar alguns exemplos.
● index.html: página principal que possui algumas informações sobre o site
como endereçamento de arquivos de script e etc.
● manifest.json: é um arquivo que contém metadados sobre a aplicação web.

Já na pasta src estão os recursos da aplicação web, dentri dela está as pastas:
● api: código com funções que integram o backend com o frontend;
● components: pasta com componentes React, desde pequenos componentes à
páginas que usam estes componentes;
● config: arquivos com constantes globais;
● redux: implementações do Redux para gerenciar os estados da aplicação;
● storage: implementações para manipulação da memória dos navegadores;
28

● utils: implementação de funções de utilitários, manipulação de data, máscaras


para formulários e etc;

5.2 Configuração de Ambiente

Para executar A configuração do ambiente teve os seguintes passos:


● Instalação de dual boot com Linux
● Visual Studio Code
● Node.js
● MySQL e MySQL Workbench

Durante o estágio foi usado meu computador pessoal, este tinha como sistema
operacional Windows. Porém, a maioria dos profissionais do time tinham como sistema
operacional o Ubuntu, uma distribuição do Linux. Para manter o Windows, pois existiam
projetos pessoais que necessitavam deste sistema operacional, foi feito um Dual Boot que
consiste em instalar o Ubuntu 18.04 ( a partir de uma imagem do sistema) em uma partição do
disco rígido.
Após a instalação do Ubuntu, se fez necessário a instalação de todas as ferramentas
necessárias para o desenvolvimento. Primeiramente, foi instalado o Visual Studio Code, se
trata de uma instalação simples com arquivo executável do .deb (arquivos de instalação
debian compatível com Ubuntu). Este arquivo pode ser encontrado na página principal do site
do editor de código.

Figura 15 - Página Principal do Visual Studio Code


29

Fonte: Autor

Como o Node.js é a base dos sistemas, também foi necessário fazer a instalação deste.
Diferentemente da instalação anterior, foi um pouco mais complicada a instalação, na página
principal do site foi feito o download de um arquivo .tar.xz. O conteúdo do arquivo deve ser
extraído para a pasta /opt do sistema operacional. Também deve se adicionar configuraçẽos as
variáveis do ambiente. Para isso deve se executar os seguintes comandos na linha de
comando:

1. Extração de arquivo:

Figura 16 - Comando para extrair arquivo .tar.xz do Node.js

Fonte: Autor

2. Alteração de Permissões:

Figura 17 - Comando para alterar as permissões da pasta onde está instalado o Node.js

Fonte: Autor

3. Adicionar Node.js a variáveis de ambiente, esse comando abre o arquivo .profile no


Visual Studio Code

Figura 18 - Comando para abrir o arquivo de variáveis de ambiente no Ubuntu

Fonte: Autor

4. Código que deve ser adicionado ao arquivo .profile

Figura 19 - Configuração Node.js de Variáveis do Ambiente


30

Fonte: Autor

Depois de instalar o Node.js, para executar o backend e receber as informações no


frontend devem ser instalados todos os pacotes necessários do MySQL. Para tal, é instalado o
MySQL Server via apt (gerenciador de pacotes do Ubuntu). Devem ser rodados os
comandos:

1. Atualização do apt:

Figura 20 - Comando para atualizar o apt

Fonte: Autor

2. Instalação do MySQL Server via apt

Figura 21 - Comando para instalar o MySQL Server

Fonte: Autor

3. Configurar o MySQL Server

Figura 22 - Comando para configurar o MySQL Server

Fonte: Autor

Após a instalação do MySQL Server, já se pode trabalhar com banco de dados a partir
da linha de comando. Mas pode ser um pouco complicado utilizar a linha de comando para
trabalhar e visualizar grande quantidade de dados, sendo mais indicado usar algum software
que trabalhe com interface gráfica para a visualização de dados. O próprio MySQL
31

disponibiliza tal software que se chama MySQL Workbench, a instalação deste é bem simples
a partir de um arquivo .deb que pode ser obtido no site do MySQL, assim como Visual Studio
Code.

5.3 Correções e Melhorias Aplicativo Saúde Residência

Depois dos estudos do backend e frontend do ATAS-TEMP, foi apresentada atividades


de correções no fluxo do aplicativo Saúde Residência (atual SALVUS HOMECARE),
aplicativo em Ionic v1. Estes erros eram considerados críticos, pois existiam travamentos
devido a erros que não tinham saídas nem tratamento. Logo, o usuário ficava preso na tela que
disparava o erro e não conseguia sair dela sem fechar o aplicativo.

Figura 23 - Tela de debug do Aplicativo Saúde e Residência com erro de Travamento

Fonte: Autor

Para correção dos problemas com os travamentos foi feito um mapeamento de onde
estes erros acontecem e suas causas. Com isso, foi feita uma planilha de detecção de bug com
detalhes como:
● Componente: tela ou componente que está apresentando erro;
● Detalhes: descrição de como/onde ocorre o erro;
● Descrição da correção: como foi corrigido (se houver correção);
● Modo de Reprodução: como reproduzir o erro;
● Problema Reproduzido: tipo do problema
● Status da correção: Não Iniciada, Em Andamento ou Concluída.
32

● Severidade: impacto do erro no uso do aplicativo. Pode ter os valores Pequena,


Moderada, Grave ou Crítica;
● Prioridade: prioridade da correção do erro. Pode ter os valores Baixa, Média ou Alta

Figura 24 - Planilha de Detecção de Bugs Aplicativo Saúde Residência

Fonte: Autor

Figura 25 - Exemplo de Tratamento de Erro

a) Tratamento de Erro de Conexão b) Tratamento de Erro de Negação de


Localização

Fonte: Autor
33

5.4 Implementação do Checklist de Orçamento de Home Care

Com as correções e melhorias aplicadas ao aplicativo Saúde Residência, foi possível a


maior adesão dos profissionais com o aplicativo. Então, foi pedido feito um desafio a empresa
que era a implementação de um checklist de Orçamento para pacientes internados que
estavam aptos ao sistema de home care.
Esta nova funcionalidade contém um checklist com diversas informações sobre a
condição e necessidade do paciente, gerando um relatório no formato pdf que é enviado para
o email da equipe de orçamento do home care. Para tal implementação, foi-se necessário
desenvolver, além da parte visual do formulário no aplicativo Saude Residencia, todo um
tratamento de dados e rotas para receber, montar e enviar o relatório no backend.

5.5. Desenvolvimento com React Native

O aplicativo Saúde Residência se tratava de um software legado e que tinha, que


estava utilizando uma tecnologia obsoleta para época. O framework usado estava na primeira
versão que se tornaria incompatível com as lojas de App ( App Store e Google Play). Na
mesma época já existia a quarta versão do Ionic e outras opções de desenvolvimento de
aplicativos híbridos. Desde de antes de acontecer o estágio, devido a problemática de um
software legado já havia se à vontade de atualizar a tecnologia usada do Saúde Residência ,
mudando sua base do framework Ionic v1 para o React Native. Essa mudança traria para o
aplicativo maior compatibilidade com os front-ends web da empresa, com isso haveria uma
melhor manutenibilidade por parte do time que já era acostumado com a tecnologia React.
Com a estabilidade oferecida pelo tratamento de erros e melhorias no App do Saúde
Residência, obteve-se a possibilidade de reduzir o esforço com a manutenção e suporte deste
aplicativo. Logo, foi possível começar a transferência de uma tecnologia para outra. Foram
feitas atividades relativas às integrações com backend, implementação de componentes e
páginas de listagem e checklists.

5.6 Implementação App “A Salvus”

Durante as atividades do estágio, a pandemia do covid 19 se instaurou no Brasil.


Logo, foi vista a oportunidade de ajudar a sociedade a lidar com o vírus. A epique se
34

empenhou em desenvolver uma aplicação informática que ajuda-se na triagem e


acompanhamento de possíveis pacientes acometidos pela covid.
O aplicativo tem como base a realização de checklists focando na existência dos
sintomas da covid 19 e na gravidade destes sintomas. Foram implementadas as funções de
auto exame e realizar exames em terceiros, idealizando o uso em comunidade entre empresas,
ações sociais e ambientes educacionais a fim de se obter informações sobre a disseminação do
vírus.

Figura 26 - Telas do Aplicativo A Salvus

a) Autoexames b) Estatísticas c) Dashboard d) Notícias

Fonte: Autor
35

6. CRONOGRAMA DE DESENVOLVIMENTO DAS ATIVIDADES DO


ESTÁGIO

MÊS/ANO

Atividades AGO/ SET/ NOV/ DEZ/ JAN/ FEV/ MAR/ ABR/ MAI/ JUN/
2019 2019 2019 2019 2020 2020 2020 2020 2020 2020

REVISÃO X X X X X X X X X X
BIBLIOGRÁFICA

AUXILIAR NO X X X X X X X X X X
PROCESSO DE
DESENVOLVIMEN
TO E EVOLUÇÃO
DE SOFTWARE DA
EMPRESA

AUXILIAR NO X X X X X X X X X X
PLANEJAMENTO E
DESENVOLVIMEN
TO EM FRONT-END
E BACK-END

AUXILIAR NO X X X X X X X X X X
SUPORTE E
MANUTENÇÃO AO
USUÁRIO SOB
SUPERVISÃO
36

7. CONCLUSÕES

Diante das atividades desempenhadas durante um estágio de desenvolvimento de


software em uma empresa de saúde para obtenção de experiência profissional, conclui-se:

● Constatou-se a relevância do gerenciamento de projetos dentro de uma empresa focada


em inovação na área da saúde. Área que sofre de deficiências no ramo da inovação,
faltas estas que impossibilitam sanar dores dos pacientes e profissionais de saúde que
sofrem com a falta da portabilidade de informações e qualidade destas;
● Verificou-se que a importância da compatibilidade entre as tecnologias usadas pelos
profissionais dentro de uma equipe, haja vista a ocorrência de incompatibilidades que
impossibilitem o desenvolvimento de atividades devido a incoerência de
configurações de ambiente;
● Notou-se também, a importância de se trabalhar com sistemas que trabalhem em
sintonia com as tecnologias atuais do mercado, tendo em vista que softwares se
tornam obsoletos com tempo, assim como bibliotecas e frameworks usados em sua
implementação também podem se tornar ultrapassados;
● Em relação ao a softwares legados, também se foi apurado que quando se trata de
sistemas diminutos o melhor a se fazer é a substituição do mesmo por meio de uma
substituição da tecnologia que se tornou obsoleta por outra que está atualizada e
condiz com o mercado. Haja vista, a experiência com o aplicativo Saúde Residência
com Ionic v1, que além de trazer a equipe o desconforto de lidar com tecnologias
ultrapassadas, causou problemáticas relativas a compatibilidade com lojas de
aplicativos, algo que demandava grande esforço da equipe para administrar a
distribuição do app;
● Quanto à transição de tecnologias do Saúde Residência, do Ionic Framework para
React Native, também foi notada uma certa dificuldade na implementação devido a
diferença entre os dois sistemas, existindo grandes diferenças quanto à codificação e
estrutura dos mesmos. Ainda sobre tal situação, também se foi observada a relevância
de mesmo com a obsolescência do software a necessidade de mantê-lo funcional com
consertos e melhorias até que aconteça a transferência completa do projeto para uma
nova tecnologia;
37

● Com o aprendizado e a experiência proporcionada pelo estágio em uma empresa de


tecnologia voltada à saúde, e com a percepção das melhorias causadas pela inovação
produzida por esta empresa. Foi estabelecido um pensamento que com a inovação na
área da saúde é possível além de conseguir recursos financeiros, pode-se conseguir
melhorias no bem-estar social e garantir uma melhor qualidade de atendimento e
trabalho na área da saúde.
38

REFERÊNCIAS

51 STARTUPS PARA FICAR DE OLHO EM 2019. Forbes Brasil, 2019. Disponível em:
<https://forbes.com.br/negocios/2019/07/51-startups-para-ficar-de-olho-em-2019/ >. Acesso
em: 20 de Abril de 2021.

ALBERTIN, A. L.; ALBERTIN, R. M. M. Tecnologia de Informação e Desempenho


Empresarial no gerenciamento de seus projetos: um estudo de caso de uma indústria. Revista
de Administração Contemporânea (Printed), v. 12, p. 599-629, 2008.

APÓS APORTE, STARTUP INVESTE MAIS DE R$ 3,5 MILHÕES PARA EXPANDIR


SOLUÇÕES DE IOT NA ÁREA DA SAÚDE. Startupi, 2020. Disponível em:
<https://startupi.com.br/2020/06/apos-aporte-startup-investe-mais-de-r-35-milhoes-para-expa
ndir-solucoes-de-iot-na-area-da-saude/>. Acesso em: 20 de Abril de 2021.

BACHUK, Alex. REDUX · AN INTRODUCTION. Smashing Magazine — For Web


Designers And Developers, 2016. Disponível em:
<https://www.smashingmagazine.com/2016/06/an-introduction-to-redux/ >. Acesso em: 29 de
abril de 2021.

BRASIL ESTÁ NO FIM DA FILA QUANDO O ASSUNTO É INOVAÇÃO. Jornal da


USP, 2018. Disponível em:
<https://jornal.usp.br/especiais/brasil-esta-no-fim-da-fila-quando-o-assunto-e-inovacao-2/>.
Acesso em: 20 de Abril de 2021.

BRIGATTO, Gustavo. ACESSO À INTERNET CRESCE NO BRASIL, MAS 28% DOS


DOMICÍLIOS NÃO ESTÃO CONECTADOS. Valor Econômico, 2020. Disponível em: <
https://valor.globo.com/empresas/noticia/2020/05/26/acesso-a-internet-cresce-no-brasil-mas-2
8percent-dos-domicilios-nao-estao-conectados.ghtml>. Acesso em: 20 de Abril de 2021.

CARRILHO, Ana Flávia. Startups No Brasil – A Maturidade do Ecossistema Nos Últimos


Oito Anos. Abstartups, 2019. Disponível em:
39

<https://abstartups.com.br/startups-no-brasil-a-maturidade-do-ecossistema-nos-ultimos-oito-a
nos/ >. Acesso em: 20 de Abril de 2021.

CICLO DE VIDA SCRUM: ENTENDA O QUE É E COMO FUNCIONA. FlowUp, 2021b.


Disponível em: <https://flowup.me/blog/ciclo-de-vida-scrum/ >. Acesso em: 20 de Abril de
2021.

CROSS-PLATFORM HYBRID MOBILE APP DEVELOPMENT. Technology Rivers, 2021.


Disponível em:
<https://technologyrivers.com/services/cross-platform-hybrid-mobile-app-development/ >.
Acesso em: 29 de Abril de 2021.

DATE, Christopher J. Introdução A Sistemas De Bancos De Dados. Rio de Janeiro: Elsevier


Editora Ltda, 2004.

HELLER, Martin. VISUAL STUDIO CODE VS. VISUAL STUDIO: HOW TO CHOOSE.
InfoWorld - Technology insight for the enterprise, 2019. Disponível em:
<https://www.infoworld.com/article/3436860/visual-studio-code-vs-visual-studio-how-to-cho
ose.html >. Acesso em: 29 de Abril de 2021.

INTERNET DAS COISAS (IOT): TUDO QUE VOCÊ PRECISA SABER. PROOF, 2021.
Disponível em: <https://www.proof.com.br/blog/internet-das-coisas/ >. Acesso em: 20 de
Abril de 2021.

KHOROSHULIA, Stanislav. HOW REACT NATIVE APP DEVELOPMENT WORKS


UNDER THE HOOD. MobiDev - DS/ML, AR, IoTb, 2021. Disponível em:
<https://mobidev.biz/blog/how-react-native-app-development-works>. Acesso em: 29 de
Abril de 2021.

LENON. NODE.JS – O QUE É, COMO FUNCIONA E QUAIS AS VANTAGENS. Opus


Software - Better for Digital Transformation, 2018. Disponível em:
<https://www.opus-software.com.br/node-js/>. Acesso em: 29 de Abril de 2021.
40

METODOLOGIAS ÁGEIS X METODOLOGIAS TRADICIONAIS: QUAIS AS


PRINCIPAIS DIFERENÇAS?. IEEP( Instituto de Educação por Experiência e Prática),
2020. Disponível em: <https://www.ieepeducacao.com.br/metodologias-tradicionais/ >.
Acesso em: 20 de Abril de 2021.

MODELO DE OBJETO DE DOCUMENTO (DOM). MDN Web Docs, 2021. Disponível em:
<https://developer.mozilla.org/pt-BR/docs/Web/API/Document_Object_Model >. Acesso em:
29 de Abril de 2021.

MOORE, Lindsay. WHAT IS MYSQL. Oracle Database / Applications information, news


and tips - SearchOracle, 2018. Disponível em:
<https://searchoracle.techtarget.com/definition/MySQL >. Acesso em: 29 de Abril de 2021.

O QUE É SCRUM E QUAIS OS SEUS BENEFÍCIOS. FlowUp, 2021a. Disponível em:


<https://flowup.me/blog/o-que-e-scrum-e-seus-beneficios >. Acesso em: 20 de Abril de 2021.

O QUE É UMA STARTUP?. Sebrae, 2014. Disponível em: <


https://www.sebrae.com.br/sites/PortalSebrae/artigos/o-que-e-uma-startup,6979b2a178c83410
VgnVCM1000003b74010aRCRD > . Acesso em: 20 de Abril de 2021.

PANZOLINI, Breno. GERENCIANDO SEUS BRANCHES COM O GIT FLOW. Tableless -


Conteúdo sobre front-end é no Tableless, 2018. Disponível em:
<https://tableless.com.br/git-flow-introducao/>. Acesso em: 29 de Abril de 2021.

PATEL, Neil. METODOLOGIA ÁGIL: ENTENDA O QUE É E QUAIS SÃO AS 8 MAIS


UTILIZADAS. Neil Patel, 2021. Disponível em:
<https://neilpatel.com/br/blog/metodologia-agil/ >. Acesso em: 20 de Abril de 2021.

ROVEDA, Ugo. REACT: O QUE É, COMO FUNCIONA E PORQUE USAR E COMO


APRENDER. Kenzie Academy Brasil: Curso de Programação Online, 2016. Disponível
em: <https://kenzie.com.br/blog/react/ >. Acesso em: 29 de Abril de 2021.

SABBAGH, Rafael. Scrum: Gestão Ágil para Projetos de Sucesso. São Paulo: Casa do
Código, 2013.
41

SALVUS HOMECARE. Google Play, 2021. Disponível em: <


https://play.google.com/store/apps/details?id=me.salvus.salvushomecare&hl=en_ZA&gl=US
>. Acesso em: 20 de Abril de 2021.

SHEVAT, Amir Shevat; JIN, Brenda; SAHNI, Saurabh. Designing Web APIs: Building Apis
That Developers Love. Sebastopol, CA: O’Reilly Media, Inc, 2018.

SOUZA, Ivan de. O QUE É SQLITE, POR QUE ELE É USADO, E O QUE O
DIFERENCIA DO MYSQL?. Rock Content: Experiências de Conteúdo que sua
audiência vai amar, 2020. Disponível em: <https://rockcontent.com/br/blog/sqlite/ >. Acesso
em: 29 de Abril de 2021.

UNZELTE, Carolina. O DISPOSITIVO DESSA STARTUP PODERIA AJUDAR NA CRISE


DO OXIGÊNIO. Época Negócios, 2021. Disponível em: <
https://epocanegocios.globo.com/Startup/noticia/2021/03/o-dispositivo-dessa-startup-poderia-
ajudar-na-crise-do-oxigenio.html >. Acesso em: 20 de Abril de 2021.

WHAT IS SQLITE?. SQLite, 2021. Disponível em: <https://www.sqlite.org/index.html>.


Acesso em: 29 de Abril de 2021

WISE, Robert. DOENÇA PULMONAR OBSTRUTIVA CRÔNICA (DPOC). Manuais MSD


, 2018. Disponível em: <
https://www.msdmanuals.com/pt-br/profissional/dist%C3%BArbios-pulmonares/doen%C3%
A7a-pulmonar-obstrutiva-cr%C3%B4nica-e-doen%C3%A7as-relacionadas/doen%C3%A7a-p
ulmonar-obstrutiva-cr%C3%B4nica-dpoc>. Acesso em dia: 20 de Abril de 2021.

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy