Integração e Entrega Contínua para aplicações móveis
desenvolvidas em React Native
Pedro José de Souza Neto
Centro de Informática, Universidade federal de
Pernambuco
Recife, Pernambuco, Brasil
pjsn@cin.ufpe.br
Vinicius Cardoso Garcia
Centro de Informática, Universidade federal de
Pernambuco
Recife, Pernambuco, Brasil
vcg@cin.ufpe.br
RESUMO
Continuous integration and continuous delivery are not new for
developers who create web applications, however in the develop-
ment of mobile applications this practice is still not very common
mainly because of the challenges during the process of distributing
the application. In the face of the growing number of applications,
a greater requirement for quality and ever-shorter delivery times,
delivering a healthy code is often extremely important to keep up
with the competition. The purpose of this work is to implement an
integration and continuous delivery pipeline for mobile applicati-
ons developed in React Native. It intends to automate the process of
build and delivery of applications developed with this technology.
CCS CONCEPTS
· Software and its engineering → Software evolution; Appli-
cation specifc development environments.
KEYWORDS
pipeline, continuous integration, continuous delivery, react native,
mobile application
ACM Reference Format:
Pedro José de Souza Neto and Vinicius Cardoso Garcia. 2018. Integração e
Entrega Contínua para aplicações móveis desenvolvidas em React Native.
In Trabalho de Conclusão de Curso (Graduação em Sistemas de Informação),
Dezembro, 2018, Recife, PE. ACM, New York, NY, USA, 10 pages.
1 INTRODUÇÃO
O crescente número de aplicações de software, uma exigência maior
em relação a qualidade e com os prazos de entrega cada vez menores,
acarretou em uma mudança que afetou o processo de desenvolvi-
mento e a maneira que o software é entregue para o cliente. Diante
desse cenário, vimos o surgimento de metodologias como DevOps
[Ebert et al. 2016], que tem como base a prática de integração e
entrega contínua no seu ciclo operacional com a fnalidade de au-
mentar a capacidade de resposta às necessidades dos clientes por
meio de lançamentos de software frequentes e automatizados [10].
Com a propagação dessas práticas supracitadas, muitas empresas de-
senvolveram diversas soluções aplicando integração contínua [Paul
Duvall and and Glover 2007; Zhao et al. 2017] e entrega contínua
Permission to make digital or hard copies of part or all of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for proft or commercial advantage and that copies bear this notice and the full citation
on the frst page. Copyrights for third-party components of this work must be honored.
For all other uses, contact the owner/author(s).
TCC BSI ’18, Dezembro, 2018, Recife, PE
© 2018 Copyright held by the owner/author(s).
[Chen 2017] para aplicações web, porém no mundo de aplicações
móveis, a adoção dessas práticas ainda é pouco utilizada [Jacksman
2020; Klepper et al. 2015].
O objetivo deste trabalho é o estudo e a implementação de uma
pipeline de integração e entrega contínua para aplicações móveis
desenvolvidas em React Native [Facebook 2020] com fns de auto-
matizar o processo de build e entrega destas aplicações tendo os
seguintes objetivos específcos:
• Criação da pipeline da aplicação
• Estudo de ferramenta de integração e entrega contínua
• Estudo de ferramenta para testar aplicações React Native
• Implementação de uma aplicação em React Native e dos tes-
tes baseados nos estudos para realizar as funções desejadas
Para o desenvolvimento da pipeline, foram utilizadas as ferra-
mentas Jenkins
1
, que é o principal servidor de automação open
source que fornece centenas de plugins para apoiar os processos de
build, implantação e automação para diversos tipos de projeto; Blue
Ocean
2
, que repensa a experiência do usuário do Jenkins, reduz a
desordem e aumenta a clareza para todos os membros da equipe;
TestFairy
3
, que é uma plataforma de testes para aplicações móveis
que fornece registros e relatórios de falhas além de ser um meio
de centralizar a distribuição do aplicativo; e, fnalmente, o Slack
4
,
que é uma canal de comunicação presente em quase todas as em-
presas além de possuir ótimos meios de integração com as demais
ferramentas utilizadas nesse trabalho.
Esse documento está organizado como se segue: Seção 1 - In-
trodução: Apresenta motivações e objetivos do estudo; Seção 2 -
Conceitos básicos: Apresenta um contexto teórico e tecnológico
para a compreensão dos capítulos seguintes; Seção 3 - Implemen-
tação do aplicativo: Apresenta a escolha da tecnologia adotada, o
desenvolvimento dos testes e do aplicativo; Seção 4 - A pipeline
de integração e entrega contínua: Apresenta o passo a passo no
processo de construção da pipeline; e, fnalmente, Seção 5 - Conclu-
sões: Apresenta as conclusões obtidas durante o desenvolvimento
do projeto, trabalhos futuros e limitações.
2 CONCEITOS BÁSICOS
Nesta seção são apresentados e discutidos os conceitos básicos que
fundamentam este trabalho.
1
https://www.jenkins.io/, último acesso em 29/03/2021
2
https://www.jenkins.io/projects/blueocean/, último acesso em 29/03/2021
3
https://www.testfairy.com/, último acesso em 29/03/2021
4
https://slack.com/, último acesso em 29/03/2021
arXiv:2103.16538v1 [cs.SE] 30 Mar 2021