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.
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.
É 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!
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".
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.
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.
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!
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.
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!
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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.