Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais
Alura > Cursos de Mobile > Cursos de iOS > Conteúdos de iOS > Primeiras aulas do curso iOS: organizando o app com modularização usando CocoaPods

iOS: organizando o app com modularização usando CocoaPods

Modularização e CocoaPods - Apresentação

Olá! Boas-vindas ao curso de Modularização de apps iOS com cocoapods.

Audiodescrição: Ândriu se autodescreve como um homem branco, de cabelos castanhos claros e curtos. Olhos e barbas também castanhos. Está vestindo uma camiseta azul-escura com o logo da Alura. Ao fundo, uma prateleira com itens de decoração e iluminação azulada.

O que aprenderemos?

Neste curso, aprenderemos sobre modularização. O objetivo dessa formação é trabalharmos com aplicativos de larga escala, isto é, aplicativos que atendem milhões de pessoas usuárias. Já parou para pensar como funcionam essas big techs (grandes empresas) de tecnologia que trabalham com produtos que atingem milhões de pessoas?

Por exemplo, aplicativos de entrega de refeições, aplicativos de corrida de carro e aplicativos bancários. Todos eles possuem uma quantidade grande de pessoas usuárias.

E como funciona o time de desenvolvimento dessas empresas? Será que todas as pessoas trabalham em um único repositório? Ou será que essas empresas trabalham com o conceito de modularização?

Vamos utilizar o CocoaPods como gerenciador de dependências do nosso projeto principal, que é o projeto SwiftBank. A tela inicial de uma simulação de um aplicativo bancário será disponibilizada. A ideia é escolhermos uma das seções da Home para transformar em módulo.

E qual é a importância disso? Quando trabalhamos em módulo, conseguimos criar um projeto separado que atinja uma determinada funcionalidade. Pensando em metodologias ágeis, seria como um Squad (equipe) trabalhando especificamente em um módulo do aplicativo principal. Depois, vamos entender como gerar a versão desse módulo e como integrá-lo no aplicativo principal.

Pré-requisitos

É importante que você já tenha familiaridade com a linguagem Swift, que saiba criar layouts com Swift e UI e que tenha também facilidade com o GitHub. Vamos utilizar muitos comandos do terminal para criar branch, fazer pull, push, dentre outros.

Esse é o conteúdo que vamos abordar durante este curso. Até a próxima aula!

Modularização e CocoaPods - Entendendo a demanda e instalando o CocoaPods

Para iniciar o nosso curso de modularização, vamos começar conhecendo o projeto, que se chama SwiftBank. A ideia desse projeto é simular a tela inicial de um aplicativo bancário, semelhante aos diversos existentes no mercado, com os mesmos componentes.

A tela inicial mostra o saldo da conta, algumas main actions (ações principais) do aplicativo, como "PIX", "Transferir" e "QR Code". Mais abaixo, temos o cartão de crédito e algumas seções de "Empréstimos", "Poupança", "Transações" e "Seguros".

Tela inicial de aplicativo de banco digital em smartphone exibindo informações de conta, como saldo disponível, ferramentas de transações como Pix, Transferir e QR Code, detalhes de cartão de crédito e opções de empréstimo e poupança. O fundo da tela é amarelo e as informações estão divididas em seções retangulares brancas. As informações de pix, transferência, QR Code e Recarga são representadas por ícones cinza dentro da seção "Conta". As informações do cartão estão em um retângulo destacado em azul-escuro.

Esta é a aparência do nosso app. Temos apenas a Home (página inicial), e é proposital, pois vamos começar a discutir como as empresas com milhões de usuários trabalham para manter e desenvolver aplicativos desse tipo.

Muitos aplicativos bancários não podem ficar sequer um minuto fora do ar, pois isso significaria uma grande perda financeira. Já parou para pensar como essas equipes se organizam, tanto no desenvolvimento quanto na resolução de problemas? É interessante notar que muitas empresas utilizam o conceito que vamos trabalhar durante o curso: a modularização.

Modularização

No back-end, esse conceito é mais famoso e utilizado como microserviço. No aplicativo, a ideia de modularização é transformar parte do aplicativo em um subprojeto, uma dependência ou uma biblioteca que será consumida no aplicativo principal.

Portanto, ao invés de ter um aplicativo com tudo, vamos transformar funcionalidades estratégicas do nosso projeto em micro-apps, ou seja, em dependências, que serão utilizadas no aplicativo principal. Ao longo do curso, vamos discutir bastante sobre as vantagens de trabalharmos dessa forma.

CocoaPods

Quando falamos em modularização no iOS, temos alguns gerenciadores de dependências, e o que vamos trabalhar nesse curso se chama CocoaPods. Ele é um dos mais utilizados atualmente, possui várias bibliotecas open-source. Grandes empresas também o utilizam para modularizar seus projetos.

Então, como verificar se o CocoaPods está instalado no Mac? Vamos começar abrindo o terminal. Para verificar se ele está instalado, escreveremos pod --version.

pode --version

command not found: pod

Recebemos um retorno de que o comando não foi encontrado. Significa que o CocoaPods ainda não está instalado. Para instalá-lo no Mac, executaremos o seguinte comando:

sudo gem install cocoapods

Vamos apertar a senha. Ele pedirá a senha de usuário com a qual logamos no Mac. Vamos preenchê-la e apertar "Enter" outra vez. O processo demora um pouco. Após a instalação do CocoaPods versão 1.14.3, para verificarmos se ele foi instalado corretamente, executaremos novamente o comando pod --version. Está correto!

O próximo passo é instalar o CocoaPods no nosso projeto. Para isso, navegaremos até o diretório do projeto, que está na área de trabalho, logo, passaremos cd desktop. Limparemos o terminal apertando "command + k" e listaremos as pastas do desktop com ls.

Copiaremos a pasta do projeto, swiftbank-start-project, passaremos com:

cd swift-start-project

Agora que já estamos na pasta do swiftbank, vamos rodar o comando pod install. Com isso, rodamos várias etapas. Agora, ao abrirmos a pasta do projeto, encontraremos outro ícone de inicialização. Significa que este projeto contém dependências do CocoaPods.

Ao rodarmos o comando pod install, ele gera um arquivo .xcworkspace. Portanto, toda vez que abrirmos o projeto a partir de agora, não será mais pelo ícone azul, e sim pelo ícone que tem essa extensão. .xcworkspace.

Ao longo do curso, vamos falar mais sobre isso, mas, inicialmente, a ideia era que aprendêssemos a instalar o CocoaPods no Mac e no projeto. Até mais!

Modularização e CocoaPods - Compreendendo a importância da modularização no mercado

Os grandes projetos, que envolvem milhões de usuários, demandam um grande time de desenvolvimento. Imaginem uma equipe mobile com 200 pessoas desenvolvedoras trabalhando no mesmo projeto.

Suponha que você tem um projeto e o compartilha com alguns amigos, entre 10 e 15 pessoas focadas em desenvolver algo. Provavelmente, você já vai encontrar problemas com merge, isto é, problemas na junção do código.

Você desenvolve uma parte da funcionalidade, outro colega desenvolveu outra parte e assim por diante. Quando for necessário unir todas essas partes no GitHub, a chance de ocorrer um conflito no código é muito alta. Um dos principais problemas é a possibilidade de perder parte da funcionalidade desenvolvida devido a problemas de merge.

Esse é um dos possíveis problemas que podem ocorrer em um projeto muito grande com várias pessoas trabalhando, mas é um dos mais recorrentes. Em um cenário de 200 pessoas trabalhando em um único projeto, enviando requests, fazendo alterações na master, adicionando funcionalidades, gerenciar os processos se torna muito mais difícil.

Modularização

A modularização auxilia as grandes empresas a resolverem esses problemas. Por exemplo, ao invés das 200 pessoas trabalharem nos mesmos processos, podemos dividir o projeto principal em funcionalidades.

Por exemplo, no nosso projeto SwiftBank, temos várias seções na Home. Temos a parte do balance (saldo), que mostra o saldo com as ações principais, temos os dados do cartão de crédito, seção de empréstimos, dentre outras.

Cada funcionalidade poderia ser um módulo do projeto, com equipes de desenvolvimento dedicadas a esses módulos, que trabalhariam em projetos independentes do projeto principal.

Ao fazer os requests para adicionar funcionalidades a esses módulos, tudo estaria projetos separados. Assim, esses casos seriam resolvidos separadamente. Outra vantagem é que cada equipe poderia discutir a arquitetura que vai utilizar em seu módulo, proporcionando maior flexibilidade para as equipes trabalharem dessa maneira.

Este era o objetivo principal, antes de começarmos a criar o módulo e entender como utilizamos o CocoaPods: apresentar o problema da junção de códigos e mostrar como podemos desenvolver soluções.

Com vários squads trabalhando em funcionalidades, ou seja, em módulos, fica muito mais fácil desenvolver um projeto do que ter 200 pessoas trabalhando em um único projeto. Por isso, esse é um tema muito importante quando falamos em aplicativos de larga escala.

Agora que já conhecemos o contexto do problema, podemos começar a pensar em como vamos criar o nosso primeiro módulo!

Sobre o curso iOS: organizando o app com modularização usando CocoaPods

O curso iOS: organizando o app com modularização usando CocoaPods possui 139 minutos de vídeos, em um total de 51 atividades. Gostou? Conheça nossos outros cursos de iOS em Mobile, ou leia nossos artigos de Mobile.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda iOS acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas